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 739A7A04F3 for ; Thu, 19 Dec 2019 15:37:21 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 68B0C1BF90; Thu, 19 Dec 2019 15:37:21 +0100 (CET) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by dpdk.org (Postfix) with ESMTP id DC0751BF89 for ; Thu, 19 Dec 2019 15:37:19 +0100 (CET) Received: by mail-wm1-f67.google.com with SMTP id f129so5857872wmf.2 for ; Thu, 19 Dec 2019 06:37:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=8+JI7+wphImbo+3swr2t4FFHg1bw4kJjUCzvX0Tp4nE=; b=Es7HKGYQDjNAzOWJpZX7Xd51NXJfq2viYYx00Ly2L5YV1QAEi+GSKmLi4l1jc2rdYc o6uwE4serFqmDSwhW0Phnu7zOigQFuR1GeCwUDtJ6CvEmVSrUqGAsPdLxXwPlRsvd+jl 8K4DZn1eigT79lYDNQ6sAFbpCjgTRL66oMfmPcO02TrCZNlUUMr6Aeq7w6wlDMOqnIPX YImKNIvKDiE/hV0LbtKQw2hmQGUUsd9fFmyxsMYlPcl3wZsT8/Nhyq+YIOUwyNgzjoCc F5QofhJ+sbqhnz2DaYfJvrc5kWovr8Sa6386gVHoV/mpnAiRAlD1kZuk5+4vNPVR2oey i9Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8+JI7+wphImbo+3swr2t4FFHg1bw4kJjUCzvX0Tp4nE=; b=QbYe3Ic+41DW+hmEKvYmxZHSXvDg2b0SX6l3k7EmHQ0wArviw/Ic8+U3ySY+umhpU/ a1341fZmgtJGTUEzulYfzUHr3hw1U9980yfhmo0t92rExeZjmcBIRsLul4OdKQ90Bvnh PG6AqQXSbpt8yFAAARLXTWsXibqwfJuzkQOkaJNHkYNilUtybS/MHdhFrgUh+2AJaM1Q Yf74AhJQOL1Yk+AtUAsQnoP0V+JXm//R1HpZtqOQ4e8ESkeANbeyVZ6kkmglfX7HfGb6 HFvhl3FZo/8Tw3WdDNBbUTn/giOEQv1QZbjeZr/IM1cqoJGR6knvqSB5xpFPs9zRxIvP iDNQ== X-Gm-Message-State: APjAAAWieepwMz42U55bUd1EtwHU7epxHKKZ13ezKcxh4K+UCPCUeW1W Juy+gMYnLimUqMY0L6nqAGFilavYohQ= X-Google-Smtp-Source: APXvYqzx0Bn5bJkX/5te3qbqssO/i5OcHPB03gUZfXYbKaAC76Y8gANa81vwscf7PnjazjU8QHtltA== X-Received: by 2002:a05:600c:2254:: with SMTP id a20mr10494642wmm.97.1576766239602; Thu, 19 Dec 2019 06:37:19 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id o16sm6690458wmc.18.2019.12.19.06.37.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Dec 2019 06:37:19 -0800 (PST) From: luca.boccassi@gmail.com To: Marcin Smoczynski Cc: Mariusz Drost , Konstantin Ananyev , Keith Wiles , dpdk stable Date: Thu, 19 Dec 2019 14:33:25 +0000 Message-Id: <20191219143447.21506-58-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20191219143447.21506-1-luca.boccassi@gmail.com> References: <20191219143447.21506-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/tap: fix blocked Rx packets' has been queued to LTS release 17.11.10 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" Hi, FYI, your patch has been queued to LTS release 17.11.10 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 12/21/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Thanks. Luca Boccassi --- >From e728ce98e6c6ed5990619a6419b74a8a1e77cc29 Mon Sep 17 00:00:00 2001 From: Marcin Smoczynski Date: Mon, 23 Sep 2019 15:22:47 +0200 Subject: [PATCH] net/tap: fix blocked Rx packets [ upstream commit d070c3413164e3f8f7fa4c4325d7df50a8275f39 ] When OS sends more packets than are being 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. Do not update trigger_seen unless less than a max number of packets were received allowing next call to receive the rest. Remove unnecessary compiler barrier. Fixes: a0d8e807d9de ("net/tap: add Rx trigger") Signed-off-by: Marcin Smoczynski Tested-by: Mariusz Drost Tested-by: Konstantin Ananyev Reviewed-by: Keith Wiles --- drivers/net/tap/rte_eth_tap.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index 220421623b..341a5e00ce 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -308,9 +308,7 @@ pmd_rx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) if (trigger == rxq->trigger_seen) return 0; - if (trigger) - rxq->trigger_seen = trigger; - rte_compiler_barrier(); + for (num_rx = 0; num_rx < nb_pkts; ) { struct rte_mbuf *mbuf = rxq->pool; struct rte_mbuf *seg = NULL; @@ -386,6 +384,9 @@ end: rxq->stats.ipackets += num_rx; rxq->stats.ibytes += num_rx_bytes; + if (trigger && num_rx < nb_pkts) + rxq->trigger_seen = trigger; + return num_rx; } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-12-19 14:32:28.622902251 +0000 +++ 0058-net-tap-fix-blocked-Rx-packets.patch 2019-12-19 14:32:26.109297904 +0000 @@ -1,8 +1,10 @@ -From d070c3413164e3f8f7fa4c4325d7df50a8275f39 Mon Sep 17 00:00:00 2001 +From e728ce98e6c6ed5990619a6419b74a8a1e77cc29 Mon Sep 17 00:00:00 2001 From: Marcin Smoczynski Date: Mon, 23 Sep 2019 15:22:47 +0200 Subject: [PATCH] net/tap: fix blocked Rx packets +[ upstream commit d070c3413164e3f8f7fa4c4325d7df50a8275f39 ] + When OS sends more packets than are being 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 @@ -14,7 +16,6 @@ Remove unnecessary compiler barrier. Fixes: a0d8e807d9de ("net/tap: add Rx trigger") -Cc: stable@dpdk.org Signed-off-by: Marcin Smoczynski Tested-by: Mariusz Drost @@ -25,22 +26,21 @@ 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c -index 922371c295..a13d8d50d7 100644 +index 220421623b..341a5e00ce 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c -@@ -353,10 +353,8 @@ pmd_rx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) +@@ -308,9 +308,7 @@ pmd_rx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) if (trigger == rxq->trigger_seen) return 0; - if (trigger) - rxq->trigger_seen = trigger; -+ - process_private = rte_eth_devices[rxq->in_port].process_private; - rte_compiler_barrier(); ++ for (num_rx = 0; num_rx < nb_pkts; ) { struct rte_mbuf *mbuf = rxq->pool; struct rte_mbuf *seg = NULL; -@@ -433,6 +431,9 @@ end: +@@ -386,6 +384,9 @@ end: rxq->stats.ipackets += num_rx; rxq->stats.ibytes += num_rx_bytes;