[mq_bpf] status report #6

Takuya ASADA syuu at dokukino.com
Mon Jul 4 23:11:27 UTC 2011


*Project summary
The project goal is to support multiqueue network interface on BPF,
and provide interfaces for multithreaded packet processing using BPF.
Modern high performance NICs have multiple receive/send queues and RSS
feature, this allows to process packet concurrently on multiple
processors.
Main purpose of the project is to support these hardware and get
benefit of parallelism.

Here's status update from last week:

* bug fixes & test of "queue len, queue affinity ioctls moved to the
device ioctl"
Last week I had a these problems:
- ifconfig shows invalid affinity value on igb(4)
- SOFTRSS doesn't work, fixing
- multi queue bpf is not well tested after the change

I fixed these in this commit
http://p4web.freebsd.org/@@195722?ac=10

Also, tested multiqueue bpf on both HW RSS NIC and SOFTRSS NIC.

This is output of modified version of ifconfig:
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=1001bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,MULTIQUEUE>
       rxqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       txqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       ether 00:1b:21:53:ed:58
       media: Ethernet autoselect
       status: no carrier
igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=1001bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,MULTIQUEUE>
       rxqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       txqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       ether 00:1b:21:53:ed:59
       inet 163.215.189.124 netmask 0xffffffc0 broadcast 163.215.189.127
       media: Ethernet autoselect (1000baseT <full-duplex>)
       status: active
msk0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=2c011b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4,VLAN_HWTSO,LINKSTATE,SOFT_MULTIQUEUE>
       rxqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       txqueue len=1 affinity=[ 0:0 ]
       ether bc:ae:c5:3e:a6:3c
       media: Ethernet autoselect
msk1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=2c011b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4,VLAN_HWTSO,LINKSTATE,SOFT_MULTIQUEUE>
       rxqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       txqueue len=1 affinity=[ 0:0 ]
       ether bc:ae:c5:3e:a5:67
       media: Ethernet autoselect
fwe0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=200008<VLAN_MTU,SOFT_MULTIQUEUE>
       rxqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       txqueue len=1 affinity=[ 0:0 ]
       ether 02:1f:c6:09:e4:75
       ch 1 dma -1
fwip0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
       lladdr 0.1f.c6.0.0.9.e4.75.a.2.ff.fe.0.0.0.0
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
       options=3<RXCSUM,TXCSUM>
       inet 127.0.0.1 netmask 0xff000000
       inet6 ::1 prefixlen 128
       inet6 fe80::1%lo0 prefixlen 64 scopeid 0xf
       nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
vboxnet0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
       options=200000<SOFT_MULTIQUEUE>
       rxqueue len=6 affinity=[ 0:0 1:1 2:2 3:3 4:4 5:5 ]
       txqueue len=1 affinity=[ 0:0 ]
       ether 0a:00:27:00:00:00

Now we have rxqueue/txqueue len & affinity info, and options field
shows MULTIQUEUE and SOFT_MULTIQUEUE flags.


More information about the soc-status mailing list