I think iopl() was added to have permission to do Port I/O for Virtio device handling.
-----Original Message----- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Xie, Huawei Sent: Wednesday, August 27, 2014 2:22 AM To: David Marchand; dev at dpdk.org Subject: Re: [dpdk-dev] [PATCH RFC 0/3] only call iopl when necessary Hi David: The reason iopl is put in rte_eal_init is that we want all later created DPDK processes/threads inherit the iopl permission. If you only call iopl in pmd_init, RX/TX and other threads which needs io permission will segmentation fault. -huawei > -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of David Marchand > Sent: Tuesday, August 26, 2014 10:12 PM > To: dev at dpdk.org > Subject: [dpdk-dev] [PATCH RFC 0/3] only call iopl when necessary > > This patch series is just a little clean up to remove the > unconditionnal call to iopl on linux. > Rather than call iopl() at the eal level, let the PMD that needs it > call rte_eal_iopl_init(). > > -- > David Marchand > > David Marchand (3): > eal/bsd: fix fd leak > eal: don't call rte_eal_iopl_init unconditionnally > eal: remove unused flags field > > lib/librte_eal/bsdapp/eal/eal.c | 6 ++---- > lib/librte_eal/common/include/rte_eal.h | 17 +++++++++++------ > lib/librte_eal/linuxapp/eal/eal.c | 11 ++++------- > lib/librte_pmd_virtio/virtio_ethdev.c | 15 ++++++++------- > 4 files changed, 25 insertions(+), 24 deletions(-) > > -- > 1.7.10.4