[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



On Tue, 5 May 2015, Julien Grall wrote:
> On 05/05/15 11:39, Stefano Stabellini wrote:
> > On Mon, 4 May 2015, Vijay Kilari wrote:
> >> On Thu, Apr 30, 2015 at 7:59 PM, Julien Grall <julien.grall@xxxxxxxxxx> 
> >> wrote:
> >>> Hi,
> >>>
> >>> On 30/04/15 14:47, Stefano Stabellini wrote:
> >>>>>>>
> >>>>>>> If the devid is not within this range, the ITS won't recognize the 
> >>>>>>> value and
> >>>>>>> won't be able to send the interrupt.
> >>>>>>>
> >>>>>>> So this is clearly not the right value.
> >>>>>>
> >>>>>> Sure, in that case the maximum value allowed by GITS_TYPER.Devbits.
> >>>>>> Vijay, what is the value of GITS_TYPER.Devbits on your platform?
> >>>>>
> >>>>> It is 21 bits
> >>>>
> >>>> I would imagine that 21 bits would be plenty to find an unused devid.
> >>>>
> >>>> Alternatively we could use an inexistent function of a real device, such
> >>>> as 00:00.1 (function 1 of the host bridge).
> >>>
> >>> As discussed IRL, this idea sounds good to me.
> >>>
> >>> Although I would be happy with any other way which ensure the devid is 
> >>> free.
> >>
> >> Has prototyped with 00.00.1 as device id. But I see that Dom0 boot is
> >> slow compared to polling mode.
> > 
> > This is very interesting.
> > 
> > 
> >> This could be because Dom0 has to keep
> >> trapping on creader to check if creader is updated or not.
> > 
> > This sounds like a plausible explanation. That's because the guest is
> > polling, right?
> 
> He was inject an INT command for every command sent...
> 
> > I think we should pause the guest vcpu until we receive
> > the interrupt.
> > You can do that by calling vcpu_block.
> 
> Blocking the vcpu is not the right thing to do. The processing of the
> ITS command queue is asynchronous and the guest may decide to execute
> other task while waiting.

Sure, but the hypervisor might have other things to do and other vcpus
to schedule as well. It is a matter of priorities and scheduling the
most appropriate workload. Keep in mind that vcpu_block doesn't
completely pause the guest, it just only blocks the vcpu until the next
guest event occurs.

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