[DTrace-devel] [PATCH] bpf: allocate the buffers BPF map to fit highest CPU id
Eugene Loh
eugene.loh at oracle.com
Thu Dec 11 23:16:37 UTC 2025
On 12/11/25 17:22, Kris Van Hees via DTrace-devel wrote:
> Even when less than the possible number of CPUs are online, the 'buffers'
> BPF map should be allocated based on the highest possible CPU id because
> probe data is written to the bufer
s/bufer/buffer/
I guess a problem here is that we do not test this case. It would be
hard, but I suppose we should change this situation?
What are the chances of our at least writing out what is per online CPU
and what is per possible CPU id? That way, a future developer would
(hopefully) not have to reverse engineer this stuff.
It seems to me that this patch is an improvement over the status quo.
On the other hand, given the limitations on what we're doing -- notably,
the lack of regular, automated testing -- that should probably at least
be acknowledged in the commit message.
> that corresponds to a given CPU id,
> which could be part of non-sequential CPU id configurations.
>
> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
> ---
> libdtrace/dt_bpf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libdtrace/dt_bpf.c b/libdtrace/dt_bpf.c
> index 0a57b7d2..6568a572 100644
> --- a/libdtrace/dt_bpf.c
> +++ b/libdtrace/dt_bpf.c
> @@ -755,7 +755,7 @@ gmap_create_buffers(dtrace_hdl_t *dtp)
> {
> return create_gmap(dtp, "buffers", BPF_MAP_TYPE_PERF_EVENT_ARRAY,
> sizeof(uint32_t), sizeof(uint32_t),
> - dtp->dt_conf.num_online_cpus);
> + dtp->dt_conf.max_cpuid);
> }
>
> /*
More information about the DTrace-devel
mailing list