On Mon, Dec 14, 2015 at 6:30 PM, Santosh Shukla <sshukla at mvista.com> wrote:
> This patch set add basic infrastrucure to run virtio-net-pci pmd driver for > arm64/arm. Tested on ThunderX platfrom. Verified for existing dpdk(s) test > applications like: > - ovs-dpdk-vhost-user: across the VM's, for the use-cases like guest2guest > and > Host2Guest > - testpmd application: Tested for max virtio-net-pci interface currently > supported in kernel i.e. 31 interface. > > Builds successfully for armv7/v8/thunderX and x86_64/i686 platforms. Made > sure > that patch changes donot break for x86_64 case. Done similar tests for > x86_64 > too. > > Patch History: > v2: > - Removed ifdef arm.. clutter from igb_uio / virtio_ethedev files > - Introduced rte_io.h header file in generic/ and arch specifics i.e.. for > armv7 --> rte_io_32.h, for armv8 --> rte_io_64.h. > - Removed RTE_ARCH_X86 ifdef clutter too and added rte_io.h header which > nothing > but wraps sys/io.h for x86_64 and i686 > - Moved all the RTE_ARCH_ARM/64 dependancy for igb_uio case to separate > header > file named igbuio_ioport_misc.h. Now igb_uio.c will call only three > function > - igbuio_iomap > - igbuio_ioport_register > - igbuio_ioport_unregister > - Moved ARM/64 specific definition to include/exec-env/rte_virt_ioport.h > header > - Included virtio_ioport.c/h; has all private and public api required to > map > iopci bar for non-x86 arch. Tested on thunderX and x86_64 both. > Private api includes: > - virtio_map_ioport > - virtio_set_ioport_addr > Public api includes: > - virtio_ioport_init > - virtio_ioport_unmap > > - Last patch is the miscllanious format specifier fix identifid for 64bit > case > during regression. > > > Hi Yuanhan, Huawei and Others. I got arch specific review comment from arm maintainers and I am waiting for your review feedback on virtio specific patches? Is v3 patch and virtio iopci bar mapping to user-space approach ok with all? Thanks. > v1: > - First patch adds RTE_VIRTIO_INC_VECTOR config, much needed for archs like > arm/arm64 as they don't support vectored implementation, also wont able > to > build. > - Second patch is in-general fix for i686. > - Third patch is to emulate x86-style of {in,out}[b,w,l] api support for > armv7/v8. > As virtio-net-pci pmd driver uses those apis for port rd/wr {b,w,l} > - Fourth patch to enable VIRTIO_PMD feature in armv7/v8/thunderX config. > - Fifth patch to disable iopl syscall, As arm/arm64 linux kernel doesn't > support > them. > - Sixth patch introduces ioport memdevice called /dev/igb_ioport by which > virtio > pmd driver could able to rd/wr PCI_IOBAR. > {applicable for arm/arm64 only, tested for arm64 as of now} > > > Santosh Shukla (13): > virtio: Introduce config RTE_VIRTIO_INC_VECTOR > config: i686: set RTE_VIRTIO_INC_VECTOR=n > rte_io: armv7/v8: Introduce api to emulate x86-style of PCI/ISA > ioport access > virtio_pci: use rte_io.h for non-x86 arch > virtio: change io_base datatype from uint32_t to uint64_type > config: armv7/v8: Enable RTE_LIBRTE_VIRTIO_PMD > linuxapp: eal: arm: Always return 0 for rte_eal_iopl_init() > rte_io: x86: Remove sys/io.h ifdef x86 clutter > igb_uio: ioport: map iopci region for armv7/v8 > include/exec-env: ioport: add rte_virt_ioport header file > virtio_ioport: armv7/v8: mmap virtio iopci bar region > virtio_ethdev: use virtio_ioport api at device init/close > virtio_ethdev : fix format specifier error for 64bit addr case >