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

Re: [Xen-devel] [RFC PATCH v2 13/22] xen/arm: its: Add virtual ITS command support



Hi,

On 28/04/15 10:56, Stefano Stabellini wrote:
> On Tue, 28 Apr 2015, Vijay Kilari wrote:
>> Approach 1: (Using completion interrupt)
>> ----------------
>> 1) Create dummy device for each virtual ITS when virtual its is
>> created for a domain
>>     OR Allocate one interrupt number for each virtual ITS from the one
>> single dummy device
>>
>> 2) Trap on CWRITER
>> 3) Take vits lock
>> 4)     Read a Virtual Command from Virtual Command Queue
>> 5)     Translate Virtual command to Physical command
>> 5)  Release vits lock
>> 6) Take physical ITS lock
>> 7)      Post physical commands + Append INT command
>> 8) Release physical ITS lock
>> 9) Return from CWRITER trap and let VCPU poll in EL1 (kernel) for CREADER 
>> update
>>     which indicates completion of command.
>> 10) On receiving interrupt, Update CREADER of this virtual ITS
>>
>> Pros:
>>     - VCPU polls in EL1.
>>
>> Cons:
>>     - Complexity in creating & managing dummy device.

If you properly manage the device with struct pci_dev or struct device
(which is, as talked earlier, obviously required for security) you
should avoid your so-called "dummy device". BTW, what do you mean by
"dummy device"?

>> Approach 2:
>> ----------------
>> I thought of below approach where in we reduce locking time and no need
>> of Interrupt.
>>
>> 1) Trap on CWRITER
>> 2) Take vits lock
>> 3)     Read _all_ or 2 Virtual Commands from Virtual Command Queue
>> 4)     Translate _all_ or 2 Virtual commands to Physical commands
>> 5)  Release vits lock
>> 6) Take physical ITS lock
>> 7)      Post physical commands
>> 8) Release physical ITS lock
>> 9) Poll for completion of command and return from CWRITER trap.
>>
>> Pros:
>>     - Simple approach
>> Cons:
>>     - VCPU polls in EL2
> 
> I think we'll have to go with Approach 1.
> 
> The problem with Approach 2 is that we would need to watch out for
> sequences of guest ITS commands that could cause Xen to poll for too
> long and lock up.

+1, the approach 1 is the best.

Regards,

-- 
Julien Grall

_______________________________________________
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®.