Occasionally, bpftop freezes up when the system is under load. It can only be terminated by killing it.
Tested was an xdp program loaded to two 10G interfaces, with traffic of about 5 Gbit/s. Final load displayed by bpftop was 42%.
#0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1 0x0000559a818929b4 in std::sys::unix::futex::futex_wait ()
at library/std/src/sys/unix/futex.rs:62
#2 std::sys::unix::locks::futex_mutex::Mutex::lock_contended ()
at library/std/src/sys/unix/locks/futex_mutex.rs:56
#3 0x0000559a818a5cf2 in bpftop::app::App::selected_program ()
#4 0x0000559a81899036 in bpftop::render_graphs ()
#5 0x0000559a81896321 in bpftop::ui ()
#6 0x0000559a8189ec35 in ratatui::terminal::terminal::Terminal<B>::draw ()
#7 0x0000559a81895f76 in bpftop::main ()
#8 0x0000559a818a4133 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#9 0x0000559a818a186d in _ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17h1d1f4f019d401e61E.llvm.4513734777494074926 ()
#10 0x0000559a818f3cf1 in core::ops::function::impls::{impl#2}::call_once<(), (dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> () at library/core/src/ops/function.rs:284
#11 std::panicking::try::do_call<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> ()
at library/std/src/panicking.rs:552
#12 std::panicking::try<i32, &(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe)> ()
at library/std/src/panicking.rs:516
#13 std::panic::catch_unwind<&(dyn core::ops::function::Fn<(), Output=i32> + core::marker::Sync + core::panic::unwind_safe::RefUnwindSafe), i32> ()
at library/std/src/panic.rs:142
#14 std::rt::lang_start_internal::{closure#2} () at library/std/src/rt.rs:148
#15 std::panicking::try::do_call<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panicking.rs:552
#16 std::panicking::try<isize, std::rt::lang_start_internal::{closure_env#2}>
() at library/std/src/panicking.rs:516
#17 std::panic::catch_unwind<std::rt::lang_start_internal::{closure_env#2}, isize> () at library/std/src/panic.rs:142
#18 std::rt::lang_start_internal () at library/std/src/rt.rs:148
#19 0x0000559a8189b315 in main ()