On Wed, 19 Nov 2014, Andrii Tseglytskyi wrote:
> Hi Stefano,
> 
> > >      if ( !list_empty(&current->arch.vgic.lr_pending) && lr_all_full() )
> > > -        GICH[GICH_HCR] |= GICH_HCR_UIE;
> > > +        GICH[GICH_HCR] |= GICH_HCR_NPIE;
> > >      else
> > > -        GICH[GICH_HCR] &= ~GICH_HCR_UIE;
> > > +        GICH[GICH_HCR] &= ~GICH_HCR_NPIE;
> > >
> > >  }
> >
> > Yes, exactly
> 
> I tried, hang still occurs with this change

We need to figure out why during the hang you still have all the LRs
busy even if you are getting maintenance interrupts that should cause
them to be cleared.

Could you please call gic_dump_info(current) from maintenance_interrupt,
and post the output during the hang? Remove the other gic_dump_info to
avoid confusion, we want to understand what is the status of the LRs
after clearing them upon receiving a maintenance interrupt at busy times.

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

Reply via email to