<div dir="ltr">Hi, thanks for the quick response and the feedback.<br><br><i>> Afaics, this nic is not supported by DPDK drivers.</i><div><i><br></i></div><div>Indeed there is nothing about "15fb" (the PCI ID of my NIC) in the output of ./usertools/dpdk-pmdinfo.py build/app/dpdk-testpmd , so I guess it is not supported.<i><br></i><br><div>On the other hand, I do see that the<b> I219</b> family of my NIC (I219-LM) is present in the list <a href="https://core.dpdk.org/supported/nics/intel/" target="_blank">https://core.dpdk.org/supported/nics/intel/</a> under e1000e category.</div><div><br></div><div>Is this a contradiction or am I missing something?</div><div><br></div></div><div>Regards</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 8, 2023 at 9:11 AM David Marchand <<a href="mailto:david.marchand@redhat.com" target="_blank">david.marchand@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
On Fri, Sep 8, 2023 at 8:42 AM Antón Rey Villaverde<br>
<<a href="mailto:anton.rey@cactussoft.biz" target="_blank">anton.rey@cactussoft.biz</a>> wrote:<br>
><br>
> Hi,<br>
> I have a problem while trying to manage my physical Ethernet interface from DPDK (latest version compiled from source).<br>
> I have a:<br>
> NIC: 0000:00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (13) I219-LM (rev 20)<br>
><br>
> which belongs to the list of supported NICs in DPDK.<br>
><br>
> Also, I have bound my NICto vfio-pci, not the kernel:<br>
><br>
> dpdk-23.07$ usertools/dpdk-devbind.py --status<br>
> Network devices using DPDK-compatible driver ============================================ 0000:00:1f.6 'Ethernet Connection (13) I219-LM 15fb' drv=vfio-pci unused=e1000e<br>
><br>
> I also enabled hugepages (2G).<br>
><br>
> when I enter "sudo build/app/dpdk-testpmd -c7 -- -i" I get:<br>
> EAL: Detected CPU lcores: 8<br>
> EAL: Detected NUMA nodes: 1<br>
> EAL: Detected static linkage of DPDK<br>
> EAL: Multi-process socket /var/run/dpdk/rte/mp_socket<br>
> EAL: Selected IOVA mode 'VA'<br>
> EAL: VFIO support initialized<br>
> TELEMETRY: No legacy callbacks, legacy socket not created<br>
> testpmd: No probed ethernet devices<br>
> Interactive-mode selected<br>
> testpmd: create a new mbuf pool <mb_pool_0>: n=163456, size=2176, socket=0<br>
> testpmd: preferred mempool ops selected: ring_mp_mc<br>
> Done<br>
> testpmd><br>
><br>
> When I enter "show port info all" in the testpmd CLI I get nothing (no ports).<br>
><br>
> When I start testpmd with "-a 0000:00:1f.6" (the address of the ethernet NIC I want to manage from DPDK), The same happens (no ports).<br>
<br>
Afaics, this nic is not supported by DPDK drivers.<br>
You will have to find some other nic, or run on another server with<br>
supported nics.<br>
Some details below.<br>
<br>
<br>
For a statically linked DPDK application (which is the default for<br>
testpmd), you can check with dpdk-pmd-info.py which PCI devices are<br>
supported.<br>
Example:<br>
$ ./usertools/dpdk-pmdinfo.py build/app/dpdk-testpmd | grep -i 15fb<br>
<br>
<br>
><br>
> If I try to start testpmd with "-d build/drivers/librte_net_e1000.so" (the shared library of the driver of that device), I get a crash:<br>
><br>
> dpdk-23.07$ sudo build/app/dpdk-testpmd -c7 -a 0000:00:1f.6 -d build/drivers/librte_net_e1000.so -- -i<br>
> EAL: Detected CPU lcores: 8<br>
> EAL: Detected NUMA nodes: 1<br>
> EAL: Detected static linkage of DPDK<br>
<br>
Your testpmd binary has been statically linked (as I said above, this<br>
is the default) and you can see the log message confirming it.<br>
<br>
<br>
> EAL: UIO_RESOURCE_LIST tailq is already registered PANIC in tailqinitfn_rte_uio_tailq(): Cannot initialize tailq: UIO_RESOURCE_LIST<br>
> 0: build/app/dpdk-testpmd (rte_dump_stack+0x32) [55be1839afe2]<br>
> 1: build/app/dpdk-testpmd (__rte_panic+0xf1) [55be18369e68]<br>
> 2: /home/anton/tdr/dpdk-23.07/build/drivers/librte_bus_pci.so.23 (7f52153f6000+0x5d86) [7f52153fbd86]<br>
> 3: /lib64/ld-linux-x86-64.so.2 (7f5215f90000+0x11b9a) [7f5215fa1b9a]<br>
> 4: /lib64/ld-linux-x86-64.so.2 (7f5215f90000+0x11ca1) [7f5215fa1ca1]<br>
> 5: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_exception+0xe5) [7f5215970985]<br>
> 6: /lib64/ld-linux-x86-64.so.2 (7f5215f90000+0x160cf) [7f5215fa60cf]<br>
> 7: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_exception+0x88) [7f5215970928]<br>
> 8: /lib64/ld-linux-x86-64.so.2 (7f5215f90000+0x1560a) [7f5215fa560a]<br>
> 9: /lib/x86_64-linux-gnu/libdl.so.2 (7f5215e15000+0x134c) [7f5215e1634c]<br>
> 10: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_exception+0x88) [7f5215970928]<br>
> 11: /lib/x86_64-linux-gnu/libc.so.6 (_dl_catch_error+0x33) [7f52159709f3]<br>
> 12: /lib/x86_64-linux-gnu/libdl.so.2 (7f5215e15000+0x1b59) [7f5215e16b59]<br>
> 13: /lib/x86_64-linux-gnu/libdl.so.2 (dlopen+0x4a) [7f5215e163da]<br>
> 14: build/app/dpdk-testpmd (55be17b79000+0x8013ee) [55be1837a3ee]<br>
> 15: build/app/dpdk-testpmd (eal_plugins_init+0x14f) [55be1837a6d8]<br>
> 16: build/app/dpdk-testpmd (rte_eal_init+0x1af) [55be1839ec21]<br>
> 17: build/app/dpdk-testpmd (main+0xde) [55be17da108b]<br>
> 18: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf3) [7f5215834083]<br>
> 19: build/app/dpdk-testpmd (_start+0x2e) [55be17cef1fe]<br>
> Aborted<br>
<br>
This is not a crash, EAL willingly aborts because initialising UIO<br>
shared tailq has been requested twice and this is not something<br>
supported.<br>
This happened as you requested to load a driver that is embedded in<br>
the testpmd binary and has already been initialised.<br>
<br>
<br>
-- <br>
David Marchand<br>
<br>
</blockquote></div>