On Wed, 11 Mar 2026 13:07:43 -0400
Steven Rostedt <[email protected]> wrote:
> > bpftrace reads the complete list of available functions into
> > userspace, then performs matching against the target function to
> > determine if it is traceable.
>
> Could it parse it in smaller bits? That is, the lock is held only during an
> individual read system call. If it reads the available_filter_functions
> file via smaller buffers, it would not hold the lock for as long
Hmm, I guess this wouldn't help much. I ran:
trace-cmd record -e sys_enter_read -e sys_exit_read -F cat
/sys/kernel/tracing/available_filter_functions > /dev/null
And trace-cmd report shows:
[..]
cat-1208 [001] ..... 142.025582: sys_enter_read: fd:
0x00000003, buf: 0x7fa9daf21000, count: 0x00040000
cat-1208 [001] ..... 142.025995: sys_exit_read: 0xfee
cat-1208 [001] ..... 142.026000: sys_enter_read: fd:
0x00000003, buf: 0x7fa9daf21000, count: 0x00040000
cat-1208 [001] ..... 142.026392: sys_exit_read: 0xff8
cat-1208 [001] ..... 142.026396: sys_enter_read: fd:
0x00000003, buf: 0x7fa9daf21000, count: 0x00040000
cat-1208 [001] ..... 142.026766: sys_exit_read: 0xfed
cat-1208 [001] ..... 142.026770: sys_enter_read: fd:
0x00000003, buf: 0x7fa9daf21000, count: 0x00040000
cat-1208 [001] ..... 142.027113: sys_exit_read: 0xfe0
cat-1208 [001] ..... 142.027117: sys_enter_read: fd:
0x00000003, buf: 0x7fa9daf21000, count: 0x00040000
cat-1208 [001] ..... 142.027502: sys_exit_read: 0xfec
cat-1208 [001] ..... 142.027506: sys_enter_read: fd:
0x00000003, buf: 0x7fa9daf21000, count: 0x00040000
[..]
which shows that even though the read buffer size is 0x40000, the size read
is just 0xff8. So the buffer being read and return is never more than a page.
Unless you are running on powerpc, where the page is likely 64K.
-- Steve