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

2015-07-20 Thread Cunming Liang
Signed-off-by: Cunming Liang --- v15 changes - remove unnecessary RTE_NEXT_ABI comment v14 changes - per-patch basis ABI compatibility rework 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

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

2015-07-20 Thread Cunming Liang
. The epoll event support to carry a raw user data and to register a callback which is executed during wakeup. Signed-off-by: Cunming Liang --- v14 changes - per-patch basis ABI compatibility rework - remove unnecessary 'local: *' from version map v13 changes - version map cleanup for v2.1 v11

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

2015-07-20 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 --- v15 changes - remove ifdef RTE_NEXT_ABI from header file v14 changes - per-patch basis ABI compatibility rework - remove unnecessary 'local

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

2015-07-20 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 ffccb0e..5acc3b7 100644 --- a/lib/librte_eal

[dpdk-dev] [PATCH v15 05/13] eal/linux: map eventfd to VFIO MSI-X intr vector

2015-07-20 Thread Cunming Liang
The patch maps each of the eventfd to the interrupt vector of VFIO MSI-X. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v14 changes - per-patch basis ABI compatibility rework - reword commit comments v8 changes - move eventfd creation out of the setup_interrupts to a standalone

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

2015-07-20 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 v15 07/13] eal/linux: fix lsc read error in uio_pci_generic

2015-07-20 Thread Cunming Liang
b_uio") Reported-by: Yong Liu Signed-off-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 1cea4bf..3f87875 100644 --- a/lib/librte_ea

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

2015-07-20 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v15 changes - remove ifdef RTE_NEXT_ABI from header file v14 changes - per-patch basis ABI compatibility rework v13 changes - version map cleanup for v2.1 v12 changes - fix unused variables compiling

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

2015-07-20 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 v15 10/13] ethdev: add rx intr enable, disable and ctl functions

2015-07-20 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 --- v15 changes - remove ifdef RTE_NEXT_ABI from

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

2015-07-20 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 --- v14 changes

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

2015-07-20 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 --- v14 changes - per-patch basis ABI compatibility rework

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

2015-07-20 Thread Cunming Liang
it receives an interrupt notification caused by the incoming packets. The sample keeps running in polling mode if the binding PMD hasn't supported the rx interrupt yet. Now only ixgbe(pf/vf) and igb support it. Signed-off-by: Danny Zhou Signed-off-by: Cunming Liang --- v14 changes - per-patch basis

[dpdk-dev] [PATCH v2] doc: announce abi change for interrupt mode

2015-07-30 Thread Cunming Liang
The patch announces the planned ABI changes for interrupt mode on v2.2. Signed-off-by: Cunming Liang --- v2 change: - rebase to recent master doc/guides/rel_notes/deprecation.rst | 8 1 file changed, 8 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides

[dpdk-dev] [PATCH v3] doc: announce abi change for interrupt mode

2015-07-30 Thread Cunming Liang
The patch announces the planned ABI changes for interrupt mode. Signed-off-by: Cunming Liang --- v3 change: - reword for CONFIG_RTE_NEXT_ABI v2 change: - rebase to recent master doc/guides/rel_notes/deprecation.rst | 5 + 1 file changed, 5 insertions(+) diff --git a/doc/guides

[dpdk-dev] [PATCH] eal/linux: fix negative value for undetermined numa_node

2015-07-31 Thread Cunming Liang
The patch sets zero as the default value of pci device numa_node if the socket could not be determined. It provides the same default value as FreeBSD which has no NUMA support, and makes the return value of rte_eth_dev_socket_id() be consistent with the API description. Signed-off-by: Cunming

[dpdk-dev] [PATCH v1] ixgbe: remove vector pmd burst size restriction

2015-07-31 Thread Cunming Liang
receive anything.) On transmit side, the max burst size no longer bind with a constant, however it still require to check the cross tx_rs_thresh violation. There's no obvious performance drop found on both recv_pkts_vec and recv_scattered_pkts_vec on burst size 32. Signed-off-by: Cunming Liang

[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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 v13 02/14] eal/linux: add rte_epoll_wait/ctl support

2015-06-19 Thread Cunming Liang
. The epoll event support to carry a raw user data and to register a callback which is executed during wakeup. Signed-off-by: Cunming Liang --- v13 changes - version map cleanup for v2.1 v11 changes - cleanup spelling error v9 changes - rework on coding style v8 changes - support delete event

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

2015-06-19 Thread Cunming Liang
, 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 interrupt vectors support in intr_handle eal/linux: add rte_epoll_wait/ctl support eal/linux: add API to set rx interrupt e

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

2015-06-19 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 --- v13 changes - version map cleanup for v2.1 v12 changes: - fix awkward line split in using RTE_LOG v10 changes: - add RTE_INTR_HANDLE_UIO_INTX

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

2015-06-19 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 v13 05/14] eal/linux: add interrupt vectors handling on VFIO

2015-06-19 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 v13 01/14] eal/linux: add interrupt vectors support in intr_handle

2015-06-19 Thread Cunming Liang
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 mapping table between irq vector number and queue id. v5 changes: - Create this new patch file for changed

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

2015-06-19 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 v13 08/14] eal/bsd: dummy for new intr definition

2015-06-19 Thread Cunming Liang
To make bsd compiling happy with new intr changes. Signed-off-by: Cunming Liang --- v13 changes - version map cleanup for v2.1 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

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

2015-06-19 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 v13 13/14] l3fwd-power: enable one-shot rx interrupt and polling/interrupt mode switch

2015-06-19 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 v13 07/14] eal/linux: fix lsc read error in uio_pci_generic

2015-06-19 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 v13 09/14] eal/bsd: fix inappropriate linuxapp referred in bsd

2015-06-19 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 v13 14/14] abi: fix v2.1 abi broken issue

2015-06-19 Thread Cunming Liang
rte_intr_conf. Signed-off-by: Cunming Liang --- v13 changes - Use common RTE_NEXT_ABI to replace RTE_EAL_RX_INTR v9 - Acked-by: vincent jardin drivers/net/e1000/igb_ethdev.c | 28 - drivers/net/ixgbe/ixgbe_ethdev.c | 41 - examples/l3fwd-power

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

2015-06-19 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 --- v13 changes - version map cleanup for v2.1 v9

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

2015-06-19 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 v2] ixgbe: remove vector pmd burst size restriction

2015-08-04 Thread Cunming Liang
(RTE_IXGBE_RXQ_REARM_THRESH) packets. On transmit side, the max burst size no longer bind with a constant, however it still require to check the cross tx_rs_thresh violation. There's no obvious performance drop found on both recv_pkts_vec and recv_scattered_pkts_vec on burst size 32. Signed-off-by: Cunming

[dpdk-dev] [PATCH v3] ixgbe: remove vector pmd burst size restriction

2015-08-04 Thread Cunming Liang
(RTE_IXGBE_RXQ_REARM_THRESH) packets. On transmit side, the max burst size no longer bind with a constant, however it still require to check the cross tx_rs_thresh violation. There's no obvious performance drop found on both recv_pkts_vec and recv_scattered_pkts_vec on burst size 32. Signed-off-by: Cunming

[dpdk-dev] [PATCH v1] doc: prog_guide update for RX interrupt event

2015-08-06 Thread Cunming Liang
The patch updates the env_abstraction_layer.rst part in prog_guide. It adds the RX interrupt event declaration and revises the others in interrupt event section. Signed-off-by: Cunming Liang --- doc/guides/prog_guide/env_abstraction_layer.rst | 34 ++--- 1 file changed, 31

[dpdk-dev] [PATCH v1] eal: fix negative value incorrectly being used defect

2015-12-11 Thread Cunming Liang
be negative. 928bytes_read = read(fd, , bytes_read); Fixes: c9f3ec1a0f3f ("eal/linux: add Rx interrupt control function") Signed-off-by: Cunming Liang --- lib/librte_eal/linuxapp/eal/eal_interrupts.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff -

[dpdk-dev] [PATCH v4 00/17] support multi-pthread per core

2015-02-02 Thread Cunming Liang
fix libraries take care the case of rte_lcore_id() >= RTE_MAX_LCORE. Thanks a million for the comments from Konstantin, Bruce, Mirek and Stephen in RFC review. *** BLURB HERE *** Cunming Liang (17): eal: add cpuset into per EAL thread lcore_config eal: new eal option '--lcores' for

[dpdk-dev] [PATCH v4 04/17] eal: add support parsing socket_id from cpuset

2015-02-02 Thread Cunming Liang
It returns the socket_id if all cpus in the cpuset belongs to the same NUMA node, otherwise it will return SOCKET_ID_ANY. Signed-off-by: Cunming Liang --- lib/librte_eal/bsdapp/eal/eal_lcore.c | 7 + lib/librte_eal/common/eal_thread.h | 52 + lib

[dpdk-dev] [PATCH v4 05/17] eal: new TLS definition and API declaration

2015-02-02 Thread Cunming Liang
1. add two TLS *_socket_id* and *_cpuset* 2. add two external API rte_thread_set/get_affinity 3. add one internal API eal_thread_dump_affinity Signed-off-by: Cunming Liang --- lib/librte_eal/bsdapp/eal/eal_thread.c| 2 ++ lib/librte_eal/common/eal_thread.h| 14 ++ lib

[dpdk-dev] [PATCH v4 06/17] eal: add eal_common_thread.c for common thread API

2015-02-02 Thread Cunming Liang
The API works for both EAL thread and none EAL thread. When calling rte_thread_set_affinity, the *_socket_id* and *_cpuset* of calling thread will be updated if the thread successful set the cpu affinity. Signed-off-by: Cunming Liang --- lib/librte_eal/bsdapp/eal/Makefile| 1 + lib

[dpdk-dev] [PATCH v4 07/17] eal: add rte_gettid() to acquire unique system tid

2015-02-02 Thread Cunming Liang
The rte_gettid() wraps the linux and freebsd syscall gettid(). It provides a persistent unique thread id for the calling thread. It will save the unique id in TLS on the first time. Signed-off-by: Cunming Liang --- lib/librte_eal/bsdapp/eal/eal_thread.c | 9 + lib/librte_eal/common

[dpdk-dev] [PATCH v4 09/17] enic: fix re-define freebsd compile complain

2015-02-02 Thread Cunming Liang
Some macro already been defined by freebsd 'sys/param.h'. Signed-off-by: Cunming Liang --- lib/librte_pmd_enic/enic.h| 1 + lib/librte_pmd_enic/enic_compat.h | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/librte_pmd_enic/enic.h b/lib/librte_pmd_enic/enic.h index c43417c

[dpdk-dev] [PATCH v4 10/17] malloc: fix the issue of SOCKET_ID_ANY

2015-02-02 Thread Cunming Liang
Add check for rte_socket_id(), avoid get unexpected return like (-1). Signed-off-by: Cunming Liang --- lib/librte_malloc/malloc_heap.h | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/librte_malloc/malloc_heap.h b/lib/librte_malloc/malloc_heap.h index b4aec45

[dpdk-dev] [PATCH v4 11/17] log: fix the gap to support non-EAL thread

2015-02-02 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 v4 13/17] eal: fix recursive spinlock in non-EAL thraed

2015-02-02 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 v4 12/17] eal: set _lcore_id and _socket_id to (-1) by default

2015-02-02 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 --- lib/librte_eal/bsdapp/eal

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

2015-02-02 Thread Cunming Liang
ring debug stat won't take care non-EAL thread. Signed-off-by: Cunming Liang --- lib/librte_ring/rte_ring.h | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h index 7cd5f2d..39bacdd 100644 --- a/lib/librte_ring

[dpdk-dev] [PATCH v4 17/17] timer: add support to non-EAL thread

2015-02-02 Thread Cunming Liang
uld simply do nothing and return straightway. Signed-off-by: Cunming Liang --- lib/librte_timer/rte_timer.c | 40 +++- lib/librte_timer/rte_timer.h | 2 +- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/lib/librte_timer/rte_timer.c b/

[dpdk-dev] [PATCH v4 16/17] ring: add sched_yield to avoid spin forever

2015-02-02 Thread Cunming Liang
Add a sched_yield() syscall if the thread spins for too long, waiting other thread to finish its operations on the ring. That gives pre-empted thread a chance to proceed and finish with ring enqnue/dequeue operation. The purpose is to reduce contention on the ring. Signed-off-by: Cunming Liang

[dpdk-dev] [PATCH v4 14/17] mempool: add support to non-EAL thread

2015-02-02 Thread Cunming Liang
. It will get bad performance and has critical risk if scheduling policy is RT. Signed-off-by: Cunming Liang --- lib/librte_mempool/rte_mempool.h | 18 +++--- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index

[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] 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] 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 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] [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 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 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

<    1   2   3   4   >