From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6CBE5A2E1B for ; Tue, 3 Sep 2019 15:15:21 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5A5AC1E568; Tue, 3 Sep 2019 15:15:21 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 88C0F1E871; Tue, 3 Sep 2019 15:15:19 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Sep 2019 06:15:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,463,1559545200"; d="scan'208";a="182120954" Received: from irsmsx154.ger.corp.intel.com ([163.33.192.96]) by fmsmga008.fm.intel.com with ESMTP; 03 Sep 2019 06:15:17 -0700 Received: from irsmsx105.ger.corp.intel.com ([169.254.7.73]) by IRSMSX154.ger.corp.intel.com ([169.254.12.14]) with mapi id 14.03.0439.000; Tue, 3 Sep 2019 14:15:14 +0100 From: "Ananyev, Konstantin" To: "Smoczynski, MarcinX" , "Wiles, Keith" , "adrien.mazarguil@6wind.com" CC: "dev@dpdk.org" , "stable@dpdk.org" , "Drost, MariuszX" Thread-Topic: [PATCH v1] net/tap: fix blocked rx packets error Thread-Index: AQHVYYP8yA2Ea2BP+0yHZGfPfP+eF6cZ8BBw Date: Tue, 3 Sep 2019 13:15:14 +0000 Message-ID: <2601191342CEEE43887BDE71AB9772580181167F1E@irsmsx105.ger.corp.intel.com> References: <20190902114310.15928-1-marcinx.smoczynski@intel.com> In-Reply-To: <20190902114310.15928-1-marcinx.smoczynski@intel.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmE3ODUwOGMtMGRjMC00MWQ5LTk5YWItZGUwMjA1MDE3NWNiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidnV6RnZsS01xKzY3c2srTEc4aWVkZjRla0JOOGt4SktkclRLZW1TVjNVQ2F0NXBzNXY4SE9PaExxTHRtZ1JZWSJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-stable] [PATCH v1] net/tap: fix blocked rx packets error 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: , Errors-To: stable-bounces@dpdk.org Sender: "stable" > -----Original Message----- > From: Smoczynski, MarcinX > Sent: Monday, September 2, 2019 12:43 PM > To: Ananyev, Konstantin ; Wiles, Keith ; adrien.mazarguil@6wind.com > Cc: dev@dpdk.org; stable@dpdk.org; Smoczynski, MarcinX ; Drost, MariuszX > Subject: [PATCH v1] net/tap: fix blocked rx packets error >=20 > When OS sends more packets than are beaing read with a single > 'rte_eth_rx_burst' call, rx packets are getting stucked in the tap pmd > and are unable to receive, because trigger_seen is getting updated > and consecutive calls are not getting any packets. >=20 > Do not update trigger_seen unless less than a max number of packets were > received allowing next call to receive the rest. >=20 > Fixes: a0d8e807d9 ("net/tap: add Rx trigger") > Cc: stable@dpdk.org >=20 > Tested-by: Mariusz Drost > Signed-off-by: Marcin Smoczynski > --- > drivers/net/tap/rte_eth_tap.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.= c > index 64bd04911..60121ae56 100644 > --- a/drivers/net/tap/rte_eth_tap.c > +++ b/drivers/net/tap/rte_eth_tap.c > @@ -353,8 +353,7 @@ pmd_rx_burst(void *queue, struct rte_mbuf **bufs, uin= t16_t nb_pkts) >=20 > if (trigger =3D=3D rxq->trigger_seen) > return 0; > - if (trigger) > - rxq->trigger_seen =3D trigger; > + > process_private =3D rte_eth_devices[rxq->in_port].process_private; > rte_compiler_barrier(); > for (num_rx =3D 0; num_rx < nb_pkts; ) { > @@ -433,6 +432,9 @@ pmd_rx_burst(void *queue, struct rte_mbuf **bufs, uin= t16_t nb_pkts) > rxq->stats.ipackets +=3D num_rx; > rxq->stats.ibytes +=3D num_rx_bytes; >=20 > + if (trigger && num_rx < nb_pkts) > + rxq->trigger_seen =3D trigger; > + > return num_rx; > } >=20 > -- Acked-by: Konstantin Ananyev Tested-by: Konstantin Ananyev > 2.17.1