All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] virtio-net support on ppc64
@ 2016-05-13 12:50 Olivier Matz
  2016-05-13 12:50 ` [PATCH 1/7] eal: fix typos in ioport API doxygen comments Olivier Matz
                   ` (7 more replies)
  0 siblings, 8 replies; 33+ messages in thread
From: Olivier Matz @ 2016-05-13 12:50 UTC (permalink / raw)
  To: dev; +Cc: david.marchand, chaozhu

This patchset allows virtio-net pmd to run on ppc64 processors.
The main thing that as missing was the support of ioports in EAL.
It also fixes some endianess issues in PCI config accesses in
legacy mode.

This is validated with test-pmd:

=== HOST

mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
echo 128 > /sys/devices/system/node/node0/hugepages/hugepages-16384kB/nr_hugepages 
qemu-system-ppc64le --enable-kvm -m 1G -mem-path "/mnt/huge" -cpu host -smp 3 \
  -serial telnet::58028,server,nowait -serial null \
  -device ne2k_pci,mac=de:ad:de:01:02:03,netdev=user.0,addr=03 \
  -netdev user,id=user.0,hostfwd=tcp::49680-:22 \
  -netdev type=tap,id=vhostnet0,script=no,vhost=on,queues=8 \
  -device virtio-net-pci,netdev=vhostnet0,ioeventfd=on,mq=on,vectors=17 \
  -hda /path/to/ubuntu-14.04-ppc64el.qcow2 \
  -vga none -display none
ip l set tap0 up
ip a a 1.1.1.1/24 dev tap0
# start guest, then:
ping 1.1.1.2

=== GUEST

cd dpdk.org/
make config T=ppc_64-power8-linuxapp-gcc
make
mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-16384kB/nr_hugepages 
modprobe uio_pci_generic
python tools/dpdk_nic_bind.py -b uio_pci_generic 0000:00:00.0
./build/app/testpmd -l 0,1 --log-level 8 -- --total-num-mbufs=16384 -i --port-topology=chained
EAL: Detected 3 lcore(s)
EAL: Probing VFIO support...
EAL: PCI device 0000:00:00.0 on NUMA socket -1
EAL:   probe driver: 1af4:1000 rte_virtio_pmd
Interactive-mode selected
Configuring Port 0 (socket 0)
Port 0: 12:00:54:52:56:34
Checking link statuses...
Port 0 Link Up - speed 10000 Mbps - full-duplex
Done
testpmd> set fwd icmpecho
Set icmpecho packet forwarding mode
testpmd> set verbose 1
Change verbose level from 0 to 1
testpmd> start
icmp_echo_config_setup fwd_cores=1 fwd_ports=1 fwd_streams=1
  core=0:
  stream=0 port=0 rxq=0 txq=0
  icmpecho packet forwarding - CRC stripping disabled - packets/burst=32
  nb forwarding cores=1 - nb forwarding ports=1
  RX queues=1 - RX desc=128 - RX free threshold=0
  RX threshold registers: pthresh=0 hthresh=0 wthresh=0
  TX queues=1 - TX desc=512 - TX free threshold=0
  TX threshold registers: pthresh=0 hthresh=0 wthresh=0
  TX RS bit threshold=0 - TXQ flags=0xf00
testpmd>
Port 0 pkt-len=98 nb-segs=1
  ETH:  src=46:A9:44:17:62:F1 dst=12:00:54:52:56:34 type=0x0800
  IPV4: src=1.1.1.1 dst=1.1.1.2 proto=1 (ICMP)
  ICMP: echo request seq id=1

Port 0 pkt-len=98 nb-segs=1
  ETH:  src=46:A9:44:17:62:F1 dst=12:00:54:52:56:34 type=0x0800
  IPV4: src=1.1.1.1 dst=1.1.1.2 proto=1 (ICMP)
  ICMP: echo request seq id=2




David Marchand (1):
  virtio: fix pci accesses for ppc64 in legacy mode

Olivier Matz (6):
  eal: fix typos in ioport API doxygen comments
  eal/linux: only call iopl on x86
  eal/linux: remove invalid comment
  eal/linux: split function parsing pci resources in sysfs
  eal/linux: mmap ioports on ppc64
  config: enable virtio-net pmd for ppc64

 config/defconfig_ppc_64-power8-linuxapp-gcc |   2 +-
 drivers/net/virtio/virtio_pci.c             |  44 ++++++++++
 lib/librte_eal/common/include/rte_pci.h     |  13 ++-
 lib/librte_eal/linuxapp/eal/eal.c           |   6 +-
 lib/librte_eal/linuxapp/eal/eal_pci.c       |  52 +++++++-----
 lib/librte_eal/linuxapp/eal/eal_pci_init.h  |   6 ++
 lib/librte_eal/linuxapp/eal/eal_pci_uio.c   | 121 ++++++++++++++++++++++------
 7 files changed, 191 insertions(+), 53 deletions(-)

-- 
2.8.0.rc3

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

end of thread, other threads:[~2016-06-15 17:08 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-13 12:50 [PATCH 0/7] virtio-net support on ppc64 Olivier Matz
2016-05-13 12:50 ` [PATCH 1/7] eal: fix typos in ioport API doxygen comments Olivier Matz
2016-05-13 12:50 ` [PATCH 2/7] eal/linux: only call iopl on x86 Olivier Matz
2016-05-13 12:50 ` [PATCH 3/7] eal/linux: remove invalid comment Olivier Matz
2016-05-13 12:50 ` [PATCH 4/7] eal/linux: split function parsing pci resources in sysfs Olivier Matz
2016-05-13 12:50 ` [PATCH 5/7] eal/linux: mmap ioports on ppc64 Olivier Matz
2016-05-13 14:33   ` David Marchand
2016-05-13 16:36     ` Olivier Matz
2016-05-13 12:50 ` [PATCH 6/7] virtio: fix pci accesses for ppc64 in legacy mode Olivier Matz
2016-05-13 14:28   ` David Marchand
2016-05-13 16:34     ` Olivier Matz
2016-05-13 12:50 ` [PATCH 7/7] config: enable virtio-net pmd for ppc64 Olivier Matz
2016-05-17  9:59 ` [PATCH v2 0/7] virtio-net support on ppc64 Olivier Matz
2016-05-17  9:59   ` [PATCH v2 1/7] eal: fix typos in ioport API doxygen comments Olivier Matz
2016-05-17  9:59   ` [PATCH v2 2/7] eal/linux: only call iopl on x86 Olivier Matz
2016-05-17  9:59   ` [PATCH v2 3/7] eal/linux: remove invalid comment Olivier Matz
2016-05-17  9:59   ` [PATCH v2 4/7] eal/linux: split function parsing pci resources in sysfs Olivier Matz
2016-05-17  9:59   ` [PATCH v2 5/7] eal/linux: mmap ioports on ppc64 Olivier Matz
2016-05-17 15:54     ` David Marchand
2016-05-18 11:17       ` Olivier Matz
2016-05-23 13:07       ` Yuanhan Liu
2016-05-23 13:40         ` Olivier Matz
2016-05-24  5:15           ` Yuanhan Liu
2016-05-30  8:45             ` Olivier Matz
2016-06-15 16:13               ` Thomas Monjalon
2016-05-18 16:27     ` [PATCH v3 " Olivier Matz
2016-05-17  9:59   ` [PATCH v2 6/7] virtio: fix pci accesses for ppc64 in legacy mode Olivier Matz
2016-05-19  9:13     ` Chao Zhu
2016-05-20 12:11       ` Olivier Matz
2016-05-20 12:18         ` Olivier Matz
2016-05-24  6:28         ` Chao Zhu
2016-05-17  9:59   ` [PATCH v2 7/7] config: enable virtio-net pmd for ppc64 Olivier Matz
2016-06-15 17:08   ` [PATCH v2 0/7] virtio-net support on ppc64 Thomas Monjalon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.