From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f194.google.com (mail-wr0-f194.google.com [209.85.128.194]) by dpdk.org (Postfix) with ESMTP id E84651B618 for ; Fri, 3 Nov 2017 10:57:39 +0100 (CET) Received: by mail-wr0-f194.google.com with SMTP id k62so1991757wrc.9 for ; Fri, 03 Nov 2017 02:57:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-transfer-encoding:mime-version; bh=7E560BbNs0jXyI9ZnmmtTVMykKuFXFYZP4TwyMxg9nI=; b=bS3QCyZGkYtQ8UQL8ufDBfoBarKv5IJAQme+JW8BWxhbyuWpT0u7MpoSgUPZJQyDWH eozoD4TobeAZ9chDxhabZQIH4BkGdndCiFJs6BDILQXoyuOgr7bWloSHABJF7odClHoY ZQuFQdSaOMsKhRlsmM4Mj5NgFwCkEFOY22B7gblxFtR5wb7+Ah3aohV157WgJeSDKOPb CAgm05Snn8nEFCRQjAOi/ptiyFWxVYpWM6BvrH1l2G/7P7Sdsl3JBhd2aUtbBbVngdHW ZjMQ8kkRhMBaYXckOWJWAYV3Yh0dRdz8qji0QQXBogKqHHx3vOI7x5i+NRCWz8SaKNcu 6LaQ== X-Gm-Message-State: AMCzsaWsxt1d3h95dckIDADB78gnPk0O3EvCpushoEjbkD7W80clwSeD 65idrqFf+PReUWlR8GlOmJwwcy7uloY= X-Google-Smtp-Source: ABhQp+THH6ggyv9eqbLqck8KgtyebG04bhh/ZLRz/Qg2xsm1Npi4JsrqXV1DmuD1l3oLEmSJqF+D0w== X-Received: by 10.223.186.142 with SMTP id p14mr5667840wrg.169.1509703059398; Fri, 03 Nov 2017 02:57:39 -0700 (PDT) Received: from localhost ([2a00:23c5:bef3:400:4a51:b7ff:fe0b:4749]) by smtp.gmail.com with ESMTPSA id d40sm2551628wma.48.2017.11.03.02.57.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 03 Nov 2017 02:57:38 -0700 (PDT) Message-ID: <1509703057.9111.1.camel@debian.org> From: Luca Boccassi To: Xiaoyun Li , qabuild@intel.com Cc: stable@dpdk.org Date: Fri, 03 Nov 2017 09:57:37 +0000 In-Reply-To: <1509702009-22759-1-git-send-email-xiaoyun.li@intel.com> References: <1509702009-22759-1-git-send-email-xiaoyun.li@intel.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Evolution 3.22.6-1+deb9u1 Mime-Version: 1.0 Subject: Re: [dpdk-stable] [PATCH] net/e1000: fix cannot getting Rx interrupts issue X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Nov 2017 09:57:40 -0000 On Fri, 2017-11-03 at 17:40 +0800, Xiaoyun Li wrote: > When using VFIO and MSIX interrupt mode, cannot get Rx interrupts. > Because > the interrupt vectors that are used by VFIO are not enabled. This > patch > fixes this issue. >=20 > Fixes: c3cd3de0ab50 ("igb: enable Rx queue interrupts for PF") > Cc: stable@dpdk.org >=20 > Signed-off-by: Xiaoyun Li > --- > =C2=A0drivers/net/e1000/igb_ethdev.c | 16 ++++++++++++++-- > =C2=A01 file changed, 14 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/net/e1000/igb_ethdev.c > b/drivers/net/e1000/igb_ethdev.c > index 003bdf0..dc70d22 100644 > --- a/drivers/net/e1000/igb_ethdev.c > +++ b/drivers/net/e1000/igb_ethdev.c > @@ -5387,7 +5387,14 @@ eth_igb_rx_queue_intr_disable(struct > rte_eth_dev *dev, uint16_t queue_id) > =C2=A0{ > =C2=A0 struct e1000_hw *hw =3D > =C2=A0 E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); > - uint32_t mask =3D 1 << queue_id; > + struct rte_pci_device *pci_dev =3D RTE_ETH_DEV_TO_PCI(dev); > + struct rte_intr_handle *intr_handle =3D &pci_dev->intr_handle; > + uint32_t vec =3D E1000_MISC_VEC_ID; > + > + if (rte_intr_allow_others(intr_handle)) > + vec =3D E1000_RX_VEC_START; > + > + uint32_t mask =3D 1 << (queue_id + vec); > =C2=A0 > =C2=A0 E1000_WRITE_REG(hw, E1000_EIMC, mask); > =C2=A0 E1000_WRITE_FLUSH(hw); > @@ -5402,7 +5409,12 @@ eth_igb_rx_queue_intr_enable(struct > rte_eth_dev *dev, uint16_t queue_id) > =C2=A0 E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private); > =C2=A0 struct rte_pci_device *pci_dev =3D RTE_ETH_DEV_TO_PCI(dev); > =C2=A0 struct rte_intr_handle *intr_handle =3D &pci_dev->intr_handle; > - uint32_t mask =3D 1 << queue_id; > + uint32_t vec =3D E1000_MISC_VEC_ID; > + > + if (rte_intr_allow_others(intr_handle)) > + vec =3D E1000_RX_VEC_START; > + > + uint32_t mask =3D 1 << (queue_id + vec); > =C2=A0 uint32_t regval; > =C2=A0 > =C2=A0 regval =3D E1000_READ_REG(hw, E1000_EIMS); Hi, Has this fix, or a version of this fix, being accepted into dpdk/master ? I did a quick search in the git log but cannot see it. If it has, it applies to 16.11 with a small change to get the pci_dev in the "old way", so if you would like it in 16.11.4 and it's accepted in mainline let me know. --=20 Kind regards, Luca Boccassi