On Fri, Jan 29, 2021 at 12:52:50PM +0000, Burakov, Anatoly wrote: > On 29-Jan-21 10:05 AM, Bruce Richardson wrote: > > On Thu, Jan 28, 2021 at 04:07:07AM +0000, Oscar Zhao wrote: > > > Hello dpdk devs, > > > > > > I would like to discuss the feasibility of implementing CPU topology > > > detection on FreeBSD. Currently both eal_cpu_core_id() and > > > eal_cpu_socket_id() in rte_eal library always return 0 on FreeBSD, making > > > NUMA-aware development impossible without resorting to external libraries > > > or system APIs. > > > > > > The CPU topology information is available via sysct > > > kern.sched.topology_spec. The only issue is that the return value is an > > > XML formatted object (see > > > https://forums.freebsd.org/threads/number-of-cpus-and-cores.41299/). > > > (https://forums.freebsd.org/threads/number-of-cpus-and-cores.41299/) I'm > > > not sure how feasible it is to parse XML inside DPDK. > > > > > > On a side note, obtaining the physical NUMA node id of a core is easy - > > > sysctl dev.cpu.[cpu#].%domain returns the corresponding node id but I > > > have yet found a straightforward way to detect hyperthreads besides the > > > XML thing. > > > > > > Oscar > > > > Even adding in the numa node information would be a welcome start. > > > > There's little value in it though, because as far as i'm aware we can't > allocate memory on specific NUMA nodes in FreeBSD. >
That is because the NUMA support in FreeBSD was not in place when we first did the DPDK port. However, I still see no reason not to start adding it now, even if it is only for information purposes at this point.