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

Re: [Xen-devel] [PATCH v4 07/10] xen/arm: call gic_clear_lrs on entry to the hypervisor



On Fri, 21 Mar 2014, Ian Campbell wrote:
> On Fri, 2014-03-21 at 16:34 +0000, Stefano Stabellini wrote:
> > On Fri, 21 Mar 2014, Ian Campbell wrote:
> > > On Wed, 2014-03-19 at 12:32 +0000, Stefano Stabellini wrote:
> > > 
> > > Can this not be folded back into the patch which added this function?
> > 
> > Yes, it can.
> > 
> > 
> > > > This change is needed by other patches later on. It is going to make
> > > > sure that the calculation in Xen of the highest priority interrupt
> > > > currently inflight is correct and accurate and not based on stale data.
> > > 
> > > Hrm, can we not do this on demand just at the point where we are about
> > > to make such a calculation? There are going to be lots of hypervisor
> > > entries which don't want to do anything at all with interrupts, aren't
> > > there?
> > 
> > The alternative would be calling gic_clear_lrs at the beginning of
> > gic_inject and gic_events_need_delivery, that is called by
> > local_events_need_delivery*.  It could be called multiple times before
> > returning to guest.
> 
> We could probably invent some sort of "once per h/v entry" construct,
> but ick.
> 
> What I was actually thinking of though was to do it even further up --
> e.g. in the function which makes the interrupt pending in the first
> place. I suppose that is called too infrequently though in the absence
> of maintenance interrupts.

Yes, that function would not be called often enough: in order to
calculate correctly if events need delivery, we need to know the current
value of GICV_PMR.Priority, that is aliased by GICH_VMCR and can be
changed by the guest without traps, and the current active highest
priority interrupt in the LRs.  As a consequence I think that
gic_events_need_delivery needs to be called at least once before
returning to guest.

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