From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 8FA791B455 for ; Thu, 31 Jan 2019 16:50:37 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id D89442C9C9C; Thu, 31 Jan 2019 15:50:36 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-117-200.ams2.redhat.com [10.36.117.200]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9EC955C21F; Thu, 31 Jan 2019 15:50:35 +0000 (UTC) From: Kevin Traynor To: Hemant Agrawal Cc: dpdk stable Date: Thu, 31 Jan 2019 15:48:39 +0000 Message-Id: <20190131154901.5383-31-ktraynor@redhat.com> In-Reply-To: <20190131154901.5383-1-ktraynor@redhat.com> References: <20190131154901.5383-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Thu, 31 Jan 2019 15:50:37 +0000 (UTC) Subject: [dpdk-stable] patch 'bus/dpaa: fix logical to physical core affine logic' has been queued to LTS release 18.11.1 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: Thu, 31 Jan 2019 15:50:38 -0000 Hi, FYI, your patch has been queued to LTS release 18.11.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/07/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. Kevin Traynor --- >>From 8b38e808b5320a11ff70690876a2eab2d6c05d8b Mon Sep 17 00:00:00 2001 From: Hemant Agrawal Date: Wed, 26 Dec 2018 11:33:47 +0000 Subject: [PATCH] bus/dpaa: fix logical to physical core affine logic [ upstream commit afb2f8fd5a0fb82d38c51d6e100cc14220b7db7b ] The code was treating the lcore id as physical core id. The code is updated to use actual physical core value for any core affinity logic. Note that DPAA devices are single cluster systems. Fixes: 5d944582d028 ("bus/dpaa: check portal presence in the caller function") Signed-off-by: Hemant Agrawal --- drivers/bus/dpaa/dpaa_bus.c | 41 +++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/drivers/bus/dpaa/dpaa_bus.c b/drivers/bus/dpaa/dpaa_bus.c index 204a50b1e..c7da96f8d 100644 --- a/drivers/bus/dpaa/dpaa_bus.c +++ b/drivers/bus/dpaa/dpaa_bus.c @@ -251,7 +251,6 @@ dpaa_clean_device_list(void) int rte_dpaa_portal_init(void *arg) { - cpu_set_t cpuset; pthread_t id; - uint32_t cpu = rte_lcore_id(); + unsigned int cpu, lcore = rte_lcore_id(); int ret; struct dpaa_portal *dpaa_io_portal; @@ -259,19 +258,19 @@ int rte_dpaa_portal_init(void *arg) BUS_INIT_FUNC_TRACE(); - if ((size_t)arg == 1 || cpu == LCORE_ID_ANY) - cpu = rte_get_master_lcore(); - /* if the core id is not supported */ + if ((size_t)arg == 1 || lcore == LCORE_ID_ANY) + lcore = rte_get_master_lcore(); else - if (cpu >= RTE_MAX_LCORE) + if (lcore >= RTE_MAX_LCORE) return -1; - /* Set CPU affinity for this thread */ - CPU_ZERO(&cpuset); - CPU_SET(cpu, &cpuset); + cpu = lcore_config[lcore].core_id; + + /* Set CPU affinity for this thread.*/ id = pthread_self(); - ret = pthread_setaffinity_np(id, sizeof(cpu_set_t), &cpuset); + ret = pthread_setaffinity_np(id, sizeof(cpu_set_t), + &lcore_config[lcore].cpuset); if (ret) { - DPAA_BUS_LOG(ERR, "pthread_setaffinity_np failed on " - "core :%d with ret: %d", cpu, ret); + DPAA_BUS_LOG(ERR, "pthread_setaffinity_np failed on core :%u" + " (lcore=%u) with ret: %d", cpu, lcore, ret); return ret; } @@ -280,21 +279,23 @@ int rte_dpaa_portal_init(void *arg) ret = bman_thread_init(); if (ret) { - DPAA_BUS_LOG(ERR, "bman_thread_init failed on " - "core %d with ret: %d", cpu, ret); + DPAA_BUS_LOG(ERR, "bman_thread_init failed on core %u" + " (lcore=%u) with ret: %d", cpu, lcore, ret); return ret; } - DPAA_BUS_LOG(DEBUG, "BMAN thread initialized"); + DPAA_BUS_LOG(DEBUG, "BMAN thread initialized - CPU=%d lcore=%d", + cpu, lcore); /* Initialise qman thread portals */ ret = qman_thread_init(); if (ret) { - DPAA_BUS_LOG(ERR, "bman_thread_init failed on " - "core %d with ret: %d", cpu, ret); + DPAA_BUS_LOG(ERR, "qman_thread_init failed on core %u" + " (lcore=%u) with ret: %d", cpu, lcore, ret); bman_thread_finish(); return ret; } - DPAA_BUS_LOG(DEBUG, "QMAN thread initialized"); + DPAA_BUS_LOG(DEBUG, "QMAN thread initialized - CPU=%d lcore=%d", + cpu, lcore); dpaa_io_portal = rte_malloc(NULL, sizeof(struct dpaa_portal), @@ -313,6 +314,6 @@ int rte_dpaa_portal_init(void *arg) ret = pthread_setspecific(dpaa_portal_key, (void *)dpaa_io_portal); if (ret) { - DPAA_BUS_LOG(ERR, "pthread_setspecific failed on " - "core %d with ret: %d", cpu, ret); + DPAA_BUS_LOG(ERR, "pthread_setspecific failed on core %u" + " (lcore=%u) with ret: %d", cpu, lcore, ret); dpaa_portal_finish(NULL); -- 2.19.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-01-31 15:44:06.469698848 +0000 +++ 0031-bus-dpaa-fix-logical-to-physical-core-affine-logic.patch 2019-01-31 15:44:05.000000000 +0000 @@ -1,8 +1,10 @@ -From afb2f8fd5a0fb82d38c51d6e100cc14220b7db7b Mon Sep 17 00:00:00 2001 +From 8b38e808b5320a11ff70690876a2eab2d6c05d8b Mon Sep 17 00:00:00 2001 From: Hemant Agrawal Date: Wed, 26 Dec 2018 11:33:47 +0000 Subject: [PATCH] bus/dpaa: fix logical to physical core affine logic +[ upstream commit afb2f8fd5a0fb82d38c51d6e100cc14220b7db7b ] + The code was treating the lcore id as physical core id. The code is updated to use actual physical core value for any core affinity logic. @@ -10,7 +12,6 @@ Note that DPAA devices are single cluster systems. Fixes: 5d944582d028 ("bus/dpaa: check portal presence in the caller function") -Cc: stable@dpdk.org Signed-off-by: Hemant Agrawal ---