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

Re: [Xen-devel] Re: [GIT PATCH v2 0/14] xen: events: cleanups + ween off nr_irqs



On Fri, 2011-03-11 at 14:24 +0000, Ian Campbell wrote:
> On Fri, 2011-03-11 at 13:28 +0000, Ian Campbell wrote:
> > On Fri, 2011-03-11 at 11:24 +0000, Ian Campbell wrote:
> > > On Fri, 2011-03-11 at 09:12 +0000, Ian Campbell wrote:
> > > > On Thu, 2011-03-10 at 22:57 +0000, Konrad Rzeszutek Wilk wrote:
> > > > > On Thu, Mar 10, 2011 at 04:07:59PM +0000, Ian Campbell wrote:
> > > > > > Changes since last time:
> > > > > >       * correct return value of xen_irq_from_pirq
> > > > > >       * WARN if a pirq cannot be allocated for a legacy IRQ
> > > > > >       * Updated checking comment of "xen: events: do not workaround
> > > > > >         too-small nr_irqs"
> > > > > > 
> > > > > > The following series makes a few cleanups to the Xen IRQ 
> > > > > > infrastructure.
> > > > > > The most important thing is that it removes the need to know about
> > > > > > nr_irqs and in particular the reliance on nr_irqs being static.
> > > > > > 
> > > > > > Apart from being generally a good thing this is needed because in 
> > > > > > 2.6.39
> > > > > > nr_irqs will be able to grow dynamically, specifically e7bcecb7b1d2
> > > > > > "genirq: Make nr_irqs runtime expandable" from tip/core/irq is 
> > > > > > targeted
> > > > > > at 2.6.39.
> > > > > > 
> > > > > > Dynamically growing nr_irqs also allows us to remove the workaround
> > > > > > which eats into GSI space if a dynamic IRQ cannot be allocated.
> > > > > > 
> > > > > > There is no ideal sequencing of this series vs e7bcecb7b1d2 (most 
> > > > > > should
> > > > > > have gone in before, but the penultimate patch really needed to be
> > > > > > simultaneous) so I haven't bothered to try and pull anything from 
> > > > > > tip
> > > > > > into this branch -- it should all be resolved during the merge 
> > > > > > window
> > > > > > and bisection won't be too broken since the "eat into GSI space"
> > > > > > workaround only appears to be needed on a small number of older
> > > > > > platforms (qemu being the main exception).
> > > > > 
> > > > > <nods>
> > > > > > 
> > > > > > I have tested:
> > > > > >       * Domain 0 on real h/w and under qemu
> > > > > >       * PV guest, including migration and passthrough of both VF 
> > > > > > and PF.
> > > > > >       * PVHVM guest, including migration and passthrough of both VF 
> > > > > > and
> > > > > >         PF.
> > > > > 
> > > > > I am having difficulties with passthrough of an USB device. Somehow 
> > > > > the
> > > > > irq count is not going up at all (both in dom0 and domU) and it looks 
> > > > > to
> > > > > be doing just simple polling. I've rebased the xen-pciback to be on 
> > > > > top
> > > > > of your changes and apply cleanly. The whole lot is now in #master
> > > > > 
> > > > > MSI and MSI-X devices work just fine in both Dom0 and DomU case so
> > > > > it is something special with the legacy IRQs. Probably forgot 
> > > > > something
> > > > > simple...
> > > > 
> > > > Thanks, I'll take a look. Did you mean "legacy IRQ" as in <16 or as in
> > > > not-MSI(-X)?
> > > 
> > > Works for me in a PV guest, at least under the second interpretation (I
> > > don't have any useful devices IRQ < 16). This is with your pciback 0.5.
> > > 
> > > I see something like what you describe under HVM, although pciback is
> > > not used in that case. xc_physdev_map_pirq is used but not with
> > > the /sys/.../bdf node AFAICT.
> > > 
> > > More digging required I guess...
> > 
> > If I just pass through the EHCI device it doesn't work. However if I
> > also pass-through the associated UHCI controller then I do see the
> > usb-storage device, interrupts and all. The EHCI controller still
> > doesn't work though. Note that with a PV guest passing-through the EHCI
> > controller by itself does work.
> > 
> > The issue I'm seeing seems to have more to do with accessing the memory
> > mapped BAR than IRQs though:
> 
> I seem to see this with 2.6.32 dom0 as well. This IRQ series of patches
> doesn't appear to make a difference when running 2.6.38-rcX+.
> 
> Unfortunately I think the error must be elsewhere :-(

BTW, this is with:

$ git log --pretty=oneline v2.6.38-rc8..HEAD --committer=Ian.Campbell |
grep Merge
00fbbdc4df0cf3419bde8bb0f88d8c8dd26945cb Merge branch 'devel/xen-blkback-v2' of 
git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
41e9c499ac8a4582037d250d5c524265426b5077 Merge branch 'devel/xen-pciback-0.5' 
of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
aca829e02d62e56498c12410acdd04fd7604eaab Merge branch 
'for-2.6.39/irq.phase.two' of 
git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
2365df51ebb8092b4ce07dba55fe1f2bbb3fbdc5 Merge branch 
'upstream/dom0/backend/netback' of git://xenbits.xen.org/people/ianc/linux-2.6
3d3e02a231154e7e564a0620dcfd88ceedf8c64a Merge branch '2.6.38-rc6-pvhvm' of 
git://xenbits.xen.org/people/sstabellini/linux-pvhvm
c6d63750ec3d00da603ea42c9dd1e3454ec12d17 Merge branches 'for-2.6.39/e820', 
'for-2.6.39/irq', 'for-2.6.39/cleanup' and 'for-2.6.39/drivers' of 
git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen

I also tested a variant where I replaced the devel/xen-pciback-0.5 and
for-2.6.39/irq.phase.two merges with xen-pciback-0.4.driver (rebased
onto 71eef7d1e3d9d instead of c5ae07bb307b658) and dropped blkback. No
difference.

Ian.


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