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 30FDB4591D; Fri, 6 Sep 2024 13:47:39 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A424642E12; Fri, 6 Sep 2024 13:47:38 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by mails.dpdk.org (Postfix) with ESMTP id 077154029E for ; Fri, 6 Sep 2024 13:47:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1725623257; x=1757159257; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=0j4KbenjQI7Vc0624sXUF47laSqxXvrbDFqlqyOrp8w=; b=LHFIeLxcAb4vYxIWwylHK0/lXBnCFYifCvWnNwgl/WSoiRUjhs5v2OAV Uyn9HwucJy+gu42Mv6ILP+ICyhAej2zu2fk/l6eIDcyVyVxVWjsf8904A jv6xTPD6zFdb/v+WRWfj4OL8Z3ZwvPVSOSCtdT+WMPWKtr4OrPQnKlptl ymA0fURAkaegVGUsPDuG5ekFwVVrwkBERJOZJnZHh4U3z6hMy9dmwaOKP ssBQU7BeGtlloP9z4CH865qEjOIeMDXfK3M9Nydl4W7Zzb3aXYD72RSL2 vF0FMZ4t1vimPqc4SCNmy8FSAPa7cmLSZ+0YmdrqFOkqDaBJLeBl6z31W g==; X-CSE-ConnectionGUID: vztkoCm1RTq6NYcHjSFA1Q== X-CSE-MsgGUID: A9yT7IU9QG+BioS3E2xlaA== X-IronPort-AV: E=McAfee;i="6700,10204,11187"; a="13408792" X-IronPort-AV: E=Sophos;i="6.10,207,1719903600"; d="scan'208";a="13408792" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2024 04:47:36 -0700 X-CSE-ConnectionGUID: FgxmjwMJReu6BOYC9q90lw== X-CSE-MsgGUID: srEV14fnQPqzMUa51a4YCg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,207,1719903600"; d="scan'208";a="66162932" Received: from silpixa00401119.ir.intel.com ([10.55.129.167]) by fmviesa010.fm.intel.com with ESMTP; 06 Sep 2024 04:47:35 -0700 From: Anatoly Burakov To: dev@dpdk.org Subject: [RFC PATCH v1 0/5] Adjust wording for NUMA vs. socket ID in DPDK Date: Fri, 6 Sep 2024 12:47:26 +0100 Message-ID: X-Mailer: git-send-email 2.43.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org While initially, DPDK has used the term "socket ID" to refer to physical package ID, the last time DPDK read "physical_package_id" for socket ID was ~9 years ago, so it's been a while since we've actually switched over to using the term "socket" to mean "NUMA node". This wasn't a problem before, as most systems had one NUMA node per physical socket. However, in the last few years, more and more systems have multiple NUMA nodes per physical CPU socket. Since DPDK used NUMA nodes already, the transition was pretty seamless, however now we're faced with a situation when most of our documentation still uses outdated terms, and our API is ripe with references to "sockets" when in actuality we mean "NUMA nodes". This could be a source of confusion. While completely renaming all of our API's would be a huge effort, will take a long time and arguably wouldn't even be worth the API breakages (given that this mismatch between terminology and reality is implicitly understood by most people working on DPDK, and so this isn't so much of a problem in practice), we can do some tweaks around the edges and at least document this unfortunate reality. This patchset suggests the following changes: - Update rte_socket/rte_lcore documentation to refer to NUMA nodes rather than sockets - Rename internal structures' fields to better reflect this intention - Rename --socket-mem/--socket-limit flags to refer to NUMA rather than sockets - Add internal API to get physical package ID [1] The documentation is updated to refer to new EAL flags, but is otherwise left untouched, and instead the entry in "glossary" is amended to indicate that when DPDK documentation refers to "sockets", it actually means "NUMA ID's". As next steps, we could rename all API parameters to refer to NUMA ID rather than socket ID - this would not break neither API nor ABI, and instead would be a documentation change in practice. [1] This could be used to group lcores by physical package, see e.g. discussion under this patch: https://patches.dpdk.org/project/dpdk/cover/20240827151014.201-1-vipin.varghese@amd.com/ Anatoly Burakov (5): eal: update socket ID API documentation lcore: rename socket ID to NUMA ID eal: rename socket ID to NUMA ID in internal config eal: rename --socket-mem/--socket-limit lcore: store physical package ID internally doc/guides/faq/faq.rst | 4 +-- doc/guides/howto/lm_bond_virtio_sriov.rst | 2 +- doc/guides/howto/lm_virtio_vhost_user.rst | 2 +- doc/guides/howto/pvp_reference_benchmark.rst | 4 +-- .../virtio_user_for_container_networking.rst | 2 +- doc/guides/linux_gsg/build_sample_apps.rst | 20 +++++------ doc/guides/linux_gsg/linux_eal_parameters.rst | 16 ++++----- doc/guides/nics/mlx4.rst | 2 +- doc/guides/nics/mlx5.rst | 2 +- .../prog_guide/env_abstraction_layer.rst | 12 +++---- doc/guides/prog_guide/glossary.rst | 5 ++- doc/guides/prog_guide/multi_proc_support.rst | 2 +- doc/guides/sample_app_ug/bbdev_app.rst | 6 ++-- doc/guides/sample_app_ug/ipsec_secgw.rst | 6 ++-- doc/guides/sample_app_ug/vdpa.rst | 2 +- doc/guides/sample_app_ug/vhost.rst | 4 +-- lib/eal/common/eal_common_dynmem.c | 14 ++++---- lib/eal/common/eal_common_lcore.c | 28 +++++++++++++--- lib/eal/common/eal_common_options.c | 33 ++++++++++--------- lib/eal/common/eal_common_thread.c | 12 +++---- lib/eal/common/eal_internal_cfg.h | 10 +++--- lib/eal/common/eal_options.h | 8 +++-- lib/eal/common/eal_private.h | 5 ++- lib/eal/common/eal_thread.h | 11 +++++++ lib/eal/common/malloc_heap.c | 2 +- lib/eal/freebsd/eal.c | 2 +- lib/eal/freebsd/eal_lcore.c | 6 ++++ lib/eal/include/rte_lcore.h | 25 +++++++------- lib/eal/linux/eal.c | 22 ++++++------- lib/eal/linux/eal_lcore.c | 28 ++++++++++++++++ lib/eal/linux/eal_memory.c | 22 ++++++------- lib/eal/windows/eal.c | 2 +- lib/eal/windows/eal_lcore.c | 7 ++++ 33 files changed, 204 insertions(+), 124 deletions(-) -- 2.43.5