> From: Anatoly Burakov [mailto:anatoly.bura...@intel.com] > Sent: Friday, 6 September 2024 13.47 > To: dev@dpdk.org > Subject: [RFC PATCH v1 0/5] Adjust wording for NUMA vs. socket ID in DPDK > > 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.vargh...@amd.com/
Thank you for cleaning this up, Anatoly. I would prefer to take one more step and also rename functions and parameters, e.g. rte_socket_id() -> rte_numa_id(). For backwards compatibility, macros/functions with the old names can be added.