[dpdk-users] rte_virtio_pmd_init(): IOPL call failed - cannot use virtio PMD
Stephen Hemminger
stephen at networkplumber.org
Fri Aug 3 23:24:20 CEST 2018
On Wed, 1 Aug 2018 16:27:49 +0000 (UTC)
amit sehas <cun23 at yahoo.com> wrote:
> I am trying to run a dpdk application in docker and i get the above error ... the docker instance was run as below:
>
> docker run -dit --name <name> -v /hostlibpath:/contlibpath:ro fedora:26 bash
>
> i am new to dpdk, as a result i am quite lost as to where to look ...
>
> thanks
Short answer virtio requires DPDK process to be run as root.
In order for the virtio device to signal the underlying host it may need the in/out instructions.
These CPU instructions are normally privileged (only allowed in kernel) but on Linux there is
is a system call to allow a process with root (really CAP_SYS_RAWIO) to do these from userspace.
See iopl manual page.
The actual answer is more complex. Older versions of virtio (legacy) use in/out but the
current version (modern) can use memory read/write. Ideally, the DPDK virtio would only
ask for IOPL privilege if it needed it. The problem is that may need it during the negotiation
process. Someone should look into fixing this.
More information about the users
mailing list