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

Re: [Xen-devel] [PATCH] Xen 4.1.2 HVM guest realtek nic problems (eth0 8139cp transmit queue timed out)



On Fri, Nov 11, 2011 at 09:02:50AM +0200, Pasi Kärkkäinen wrote:
> > > > >> 
> > > > >> So the Ubuntu backport from xen-unstable to Xen 4.1.1 is here:
> > > > >> https://launchpadlibrarian.net/81948978/xen-pirq-resubmit-irq.patch
> > > > >> 
> > > > >> It seems to be shipping in Ubuntu 11.10 xen 4.1.1-2ubuntu4.1 
> > > > >> packages.
> > > > >> 
> > > > >> Does that patch look suitable to be applied to xen-4.1-testing.hg ?
> > > > >> This bug should be fixed for Xen 4.1.3.
> > > > > 
> > > > > Any comments? 
> > > > 
> > > > This looks like a backport of Stefano's xen-unstable c/s 24007. I would 
> > > > like
> > > > him to submit/ack the backport, as it is not a trivial backport of the
> > > > xen-unstable patch.
> > > 
> > > I would rather use the following backport. Compared to the other one it
> > > returns EINVAL in PHYSDEVOP_irq_status_query when the arguments are not
> > > correct.
> > > 
> > 
> > Thanks! Mayoung added this patch in xen-4.1.2-1.1.fc14.src.rpm,
> > and binary rpms are built for Fedora 16 here:
> > http://koji.fedoraproject.org/koji/taskinfo?taskID=3495905
> > 
> > So people should test this patch (or the rpms above) and confirm 
> > that it fixes the emulated realtek/ne2k issues.
> > 
> 
> Konrad confirmed the patch works with Xen 4.1.2 and realtek emulated nics.
> 
> So please commit the patch to xen-4.1-testing.hg.
> 

I also tested Fedora 16 xen-4.1.2-1.2.fc16 rpms,
which includes stefano's bugfix patch, and it seems to fix 
the emulated realtek nic problems.

So please go ahead and commit the fix to xen-4.1-testing.hg.

-- Pasi


> > 
> > > ---
> > > 
> > > diff -r 8c2d76193eaf xen/arch/x86/physdev.c
> > > --- a/xen/arch/x86/physdev.c      Wed Nov 02 15:02:18 2011 +0000
> > > +++ b/xen/arch/x86/physdev.c      Mon Nov 07 11:58:28 2011 +0000
> > > @@ -261,6 +261,7 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
> > >          ret = -EINVAL;
> > >          if ( eoi.irq >= v->domain->nr_pirqs )
> > >              break;
> > > +        spin_lock(&v->domain->event_lock);
> > >          if ( v->domain->arch.pirq_eoi_map )
> > >              evtchn_unmask(v->domain->pirq_to_evtchn[eoi.irq]);
> > >          if ( !is_hvm_domain(v->domain) ||
> > > @@ -268,6 +269,19 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
> > >              ret = pirq_guest_eoi(v->domain, eoi.irq);
> > >          else
> > >              ret = 0;
> > > +        if ( is_hvm_domain(v->domain) &&
> > > +                domain_pirq_to_emuirq(v->domain, eoi.irq) > 0 )
> > > +        {
> > > +            struct hvm_irq *hvm_irq = &v->domain->arch.hvm_domain.irq;
> > > +            int gsi = domain_pirq_to_emuirq(v->domain, eoi.irq);
> > > +
> > > +            /* if this is a level irq and count > 0, send another
> > > +             * notification */ 
> > > +            if ( gsi >= NR_ISAIRQS /* ISA irqs are edge triggered */
> > > +                    && hvm_irq->gsi_assert_count[gsi] )
> > > +                send_guest_pirq(v->domain, eoi.irq);
> > > +        }
> > > +        spin_unlock(&v->domain->event_lock);
> > >          break;
> > >      }
> > >  
> > > @@ -323,9 +337,10 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_H
> > >              break;
> > >          irq_status_query.flags = 0;
> > >          if ( is_hvm_domain(v->domain) &&
> > > -             domain_pirq_to_irq(v->domain, irq) <= 0 )
> > > +                domain_pirq_to_irq(v->domain, irq) <= 0 &&
> > > +                domain_pirq_to_emuirq(v->domain, irq) == IRQ_UNBOUND )
> > >          {
> > > -            ret = copy_to_guest(arg, &irq_status_query, 1) ? -EFAULT : 0;
> > > +            ret = -EINVAL;
> > >              break;
> > >          }
> > >  
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.