* Using IOAT PMD
@ 2021-12-16 16:04 Lance Richardson
2021-12-16 16:20 ` Bruce Richardson
0 siblings, 1 reply; 5+ messages in thread
From: Lance Richardson @ 2021-12-16 16:04 UTC (permalink / raw)
To: dev, Bruce Richardson
Hi Bruce,
I've been looking into using the IOAT PMD, initially with dma_autotest
and the dpdk-dma example application. These seem to work fine on
SKX with the current main branch, but when I try the same procedure
on ICX (binding all 8 devices to vfio-pci in both cases), I get the following
output for each device when probed. Is something different needed when
using IOAT on ICX vs. SKX?
Thanks,
Lance
EAL: Probe PCI driver: dmadev_ioat (8086:b00) device: 0000:80:01.0 (socket 2)
IOAT: ioat_dmadev_probe(): Init 0000:80:01.0 on NUMA node 2
IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel count == 255
IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel appears locked
IOAT: ioat_dmadev_create(): ioat_dmadev_create: cannot reset device.
CHANCMD=0xff, CHANSTS=0xffffffffffffffff, CHANERR=0xffffffff
EAL: Releasing PCI mapped resource for 0000:80:01.0
EAL: Calling pci_unmap_resource for 0000:80:01.0 at 0x4102430000
EAL: Requested device 0000:80:01.0 cannot be used
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using IOAT PMD
2021-12-16 16:04 Using IOAT PMD Lance Richardson
@ 2021-12-16 16:20 ` Bruce Richardson
2021-12-16 16:34 ` Lance Richardson
0 siblings, 1 reply; 5+ messages in thread
From: Bruce Richardson @ 2021-12-16 16:20 UTC (permalink / raw)
To: Lance Richardson; +Cc: dev, conor.walsh, kevin.laatz
On Thu, Dec 16, 2021 at 11:04:54AM -0500, Lance Richardson wrote:
> Hi Bruce,
>
> I've been looking into using the IOAT PMD, initially with dma_autotest
> and the dpdk-dma example application. These seem to work fine on
> SKX with the current main branch, but when I try the same procedure
> on ICX (binding all 8 devices to vfio-pci in both cases), I get the following
> output for each device when probed. Is something different needed when
> using IOAT on ICX vs. SKX?
>
> Thanks,
> Lance
>
> EAL: Probe PCI driver: dmadev_ioat (8086:b00) device: 0000:80:01.0 (socket 2)
> IOAT: ioat_dmadev_probe(): Init 0000:80:01.0 on NUMA node 2
> IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel count == 255
>
> IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel appears locked
>
> IOAT: ioat_dmadev_create(): ioat_dmadev_create: cannot reset device.
> CHANCMD=0xff, CHANSTS=0xffffffffffffffff, CHANERR=0xffffffff
>
> EAL: Releasing PCI mapped resource for 0000:80:01.0
> EAL: Calling pci_unmap_resource for 0000:80:01.0 at 0x4102430000
> EAL: Requested device 0000:80:01.0 cannot be used
That is strange, the same PMD should work ok on both platforms. This is all
on latest branch, right? Let me attempt to reproduce and get back to you.
/Bruce
PS: Is this a 4-socket system you are running on, since I see "socket 2"
being described as the socket number for device 80:01.0?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using IOAT PMD
2021-12-16 16:20 ` Bruce Richardson
@ 2021-12-16 16:34 ` Lance Richardson
2021-12-16 17:33 ` Bruce Richardson
0 siblings, 1 reply; 5+ messages in thread
From: Lance Richardson @ 2021-12-16 16:34 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, conor.walsh, kevin.laatz
On Thu, Dec 16, 2021 at 11:20 AM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Thu, Dec 16, 2021 at 11:04:54AM -0500, Lance Richardson wrote:
> > Hi Bruce,
> >
> > I've been looking into using the IOAT PMD, initially with dma_autotest
> > and the dpdk-dma example application. These seem to work fine on
> > SKX with the current main branch, but when I try the same procedure
> > on ICX (binding all 8 devices to vfio-pci in both cases), I get the following
> > output for each device when probed. Is something different needed when
> > using IOAT on ICX vs. SKX?
> >
> > Thanks,
> > Lance
> >
> > EAL: Probe PCI driver: dmadev_ioat (8086:b00) device: 0000:80:01.0 (socket 2)
> > IOAT: ioat_dmadev_probe(): Init 0000:80:01.0 on NUMA node 2
> > IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel count == 255
> >
> > IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel appears locked
> >
> > IOAT: ioat_dmadev_create(): ioat_dmadev_create: cannot reset device.
> > CHANCMD=0xff, CHANSTS=0xffffffffffffffff, CHANERR=0xffffffff
> >
> > EAL: Releasing PCI mapped resource for 0000:80:01.0
> > EAL: Calling pci_unmap_resource for 0000:80:01.0 at 0x4102430000
> > EAL: Requested device 0000:80:01.0 cannot be used
>
> That is strange, the same PMD should work ok on both platforms. This is all
> on latest branch, right? Let me attempt to reproduce and get back to you.
Hi Bruce,
That's correct, I'm using the current tip of the main branch, which
seems to be identical to 21.11.0.
>
> /Bruce
>
> PS: Is this a 4-socket system you are running on, since I see "socket 2"
> being described as the socket number for device 80:01.0?
>
It is a two-socket system with sub-NUMA enabled, so it appears as four
NUMA nodes. I'm only binding the devices on the second socket.
Thanks,
Lance
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using IOAT PMD
2021-12-16 16:34 ` Lance Richardson
@ 2021-12-16 17:33 ` Bruce Richardson
2021-12-16 19:08 ` Lance Richardson
0 siblings, 1 reply; 5+ messages in thread
From: Bruce Richardson @ 2021-12-16 17:33 UTC (permalink / raw)
To: Lance Richardson; +Cc: dev, conor.walsh, kevin.laatz
On Thu, Dec 16, 2021 at 11:34:25AM -0500, Lance Richardson wrote:
> On Thu, Dec 16, 2021 at 11:20 AM Bruce Richardson
> <bruce.richardson@intel.com> wrote:
> >
> > On Thu, Dec 16, 2021 at 11:04:54AM -0500, Lance Richardson wrote:
> > > Hi Bruce,
> > >
> > > I've been looking into using the IOAT PMD, initially with dma_autotest
> > > and the dpdk-dma example application. These seem to work fine on
> > > SKX with the current main branch, but when I try the same procedure
> > > on ICX (binding all 8 devices to vfio-pci in both cases), I get the following
> > > output for each device when probed. Is something different needed when
> > > using IOAT on ICX vs. SKX?
> > >
> > > Thanks,
> > > Lance
> > >
> > > EAL: Probe PCI driver: dmadev_ioat (8086:b00) device: 0000:80:01.0 (socket 2)
> > > IOAT: ioat_dmadev_probe(): Init 0000:80:01.0 on NUMA node 2
> > > IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel count == 255
> > >
> > > IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel appears locked
> > >
> > > IOAT: ioat_dmadev_create(): ioat_dmadev_create: cannot reset device.
> > > CHANCMD=0xff, CHANSTS=0xffffffffffffffff, CHANERR=0xffffffff
> > >
> > > EAL: Releasing PCI mapped resource for 0000:80:01.0
> > > EAL: Calling pci_unmap_resource for 0000:80:01.0 at 0x4102430000
> > > EAL: Requested device 0000:80:01.0 cannot be used
> >
> > That is strange, the same PMD should work ok on both platforms. This is all
> > on latest branch, right? Let me attempt to reproduce and get back to you.
>
> Hi Bruce,
>
> That's correct, I'm using the current tip of the main branch, which
> seems to be identical to 21.11.0.
> >
> > /Bruce
> >
> > PS: Is this a 4-socket system you are running on, since I see "socket 2"
> > being described as the socket number for device 80:01.0?
> >
> It is a two-socket system with sub-NUMA enabled, so it appears as four
> NUMA nodes. I'm only binding the devices on the second socket.
>
Ok, [not that that should affect anything to do with ioat, AFAIK]
Tried quickly reproducing the issue on some of our systems and failed to do
so. Does this error appear consistently, especially after a reboot?
Thanks,
/Bruce
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Using IOAT PMD
2021-12-16 17:33 ` Bruce Richardson
@ 2021-12-16 19:08 ` Lance Richardson
0 siblings, 0 replies; 5+ messages in thread
From: Lance Richardson @ 2021-12-16 19:08 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, conor.walsh, kevin.laatz
On Thu, Dec 16, 2021 at 12:33 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
>
> On Thu, Dec 16, 2021 at 11:34:25AM -0500, Lance Richardson wrote:
> > On Thu, Dec 16, 2021 at 11:20 AM Bruce Richardson
> > <bruce.richardson@intel.com> wrote:
> > >
> > > On Thu, Dec 16, 2021 at 11:04:54AM -0500, Lance Richardson wrote:
> > > > Hi Bruce,
> > > >
> > > > I've been looking into using the IOAT PMD, initially with dma_autotest
> > > > and the dpdk-dma example application. These seem to work fine on
> > > > SKX with the current main branch, but when I try the same procedure
> > > > on ICX (binding all 8 devices to vfio-pci in both cases), I get the following
> > > > output for each device when probed. Is something different needed when
> > > > using IOAT on ICX vs. SKX?
> > > >
> > > > Thanks,
> > > > Lance
> > > >
> > > > EAL: Probe PCI driver: dmadev_ioat (8086:b00) device: 0000:80:01.0 (socket 2)
> > > > IOAT: ioat_dmadev_probe(): Init 0000:80:01.0 on NUMA node 2
> > > > IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel count == 255
> > > >
> > > > IOAT: ioat_dmadev_create(): ioat_dmadev_create: Channel appears locked
> > > >
> > > > IOAT: ioat_dmadev_create(): ioat_dmadev_create: cannot reset device.
> > > > CHANCMD=0xff, CHANSTS=0xffffffffffffffff, CHANERR=0xffffffff
> > > >
> > > > EAL: Releasing PCI mapped resource for 0000:80:01.0
> > > > EAL: Calling pci_unmap_resource for 0000:80:01.0 at 0x4102430000
> > > > EAL: Requested device 0000:80:01.0 cannot be used
> > >
> > > That is strange, the same PMD should work ok on both platforms. This is all
> > > on latest branch, right? Let me attempt to reproduce and get back to you.
> >
> > Hi Bruce,
> >
> > That's correct, I'm using the current tip of the main branch, which
> > seems to be identical to 21.11.0.
> > >
> > > /Bruce
> > >
> > > PS: Is this a 4-socket system you are running on, since I see "socket 2"
> > > being described as the socket number for device 80:01.0?
> > >
> > It is a two-socket system with sub-NUMA enabled, so it appears as four
> > NUMA nodes. I'm only binding the devices on the second socket.
> >
>
> Ok, [not that that should affect anything to do with ioat, AFAIK]
>
> Tried quickly reproducing the issue on some of our systems and failed to do
> so. Does this error appear consistently, especially after a reboot?
>
> Thanks,
> /Bruce
It fails consistently after every warm reboot or power cycle. The kernel ioatdma
driver always loads successfully at boot time for both sockets, but it also
fails once I have bound the devices to vfio-pci and attempted to run
examples/dpdk-dma. The kernel log messages are similar, both seem to read
all-ones values.
However, I have found that it works when binding to igb_uio instead of vfio, so
maybe that's some kind of clue (vfio does work for the NIC ports).
I'll continue to experiment with igb_uio, but I'm happy to gather any debug info
for the vfio case if that would help.
Thanks,
Lance
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-12-16 19:09 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-16 16:04 Using IOAT PMD Lance Richardson
2021-12-16 16:20 ` Bruce Richardson
2021-12-16 16:34 ` Lance Richardson
2021-12-16 17:33 ` Bruce Richardson
2021-12-16 19:08 ` Lance Richardson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).