[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] docs/design: introduce HVMMEM_ioreq_serverX types



>>> On 26.02.16 at 05:24, <kevin.tian@xxxxxxxxx> wrote:
>> +Proposal
>> +========
>> +
>> +Because the number of spare types available in the P2M type-space is
>> +currently very limited it is proposed that HVMMEM\_mmio\_write\_dm be
>> +replaced by a single new type HVMMEM\_ioreq\_server. In future, if the
>> +P2M type-space is increased, this can be renamed to HVMMEM\_ioreq\_server0
>> +and new HVMMEM\_ioreq\_server1, HVMMEM\_ioreq\_server2, etc. types
>> +can be added.
>> +
>> +Accesses to a page of type HVMMEM\_ioreq\_serverX should be the same as
>> +HVMMEM\_ram\_rw until the type is _claimed_ by an IOREQ server. Furthermore
>> +it should only be possible to set the type of a page to
>> +HVMMEM\_ioreq\_serverX if that page is currently of type HVMMEM\_ram\_rw.
> 
> Is there similar assumption on the opposite change, i.e. from ioreq_serverX
> only to ram_rw?

Yes. The above should be re-worded to make clear this is a
bi-directional requirement.

>> +To allow an IOREQ server to claim or release a claim to a type a new pair
>> +of hypercalls will be introduced:
>> +
>> +- HVMOP\_map\_mem\_type\_to\_ioreq\_server
>> +- HVMOP\_unmap\_mem\_type\_from\_ioreq\_server
>> +
>> +and an associated argument structure:
>> +
>> +            struct hvm_ioreq_mem_type {
>> +                    domid_t domid;      /* IN - domain to be serviced */
>> +                    ioservid_t id;      /* IN - server id */
>> +                    hvmmem_type_t type; /* IN - memory type */
>> +                    uint32_t flags;     /* IN - types of access to be
>> +                                        intercepted */
>> +
>> +    #define _HVMOP_IOREQ_MEM_ACCESS_READ 0
>> +    #define HVMOP_IOREQ_MEM_ACCESS_READ \
>> +            (1 << _HVMOP_IOREQ_MEM_ACCESS_READ)
>> +
>> +    #define _HVMOP_IOREQ_MEM_ACCESS_WRITE 1
>> +    #define HVMOP_IOREQ_MEM_ACCESS_WRITE \
>> +            (1 << _HVMOP_IOREQ_MEM_ACCESS_WRITE)
>> +
>> +            };
>> +
>> +
>> +Once the type has been claimed then the requested types of access to any
>> +page of the claimed type will be passed to the IOREQ server for handling.
>> +Only HVMMEM\_ioreq\_serverX types may be claimed.
>> --
> 
> It'd good to also add how to handle multiple ioreq servers claiming
> one same type for a given domain.

It's going to fail, but I agree that perhaps this would better be
spelled out.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.