[dpdk-dev] [ [PATCH v2] 00/13] Add virtio support in arm/arm64

Santosh Shukla sshukla at mvista.com
Wed Dec 16 08:48:17 CET 2015


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
>


More information about the dev mailing list