Originally posted by Alex/AT
View Post
Without debug symbols, its ability to be used is limited, but most distributions have kernel symbol packages. They build the kernels as “debug” kernels and strip the symbols into debug symbol packages to produce the binaries that they distribute. Disabling it at the build system level would not make sense for the people who install kernel debug symbols.
Originally posted by Alex/AT
View Post
I know some guys writing an eBPF auditd replacement that is far more performant than auditd. At present, auditd tends to cause systems to slow to a crawl. Their WIP eBPF based prototype does not. If they succeed, eBPF could one day be a feature that improves security by making auditing something you could reasonably do on production machines outside government environments.
Anyway, eBPF is a great feature that has plenty of potential. Want to know the VFS cache hit rate? Use eBPF. Want to know which files are frequently accessed? Use eBPF. Want to know the distribution of filesystem/syscall/network latencies? Use eBPF. The iovisor/bcc project on GitHub makes doing such things with eBPF easy for system administrators. The sheer number of things it enables is far more than we would have with hard coded instrumentation in the kernel that only serves to bloat the kernel when not in use. eBPF gives us basically zero additional kernel bloat when not in use.
It also allows for debugging high frequency events, which was impossible with other means. ftrace for example imposed too much overhead to be used for frequently occurring events that lasted hundreds of nanoseconds because the overhead would cause the data to not match what happens on a production system. eBPF is low overhead enough that you can use it for that. It has been used inside Netflix for that purpose for years. See Brendan Gregg’s presentations for examples.
Leave a comment: