On Thu, 13 Dec 2018 16:48:55 +0000 Gareth Bradshaw <[email protected]> wrote:
> Hi Stephen, > > I wanted to check in to see how the fix is going. I've repro'd the patches > yourself and Mohammed Gamal were discussing on the development mailing list > and see the same results, i.e. multi-channel works the first time testpmd is > launched but subsequent launches result in an error setting up the > sub-channels. I'm on the development mailing list so if you'd like to add me > to the thread I'll be happy to test the patches. > > Cheers, > Gareth > > > -----Original Message----- > From: Gareth Bradshaw > Sent: Wednesday 5 December 2018 17:10 > To: Stephen Hemminger <[email protected]> > Cc: [email protected] > Subject: RE: [dpdk-users] Hyper-V multi-queue not working on Kernel v4.20 > > Thanks for coming back to me Stephen. I found the thread you mentioned and > will keep an eye on it. I'm happy to help out with testing the change. > > Gareth > > > -----Original Message----- > From: Stephen Hemminger <[email protected]> > Sent: Wednesday 5 December 2018 16:04 > To: Gareth Bradshaw <[email protected]> > Cc: [email protected] > Subject: Re: [dpdk-users] Hyper-V multi-queue not working on Kernel v4.20 > > On Wed, 5 Dec 2018 11:05:58 +0000 > Gareth Bradshaw <[email protected]> wrote: > > > Hi, > > > > I'm developing a DPDK application for Hyper-V and would like to use Kernel > > v4.20 as it fixes a crash in previous kernels (per this pull > > request<https://github.com/torvalds/linux/commit/cdfa835c6e5e87d145f9f632b58843de97509f2b>) > > but multi-queue support seems to have broken in that kernel. It works in > > kernels 4.17, 4.18 and 4.19. > > > > Using testpmd with parameters "--forward-mode=txonly --nb-cores=3 --txq=3 > > --rxq=3" I get the following error "vmbus_uio_get_subchan(): invalid > > subchannel id 0". > > > > Tracing the code a bit I find that it's trying to read > > /sys/bus/devices/<devid>/channels/21/subchannel_id but when I try to cat > > the same file I get the error "Invalid argument". I've compared to > > previous kernel versions and see the following differences: > > > > * When the VM boots, the device is bound to the kernel driver and there > > are 4 channels on both kernel versions. It's a 4 core VM. > > * When I bind the device to uio_hv_generic, kernel v.19.5 (and > > previous) has a single channel and it has a valid subchannel_id. On kernel > > 4.20 the 4 channel folders remain but they are all invalid. > > * When I start testpmd with 3 queues, on kernel v4.19.5 two additional > > channels are created, they're valid and testpmd works as expected. On > > kernel 4.20 the 4 invalid channels remain invalid and testpmd gives the > > error I mentioned. > > > > Any help getting this working would be greatly appreciated. > > > > Thanks > > Gareth > > > > > > > > > > > > > > There is a race that shows up in sub channel initialization, it is being > worked on the development mailing list. No resolution yet. There were two kernel patches: http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2018-December/129607.html http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2018-December/129656.html After that it works fine.
