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 14845A0527 for ; Mon, 9 Nov 2020 19:46:00 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0EC506883; Mon, 9 Nov 2020 19:45:59 +0100 (CET) Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) by dpdk.org (Postfix) with ESMTP id 1E8F06883 for ; Mon, 9 Nov 2020 19:45:57 +0100 (CET) Received: by mail-wm1-f52.google.com with SMTP id v5so473394wmh.1 for ; Mon, 09 Nov 2020 10:45:57 -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=dymXD6vLBqqH9lHWIYGtYcr31nqN655kw/+yMhrwETo=; b=L1yy69MRf0ytxXRVvHlfJxGgK7QW6olRAdpLBDjowqftId54QLz/7xN+X45YGi9x9B E+UUTK//wMkJCEbeE1z7NFi6NcT4N27MUfd1P/UJgg7IPKhe1Qm5E5IJdV775il+WRss c1yX5MK8uTqfalKMDQao1L1mnklz1i5CIfl76jzEmL/9KWsb/V9HnHGgkcwW89A8GJi7 kjxyfMpaB8JMGmpDZUCFHWOQPI5GStktdqy+qy9JE3PTppkbxl+NUabmZ0ICFYZ2k+ps xQl8+G8W2WaHpNBKAGhM5MFJS4+GwI+tbuxGIzlp1ZCPgD8dZXPc82501Yg98HWxL7w1 jHvA== 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=dymXD6vLBqqH9lHWIYGtYcr31nqN655kw/+yMhrwETo=; b=H2YZKQSyX+NIlc2WSU0qhzwtZgaEGFz7kE+nEMRgrcV7Z6uAcTJxxoMfvndlBGTg5T o0cROQK7/ziaBoEYcDGun2o86SDy33uUQXA6jL+8Ss49XUJMxsjvXM+XzkH9mtx6KgEZ 9QPbTUzr9OvIe1oEonVNNZUm548n1dbLPkZWT55zWvgi35jYubu33o5TPQwmCdPvIzK4 O7OQfYex2l1z2rwan8JLxm6PKVeJhVKduWG5Q5IhmYJ8hC/9d6Das5uV6m4PCd9Q12Qw RvX4Fcgt1mLssH2RYrDXAKuq1xJO5mH82gTUdkoVqt7BLsjVjfmuZxk5sS/p6G77WOWt qL0w== X-Gm-Message-State: AOAM530I3dQdIE2FNWsU84WuPH0sE2MBimzGzS4ynJEz4IbGqNmSQbLn EUb/cPwi4iuGGcFLcFgIXA4Sot6I1uum815W X-Google-Smtp-Source: ABdhPJzJpTu5LTCMFe0Q6ipmAGonsMJdLdOYxARbFUGwyCtjmYayPFHNZCj6qENrNtMLN7F1Mlr/zg== X-Received: by 2002:a7b:c157:: with SMTP id z23mr583824wmi.70.1604947556897; Mon, 09 Nov 2020 10:45:56 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id 130sm339787wmd.18.2020.11.09.10.45.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Nov 2020 10:45:56 -0800 (PST) From: luca.boccassi@gmail.com To: Stephen Hemminger Cc: Olivier Matz , dpdk stable Date: Mon, 9 Nov 2020 18:41:09 +0000 Message-Id: <20201109184111.3463090-81-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201109184111.3463090-1-luca.boccassi@gmail.com> References: <20201028104606.3504127-207-luca.boccassi@gmail.com> <20201109184111.3463090-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'mbuf: fix dynamic fields and flags with multiprocess' has been queued to stable release 19.11.6 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 stable release 19.11.6 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/11/20. 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/64244303057f6f428189c64d46ec4aebcf82a1e8 Thanks. Luca Boccassi --- >From 64244303057f6f428189c64d46ec4aebcf82a1e8 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 4 Nov 2020 08:20:00 -0800 Subject: [PATCH] mbuf: fix dynamic fields and flags with multiprocess [ upstream commit 0429a2e1a445a424b2982f3ce4b3fb34a7d1b796 ] The dynamic flag management is broken if rte_mbuf_dynflag_lookup() is done in a secondary process because the local pointer to the memzone is not ever initialized. Fix it by using the same checks as dynfield_register(). I.e if shared memory zone has not been looked up already, then discover it. Fixes: 4958ca3a443a ("mbuf: support dynamic fields and flags") Signed-off-by: Stephen Hemminger Acked-by: Olivier Matz --- lib/librte_mbuf/rte_mbuf_dyn.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/lib/librte_mbuf/rte_mbuf_dyn.c b/lib/librte_mbuf/rte_mbuf_dyn.c index f071651acf..5762008b7e 100644 --- a/lib/librte_mbuf/rte_mbuf_dyn.c +++ b/lib/librte_mbuf/rte_mbuf_dyn.c @@ -172,7 +172,7 @@ __mbuf_dynfield_lookup(const char *name) break; } - if (te == NULL) { + if (te == NULL || mbuf_dynfield == NULL) { rte_errno = ENOENT; return NULL; } @@ -185,19 +185,15 @@ rte_mbuf_dynfield_lookup(const char *name, struct rte_mbuf_dynfield *params) { struct mbuf_dynfield_elt *mbuf_dynfield; - if (shm == NULL) { - rte_errno = ENOENT; - return -1; - } - rte_mcfg_tailq_read_lock(); - mbuf_dynfield = __mbuf_dynfield_lookup(name); + if (shm == NULL && init_shared_mem() < 0) + mbuf_dynfield = NULL; + else + mbuf_dynfield = __mbuf_dynfield_lookup(name); rte_mcfg_tailq_read_unlock(); - if (mbuf_dynfield == NULL) { - rte_errno = ENOENT; + if (mbuf_dynfield == NULL) return -1; - } if (params != NULL) memcpy(params, &mbuf_dynfield->params, sizeof(*params)); @@ -384,19 +380,15 @@ rte_mbuf_dynflag_lookup(const char *name, { struct mbuf_dynflag_elt *mbuf_dynflag; - if (shm == NULL) { - rte_errno = ENOENT; - return -1; - } - rte_mcfg_tailq_read_lock(); - mbuf_dynflag = __mbuf_dynflag_lookup(name); + if (shm == NULL && init_shared_mem() < 0) + mbuf_dynflag = NULL; + else + mbuf_dynflag = __mbuf_dynflag_lookup(name); rte_mcfg_tailq_read_unlock(); - if (mbuf_dynflag == NULL) { - rte_errno = ENOENT; + if (mbuf_dynflag == NULL) return -1; - } if (params != NULL) memcpy(params, &mbuf_dynflag->params, sizeof(*params)); -- 2.27.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-11-09 18:40:14.164615957 +0000 +++ 0081-mbuf-fix-dynamic-fields-and-flags-with-multiprocess.patch 2020-11-09 18:40:11.239312963 +0000 @@ -1 +1 @@ -From 0429a2e1a445a424b2982f3ce4b3fb34a7d1b796 Mon Sep 17 00:00:00 2001 +From 64244303057f6f428189c64d46ec4aebcf82a1e8 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 0429a2e1a445a424b2982f3ce4b3fb34a7d1b796 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ -index e10f4fb125..fd3e019a22 100644 +index f071651acf..5762008b7e 100644 @@ -27 +28 @@ -@@ -174,7 +174,7 @@ __mbuf_dynfield_lookup(const char *name) +@@ -172,7 +172,7 @@ __mbuf_dynfield_lookup(const char *name) @@ -36 +37 @@ -@@ -187,19 +187,15 @@ rte_mbuf_dynfield_lookup(const char *name, struct rte_mbuf_dynfield *params) +@@ -185,19 +185,15 @@ rte_mbuf_dynfield_lookup(const char *name, struct rte_mbuf_dynfield *params) @@ -61 +62 @@ -@@ -386,19 +382,15 @@ rte_mbuf_dynflag_lookup(const char *name, +@@ -384,19 +380,15 @@ rte_mbuf_dynflag_lookup(const char *name,