[dpdk-dev] [PATCH v1] app/test: fix pmd_perf issue in no NUMA case

2015-06-08 Thread Cunming Liang
Reported-by: Jayakumar, Muthurajan Signed-off-by: Cunming Liang --- app/test/test_pmd_perf.c | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index 1fd6843..6f218f7 100644 --- a/app/test/test_pmd_perf.c

[dpdk-dev] [PATCH v12 14/14] abi: fix v2.1 abi broken issue

2015-06-08 Thread Cunming Liang
rte_intr_conf. Signed-off-by: Cunming Liang --- v9 Acked-by: vincent jardin drivers/net/e1000/igb_ethdev.c | 28 - drivers/net/ixgbe/ixgbe_ethdev.c | 41 - examples/l3fwd-power/main.c| 3 +- .../bsdapp/eal/include/exec

[dpdk-dev] [PATCH v12 13/14] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-06-08 Thread Cunming Liang
kernel, so one-shot interrupt is used here to guarantee minimum overhead and DPDK polling thread returns to polling mode immediately once it receives an interrupt notificaiton for incoming packet. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - using new APIs - demo

[dpdk-dev] [PATCH v12 12/14] igb: enable rx queue interrupts for PF

2015-06-08 Thread Cunming Liang
The patch does below for igb PF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v9 changes - move queue-vec mapping init from

[dpdk-dev] [PATCH v12 11/14] ixgbe: enable rx queue interrupts for both PF and VF

2015-06-08 Thread Cunming Liang
The patch does below things for ixgbe PF and VF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Yong Liu Signed-off-by: Cunming Liang --- v10 changes

[dpdk-dev] [PATCH v12 10/14] ethdev: add rx intr enable, disable and ctl functions

2015-06-08 Thread Cunming Liang
The patch adds two dev_ops functions to enable and disable rx queue interrupts. In addtion, it adds rte_eth_dev_rx_intr_ctl/rx_intr_q to support per port or per queue rx intr event set. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v9 changes - remove unnecessary check after

[dpdk-dev] [PATCH v12 09/14] eal/bsd: fix inappropriate linuxapp referred in bsd

2015-06-08 Thread Cunming Liang
Signed-off-by: Cunming Liang --- lib/librte_eal/bsdapp/eal/include/exec-env/rte_interrupts.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/include/exec-env/rte_interrupts.h b/lib/librte_eal/bsdapp/eal/include/exec-env/rte_interrupts.h index

[dpdk-dev] [PATCH v12 08/14] eal/bsd: dummy for new intr definition

2015-06-08 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v12 changes - fix unused variables compiling warning v8 changes - add stub for new function v7 changes - remove stub 'linux only' function from source file lib/librte_eal/bsdapp/eal/eal_interrupts.c

[dpdk-dev] [PATCH v12 07/14] eal/linux: fix lsc read error in uio_pci_generic

2015-06-08 Thread Cunming Liang
-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index 5519e7c..d7a5403 100644 --- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c +++ b/lib

[dpdk-dev] [PATCH v12 06/14] eal/linux: standalone intr event fd create support

2015-06-08 Thread Cunming Liang
The patch exposes intr event fd create and release for PMD. The device driver can assign the number of event associated with interrupt vector. It also provides misc functions to check 1) allows other slowpath intr(e.g. lsc); 2) intr event on fastpath is enabled or not. Signed-off-by: Cunming

[dpdk-dev] [PATCH v12 05/14] eal/linux: add interrupt vectors handling on VFIO

2015-06-08 Thread Cunming Liang
This patch does below: - Create VFIO eventfds for each interrupt vector (move to next) - Assign per interrupt vector's eventfd to VFIO by ioctl Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v8 changes - move eventfd creation out of the setup_interrupts to a standalone function

[dpdk-dev] [PATCH v12 04/14] eal/linux: fix comments typo on vfio msi

2015-06-08 Thread Cunming Liang
Signed-off-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index cfe389c..fe1210b 100644 --- a/lib/librte_eal

[dpdk-dev] [PATCH v12 03/14] eal/linux: add API to set rx interrupt event monitor

2015-06-08 Thread Cunming Liang
The patch adds 'rte_intr_rx_ctl' to add or delete interrupt vector events monitor on specified epoll instance. Signed-off-by: Cunming Liang --- v12 changes: - fix awkward line split in using RTE_LOG v10 changes: - add RTE_INTR_HANDLE_UIO_INTX for uio_pci_generic v8 changes - fix

[dpdk-dev] [PATCH v12 02/14] eal/linux: add rte_epoll_wait/ctl support

2015-06-08 Thread Cunming Liang
. Signed-off-by: Cunming Liang --- v11 changes - cleanup spelling error v9 changes - rework on coding style v8 changes - support delete event in safety during the wakeup execution - add EINTR process during epoll_wait v7 changes - split v6[4/8] into two patches, one for epoll event(this one

[dpdk-dev] [PATCH v12 01/14] eal/linux: add interrupt vectors support in intr_handle

2015-06-08 Thread Cunming Liang
to a specified epoll instance, 'eptrs' will hold the rte_epoll_event object pointer. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes: - add eptrs[], it's used to store the register rte_epoll_event instances. - add vec_en, to log the vector capability status. v6 changes: - add

[dpdk-dev] [PATCH v12 00/14] Interrupt mode PMD

2015-06-08 Thread Cunming Liang
LSC and rx queue interrupt handlers causes a mess. [FIXED] 2) LSC interrupt is not supported by VF driver, so it is by default disabled in L3fwd-power now. Feel free to turn in on if you want to support both LSC and rx queue interrupts on a PF. Cunming Liang (14): eal/linux: add inter

[dpdk-dev] [PATCH v11 13/13] abi: fix v2.1 abi broken issue

2015-06-05 Thread Cunming Liang
rte_intr_conf. Signed-off-by: Cunming Liang --- v9 Acked-by: vincent jardin drivers/net/e1000/igb_ethdev.c | 28 - drivers/net/ixgbe/ixgbe_ethdev.c | 41 - examples/l3fwd-power/main.c| 3 +- .../bsdapp/eal/include/exec

[dpdk-dev] [PATCH v11 12/13] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-06-05 Thread Cunming Liang
than kernel, so one-shot interrupt is used here to guarantee minimum overhead and DPDK polling thread returns to polling mode immediately once it receives an interrupt notification for incoming packet. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - using new APIs - demo

[dpdk-dev] [PATCH v11 11/13] igb: enable rx queue interrupts for PF

2015-06-05 Thread Cunming Liang
The patch does below for igb PF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v9 changes - move queue-vec mapping init from

[dpdk-dev] [PATCH v11 10/13] ixgbe: enable rx queue interrupts for both PF and VF

2015-06-05 Thread Cunming Liang
The patch does below things for ixgbe PF and VF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Yong Liu Signed-off-by: Cunming Liang --- v10 changes

[dpdk-dev] [PATCH v11 09/13] ethdev: add rx intr enable, disable and ctl functions

2015-06-05 Thread Cunming Liang
The patch adds two dev_ops functions to enable and disable rx queue interrupts. In addtion, it adds rte_eth_dev_rx_intr_ctl/rx_intr_q to support per port or per queue rx intr event set. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang fix by http://www.dpdk.org/dev/patchwork/patch/4784

[dpdk-dev] [PATCH v11 08/13] eal/bsd: dummy for new intr definition

2015-06-05 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v8 changes - add stub for new function v7 changes - remove stub 'linux only' function from source file lib/librte_eal/bsdapp/eal/eal_interrupts.c | 19 ++ .../bsdapp/eal/include/exec-env

[dpdk-dev] [PATCH v11 07/13] eal/linux: fix lsc read error in uio_pci_generic

2015-06-05 Thread Cunming Liang
-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index 4b191ae..300ebb1 100644 --- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c +++ b/lib

[dpdk-dev] [PATCH v11 06/13] eal/linux: standalone intr event fd create support

2015-06-05 Thread Cunming Liang
The patch exposes intr event fd create and release for PMD. The device driver can assign the number of event associated with interrupt vector. It also provides misc functions to check 1) allows other slowpath intr(e.g. lsc); 2) intr event on fastpath is enabled or not. Signed-off-by: Cunming

[dpdk-dev] [PATCH v11 05/13] eal/linux: add interrupt vectors handling on VFIO

2015-06-05 Thread Cunming Liang
This patch does below: - Create VFIO eventfds for each interrupt vector (move to next) - Assign per interrupt vector's eventfd to VFIO by ioctl Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v8 changes - move eventfd creation out of the setup_interrupts to a standalone function

[dpdk-dev] [PATCH v11 04/13] eal/linux: fix comments typo on vfio msi

2015-06-05 Thread Cunming Liang
Signed-off-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index 08dc2ab..4499055 100644 --- a/lib/librte_eal

[dpdk-dev] [PATCH v11 03/13] eal/linux: add API to set rx interrupt event monitor

2015-06-05 Thread Cunming Liang
The patch adds 'rte_intr_rx_ctl' to add or delete interrupt vector events monitor on specified epoll instance. Signed-off-by: Cunming Liang --- v10 changes: - add RTE_INTR_HANDLE_UIO_INTX for uio_pci_generic v8 changes - fix EWOULDBLOCK and EINTR processing - add event status check v7

[dpdk-dev] [PATCH v11 02/13] eal/linux: add rte_epoll_wait/ctl support

2015-06-05 Thread Cunming Liang
. Signed-off-by: Cunming Liang --- v11 changes - cleanup spelling error v9 changes - rework on coding style v8 changes - support delete event in safety during the wakeup execution - add EINTR process during epoll_wait v7 changes - split v6[4/8] into two patches, one for epoll event(this one

[dpdk-dev] [PATCH v11 01/13] eal/linux: add interrupt vectors support in intr_handle

2015-06-05 Thread Cunming Liang
to a specified epoll instance, 'eptrs' will hold the rte_epoll_event object pointer. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes: - add eptrs[], it's used to store the register rte_epoll_event instances. - add vec_en, to log the vector capability status. v6 changes: - add

[dpdk-dev] [PATCH v11 00/13] Interrupt mode PMD

2015-06-05 Thread Cunming Liang
y VF driver, so it is by default disabled in L3fwd-power now. Feel free to turn in on if you want to support both LSC and rx queue interrupts on a PF. Cunming Liang (13): eal/linux: add interrupt vectors support in intr_handle eal/linux: add rte_epoll_wait/ctl support eal/linux: add

[dpdk-dev] [PATCH v1] abi: announce abi changes plan for interrupt mode

2015-06-05 Thread Cunming Liang
It announces the planned ABI changes for interrupt mode on v2.2. The feature will turn off by default so as to avoid v2.1 ABI broken. Signed-off-by: Cunming Liang --- doc/guides/rel_notes/abi.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/guides/rel_notes/abi.rst b/doc/guides

[dpdk-dev] [PATCH v10 13/13] abi: fix v2.1 abi broken issue

2015-06-02 Thread Cunming Liang
rte_intr_conf. Signed-off-by: Cunming Liang --- v9 Acked-by: vincent jardin drivers/net/e1000/igb_ethdev.c | 28 - drivers/net/ixgbe/ixgbe_ethdev.c | 41 - examples/l3fwd-power/main.c| 3 +- .../bsdapp/eal/include/exec

[dpdk-dev] [PATCH v10 12/13] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-06-02 Thread Cunming Liang
kernel, so one-shot interrupt is used here to guarantee minimum overhead and DPDK polling thread returns to polling mode immediately once it receives an interrupt notificaiton for incoming packet. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - using new APIs - demo

[dpdk-dev] [PATCH v10 11/13] igb: enable rx queue interrupts for PF

2015-06-02 Thread Cunming Liang
The patch does below for igb PF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v9 changes - move queue-vec mapping init from

[dpdk-dev] [PATCH v10 10/13] ixgbe: enable rx queue interrupts for both PF and VF

2015-06-02 Thread Cunming Liang
The patch does below things for ixgbe PF and VF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Yong Liu Signed-off-by: Cunming Liang --- v10 changes

[dpdk-dev] [PATCH v10 09/13] ethdev: add rx intr enable, disable and ctl functions

2015-06-02 Thread Cunming Liang
The patch adds two dev_ops functions to enable and disable rx queue interrupts. In addtion, it adds rte_eth_dev_rx_intr_ctl/rx_intr_q to support per port or per queue rx intr event set. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v9 changes - remove unnecessary check after

[dpdk-dev] [PATCH v10 08/13] eal/bsd: dummy for new intr definition

2015-06-02 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v8 changes - add stub for new function v7 changes - remove stub 'linux only' function from source file lib/librte_eal/bsdapp/eal/eal_interrupts.c | 19 ++ .../bsdapp/eal/include/exec-env

[dpdk-dev] [PATCH v10 07/13] eal/linux: fix lsc read error in uio_pci_generic

2015-06-02 Thread Cunming Liang
-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index c2bf165..0f902b2 100644 --- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c +++ b/lib

[dpdk-dev] [PATCH v10 06/13] eal/linux: standalone intr event fd create support

2015-06-02 Thread Cunming Liang
The patch exposes intr event fd create and release for PMD. The device driver can assign the number of event associated with interrupt vector. It also provides misc funtions to check 1) allows other slowpath intr(e.g. lsc); 2) intr event on fastpath is enabled or not. Signed-off-by: Cunming

[dpdk-dev] [PATCH v10 04/13] eal/linux: fix comments typo on vfio msi

2015-06-02 Thread Cunming Liang
Signed-off-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index 302ceda..c970c66 100644 --- a/lib/librte_eal

[dpdk-dev] [PATCH v10 03/13] eal/linux: add API to set rx interrupt event monitor

2015-06-02 Thread Cunming Liang
The patch adds 'rte_intr_rx_ctl' to add or delete interrupt vector events monitor on specified epoll instance. Signed-off-by: Cunming Liang --- v10 changes: - add RTE_INTR_HANDLE_UIO_INTX for uio_pci_generic v8 changes - fix EWOULDBLOCK and EINTR processing - add event status check v7

[dpdk-dev] [PATCH v10 02/13] eal/linux: add rte_epoll_wait/ctl support

2015-06-02 Thread Cunming Liang
. Signed-off-by: Cunming Liang --- v9 changes - rework on coding style v8 changes - support delete event in safety during the wakeup execution - add EINTR process during epoll_wait v7 changes - split v6[4/8] into two patches, one for epoll event(this one) another for rx intr(next patch

[dpdk-dev] [PATCH v10 01/13] eal/linux: add interrupt vectors support in intr_handle

2015-06-02 Thread Cunming Liang
to a specified epoll instance, 'eptrs' will hold the rte_epoll_event object pointer. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes: - add eptrs[], it's used to store the register rte_epoll_event instances. - add vec_en, to log the vector capability status. v6 changes: - add

[dpdk-dev] [PATCH v9 12/12] abi: fix v2.1 abi broken issue

2015-05-29 Thread Cunming Liang
rte_intr_conf. Signed-off-by: Cunming Liang --- drivers/net/e1000/igb_ethdev.c | 28 - drivers/net/ixgbe/ixgbe_ethdev.c | 41 - examples/l3fwd-power/main.c| 4 +- .../bsdapp/eal/include/exec-env/rte_interrupts.h | 7

[dpdk-dev] [PATCH v9 11/12] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-05-29 Thread Cunming Liang
kernel, so one-shot interrupt is used here to guarantee minimum overhead and DPDK polling thread returns to polling mode immediately once it receives an interrupt notificaiton for incoming packet. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - using new APIs - demo

[dpdk-dev] [PATCH v9 10/12] igb: enable rx queue interrupts for PF

2015-05-29 Thread Cunming Liang
The patch does below for igb PF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v9 changes - move queue-vec mapping init from

[dpdk-dev] [PATCH v9 09/12] ixgbe: enable rx queue interrupts for both PF and VF

2015-05-29 Thread Cunming Liang
The patch does below things for ixgbe PF and VF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Yong Liu Signed-off-by: Cunming Liang --- v9 changes

[dpdk-dev] [PATCH v9 08/12] ethdev: add rx intr enable, disable and ctl functions

2015-05-29 Thread Cunming Liang
The patch adds two dev_ops functions to enable and disable rx queue interrupts. In addtion, it adds rte_eth_dev_rx_intr_ctl/rx_intr_q to support per port or per queue rx intr event set. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v9 changes - remove unnecessary check after

[dpdk-dev] [PATCH v9 07/12] eal/bsd: dummy for new intr definition

2015-05-29 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v8 changes - add stub for new function v7 changes - remove stub 'linux only' function from source file lib/librte_eal/bsdapp/eal/eal_interrupts.c | 19 ++ .../bsdapp/eal/include/exec-env

[dpdk-dev] [PATCH v9 06/12] eal/linux: standalone intr event fd create support

2015-05-29 Thread Cunming Liang
The patch exposes intr event fd create and release for PMD. The device driver can assign the number of event associated with interrupt vector. It also provides misc funtions to check 1) allows other slowpath intr(e.g. lsc); 2) intr event on fastpath is enabled or not. Signed-off-by: Cunming

[dpdk-dev] [PATCH v9 05/12] eal/linux: add interrupt vectors handling on VFIO

2015-05-29 Thread Cunming Liang
This patch does below: - Create VFIO eventfds for each interrupt vector (move to next) - Assign per interrupt vector's eventfd to VFIO by ioctl Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v8 changes - move eventfd creation out of the setup_interrupts to a standalone function

[dpdk-dev] [PATCH v9 03/12] eal/linux: add API to set rx interrupt event monitor

2015-05-29 Thread Cunming Liang
The patch adds 'rte_intr_rx_ctl' to add or delete interrupt vector events monitor on specified epoll instance. Signed-off-by: Cunming Liang --- v8 changes - fix EWOULDBLOCK and EINTR processing - add event status check v7 changes - rename rte_intr_rx_set to rte_intr_rx_ctl

[dpdk-dev] [PATCH v9 02/12] eal/linux: add rte_epoll_wait/ctl support

2015-05-29 Thread Cunming Liang
. Signed-off-by: Cunming Liang --- v9 changes - rework on coding style v8 changes - support delete event in safety during the wakeup execution - add EINTR process during epoll_wait v7 changes - split v6[4/8] into two patches, one for epoll event(this one) another for rx intr(next patch

[dpdk-dev] [PATCH v9 01/12] eal/linux: add interrupt vectors support in intr_handle

2015-05-29 Thread Cunming Liang
to a specified epoll instance, 'eptrs' will hold the rte_epoll_event object pointer. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes: - add eptrs[], it's used to store the register rte_epoll_event instances. - add vec_en, to log the vector capability status. v6 changes: - add

[dpdk-dev] [PATCH v9 00/12] Interrupt mode PMD

2015-05-29 Thread Cunming Liang
a PF. Cunming Liang (12): eal/linux: add interrupt vectors support in intr_handle eal/linux: add rte_epoll_wait/ctl support eal/linux: add API to set rx interrupt event monitor eal/linux: fix comments typo on vfio msi eal/linux: add interrupt vectors handling on VFIO eal/linux: standalone

[dpdk-dev] [PATCH v8 11/11] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-05-21 Thread Cunming Liang
kernel, so one-shot interrupt is used here to guarantee minimum overhead and DPDK polling thread returns to polling mode immediately once it receives an interrupt notificaiton for incoming packet. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - using new APIs - demo

[dpdk-dev] [PATCH v8 10/11] igb: enable rx queue interrupts for PF

2015-05-21 Thread Cunming Liang
The patch does below for igb PF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v8 changes - add vfio-msi/vfio-legacy and uio-legacy

[dpdk-dev] [PATCH v8 09/11] ixgbe: enable rx queue interrupts for both PF and VF

2015-05-21 Thread Cunming Liang
The patch does below things for ixgbe PF and VF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Yong Liu Signed-off-by: Cunming Liang --- v8 changes

[dpdk-dev] [PATCH v8 08/11] ethdev: add rx intr enable, disable and ctl functions

2015-05-21 Thread Cunming Liang
The patch adds two dev_ops functions to enable and disable rx queue interrupts. In addtion, it adds rte_eth_dev_rx_intr_ctl/rx_intr_q to support per port or per queue rx intr event set. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v8 changes - add addtion check for EEXIT v7

[dpdk-dev] [PATCH v8 07/11] eal/bsd: dummy for new intr definition

2015-05-21 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v8 changes - add stub for new function v7 changes - remove stub 'linux only' function from source file lib/librte_eal/bsdapp/eal/eal_interrupts.c | 20 ++ .../bsdapp/eal/include/exec-env

[dpdk-dev] [PATCH v8 06/11] eal/linux: standalone intr event fd create support

2015-05-21 Thread Cunming Liang
The patch exposes intr event fd create and release for PMD. The device driver can assign the number of event associated with interrupt vector. It also provides misc funtions to check 1) allows other slowpath intr(e.g. lsc); 2) intr event on fastpath is enabled or not. Signed-off-by: Cunming

[dpdk-dev] [PATCH v8 05/11] eal/linux: add interrupt vectors handling on VFIO

2015-05-21 Thread Cunming Liang
This patch does below: - Create VFIO eventfds for each interrupt vector (move to next) - Assign per interrupt vector's eventfd to VFIO by ioctl Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v8 changes - move eventfd creation out of the setup_interrupts to a standalone function

[dpdk-dev] [PATCH v8 04/11] eal/linux: fix comments typo on vfio msi

2015-05-21 Thread Cunming Liang
Signed-off-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index 6fb7fc7..59f4214 100644 --- a/lib/librte_eal

[dpdk-dev] [PATCH v8 03/11] eal/linux: add API to set rx interrupt event monitor

2015-05-21 Thread Cunming Liang
The patch adds 'rte_intr_rx_ctl' to add or delete interrupt vector events monitor on specified epoll instance. Signed-off-by: Cunming Liang --- v8 changes - fix EWOULDBLOCK and EINTR processing - add event status check v7 changes - rename rte_intr_rx_set to rte_intr_rx_ctl

[dpdk-dev] [PATCH v8 02/11] eal/linux: add rte_epoll_wait/ctl support

2015-05-21 Thread Cunming Liang
. Signed-off-by: Cunming Liang --- v8 changes - support delete event in safety during the wakeup execution - add EINTR process during epoll_wait v7 changes - split v6[4/8] into two patches, one for epoll event(this one) another for rx intr(next patch) - introduce rte_epoll_event definition

[dpdk-dev] [PATCH v8 01/11] eal/linux: add interrupt vectors support in intr_handle

2015-05-21 Thread Cunming Liang
to a specified epoll instance, 'elist' will hold the rte_epoll_event object pointer. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes: - add eptrs[], it's used to store the register rte_epoll_event instances. - add vec_en, to log the vector capability status. v6 changes: - add

[dpdk-dev] [PATCH v8 00/11] Interrupt mode PMD

2015-05-21 Thread Cunming Liang
now. Feel free to turn in on if you want to support both LSC and rx queue interrupts on a PF. Cunming Liang (11): eal/linux: add interrupt vectors support in intr_handle eal/linux: add rte_epoll_wait/ctl support eal/linux: add API to set rx interrupt event monitor eal/linux: fix comments

[dpdk-dev] [PATCH v7 00/10] Interrupt mode PMD

2015-05-05 Thread Cunming Liang
rted by VF driver, so it is by default disabled in L3fwd-power now. Feel free to turn in on if you want to support both LSC and rx queue interrupts on a PF. Cunming Liang (10): eal/linux: add interrupt vectors support in intr_handle eal/linux: add rte_epoll_wait/ctl support eal/linux: add

[dpdk-dev] [PATCH v7 10/10] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-05-05 Thread Cunming Liang
kernel, so one-shot interrupt is used here to guarantee minimum overhead and DPDK polling thread returns to polling mode immediately once it receives an interrupt notificaiton for incoming packet. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - using new APIs - demo

[dpdk-dev] [PATCH v7 09/10] igb: enable rx queue interrupts for PF

2015-05-05 Thread Cunming Liang
The patch does below for igb PF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - add condition check when intr vector

[dpdk-dev] [PATCH v7 08/10] ixgbe: enable rx queue interrupts for both PF and VF

2015-05-05 Thread Cunming Liang
The patch does below things for ixgbe PF and VF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Yong Liu Signed-off-by: Cunming Liang --- v7 changes

[dpdk-dev] [PATCH v7 07/10] ethdev: add rx intr enable, disable and ctl functions

2015-05-05 Thread Cunming Liang
The patch adds two dev_ops functions to enable and disable rx queue interrupts. In addtion, it adds rte_eth_dev_rx_intr_ctl/rx_intr_q to support per port or per queue rx intr event set. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - remove rx_intr_vec_get - add

[dpdk-dev] [PATCH v7 06/10] eal/linux: add interrupt vectors handling on VFIO

2015-05-05 Thread Cunming Liang
This patch does below: - Create VFIO eventfds for each interrupt vector - Assign per interrupt vector's eventfd to VFIO by ioctl Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes - cleanup unnecessary code change - split event and intr operation to other patches lib

[dpdk-dev] [PATCH v7 05/10] eal/linux: fix comments typo on vfio msi

2015-05-05 Thread Cunming Liang
Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c index 1090d7b..178a88e

[dpdk-dev] [PATCH v7 04/10] eal/bsd: dummy for new intr definition

2015-05-05 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v7 changes - remove stub 'linux only' function from source file lib/librte_eal/bsdapp/eal/include/exec-env/rte_interrupts.h | 6 ++ 1 file changed, 6 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal

[dpdk-dev] [PATCH v7 03/10] eal/linux: add API to set rx interrupt event monitor

2015-05-05 Thread Cunming Liang
The patch adds 'rte_intr_rx_ctl' to add or delete interrupt vector events monitor on specified epoll instance. Signed-off-by: Cunming Liang --- v7 changes - rename rte_intr_rx_set to rte_intr_rx_ctl. - rte_intr_rx_ctl uses rte_epoll_ctl to register epoll event instance. - the intr rx event

[dpdk-dev] [PATCH v7 02/10] eal/linux: add rte_epoll_wait/ctl support

2015-05-05 Thread Cunming Liang
. Signed-off-by: Cunming Liang --- v7 changes - split v6[4/8] into two patches, one for epoll event(this one) another for rx intr(next patch) - introduce rte_epoll_event definition - rte_epoll_wait/ctl for more generic RTE epoll API v6 changes - split rte_intr_wait_rx_pkt into two function

[dpdk-dev] [PATCH v7 01/10] eal/linux: add interrupt vectors support in intr_handle

2015-05-05 Thread Cunming Liang
to a specified epoll instance, 'eptrs' will hold the rte_epoll_event object pointer. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v7 changes: - add eptrs[], it's used to store the register rte_epoll_event instances. - add vec_en, to log the vector capability status. v6 changes: - add

[dpdk-dev] From: Cunming Liang <cunming.li...@intel.com>

2015-05-05 Thread Cunming Liang
rted by VF driver, so it is by default disabled in L3fwd-power now. Feel free to turn in on if you want to support both LSC and rx queue interrupts on a PF. Cunming Liang (10): eal/linux: add interrupt vectors support in intr_handle eal/linux: add rte_epoll_wait/ctl support eal/linux: add

[dpdk-dev] [PATCH] doc: prog guide cleanup for eal multi-pthread

2015-03-04 Thread Cunming Liang
Reported-by: Butler, Siobhan A Signed-off-by: Cunming Liang --- Fixes: 1733be6d3147(doc: new eal multi-pthread feature) doc/guides/prog_guide/env_abstraction_layer.rst | 82 - 1 file changed, 40 insertions(+), 42 deletions(-) diff --git a/doc/guides/prog_guide

[dpdk-dev] [PATCH v1] ixgbe/vector: add rxd 2^n check to avoid mbuf leak

2015-03-02 Thread Cunming Liang
>nb_rx_desc - 1));". Reported-by: Stephen Hemminger Signed-off-by: Cunming Liang --- The issue was reported in http://www.dpdk.org/ml/archives/dev/2015-February/014127.html lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 51 ++- 1 file changed, 18 insertions(+)

[dpdk-dev] [PATCH v6 8/8] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-02-27 Thread Cunming Liang
rsapce interrupt notification generally takes a lot more cycles than kernel, so one-shot interrupt is used here to guarantee minimum overhead and DPDK polling thread returns to polling mode immediately once it receives an interrupt notificaiton for incoming packet. Signed-off-by: Danny Zhou Signed-off-b

[dpdk-dev] [PATCH v6 7/8] igb: enable rx queue interrupts for PF

2015-02-27 Thread Cunming Liang
From: "Zhou, Danny" <danny.z...@intel.com> The patch does below for igb PF: - Setup NIC to generate MSI-X interrupts - Set the IVAR register to map interrupt causes to vectors - Implement interrupt enable/disable functions Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang

[dpdk-dev] [PATCH v6 5/8] ethdev: add rx interrupt enable/disable functions

2015-02-27 Thread Cunming Liang
Add three dev_ops functions to enable and disable rx queue interrupts; and to retrieve the vector num which the specified queue assosiated with. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v6 changes - add rx_intr_vec_get to retrieve the vector num of the queue. v5 changes

[dpdk-dev] [PATCH v6 4/8] eal/linux: add per rx queue interrupt handling based on VFIO

2015-02-27 Thread Cunming Liang
Signed-off-by: Cunming Liang --- v6 changes - split rte_intr_wait_rx_pkt into two function, wait and set. - rewrite rte_intr_rx_wait/rte_intr_rx_set to remove queue visibility on eal. - rte_intr_rx_wait to support multiplexing. - allow epfd as input to support flexible event fd combination. v5

[dpdk-dev] [PATCH v6 3/8] eal/bsd: dummy for new intr definition

2015-02-27 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- lib/librte_eal/bsdapp/eal/eal_interrupts.c| 15 +++ .../bsdapp/eal/include/exec-env/rte_interrupts.h | 4 lib/librte_eal/bsdapp/eal/rte_eal_version.map | 2

[dpdk-dev] [PATCH v6 2/8] eal/linux: add rx queue interrupt FDs to intr handle struct

2015-02-27 Thread Cunming Liang
Per vector event fd will store in rte_intr_handle during init. Device drivers take responsibility to fill queue-vec mapping table(vec_num[]). Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v6 changes: - add mapping table between irq vector number and queue id. v5 changes

[dpdk-dev] [PATCH v6 1/8] eal: declare new interrupt api

2015-02-27 Thread Cunming Liang
Add two API *rte_intr_rx_wait* and *rte_intr_rx_set* for RX interrupt. They're only available in VFIO_MSIX. Signed-off-by: Cunming Liang --- lib/librte_eal/common/include/rte_interrupts.h | 38 ++ 1 file changed, 38 insertions(+) diff --git a/lib/librte_eal/common

[dpdk-dev] [PATCH v6 0/8] Interrupt mode PMD

2015-02-27 Thread Cunming Liang
ueue interrupts on a PF. Cunming Liang (5): eal: declare new interrupt api eal/linux: add rx queue interrupt FDs to intr handle struct eal/bsd: dummy for new intr definition eal/linux: add per rx queue interrupt handling based on VFIO ethdev: add rx interrupt enable/disable functions

[dpdk-dev] [PATCH v1 2/2] eal/bsd: fix symbol missing in version map

2015-02-25 Thread Cunming Liang
As per_lcore__socket_id and rte_sys_gettid are missing in version map, it causes compiling error when CONFIG_RTE_BUILD_SHARED_LIB is enabled. Signed-off-by: Cunming Liang --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_eal

[dpdk-dev] [PATCH v1 1/2] eal/linux: fix symbol missing in version map

2015-02-25 Thread Cunming Liang
As per_lcore__socket_id and rte_sys_gettid are missing in version map, it causes compiling error when CONFIG_RTE_BUILD_SHARED_LIB is enabled. Signed-off-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/rte_eal_version.map | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/librte_eal

[dpdk-dev] [PATCH v1 0/2] eal: fix symbol missing in version map

2015-02-25 Thread Cunming Liang
These two patches are the fixing for the compling error when CONFIG_RTE_BUILD_SHARED_LIB=y. The root cause is *per_lcore__socket_id* and *rte_sys_gettid* are missing in the version map. Thanks for the notification from Tetsuya Mukawa . Cunming Liang (2): eal/linux: fix symbol missing

[dpdk-dev] [PATCH v8 19/19] timer: add support to non-EAL thread

2015-02-17 Thread Cunming Liang
uld simply do nothing and return straightway. Signed-off-by: Cunming Liang --- v6 changes: use 'RTE_MAX_LCORE' to check the EAL thread with valid lcore_id. use 'LCORE_ID_ANY' for any unspecified lcore_id assignment. v5 changes: add assert in rte_timer_manage remove duplicate ch

[dpdk-dev] [PATCH v8 18/19] ring: add sched_yield to avoid spin forever

2015-02-17 Thread Cunming Liang
shows additional perf penalty. Signed-off-by: Cunming Liang --- v6 changes: rename RTE_RING_PAUSE_REP to RTE_RING_PAUSE_REP_COUNT set default value as '0' in configure file v5 changes: add RTE_RING_PAUSE_REP to config file v4 changes: update and add more comments on sched_yield

[dpdk-dev] [PATCH v8 17/19] ring: add support to non-EAL thread

2015-02-17 Thread Cunming Liang
ring debug stat won't take care non-EAL thread. Signed-off-by: Cunming Liang --- v6 changes: rollback v5 changes v5 changes: check __lcore_id with LCORE_ID_ANY instead of RTE_MAX_LCORE lib/librte_ring/rte_ring.h | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff

[dpdk-dev] [PATCH v8 16/19] mempool: add support to non-EAL thread

2015-02-17 Thread Cunming Liang
. It will get bad performance and has critical risk if scheduling policy is RT. Haven't found significant performance decrease by mempool_perf_test. Signed-off-by: Cunming Liang --- v6 changes: rollback v5 changes v5 changes: check __lcore_id with LCORE_ID_ANY instead of RTE_MAX_LCORE lib

[dpdk-dev] [PATCH v8 15/19] eal: fix recursive spinlock in non-EAL thraed

2015-02-17 Thread Cunming Liang
In non-EAL thread, lcore_id alrways be LCORE_ID_ANY. It cann't be used as unique id for recursive spinlock. Then use rte_gettid() to replace it. Signed-off-by: Cunming Liang --- lib/librte_eal/common/include/generic/rte_spinlock.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff

[dpdk-dev] [PATCH v8 14/19] eal: set _lcore_id and _socket_id to (-1) by default

2015-02-17 Thread Cunming Liang
For those none EAL thread, *_lcore_id* shall always be LCORE_ID_ANY. The libraries using *_lcore_id* as index need to take care. *_socket_id* always be SOCKET_ID_ANY unitl the thread changes the affinity by rte_thread_set_affinity() Signed-off-by: Cunming Liang --- v5 changes: define

[dpdk-dev] [PATCH v8 13/19] log: fix the gap to support non-EAL thread

2015-02-17 Thread Cunming Liang
For those non-EAL thread, *_lcore_id* is invalid and probably larger than RTE_MAX_LCORE. The patch adds the check and allows only EAL thread using EAL per thread log level and log type. Others shares the global log level. Signed-off-by: Cunming Liang --- lib/librte_eal/common/eal_common_log.c

[dpdk-dev] [PATCH v8 12/19] malloc: fix the issue of SOCKET_ID_ANY

2015-02-17 Thread Cunming Liang
in the cpuset may belongs to different NUMA nodes. The value of _socket_id probably be SOCKET_ID_ANY(-1), the case is not expected in origin malloc_get_numa_socket(). Signed-off-by: Cunming Liang --- v7 changes: reword comments lib/librte_malloc/malloc_heap.h | 7 ++- 1 file changed, 6

<    1   2   3   4   >