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

Re: [Xen-devel] [PATCH] x86/hvm: implement save/restore for posted interrupts



> From: Olaf Hering [mailto:olaf@xxxxxxxxx]
> Sent: Wednesday, July 16, 2014 7:29 AM
> 
> On Wed, Jul 09, Tian, Kevin wrote:
> 
> > > From: Zhang, Yang Z
> > > > +++ b/xen/arch/x86/hvm/vlapic.c
> > > > @@ -1179,6 +1179,8 @@ static int lapic_save_regs(struct domain *d,
> > > > hvm_domain_context_t *h)
> > > >
> > > >      for_each_vcpu ( d, v )
> > > >      {
> > > > +        if ( hvm_funcs.sync_pir_to_irr )
> > > > +            hvm_funcs.sync_pir_to_irr(v);
> > > >          s = vcpu_vlapic(v);
> > > >          if ( (rc = hvm_save_entry(LAPIC_REGS, v->vcpu_id, h,
> s->regs)) !=
> > > 0 )
> > > >              break;
> > > > @@ -1230,6 +1232,8 @@ static int lapic_load_regs(struct domain *d,
> > > > hvm_domain_context_t *h)
> > > >      if ( hvm_load_entry(LAPIC_REGS, h, s->regs) != 0 )
> > > >          return -EINVAL;
> > > >
> > > > +    if ( hvm_funcs.sync_irr_to_pir )
> > > > +        hvm_funcs.sync_irr_to_pir(v);
> > > This is redundant. Interrupt pending in irr will be injected to guest 
> > > correctly,
> so
> > > there is no need to sync it to pir.
> > agree. pending irr has to be injected somewhere after restore, and at that
> point
> > irr->pir has already been covered. otherwise it'd be a more general issue.
> > could you try whether only adding sync_pir_to_irr is enough?
> 
> It continues to fail if I change just lapic_save_regs.
> 

could you figure out the reason? irr->pir propagation should happen 
automatically
when injecting a pending irr, which is supposed to be triggered in the restore 
path.
Otherwise I don't understand how it's handled even w/o pir concept...

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