[dpdk-dev,v2] net/ixgbe: fix Rx/Tx queue interrupt for x550 devices
Checks
Commit Message
x550 devices not do interrupt vector mapping before
enable Rx/Tx queue interrupt, makes interrupt mode
can't work neither with igb_uio or VFIO.
Fixes: d2e72774e58c ("ixgbe/base: support X550")
Signed-off-by: Qiming Yang <qiming.yang@intel.com>
---
v2 changes:
* fixed other cause interrupt vector map and typo issue
---
drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Qiming Yang
> Sent: Tuesday, July 18, 2017 10:29 AM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Yang, Qiming
> <qiming.yang@intel.com>
> Subject: [dpdk-dev] [PATCH v2] net/ixgbe: fix Rx/Tx queue interrupt for x550
> devices
>
> x550 devices not do interrupt vector mapping before enable Rx/Tx queue
> interrupt, makes interrupt mode can't work neither with igb_uio or VFIO.
>
> Fixes: d2e72774e58c ("ixgbe/base: support X550")
>
> Signed-off-by: Qiming Yang <qiming.yang@intel.com>
Have looked through datasheet of 82599, X540 and X550.
Acked-by: Wei Dai <wei.dai@intel.com>
> ---
> v2 changes:
> * fixed other cause interrupt vector map and typo issue
> ---
> drivers/net/ixgbe/ixgbe_ethdev.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 9b06ac1..0caafd5 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -5611,7 +5611,8 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t
> direction,
> tmp |= (msix_vector << (8 * (queue & 0x3)));
> IXGBE_WRITE_REG(hw, IXGBE_IVAR(idx), tmp);
> } else if ((hw->mac.type == ixgbe_mac_82599EB) ||
> - (hw->mac.type == ixgbe_mac_X540)) {
> + (hw->mac.type == ixgbe_mac_X540) ||
> + (hw->mac.type == ixgbe_mac_X550)) {
> if (direction == -1) {
> /* other causes */
> idx = ((queue & 1) * 8);
> @@ -5719,6 +5720,7 @@ ixgbe_configure_msix(struct rte_eth_dev *dev)
> break;
> case ixgbe_mac_82599EB:
> case ixgbe_mac_X540:
> + case ixgbe_mac_X550:
> ixgbe_set_ivar_map(hw, -1, 1, IXGBE_MISC_VEC_ID);
> break;
> default:
> --
> 2.7.4
On 7/19/2017 10:22 AM, Dai, Wei wrote:
>
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Qiming Yang
>> Sent: Tuesday, July 18, 2017 10:29 AM
>> To: dev@dpdk.org
>> Cc: stable@dpdk.org; Lu, Wenzhuo <wenzhuo.lu@intel.com>; Yang, Qiming
>> <qiming.yang@intel.com>
>> Subject: [dpdk-dev] [PATCH v2] net/ixgbe: fix Rx/Tx queue interrupt for x550
>> devices
>>
>> x550 devices not do interrupt vector mapping before enable Rx/Tx queue
>> interrupt, makes interrupt mode can't work neither with igb_uio or VFIO.
>>
>> Fixes: d2e72774e58c ("ixgbe/base: support X550")
>>
>> Signed-off-by: Qiming Yang <qiming.yang@intel.com>
> Have looked through datasheet of 82599, X540 and X550.
> Acked-by: Wei Dai <wei.dai@intel.com>
Applied to dpdk-next-net/master, thanks.
@@ -5611,7 +5611,8 @@ ixgbe_set_ivar_map(struct ixgbe_hw *hw, int8_t direction,
tmp |= (msix_vector << (8 * (queue & 0x3)));
IXGBE_WRITE_REG(hw, IXGBE_IVAR(idx), tmp);
} else if ((hw->mac.type == ixgbe_mac_82599EB) ||
- (hw->mac.type == ixgbe_mac_X540)) {
+ (hw->mac.type == ixgbe_mac_X540) ||
+ (hw->mac.type == ixgbe_mac_X550)) {
if (direction == -1) {
/* other causes */
idx = ((queue & 1) * 8);
@@ -5719,6 +5720,7 @@ ixgbe_configure_msix(struct rte_eth_dev *dev)
break;
case ixgbe_mac_82599EB:
case ixgbe_mac_X540:
+ case ixgbe_mac_X550:
ixgbe_set_ivar_map(hw, -1, 1, IXGBE_MISC_VEC_ID);
break;
default: