From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A65D4A0C4C for ; Mon, 12 Jul 2021 15:11:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 98DB04069E; Mon, 12 Jul 2021 15:11:47 +0200 (CEST) Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mails.dpdk.org (Postfix) with ESMTP id 291954069D for ; Mon, 12 Jul 2021 15:11:46 +0200 (CEST) Received: by mail-wm1-f43.google.com with SMTP id l6so3093490wmq.0 for ; Mon, 12 Jul 2021 06:11:46 -0700 (PDT) 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=4kNYtoB9erLGiUI/1yjOMbZdCX11vIK65+kL2jwDlXQ=; b=gSZ0QO65gD0n2OZ9kElyKZ3e1ZyPSadvtd0kAbA17TBVsviQxu7Wnuj65/Xg0JRRjR RVv+9JMNgY8Plb5hXa4qPhSJi161WF/kb1gS/cv8TvoiQlWfKUFduYn1URcKfEHxxD2m 4BA9mSWtj7gTbuChgGOMJxTHahyjT4z5D0ltIk+pghiQkAQi7ypYaJzJHcJ8vYrtqWG5 kiRgwtRlMdzhkyJdq2cKEiR6hgFEVmKrW8YV5ey+ckJDlf68QVYm7v06NS/C/3roMMeo umrp4fkUX96+d2DWR7SPQ0Lck+9Vhb/g5E41N2txpnbMY30tGbNJykY5n4+L1zJLvN8n CEtw== 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=4kNYtoB9erLGiUI/1yjOMbZdCX11vIK65+kL2jwDlXQ=; b=jbr3UEGg+ir465jdc9hEX/ytDz63FGW0WmrAbcWt5iKijU3UJiKwH7rIP3LAPFxOfm lanUMJeglxmjt9gs8AfKoh//QrTPtW8hrOY9Ezz7iELGNNN2aa21i+fXEHPS1PJZsIsC AkKtDqvEgy3d0cs7KCurE1B1zCSkMJWbhfLoZfXwX2PuUPePmEwmsNj3400HnbgDg9xG mctlz6sDvtoNLSG5MB7FLeLOOLRJnSngy01BCG+r3DnptrIcgL6xkfWnC3diXkHRZn/Y Mf3hbV5+IWSqQlffSz+lheumQ2f4kBftLlc4GaetBAq8nLh8+yW5KRv0002zoUCnPzWO P2aA== X-Gm-Message-State: AOAM530xPpJ0ApjMOIdWE3oS6Gzk+psTp9N/FD6gEK13+lB7E7UcL1rx epY1zWChqoxzWnXOXHVlQ3c= X-Google-Smtp-Source: ABdhPJyaZTzW+en6lWDcqRN/5wdEnJmdavhjxB1g5Ts0TgU6RQRvc6Hg3Z2xmNzKv5rU6lQn+wyLQA== X-Received: by 2002:a7b:c1cd:: with SMTP id a13mr1833566wmj.75.1626095505987; Mon, 12 Jul 2021 06:11:45 -0700 (PDT) Received: from localhost ([137.220.125.106]) by smtp.gmail.com with ESMTPSA id n7sm19310264wmq.37.2021.07.12.06.11.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jul 2021 06:11:45 -0700 (PDT) From: luca.boccassi@gmail.com To: Yunjian Wang Cc: Cheng Liu , Ferruh Yigit , Ajit Khaparde , dpdk stable Date: Mon, 12 Jul 2021 14:04:26 +0100 Message-Id: <20210712130551.2462159-31-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210712130551.2462159-1-luca.boccassi@gmail.com> References: <20210712130551.2462159-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'kni: fix mbuf allocation for kernel side use' has been queued to stable release 20.11.3 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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 stable release 20.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/14/21. 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. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/172846607c0f9c19fc730e436788cbf94dedb1cb Thanks. Luca Boccassi --- >From 172846607c0f9c19fc730e436788cbf94dedb1cb Mon Sep 17 00:00:00 2001 From: Yunjian Wang Date: Tue, 22 Jun 2021 20:44:29 +0800 Subject: [PATCH] kni: fix mbuf allocation for kernel side use [ upstream commit 0db3d5551abe94bb8a7030c1b90496b290ddb7f4 ] In kni_allocate_mbufs(), we alloc mbuf for alloc_q as this code. allocq_free = (kni->alloc_q->read - kni->alloc_q->write - 1) \ & (MAX_MBUF_BURST_NUM - 1); The value of allocq_free maybe zero, for example : The ring size is 1024. After init, write = read = 0. Then we fill kni->alloc_q to full. At this time, write = 1023, read = 0. Then the kernel send 32 packets to userspace. At this time, write = 1023, read = 32. And then the userspace receive this 32 packets. Then fill the kni->alloc_q, (32 - 1023 - 1) & 31 = 0, fill nothing. ... Then the kernel send 32 packets to userspace. At this time, write = 1023, read = 992. And then the userspace receive this 32 packets. Then fill the kni->alloc_q, (992 - 1023 - 1) & 31 = 0, fill nothing. Then the kernel send 32 packets to userspace. The kni->alloc_q only has 31 mbufs and will drop one packet. Absolutely, this is a special scene. Normally, it will fill some mbufs everytime, but may not enough for the kernel to use. In this patch, we always keep the kni->alloc_q to full for the kernel to use. Fixes: 49da4e82cf94 ("kni: allocate no more mbuf than empty slots in queue") Signed-off-by: Cheng Liu Signed-off-by: Yunjian Wang Acked-by: Ferruh Yigit Acked-by: Ajit Khaparde --- lib/librte_kni/rte_kni.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c index 9dae6a8d7c..eb24b0d0ae 100644 --- a/lib/librte_kni/rte_kni.c +++ b/lib/librte_kni/rte_kni.c @@ -677,8 +677,9 @@ kni_allocate_mbufs(struct rte_kni *kni) return; } - allocq_free = (kni->alloc_q->read - kni->alloc_q->write - 1) - & (MAX_MBUF_BURST_NUM - 1); + allocq_free = kni_fifo_free_count(kni->alloc_q); + allocq_free = (allocq_free > MAX_MBUF_BURST_NUM) ? + MAX_MBUF_BURST_NUM : allocq_free; for (i = 0; i < allocq_free; i++) { pkts[i] = rte_pktmbuf_alloc(kni->pktmbuf_pool); if (unlikely(pkts[i] == NULL)) { -- 2.30.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-07-12 13:41:38.351906477 +0100 +++ 0031-kni-fix-mbuf-allocation-for-kernel-side-use.patch 2021-07-12 13:41:36.294118528 +0100 @@ -1 +1 @@ -From 0db3d5551abe94bb8a7030c1b90496b290ddb7f4 Mon Sep 17 00:00:00 2001 +From 172846607c0f9c19fc730e436788cbf94dedb1cb Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 0db3d5551abe94bb8a7030c1b90496b290ddb7f4 ] + @@ -31 +32,0 @@ -Cc: stable@dpdk.org @@ -38 +39 @@ - lib/kni/rte_kni.c | 5 +++-- + lib/librte_kni/rte_kni.c | 5 +++-- @@ -41 +42 @@ -diff --git a/lib/kni/rte_kni.c b/lib/kni/rte_kni.c +diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c @@ -43,2 +44,2 @@ ---- a/lib/kni/rte_kni.c -+++ b/lib/kni/rte_kni.c +--- a/lib/librte_kni/rte_kni.c ++++ b/lib/librte_kni/rte_kni.c