DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] DPDK support for 82579
@ 2017-10-31 12:14 James Bensley
  2017-10-31 21:50 ` Stephen Hemminger
  0 siblings, 1 reply; 4+ messages in thread
From: James Bensley @ 2017-10-31 12:14 UTC (permalink / raw)
  To: users

Hi All,

I have see the list of support NICs here: http://dpdk.org/doc/nics

Although it doesn’t say which NICs are confirmed as NOT working. I
have looking into DPDK support (for Pktgen and Moongen) on commodity
devices (e.g. laptops and desktops). I have DPDK + Pktgen compiled and
working on my home desktop:

bensley@htpc-ubuntu:/opt/dpdk/dpdk-17.08/usertools$ lspci | grep Eth
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection
I217-V (rev 05)

However on my laptop it seems the NIC is “unsupported”:

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/usertools$ lspci | grep Eth
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network
Connection (rev 04)

When I say unsupported I mean that Intel 82579 chips aren’t on the
list of supported NICs (where as I217 is explicitly listed) so I have
two questions;

1. Is there a list of confirmed unsupported NICs?

2. It maybe that this NIC will work but it is untested (unless someone
can confirm otherwise) so is there a way I can force DPDK + Pktgen to
try and use this 82579 NIC?

Please see this output of me trying to bind the laptop NIC to DPDK,
dpdk-devbind.py doesn't explicitly reject the NIC (by which I mean no
error message and the return code from `sudo ./dpdk-devbind.py -b
e1000e 00:19.0` is 0) but it simply doesn’t work, the NIC is “given”
back to the Kernel:
https://null.53bits.co.uk/uploads/linux/applications/dpdk/Ubuntu-Laptop-DPDK-NIC-Bind.txt

In the `lshw` output it can be seen that the NIC uses an e1000e
driver, do I need to compile the e1000e driver bundled with the DPDK
source and replace my existing/native driver with that, if so how can
I compile it?

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ make
Makefile:32: /mk/rte.vars.mk: No such file or directory
Makefile:103: /mk/rte.lib.mk: No such file or directory
make: *** No rule to make target '/mk/rte.lib.mk'. Stop.

Cheers,
James.

P.S. I’m using DPDK 17.08 and Pktgen 3.4.2, I did a vanilla compile,
using these exact commands:
https://null.53bits.co.uk/index.php?page=ptkgen-install

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] DPDK support for 82579
  2017-10-31 12:14 [dpdk-users] DPDK support for 82579 James Bensley
@ 2017-10-31 21:50 ` Stephen Hemminger
  2017-11-01 21:11   ` James Bensley
  0 siblings, 1 reply; 4+ messages in thread
From: Stephen Hemminger @ 2017-10-31 21:50 UTC (permalink / raw)
  To: James Bensley; +Cc: users

On Tue, 31 Oct 2017 12:14:16 +0000
James Bensley <jwbensley@gmail.com> wrote:

> Hi All,
> 
> I have see the list of support NICs here: http://dpdk.org/doc/nics
> 
> Although it doesn’t say which NICs are confirmed as NOT working. I
> have looking into DPDK support (for Pktgen and Moongen) on commodity
> devices (e.g. laptops and desktops). I have DPDK + Pktgen compiled and
> working on my home desktop:
> 
> bensley@htpc-ubuntu:/opt/dpdk/dpdk-17.08/usertools$ lspci | grep Eth
> 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection
> I217-V (rev 05)
> 
> However on my laptop it seems the NIC is “unsupported”:
> 
> bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/usertools$ lspci | grep Eth
> 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network
> Connection (rev 04)
> 
> When I say unsupported I mean that Intel 82579 chips aren’t on the
> list of supported NICs (where as I217 is explicitly listed) so I have
> two questions;
> 
> 1. Is there a list of confirmed unsupported NICs?
> 
> 2. It maybe that this NIC will work but it is untested (unless someone
> can confirm otherwise) so is there a way I can force DPDK + Pktgen to
> try and use this 82579 NIC?
> 
> Please see this output of me trying to bind the laptop NIC to DPDK,
> dpdk-devbind.py doesn't explicitly reject the NIC (by which I mean no
> error message and the return code from `sudo ./dpdk-devbind.py -b
> e1000e 00:19.0` is 0) but it simply doesn’t work, the NIC is “given”
> back to the Kernel:
> https://null.53bits.co.uk/uploads/linux/applications/dpdk/Ubuntu-Laptop-DPDK-NIC-Bind.txt
> 
> In the `lshw` output it can be seen that the NIC uses an e1000e
> driver, do I need to compile the e1000e driver bundled with the DPDK
> source and replace my existing/native driver with that, if so how can
> I compile it?
> 
> bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ make
> Makefile:32: /mk/rte.vars.mk: No such file or directory
> Makefile:103: /mk/rte.lib.mk: No such file or directory
> make: *** No rule to make target '/mk/rte.lib.mk'. Stop.
> 
> Cheers,
> James.
> 
> P.S. I’m using DPDK 17.08 and Pktgen 3.4.2, I did a vanilla compile,
> using these exact commands:
> https://null.53bits.co.uk/index.php?page=ptkgen-install

First off, I assume the device works for normal Linux networking.
Then check the PCI-id value for the device and see if it is present in drivers/net/e1000
in DPDK. If not, then it maybe as simple as adding the necessary ID value to the
table. Also, check current git. 

It maybe more complex where some PHY code has to be backported from
BSD into DPDK. Unfortunately, the device support in DPDK lags behind Linux
and BSD. There are many variants and even Intel doesn't have resources to
keep DPDK up to all the current PCI id values.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] DPDK support for 82579
  2017-10-31 21:50 ` Stephen Hemminger
@ 2017-11-01 21:11   ` James Bensley
  2017-11-02  7:31     ` Stephen Hemminger
  0 siblings, 1 reply; 4+ messages in thread
From: James Bensley @ 2017-11-01 21:11 UTC (permalink / raw)
  To: users, Stephen Hemminger

On 31 October 2017 at 21:50, Stephen Hemminger
<stephen@networkplumber.org> wrote:
> First off, I assume the device works for normal Linux networking.
> Then check the PCI-id value for the device and see if it is present in drivers/net/e1000
> in DPDK. If not, then it maybe as simple as adding the necessary ID value to the
> table. Also, check current git.
>
> It maybe more complex where some PHY code has to be backported from
> BSD into DPDK. Unfortunately, the device support in DPDK lags behind Linux
> and BSD. There are many variants and even Intel doesn't have resources to
> keep DPDK up to all the current PCI id values.

Hi Stephen,

That has worked! Yes this is a working NIC built into a laptop.

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ lspci
-nn | grep Eth
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit
Network Connection [8086:1502] (rev 04)

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ grep -r 1502 *
base/e1000_hw.h:#define E1000_DEV_ID_PCH2_LV_LM         0x1502

^ This PCI-id is alread "known" but not mapped to the driver so I just
added the two lines to em_ethdev.c below, recompiled DPDK and Pktgen
and it works...

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ grep -r
E1000_DEV_ID_PCH2_LV_LM *
base/e1000_hw.h:#define E1000_DEV_ID_PCH2_LV_LM         0x1502
base/e1000_api.c:   case E1000_DEV_ID_PCH2_LV_LM:
em_ethdev.c:        { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID,
E1000_DEV_ID_PCH2_LV_LM) },
em_ethdev.c:        case E1000_DEV_ID_PCH2_LV_LM:


Thanks very much for your help!

Cheers,
James.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] DPDK support for 82579
  2017-11-01 21:11   ` James Bensley
@ 2017-11-02  7:31     ` Stephen Hemminger
  0 siblings, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2017-11-02  7:31 UTC (permalink / raw)
  To: James Bensley; +Cc: users

On Nov 1, 2017 22:11, "James Bensley" <jwbensley@gmail.com> wrote:

On 31 October 2017 at 21:50, Stephen Hemminger
<stephen@networkplumber.org> wrote:
> First off, I assume the device works for normal Linux networking.
> Then check the PCI-id value for the device and see if it is present in
drivers/net/e1000
> in DPDK. If not, then it maybe as simple as adding the necessary ID value
to the
> table. Also, check current git.
>
> It maybe more complex where some PHY code has to be backported from
> BSD into DPDK. Unfortunately, the device support in DPDK lags behind Linux
> and BSD. There are many variants and even Intel doesn't have resources to
> keep DPDK up to all the current PCI id values.

Hi Stephen,

That has worked! Yes this is a working NIC built into a laptop.

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ lspci
-nn | grep Eth
00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit
Network Connection [8086:1502] (rev 04)

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ grep -r 1502 *
base/e1000_hw.h:#define E1000_DEV_ID_PCH2_LV_LM         0x1502

^ This PCI-id is alread "known" but not mapped to the driver so I just
added the two lines to em_ethdev.c below, recompiled DPDK and Pktgen
and it works...

bensley@ubuntu-laptop:/opt/dpdk/dpdk-17.08/drivers/net/e1000$ grep -r
E1000_DEV_ID_PCH2_LV_LM *
base/e1000_hw.h:#define E1000_DEV_ID_PCH2_LV_LM         0x1502
base/e1000_api.c:   case E1000_DEV_ID_PCH2_LV_LM:
em_ethdev.c:        { RTE_PCI_DEVICE(E1000_INTEL_VENDOR_ID,
E1000_DEV_ID_PCH2_LV_LM) },
em_ethdev.c:        case E1000_DEV_ID_PCH2_LV_LM:


Thanks very much for your help!

Cheers,
James.


It would be good if you could send a full patch to dev@dpdk.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-11-02  7:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-31 12:14 [dpdk-users] DPDK support for 82579 James Bensley
2017-10-31 21:50 ` Stephen Hemminger
2017-11-01 21:11   ` James Bensley
2017-11-02  7:31     ` Stephen Hemminger

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).