cloudius-systems / osv

OSv, a new operating system for the cloud.
osv.io
Other
4.12k stars 605 forks source link

Trace prof - lost information in debug mode #1221

Closed MTJH1404 closed 1 year ago

MTJH1404 commented 1 year ago

I am trying to analyze the behavior of an application (duckdb) on osv. Unfortunately osv does not give me a resolution of the symbols of my application. When I tried to use trace in debug mode, I always got more or less the same output from trace prof, regardless of the image used (built with the build script). Example is shown below. Is there any way to extend the symbol resolution in osv to include the ported application?

Example using native-example with ./scripts/run.py -c 1 --sampler 10000 --trace-backtrace -m 50G -p kvm -H Prof output debug mode:

(100.00%, #4017) All
 0x40540abd
 osv_route_rtmsg(int, char const*, char const*, char const*, int, gw_type) [clone .constprop.0]
 std::to_chars_result std::__floating_to_chars_shortest<long double>(char*, char*, long double, std::chars_format)
 std::enable_if<std::__or_<std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, signed char>, std::is_same<std::remove_cv<unsigned __int128>::type, short>, std::is_same<std::remove_cv<unsigned __int128>::type, int>, std::is_same<std::remove_cv<unsigned __int128>::type, long>, std::is_same<std::remove_cv<unsigned __int128>::type, long long>, std::is_same<std::remove_cv<unsigned __int128>::type, __int128> >, std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, unsigned char>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned short>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned int>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned __int128> >, std::is_same<char, std::remove_cv<unsigned __int128>::type> >::value, std::to_chars_result>::type std::__to_chars_i<unsigned __int128>(char*, char*, unsigned __int128, int)
 std::to_chars_result std::__floating_to_chars_shortest<float>(char*, char*, float, std::chars_format)
 std::to_chars(char*, char*, float)
 std::enable_if<std::__or_<std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, signed char>, std::is_same<std::remove_cv<unsigned __int128>::type, short>, std::is_same<std::remove_cv<unsigned __int128>::type, int>, std::is_same<std::remove_cv<unsigned __int128>::type, long>, std::is_same<std::remove_cv<unsigned __int128>::type, long long>, std::is_same<std::remove_cv<unsigned __int128>::type, __int128> >, std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, unsigned char>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned short>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned int>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned __int128> >, std::is_same<char, std::remove_cv<unsigned __int128>::type> >::value, std::to_chars_result>::type std::__detail::__to_chars_16<unsigned __int128>(char*, char*, unsigned __int128)
 std::to_chars_result std::__floating_to_chars_shortest<float>(char*, char*, float, std::chars_format)
 uw_frame_state_for
 execute_cfa_program

Prof output release mode:

(100.00%, #3450) All
 |-- (71.54%, #2468) sched::cpu::idle()
 |    std::_Function_handler<void (), sched::cpu::init_idle_thread()::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    __invoke_r<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    sched::thread::main()
 |   
 |-- (7.54%, #260) console::VGAConsole::probe(hw::hw_device*)
 |    std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    operator()
 |    __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    std::function<void (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    hw::device_manager::for_each_device(std::function<void (hw::hw_device*)>)
 |    hw::driver_manager::load_all()
 |   
 |-- (3.54%, #122) SHA256_Update
 |    SHA256_Update
 |    |-- (3.33%, #115) 0x10000005283b
 |    |    |-- (3.28%, #113) 0x10000009b696
 |    |    |    0x100000095ea7
 |    |    |   
 |    |    \-- (0.06%, #2) 0x10000009b4e6
 |    |         0x10000009609e
 |    |   
 |    |-- (0.12%, #4) random_process_event(harvest*)
 |    |    random_kthread(void*)
 |    |    sched::thread::main()
 |    |   
 |    \-- (0.09%, #3) reseed(unsigned int)
 |         random_process_event(harvest*)
 |         random_kthread(void*)
 |   
 |-- (2.87%, #99) sched::thread::thread(std::function<void ()>, sched::thread::attr, bool, bool)
 |    |-- (2.70%, #93) kthread_add
 |    |    kthread_add
 |    |    |-- (2.67%, #92) taskqueue_start_threads
 |    |    |    0x10000000bb9c
 |    |    |   
 |    |    \-- (0.03%, #1) 0x10000006421f
 |    |         0x10000005a9ab
 |    |   
 |    |-- (0.12%, #4) osv::rcu_flush()
 |    |    osv::rcu_flush()
 |    |    elf::program::remove_object(elf::object*)
 |    |    std::_Sp_counted_deleter<elf::file*, elf::program::load_object(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::vector<std::shared_ptr<elf::object>, std::allocator<std::shared_ptr<elf::object> > >&)::{lambda(elf::object*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()
 |    |    _M_dispose
 |    |   
 |    |-- (0.03%, #1) sched::thread* sched::thread::make<std::function<void ()>&, sched::thread::attr&>(std::function<void ()>&, sched::thread::attr&)
 |    |    virtio::net::rxq::rxq(virtio::vring*, std::function<void ()>)
 |    |    virtio::net::net(virtio::virtio_device&)
 |    |    virtio::net* aligned_new<virtio::net, virtio::virtio_device&>(virtio::virtio_device&)
 |    |    virtio::net::probe(hw::hw_device*)
 |    |    std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    |    operator()
 |    |    __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    |    __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    |   
 |    \-- (0.03%, #1) virtio::rng::rng(virtio::virtio_device&)
 |         virtio::rng::rng(virtio::virtio_device&)
 |         hw::hw_driver* virtio::probe<virtio::rng, (unsigned short)4>(hw::hw_device*)
 |         std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |         operator()
 |         __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |         __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |   
 |-- (2.38%, #82) memory::malloc_large(unsigned long, unsigned long, bool, bool)
 |    std_malloc(unsigned long, unsigned long)
 |    posix_memalign
 |    aligned_alloc
 |   
 |-- (2.23%, #77) sched::cpu::do_idle()
 |    sched::cpu::idle()
 |    std::_Function_handler<void (), sched::cpu::init_idle_thread()::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    __invoke_r<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    sched::thread::main()
 |   
 |-- (2.06%, #71) 0x100000024f6c
 |    0x10000002dae4
 |    0x10000006350a
 |    0x100000084f81
 |   
 |-- (1.97%, #68) memory::alloc_huge_page(unsigned long)
 |    mmu::uninitialized_anonymous_page_provider::map(unsigned long, mmu::hw_ptep<1>, mmu::pt_element<1>, bool)
 |    bool mmu::populate<(mmu::account_opt)1>::page<1>(mmu::hw_ptep<1>, unsigned long)
 |    page<mmu::populate<>, 1>
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    std::enable_if<((2)==mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |   
 |-- (1.97%, #68) mmu::uninitialized_anonymous_page_provider::map(unsigned long, mmu::hw_ptep<1>, mmu::pt_element<1>, bool)
 |    bool mmu::populate<(mmu::account_opt)1>::page<1>(mmu::hw_ptep<1>, unsigned long)
 |    page<mmu::populate<>, 1>
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    std::enable_if<((2)==mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |    std::enable_if<((3)==mmu::map_level<mmu::populate<(mmu::account_opt)1>, 4>::level)&&((3)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)1>, 4>::map_range<3>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<3>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 4>::operator()(mmu::hw_ptep<4>, unsigned long)
 |   
 |-- (0.72%, #25) pci::bar::bar(pci::function*, unsigned char)
 |    pci::device::parse_pci_config()
 |    pci::check_bus(unsigned short)
 |    pci::pci_device_enumeration()
 |   
 |-- (0.23%, #8) virtio::vring::kick()
 |    |-- (0.14%, #5) virtio::blk::make_request(bio*)
 |    |    0x10000006b1d5
 |    |    0x1000000961fa
 |    |   
 |    \-- (0.09%, #3) virtio::rng::refill()
 |         virtio::rng::worker()
 |         std::_Function_handler<void (), virtio::rng::rng(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |         __invoke_impl<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |         __invoke_r<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |   
 |-- (0.23%, #8) 0x10000009ba0c
 |    0x100000097d07
 |    0x1000000961fa
 |    |-- (0.20%, #7) taskqueue_run_locked
 |    |   
 |    \-- (0.03%, #1) 0x1000000973d8
 |   
 |-- (0.17%, #6) 0x10000009611f
 |    0x100000096853
 |    0x10000009a7c7
 |    0x1000000961fa
 |   
 |-- (0.14%, #5) SHA256_Final
 |    0x10000005284a
 |    0x10000009b696
 |    0x100000095ea7
 |   
 |-- (0.12%, #4) 0x100000021e10
 |    0x10000006350a
 |    0x100000084f81
 |    0x10000000aa65
 |   
 |-- (0.09%, #3) std_malloc(unsigned long, unsigned long)
 |    malloc
 |    |-- (0.06%, #2) 0x10000000aeff
 |    |    |-- (0.03%, #1) 0x1000000984c5
 |    |    |   
 |    |    \-- (0.03%, #1) 0x1000000983fa
 |    |   
 |    \-- (0.03%, #1) rt_setgate(rtentry*, bsd_sockaddr*, bsd_sockaddr*)
 |         rtrequest1_fib
 |   
 |-- (0.09%, #3) virtio::blk::req_done()
 |    std::_Function_handler<void (), virtio::blk::blk(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    __invoke_r<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    sched::thread::main()
 |   
 |-- (0.09%, #3) 0x1000000961fa
 |    |-- (0.03%, #1) 0x10000006bb70
 |    |    0x10000006ba79
 |    |    0x10000006da7a
 |    |   
 |    |-- (0.03%, #1) 0x10000009aa41
 |    |    0x1000000961fa
 |    |    0x10000009a9cf
 |    |   
 |    \-- (0.03%, #1) 0x10000006e466
 |         0x1000000961fa
 |         taskqueue_run_locked
 |   
 |-- (0.09%, #3) 0x10000001b5be
 |    0x10000001b67a
 |    |-- (0.06%, #2) 0x100000047e0e
 |    |    0x10000004893b
 |    |   
 |    \-- (0.03%, #1) 0x100000047c19
 |         0x100000047e6c
 |   
 |-- (0.09%, #3) console::console_multiplexer::drivers_write(char const*, unsigned long)
 |    operator()
 |    __invoke_impl<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    __invoke_r<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    std::function<void (char const*, unsigned long)>::operator()(char const*, unsigned long) const
 |    console::LineDiscipline::write(char const*, unsigned long, std::function<void (char const*, unsigned long)>&)
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |   
 |-- (0.06%, #2) pci::device::parse_pci_config()
 |    pci::check_bus(unsigned short)
 |    pci::pci_device_enumeration()
 |    arch_init_drivers()
 |   
 |-- (0.06%, #2) virtio::virtio_driver::virtio_driver(virtio::virtio_device&)
 |    |-- (0.03%, #1) virtio::net::net(virtio::virtio_device&)
 |    |    virtio::net* aligned_new<virtio::net, virtio::virtio_device&>(virtio::virtio_device&)
 |    |    virtio::net::probe(hw::hw_device*)
 |    |    std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    |    operator()
 |    |    __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    |    __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    |   
 |    \-- (0.03%, #1) virtio::rng::rng(virtio::virtio_device&)
 |         hw::hw_driver* virtio::probe<virtio::rng, (unsigned short)4>(hw::hw_device*)
 |         std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |         operator()
 |         __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |         __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |   
 |-- (0.06%, #2) gsi_edge_interrupt::gsi_edge_interrupt(unsigned int, std::function<void ()>)
 |    |-- (0.03%, #1) console::isa_serial_console::dev_start()
 |    |    console::console_driver::start(std::function<void ()>)
 |    |    console::console_multiplexer::start()
 |    |   
 |    \-- (0.03%, #1) Keyboard::Keyboard(sched::thread*)
 |         console::VGAConsole::dev_start()
 |         console::console_driver::start(std::function<void ()>)
 |   
 |-- (0.06%, #2) memory::page_pool::l2::refill()
 |    memory::page_pool::l2::fill_thread()
 |    memory::page_pool::l2::l2()::{lambda()#1}::operator()() const
 |    void std::__invoke_impl<void, memory::page_pool::l2::l2()::{lambda()#1}&>(std::__invoke_other, memory::page_pool::l2::l2()::{lambda()#1}&)
 |    std::enable_if<std::__and_<std::is_void<void>, std::__is_invocable<memory::page_pool::l2::l2()::{lambda()#1}&> >::value, void>::type std::__invoke_r<void, memory::page_pool::l2::l2()::{lambda()#1}&>(memory::page_pool::l2::l2()::{lambda()#1}&)
 |    std::_Function_handler<void (), memory::page_pool::l2::l2()::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    sched::thread::main()
 |   
 |-- (0.06%, #2) malloc
 |    |-- (0.03%, #1) 0x10000000aeff
 |    |    0x100000025d3d
 |    |    0x10000002c2d3
 |    |   
 |    \-- (0.03%, #1) operator new(unsigned long)
 |         osv::commands::commands()
 |         osv::parse_command_line_min(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool&)
 |   
 |-- (0.06%, #2) tsm_screen_draw
 |    console::VGAConsole::flush()
 |    console::console_multiplexer::drivers_flush()
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |   
 |-- (0.06%, #2) taskqueue_enqueue_locked
 |    taskqueue_enqueue
 |    0x10000000bd74
 |    |-- (0.03%, #1) 0x100000098fb2
 |    |    virtio::blk::req_done()
 |    |   
 |    \-- (0.03%, #1) 0x100000096f02
 |         0x1000000961fa
 |   
 |-- (0.03%, #1) pci::pci_device_enumeration()
 |    arch_init_drivers()
 |    do_main_thread(void*)
 |    std::_Function_handler<void (), pthread_private::pthread::pthread(void* (*)(void*), void*, sigset_t, pthread_private::thread_attr const*)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, pthread_private::pthread::pthread(void* (*)(void*), void*, sigset_t, const pthread_private::thread_attr*)::<lambda()>&>
 |    __invoke_r<void, pthread_private::pthread::pthread(void* (*)(void*), void*, sigset_t, const pthread_private::thread_attr*)::<lambda()>&>
 |   
 |-- (0.03%, #1) pci::check_bus(unsigned short)
 |    pci::pci_device_enumeration()
 |    arch_init_drivers()
 |    do_main_thread(void*)
 |   
 |-- (0.03%, #1) tsm_screen_new
 |    console::VGAConsole::VGAConsole(pci::device&)
 |    console::VGAConsole::probe(hw::hw_device*)
 |    std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    operator()
 |    __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |   
 |-- (0.03%, #1) virtio::net::read_config()
 |    virtio::net::init()
 |    virtio::net::pre_init::pre_init(virtio::net*)
 |    virtio::net::net(virtio::virtio_device&)
 |    virtio::net* aligned_new<virtio::net, virtio::virtio_device&>(virtio::virtio_device&)
 |    virtio::net::probe(hw::hw_device*)
 |    std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    operator()
 |    __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |   
 |-- (0.03%, #1) virtio::net* aligned_new<virtio::net, virtio::virtio_device&>(virtio::virtio_device&)
 |    virtio::net::probe(hw::hw_device*)
 |    std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    operator()
 |    __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    std::function<void (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    hw::device_manager::for_each_device(std::function<void (hw::hw_device*)>)
 |    hw::driver_manager::load_all()
 |   
 |-- (0.03%, #1) virtio::blk::blk(virtio::virtio_device&)
 |    hw::hw_driver* virtio::probe<virtio::blk, (unsigned short)2>(hw::hw_device*)
 |    std::function<hw::hw_driver* (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    operator()
 |    __invoke_impl<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    __invoke_r<void, hw::driver_manager::load_all()::<lambda(hw::hw_device*)>&, hw::hw_device*>
 |    std::function<void (hw::hw_device*)>::operator()(hw::hw_device*) const
 |    hw::device_manager::for_each_device(std::function<void (hw::hw_device*)>)
 |   
 |-- (0.03%, #1) pci::function::msix_enable()
 |    interrupt_manager::easy_register(std::initializer_list<msix_binding>)
 |    std::_Function_handler<void (interrupt_manager&), virtio::blk::blk(virtio::virtio_device&)::{lambda(interrupt_manager&)#2}>::_M_invoke(std::_Any_data const&, interrupt_manager&)
 |    __invoke_impl<void, virtio::blk::blk(virtio::virtio_device&)::<lambda(interrupt_manager&)>&, interrupt_manager&>
 |    __invoke_r<void, virtio::blk::blk(virtio::virtio_device&)::<lambda(interrupt_manager&)>&, interrupt_manager&>
 |    virtio::blk::blk(virtio::virtio_device&)
 |   
 |-- (0.03%, #1) elf::object::lookup_symbol(char const*, bool)
 |    elf::program::lookup(char const*, elf::object*)
 |    with_modules<elf::program::lookup(char const*, elf::object*)::<lambda(const elf::program::modules_list&)> >
 |    elf::program::lookup(char const*, elf::object*)
 |    elf::object::symbol(unsigned int, bool)
 |    elf::object::relocate_pltgot()
 |   
 |-- (0.03%, #1) vfprintf
 |    vsnprintf
 |    sprintf
 |    0x1000000980a1
 |   
 |-- (0.03%, #1) sys_mount
 |    mount_zfs_rootfs
 |    std::_Function_handler<void (), load_zfs_library_and_mount_zfs_root(char const*, bool)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, load_zfs_library_and_mount_zfs_root(char const*, bool)::<lambda()>&>
 |    __invoke_r<void, load_zfs_library_and_mount_zfs_root(char const*, bool)::<lambda()>&>
 |    load_zfs_library_and_mount_zfs_root(char const*, bool)
 |   
 |-- (0.03%, #1) 0x100000054211
 |    0x10000005428e
 |    0x10000005956e
 |    0x10000005aeb8
 |   
 |-- (0.03%, #1) 0x10000006ada7
 |    0x1000000977c7
 |    0x1000000961fa
 |    0x10000006bb70
 |   
 |-- (0.03%, #1) 0x10000006e45a
 |    0x1000000961fa
 |    0x100000099020
 |    0x100000020dc4
 |   
 |-- (0.03%, #1) virtio::blk::make_request(bio*)
 |    0x10000006b1d5
 |    0x1000000961fa
 |    0x10000006e466
 |   
 |-- (0.03%, #1) 0x10000000af25
 |    0x100000035941
 |    0x10000003644d
 |    0x10000002becb
 |   
 |-- (0.03%, #1) synch_port::_msleep(void*, mtx*, int, char const*, int)
 |    wait_until_interruptible<synch_port::_msleep(void*, mtx*, int, char const*, int)::<lambda()> >
 |    synch_port::_msleep(void*, mtx*, int, char const*, int)
 |    TQ_SLEEP
 |    taskqueue_thread_loop
 |    sched::thread::main()
 |   
 |-- (0.03%, #1) 0x10000009a930
 |    0x1000000961fa
 |    taskqueue_run_locked
 |    taskqueue_thread_loop
 |   
 |-- (0.03%, #1) memory::page_pool::l2::free_batch(memory::page_pool::page_batch&)
 |    memory::page_pool::l2::free_batch(memory::page_pool::page_batch&)
 |    memory::page_pool::l2::unfill()
 |    memory::page_pool::l2::free_page_batch(memory::page_pool::page_batch*)
 |    memory::page_pool::l1::unfill()
 |    memory::page_pool::l1::free_page(void*)
 |    untracked_free_page
 |    memory::free_page(void*)
 |    free
 |    free
 |   
 |-- (0.03%, #1) 0x100000025244
 |    0x100000036195
 |    0x10000002c921
 |    0x10000006627a
 |   
 |-- (0.03%, #1) 0x100000026a9d
 |    0x1000000270bc
 |    0x10000002b792
 |    0x10000002c990
 |   
 |-- (0.03%, #1) 0x10000009a629
 |    0x1000000961fa
 |    0x100000099020
 |    0x10000002b7eb
 |   
 |-- (0.03%, #1) 0x100000098eab
 |    0x10000006e45a
 |    0x1000000961fa
 |    0x100000020d50
 |   
 |-- (0.03%, #1) 0x100000025600
 |    0x100000036195
 |    0x10000002becb
 |    0x1000000721c0
 |   
 |-- (0.03%, #1) 0x100000026acb
 |    0x10000002732e
 |    0x10000002bf16
 |    0x1000000764d6
 |   
 |-- (0.03%, #1) 0x10000001ecda
 |    0x10000001fcef
 |    0x100000026acb
 |    0x10000002732e
 |   
 |-- (0.03%, #1) 0x100000023529
 |    0x1000000570eb
 |    0x100000063dc7
 |    sched::thread::main()
 |   
 |-- (0.03%, #1) 0x100000026565
 |    0x10000001effc
 |    0x10000009a930
 |    0x1000000961fa
 |   
 |-- (0.03%, #1) 0x10000003a2d8
 |    0x10000002e1d2
 |    0x10000001effc
 |    0x10000009a930
 |   
 |-- (0.03%, #1) 0x10000001ffb7
 |    0x100000026483
 |    0x10000001effc
 |    0x10000009a930
 |   
 |-- (0.03%, #1) 0x100000047d7d
 |    0x100000047e6c
 |    0x10000003924e
 |    0x10000003af44
 |   
 |-- (0.03%, #1) 0x100000020d50
 |    0x1000000210c3
 |    0x100000025210
 |    0x10000002bf46
 |   
 |-- (0.03%, #1) 0x1000000770a4
 |    0x10000007c665
 |    0x10000008dab4
 |    namei
 |   
 |-- (0.03%, #1) std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, logger_severity_e, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, logger_severity_e> > >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
 |    logger::get_tag(char const*)
 |    logger::is_filtered(char const*, logger_severity_e)
 |    logger::wrt(char const*, logger_severity_e, char const*, __va_list_tag*)
 |    tprintf
 |    dhcp::dhcp_interface_state::discover()
 |   
 |-- (0.03%, #1) dhcp_hook_rx(mbuf*)
 |    ip_preprocess_packet
 |    ip_input
 |    netisr_dispatch_src
 |   
 |-- (0.03%, #1) mmu::map_file_page_mmap::map(unsigned long, mmu::hw_ptep<0>, mmu::pt_element<0>, bool)
 |    bool mmu::populate<(mmu::account_opt)1>::page<0>(mmu::hw_ptep<0>, unsigned long)
 |    bool mmu::populate_small<(mmu::account_opt)1>::page<0>(mmu::hw_ptep<0>, unsigned long)
 |    page<mmu::populate_small<(mmu::account_opt)1>, 0>
 |    mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 1>::operator()(mmu::hw_ptep<1>, unsigned long)
 |    std::enable_if<((1)==mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 2>::level)&&((1)!=(0)), void>::type mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 2>::map_range<1>(unsigned long, unsigned long, mmu::populate_small<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<1>, unsigned long)
 |    mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    std::enable_if<((2)==mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate_small<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |    std::enable_if<((3)==mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 4>::level)&&((3)!=(0)), void>::type mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 4>::map_range<3>(unsigned long, unsigned long, mmu::populate_small<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<3>, unsigned long)
 |    mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 4>::operator()(mmu::hw_ptep<4>, unsigned long)
 |   
 |-- (0.03%, #1) std::enable_if<((1)==mmu::map_level<mmu::populate<(mmu::account_opt)1>, 2>::level)&&((1)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)1>, 2>::map_range<1>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<1>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    std::enable_if<((2)==mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |    std::enable_if<((3)==mmu::map_level<mmu::populate<(mmu::account_opt)1>, 4>::level)&&((3)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)1>, 4>::map_range<3>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)1>&, unsigned long, mmu::hw_ptep<3>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)1>, 4>::operator()(mmu::hw_ptep<4>, unsigned long)
 |    void mmu::map_range<mmu::populate<(mmu::account_opt)1> >(unsigned long, unsigned long, unsigned long, mmu::populate<(mmu::account_opt)1>&, unsigned long)
 |    unsigned long mmu::operate_range<mmu::populate<(mmu::account_opt)1> >(mmu::populate<(mmu::account_opt)1>, void*, void*, unsigned long)
 |   
 |-- (0.03%, #1) pagecache::get(vfs_file*, long, mmu::hw_ptep<0>, mmu::pt_element<0>, bool, bool)
 |    vfs_file::map_page(unsigned long, mmu::hw_ptep<0>, mmu::pt_element<0>, bool, bool)
 |    mmu::map_file_page_mmap::map(unsigned long, mmu::hw_ptep<0>, mmu::pt_element<0>, bool)
 |    bool mmu::populate<(mmu::account_opt)1>::page<0>(mmu::hw_ptep<0>, unsigned long)
 |    bool mmu::populate_small<(mmu::account_opt)1>::page<0>(mmu::hw_ptep<0>, unsigned long)
 |    page<mmu::populate_small<(mmu::account_opt)1>, 0>
 |    mmu::map_level<mmu::populate_small<(mmu::account_opt)1>, 1>::operator()(mmu::hw_ptep<1>, unsigned long)
 |   
 |-- (0.03%, #1) std::lock_guard<lockfree::mutex>::~lock_guard()
 |    lock_guard_for_with_lock<lockfree::mutex>::~lock_guard_for_with_lock()
 |    rwlock::runlock()
 |    0x100000025557
 |    0x100000036195
 |    0x10000002c1a8
 |   
 |-- (0.03%, #1) pv_based_clock::time()
 |    osv::clock::wall::now()
 |    clock_gettime
 |    0x10000006f0b4
 |    0x100000097764
 |   
 |-- (0.03%, #1) 0x10000001eeeb
 |    0x10000009a930
 |    0x1000000961fa
 |    0x10000009aa41
 |   
 |-- (0.03%, #1) 0x10000004dce6
 |    0x1000000685fa
 |    0x1000000572d7
 |    0x100000063dc7
 |   
 |-- (0.03%, #1) 0x10000009a9bf
 |    0x1000000961fa
 |    taskqueue_run_locked
 |    taskqueue_thread_loop
 |   
 |-- (0.03%, #1) 0x10000000c5de
 |    0x10000006ef13
 |    0x10000006f1fe
 |    0x1000000964b7
 |   
 |-- (0.03%, #1) 0x100000098ac5
 |    0x1000000570cf
 |    0x100000063dc7
 |    sched::thread::main()
 |   
 |-- (0.03%, #1) 0x100000097292
 |    0x1000000961fa
 |    taskqueue_run_locked
 |    taskqueue_thread_loop
 |   
 |-- (0.03%, #1) virtio::vring::add_buf(void*)
 |    virtio::vring::add_buf_wait(void*)
 |    virtio::blk::make_request(bio*)
 |    0x10000006b1d5
 |   
 |-- (0.03%, #1) 0x100000063194
 |    0x1000000575da
 |    0x100000063dc7
 |    sched::thread::main()
 |   
 |-- (0.03%, #1) taskqueue_run_locked
 |    taskqueue_thread_loop
 |    sched::thread::main()
 |   
 |-- (0.03%, #1) 0x100000095e58
 |    0x10000009aa31
 |    0x1000000961fa
 |    0x10000009aa41
 |   
 \-- (0.03%, #1) 0x10000004e31a
      0x1000000575bf
      0x100000063dc7
      sched::thread::main()
nyh commented 1 year ago

I'm really not an expert in scripts/trace.py, but I have some guesses. The missing symbol names in the the user's shared objects comes comes from not loading into gdb the shared objects. We have a gdb command to do exactly that - "osv syms". I see that scripts/trace.py doesn't (as far as I can tell) call "osv syms" before calling "osv trace save" - and I think that it should. Can you please try it (and if it works, send a patch)?

Regarding the debug build, that's even stranger. Did you remember to add the "-d" option to scripts/trace.py, to tell it to take the debug build instead of the release build?

MTJH1404 commented 1 year ago

Hello thanks for the reply. I will look into the trace script. Regarding the debug problem, I have actually tried all combinations with and without -d. For example:

./scripts/build image=native-example mode=debug
./scripts/run.py -c 1 --sampler 10000 --trace-backtrace -d -m 50G -p kvm -H
./scripts/trace.py extract -LAF -d
./scripts/trace.py prof

Result:

(100.00%, #7058) All
 0x40540abd
 osv_route_rtmsg(int, char const*, char const*, char const*, int, gw_type) [clone .constprop.0]
 std::to_chars_result std::__floating_to_chars_shortest<long double>(char*, char*, long double, std::chars_format)
 std::enable_if<std::__or_<std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, signed char>, std::is_same<std::remove_cv<unsigned __int128>::type, short>, std::is_same<std::remove_cv<unsigned __int128>::type, int>, std::is_same<std::remove_cv<unsigned __int128>::type, long>, std::is_same<std::remove_cv<unsigned __int128>::type, long long>, std::is_same<std::remove_cv<unsigned __int128>::type, __int128> >, std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, unsigned char>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned short>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned int>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned __int128> >, std::is_same<char, std::remove_cv<unsigned __int128>::type> >::value, std::to_chars_result>::type std::__to_chars_i<unsigned __int128>(char*, char*, unsigned __int128, int)
 std::to_chars_result std::__floating_to_chars_shortest<float>(char*, char*, float, std::chars_format)
 std::to_chars_result std::__floating_to_chars_shortest<float>(char*, char*, float, std::chars_format)
 std::enable_if<std::__or_<std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, signed char>, std::is_same<std::remove_cv<unsigned __int128>::type, short>, std::is_same<std::remove_cv<unsigned __int128>::type, int>, std::is_same<std::remove_cv<unsigned __int128>::type, long>, std::is_same<std::remove_cv<unsigned __int128>::type, long long>, std::is_same<std::remove_cv<unsigned __int128>::type, __int128> >, std::__or_<std::is_same<std::remove_cv<unsigned __int128>::type, unsigned char>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned short>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned int>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned long long>, std::is_same<std::remove_cv<unsigned __int128>::type, unsigned __int128> >, std::is_same<char, std::remove_cv<unsigned __int128>::type> >::value, std::to_chars_result>::type std::__detail::__to_chars_16<unsigned __int128>(char*, char*, unsigned __int128)
 std::to_chars_result std::__floating_to_chars_shortest<float>(char*, char*, float, std::chars_format)
 uw_frame_state_for
 execute_cfa_program
MTJH1404 commented 1 year ago

I also tried adding osv syms in the following way:

def extract(args):
    if args.exe:
        elf_path = args.exe
    elif args.debug:
        elf_path = 'build/debug/loader.elf'
    else:
        elf_path = 'build/release/loader.elf'

    if os.path.isfile(elf_path):
        if os.path.exists(args.tracefile):
            os.remove(args.tracefile)
            assert(not os.path.exists(args.tracefile))
        cmdline = ['gdb', elf_path, '-batch']
        # enable adding OSv's python modules to gdb, see
        # http://sourceware.org/gdb/onlinedocs/gdb/Auto_002dloading-safe-path.html
        cmdline.extend(['-iex', 'set auto-load safe-path .'])
        if args.remote:
            cmdline.extend(['-ex', 'target remote ' + args.remote])
        else:
            cmdline.extend(['-ex', 'conn'])
        cmdline.extend(['-ex', 'osv syms'])
        cmdline.extend(['-ex', 'osv trace save ' + args.tracefile])
        proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE,
            stderr=subprocess.STDOUT)
        _stdout, _ = proc.communicate()
        if proc.returncode or not os.path.exists(args.tracefile):
            print(_stdout.decode())
            sys.exit(1)
    else:
        print("error: %s not found" % (elf_path))
        sys.exit(1)

But it didn't change the output of trace prof.

wkozaczuk commented 1 year ago

I think I know what is going on. @nyh is right the extract should call osv syms. However, when OSv stops before normal shutdown (caused by -H) so you can call trace extract, most object files (including application one) loaded by dynamic linker would be unloaded by then I am guessing. So osv syms is essentially fruitless in resolving any application symbols.

If I am correct (can be verified by building with conf-debug_elf=1 and watching what objects and when get loaded or unloaded, see core/elf.cc for more details), then the problem might be solved by somehow forcing OSv to not unload the objects before it shutdowns possibly by adding yet another boot option.

Or maybe it would be enough to have OSv leave information about objects it loaded so even if the get unloaded osv syms or something before would load these objects (we have another gdb command osv load-elf) but I am not sure the results would be correct because objects would probably not be loaded where necessary.

Or maybe there is a better solution. Ideas?

MTJH1404 commented 1 year ago

I'm not sure sure if osv syms has an actual effect on osv trace save. I tried to generate the tracefile during an execution manually through gdb using:

conn
osv syms
osv trace save tracefile

But the result in prof still only resolved this:

(100.00%, #32747) All
 |-- (7.05%, #2308) 0x100005cd81ff
 |    0x100005ced666
 |    0x100005cee3cf
 |    |-- (5.91%, #1935) 0x100005ccb9b6
 |    |   
 |    \-- (1.14%, #373) 0x1000060d1d63
 |   
 |-- (5.98%, #1957) 0x100005d97317
 |    0x100005d84d9c
 |    0x100005d66dab
 |    0x100005d52795
 |   
 |-- (5.57%, #1823) 0x100005da0126
 |    0x100005d97317
 |    0x100005d84d9c
 |    0x100005d66dab
 |   
 |-- (4.86%, #1590) 0x100005d52795
 |    |-- (4.84%, #1586) 0x100005d5d07c
 |    |    0x100005cd7ee9
 |    |    0x100005db5df8
 |    |   
 |    |-- (0.01%, #3) 0x100005d4ce27
 |    |    0x100005ced68c
 |    |    0x100005cee3cf
 |    |   
 |    \-- (0.00%, #1) 0x100005cd81c7
 |         0x100005ced666
 |         0x100005cee3cf
 |   
 |-- (4.66%, #1526) 0x100005db5df8
 |    0x100005db2eff
 |    0x100005dae099
 |    0x100005da71e5
 |   
 |-- (4.25%, #1392) pv_based_clock::uptime()
 |    pv_based_clock::uptime()
 |    osv::clock::uptime::now()
 |    |-- (4.24%, #1389) sched::thread::thread_clock()
 |    |    pagecache::access_scanner::run()
 |    |    sched::thread::main()
 |    |   
 |    \-- (0.01%, #3) void sched::timer_base::set<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
 |         void sched::thread::sleep<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
 |         pagecache::access_scanner::run()
 |         sched::thread::main()
 |   
 |-- (3.55%, #1163) 0x100005cd7ee9
 |    0x100005db5df8
 |    0x100005db2eff
 |    0x100005dae099
 |   
 |-- (2.98%, #977) 0x100005ced666
 |    0x100005cee3cf
 |    |-- (2.43%, #795) 0x100005ccb9b6
 |    |    |-- (1.01%, #330) 0x100006253e56
 |    |    |   
 |    |    |-- (0.94%, #307) 0x100006253a2b
 |    |    |   
 |    |    \-- (0.48%, #158) 0x1000060d1582
 |    |   
 |    \-- (0.56%, #182) 0x1000060d1d63
 |         0x1000060d22f0
 |   
 |-- (2.46%, #804) 0x100005d66dab
 |    0x100005d52795
 |    |-- (2.45%, #803) 0x100005d5d07c
 |    |    0x100005cd7ee9
 |    |   
 |    \-- (0.00%, #1) 0x100005cd81c7
 |         0x100005ced666
 |   
 |-- (2.41%, #788) 0x100005d696b7
 |    0x100005d54e39
 |    |-- (1.61%, #526) 0x100005e69b7e
 |    |    0x1000060e6886
 |    |   
 |    |-- (0.78%, #256) 0x1000060e68e0
 |    |    0x1000060e72a0
 |    |   
 |    |-- (0.00%, #1) 0x100006387a85
 |    |    0x10000628178d
 |    |   
 |    |-- (0.00%, #1) 0x1000063878f6
 |    |    0x100006387b55
 |    |   
 |    |-- (0.00%, #1) 0x1000063875c7
 |    |    0x1000062c4ec4
 |    |   
 |    |-- (0.00%, #1) 0x10000638739e
 |    |    0x100005cd5618
 |    |   
 |    |-- (0.00%, #1) 0x100006387334
 |    |    0x100005cd556f
 |    |   
 |    \-- (0.00%, #1) 0x100006387647
 |         0x1000062c4ec4
 |   
 |-- (2.30%, #752) 0x100005d84d9c
 |    0x100005d66dab
 |    0x100005d52795
 |    |-- (2.29%, #751) 0x100005d5d07c
 |    |   
 |    \-- (0.00%, #1) 0x100005d4ce27
 |   
 |-- (2.05%, #671) 0x100005cd81e8
 |    0x100005ced666
 |    0x100005cee3cf
 |    |-- (1.64%, #536) 0x100005ccb9b6
 |    |   
 |    \-- (0.41%, #135) 0x1000060d1d63
 |   
 |-- (1.78%, #583) 0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |   
 |-- (1.75%, #573) console::console_multiplexer::drivers_write(char const*, unsigned long)
 |    operator()
 |    __invoke_impl<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    __invoke_r<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    std::function<void (char const*, unsigned long)>::operator()(char const*, unsigned long) const
 |    console::LineDiscipline::write(char const*, unsigned long, std::function<void (char const*, unsigned long)>&)
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |   
 |-- (1.69%, #553) 0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (1.39%, #454) 0x100005d5d07c
 |    0x100005cd7ee9
 |    0x100005db5df8
 |    0x100005db2eff
 |   
 |-- (1.35%, #442) 0x100006b0a3e6
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (1.25%, #408) 0x10000602b04a
 |    0x100005fb1c2a
 |    0x100005f91820
 |    0x100005f77fc9
 |   
 |-- (1.20%, #393) 0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (1.20%, #392) sched::thread::main()
 |   
 |-- (1.09%, #358) pagecache::cached_page::map_reduce<pagecache::cached_page::clear_accessed()::{lambda(mmu::hw_ptep<0>)#1}, std::plus<int>, int>::result_type boost::apply_visitor<pagecache::cached_page::map_reduce<pagecache::cached_page::clear_accessed()::{lambda(mmu::hw_ptep<0>)#1}, std::plus<int>, int>, boost::variant<decltype(nullptr), mmu::hw_ptep<0>, std::unique_ptr<std::unordered_set<mmu::hw_ptep<0>, std::hash<mmu::hw_ptep<0> >, std::equal_to<mmu::hw_ptep<0> >, std::allocator<mmu::hw_ptep<0> > >, std::default_delete<std::unordered_set<mmu::hw_ptep<0>, std::hash<mmu::hw_ptep<0> >, std::equal_to<mmu::hw_ptep<0> >, std::allocator<mmu::hw_ptep<0> > > > > >&>(pagecache::cached_page::map_reduce<pagecache::cached_page::clear_accessed()::{lambda(mmu::hw_ptep<0>)#1}, std::plus<int>, int>&, boost::variant<decltype(nullptr), mmu::hw_ptep<0>, std::unique_ptr<std::unordered_set<mmu::hw_ptep<0>, std::hash<mmu::hw_ptep<0> >, std::equal_to<mmu::hw_ptep<0> >, std::allocator<mmu::hw_ptep<0> > >, std::default_delete<std::unordered_set<mmu::hw_ptep<0>, std::hash<mmu::hw_ptep<0> >, std::equal_to<mmu::hw_ptep<0> >, std::allocator<mmu::hw_ptep<0> > > > > >&)
 |    int pagecache::cached_page::for_each_pte<pagecache::cached_page::clear_accessed()::{lambda(mmu::hw_ptep<0>)#1}, std::plus<int>, int>(pagecache::cached_page::clear_accessed()::{lambda(mmu::hw_ptep<0>)#1}, std::plus<int>, int)
 |    pagecache::cached_page::clear_accessed()
 |    pagecache::access_scanner::run()::{lambda(std::pair<arc_buf* const, pagecache::cached_page_arc*>&)#1}::operator()(std::pair<arc_buf* const, pagecache::cached_page_arc*>&) const
 |    pagecache::access_scanner::run()::{lambda(std::pair<arc_buf* const, pagecache::cached_page_arc*>&)#1} std::for_each<std::__detail::_Local_iterator<arc_buf*, std::pair<arc_buf* const, pagecache::cached_page_arc*>, std::__detail::_Select1st, std::hash<arc_buf*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false, false>, pagecache::access_scanner::run()::{lambda(std::pair<arc_buf* const, pagecache::cached_page_arc*>&)#1}>(std::__detail::_Local_iterator<arc_buf*, std::pair<arc_buf* const, pagecache::cached_page_arc*>, std::__detail::_Select1st, std::hash<arc_buf*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false, false>, std::__detail::_Local_iterator<arc_buf*, std::pair<arc_buf* const, pagecache::cached_page_arc*>, std::__detail::_Select1st, std::hash<arc_buf*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false, false>, pagecache::access_scanner::run()::{lambda(std::pair<arc_buf* const, pagecache::cached_page_arc*>&)#1})
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (1.06%, #346) 0x1000062b1804
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.96%, #313) 0x1000062b0c37
 |    0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.84%, #275) 0x100005cd7ef1
 |    0x100005db5df8
 |    0x100005db2eff
 |    0x100005dae099
 |   
 |-- (0.80%, #262) mmu::allocate(mmu::vma*, unsigned long, unsigned long, bool)
 |    mmu::map_anon(void const*, unsigned long, unsigned int, unsigned int)
 |    mmap
 |    0x10000724bc87
 |   
 |-- (0.72%, #237) 0x10000001fbaa
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.72%, #235) 0x100005e266ba
 |    0x100005e25550
 |    0x100005e2536d
 |    0x1000060d403a
 |   
 |-- (0.72%, #235) sched::cpu::idle()
 |    std::_Function_handler<void (), sched::cpu::init_idle_thread()::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    __invoke_r<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    sched::thread::main()
 |   
 |-- (0.68%, #224) 0x100006b0aa5d
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.67%, #221) 0x100006b0a975
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.63%, #207) 0x100005fb1c2a
 |    0x100005f91820
 |    0x100005f77fc9
 |    0x100005f66fe5
 |   
 |-- (0.61%, #199) 0x10000001fb71
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.53%, #175) 0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |    0x10000631519e
 |   
 |-- (0.53%, #173) 0x100005ccddb0
 |    0x100005e2a5fb
 |    0x100005e266ba
 |    0x100005e25550
 |   
 |-- (0.50%, #163) 0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.47%, #154) 0x10000001fbbe
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.44%, #143) 0x100005d6df6d
 |    0x100005d57fbd
 |    |-- (0.20%, #67) 0x1000060e68d8
 |    |    0x1000060e72a0
 |    |   
 |    |-- (0.19%, #62) 0x100005e69b76
 |    |    0x1000060e6886
 |    |   
 |    \-- (0.04%, #14) 0x100005e69b95
 |         0x1000060e6886
 |   
 |-- (0.43%, #141) mmu::uninitialized_anonymous_page_provider::map(unsigned long, mmu::hw_ptep<0>, mmu::pt_element<0>, bool)
 |    bool mmu::populate<(mmu::account_opt)0>::page<0>(mmu::hw_ptep<0>, unsigned long)
 |    page<mmu::populate<(mmu::account_opt)0>, 0>
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 1>::operator()(mmu::hw_ptep<1>, unsigned long)
 |    std::enable_if<((1)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::level)&&((1)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::map_range<1>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<1>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    std::enable_if<((2)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |   
 |-- (0.41%, #133) pv_based_clock::time()
 |    osv::clock::wall::now()
 |    clock_gettime
 |    |-- (0.35%, #116) 0x10000001eda3
 |    |    0x10000001fbb6
 |    |   
 |    |-- (0.05%, #15) std::chrono::_V2::system_clock::now()
 |    |    |-- (0.02%, #7) 0x1000061f00cc
 |    |    |   
 |    |    |-- (0.02%, #7) 0x1000061f022c
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005e68c81
 |    |   
 |    |-- (0.00%, #1) 0x100000034e52
 |    |    0x100000025600
 |    |   
 |    \-- (0.00%, #1) 0x10000001ec8a
 |         0x10000001f3cf
 |   
 |-- (0.41%, #133) pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.38%, #123) ex_pf
 |    |-- (0.35%, #114) 0x100007236586
 |    |    0x100007236801
 |    |    0x100007236891
 |    |   
 |    \-- (0.03%, #9) 0x1000072de7d1
 |         0x1000072e2aad
 |         0x1000072e02d4
 |   
 |-- (0.36%, #118) 0x100006b1194d
 |    0x100006b0a975
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.36%, #117) 0x100005b2b27c
 |    0x10000602b02d
 |    0x100005fb1c2a
 |    0x100005f91820
 |   
 |-- (0.34%, #112) 0x100006b0a37f
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.34%, #112) 0x10000639e8a8
 |    0x10000639f57c
 |    0x100006385c05
 |    0x1000063875ff
 |   
 |-- (0.34%, #112) 0x100006b11900
 |    0x100006b0a975
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.32%, #104) tsm_screen_draw
 |    console::VGAConsole::flush()
 |    console::console_multiplexer::drivers_flush()
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |   
 |-- (0.32%, #104) 0x100006b123af
 |    0x100006b0aa5d
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.31%, #102) 0x100006b4a056
 |    0x100006b0a3e6
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.31%, #101) 0x100007236586
 |    0x100007236801
 |    0x100007236891
 |    0x10000722d3f9
 |   
 |-- (0.30%, #98) 0x100006b4cc30
 |    0x100006b4ca8d
 |    0x100006b49f84
 |    0x100006b0a3c2
 |   
 |-- (0.30%, #97) 0x100005e69bdc
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.28%, #93) 0x100005e69bef
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.28%, #92) 0x100005d4fe4f
 |    |-- (0.28%, #91) 0x100006b0a3d1
 |    |    0x1000060d4cc3
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.00%, #1) 0x1000060d48c6
 |         0x100006cc308e
 |         0x100006252e12
 |   
 |-- (0.27%, #90) 0x10000602b02d
 |    0x100005fb1c2a
 |    0x100005f91820
 |    0x100005f77fc9
 |   
 |-- (0.27%, #89) 0x1000062da85a
 |    0x1000062c4e21
 |    0x1000062b0b5a
 |    0x1000062b07ce
 |   
 |-- (0.27%, #88) 0x100005cd582d
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.27%, #87) 0x100006b12362
 |    0x100006b0aa5d
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.26%, #84) 0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |    0x10000631519e
 |   
 |-- (0.25%, #83) 0x1000062c4e21
 |    0x1000062b0b5a
 |    0x1000062b07ce
 |    0x10000631818b
 |   
 |-- (0.24%, #80) 0x100005d8bb2f
 |    0x100005d6df6d
 |    0x100005d57fbd
 |    |-- (0.12%, #39) 0x100005e69b95
 |    |   
 |    |-- (0.07%, #22) 0x100005e69b76
 |    |   
 |    \-- (0.06%, #19) 0x1000060e68d8
 |   
 |-- (0.21%, #68) osv::clock::uptime::now()
 |    sched::thread::thread_clock()
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.20%, #67) 0x100005e3de51
 |    0x10000639e8a8
 |    0x10000639f57c
 |    0x100006385c05
 |   
 |-- (0.20%, #67) 0x10000009611f
 |    0x100000096853
 |    0x10000009a7c7
 |    0x1000000961fa
 |   
 |-- (0.20%, #66) 0x100005daa13b
 |    0x100005da3b38
 |    0x100005d9b726
 |    0x100005d8bb2f
 |   
 |-- (0.20%, #65) 0x100006b49f84
 |    0x100006b0a3c2
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.20%, #65) 0x1000060e68e8
 |    0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |   
 |-- (0.19%, #63) 0x100005e69b86
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.19%, #63) 0x10000002cd6d
 |    0x10000008eae0
 |    vfs_file::read(uio*, int)
 |    sys_read
 |   
 |-- (0.19%, #63) std_malloc(unsigned long, unsigned long)
 |    malloc
 |    |-- (0.19%, #61) operator new(unsigned long)
 |    |    |-- (0.04%, #14) 0x100005db5df8
 |    |    |   
 |    |    |-- (0.04%, #13) sched::thread::main()
 |    |    |   
 |    |    |-- (0.04%, #12) 0x100005db2e06
 |    |    |   
 |    |    |-- (0.02%, #6) 0x1000063765dd
 |    |    |   
 |    |    |-- (0.01%, #4) 0x100005d865c3
 |    |    |   
 |    |    |-- (0.01%, #3) 0x100005db4bf4
 |    |    |   
 |    |    |-- (0.01%, #3) 0x100005db4f72
 |    |    |   
 |    |    |-- (0.01%, #2) 0x100005db5270
 |    |    |   
 |    |    |-- (0.00%, #1) 0x1000060d4218
 |    |    |   
 |    |    |-- (0.00%, #1) 0x10000632b9fa
 |    |    |   
 |    |    |-- (0.00%, #1) 0x100005cd53d4
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005db67f0
 |    |   
 |    |-- (0.00%, #1) 0x100006256c78
 |    |    0x1000063ceff2
 |    |   
 |    \-- (0.00%, #1) 0x10000000aeff
 |         0x1000000984c5
 |   
 |-- (0.18%, #58) 0x100007176c43
 |    0x10000716ef14
 |    0x100007167015
 |    0x10000715eef5
 |   
 |-- (0.17%, #57) 0x1000062976f3
 |    0x1000062da85a
 |    0x1000062c4e21
 |    0x1000062b0b5a
 |   
 |-- (0.17%, #56) SHA256_Update
 |    SHA256_Update
 |    |-- (0.14%, #47) random_process_event(harvest*)
 |    |    random_kthread(void*)
 |    |    sched::thread::main()
 |    |   
 |    \-- (0.03%, #9) reseed(unsigned int)
 |         random_process_event(harvest*)
 |         random_kthread(void*)
 |   
 |-- (0.17%, #55) 0x100005d9b726
 |    0x100005d8bb2f
 |    0x100005d6df6d
 |    0x100005d57fbd
 |   
 |-- (0.17%, #55) 0x100007154b13
 |    0x100007151fa0
 |    0x1000062976f3
 |    0x1000062da85a
 |   
 |-- (0.16%, #54) 0x100006b12345
 |    0x100006b0aa5d
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.16%, #52) 0x100007176c56
 |    0x10000716ef14
 |    0x100007167015
 |    0x10000715eef5
 |   
 |-- (0.16%, #52) 0x10000715867d
 |    0x100007154b13
 |    0x100007151fa0
 |    0x1000062976f3
 |   
 |-- (0.15%, #49) 0x100006b4ca8d
 |    0x100006b49f84
 |    0x100006b0a3c2
 |    0x1000060d4cc3
 |   
 |-- (0.15%, #49) 0x100006b0a3c2
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.15%, #49) 0x100007167015
 |    0x10000715eef5
 |    0x10000715867d
 |    0x100007154b13
 |   
 |-- (0.15%, #49) 0x10000717e62c
 |    0x100007176c56
 |    0x10000716ef14
 |    0x100007167015
 |   
 |-- (0.15%, #48) 0x100005e2a5c5
 |    0x100005e266ba
 |    0x100005e25550
 |    0x100005e2536d
 |   
 |-- (0.15%, #48) __gnu_cxx::new_allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> >::deallocate(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*, unsigned long)
 |    std::allocator_traits<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::deallocate(std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> >&, std::__detail::_Hash_node<pagecache::arc_hashkey, false>*, unsigned long)
 |    std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::_M_deallocate_node_ptr(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*)
 |    std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::_M_deallocate_node(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*)
 |    std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::_M_deallocate_nodes(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*)
 |    std::_Hashtable<pagecache::arc_hashkey, pagecache::arc_hashkey, std::allocator<pagecache::arc_hashkey>, std::__detail::_Identity, std::equal_to<pagecache::arc_hashkey>, std::hash<pagecache::arc_hashkey>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::clear()
 |    std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >::clear()
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.15%, #48) 0x100005da3b38
 |    0x100005d9b726
 |    0x100005d8bb2f
 |    0x100005d6df6d
 |   
 |-- (0.14%, #47) 0x100005e69bd0
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.14%, #47) 0x100006b118e3
 |    0x100006b0a975
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.14%, #47) 0x10000715eef5
 |    0x10000715867d
 |    0x100007154b13
 |    0x100007151fa0
 |   
 |-- (0.14%, #47) 0x100007151fa0
 |    0x1000062976f3
 |    0x1000062da85a
 |    0x1000062c4e21
 |   
 |-- (0.14%, #46) 0x100007185ea2
 |    0x10000717e62c
 |    0x100007176c56
 |    0x10000716ef14
 |   
 |-- (0.14%, #46) 0x100006b49e51
 |    0x100006b0a3f5
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.13%, #44) 0x1000071f4eab
 |    0x1000071eff26
 |    0x1000071eafa5
 |    0x1000071e6007
 |   
 |-- (0.13%, #43) 0x100006b0a3f5
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.13%, #43) 0x1000062b0b5a
 |    0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.13%, #43) 0x1000071aeed5
 |    0x1000071a84b8
 |    0x1000071a1b02
 |    0x10000719b0c2
 |   
 |-- (0.13%, #42) 0x10000001fbb6
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.13%, #42) 0x1000071cd22e
 |    0x1000071c8247
 |    0x1000071c258b
 |    0x1000071bc1db
 |   
 |-- (0.13%, #42) 0x100005d57fbd
 |    |-- (0.09%, #28) 0x100005e69b95
 |    |    0x1000060e6886
 |    |    0x1000060e72a0
 |    |   
 |    |-- (0.03%, #11) 0x100005e69b76
 |    |    0x1000060e6886
 |    |    0x1000060e72a0
 |    |   
 |    \-- (0.01%, #3) 0x1000060e68d8
 |         0x1000060e72a0
 |         0x100006cc30c9
 |   
 |-- (0.13%, #41) 0x10000715eee2
 |    0x10000715867d
 |    0x100007154b13
 |    0x100007151fa0
 |   
 |-- (0.12%, #40) 0x10000716ef14
 |    0x100007167015
 |    0x10000715eef5
 |    0x10000715867d
 |   
 |-- (0.12%, #39) 0x1000062c617a
 |    0x1000062b1760
 |    0x1000062b13d3
 |    0x10000631818b
 |   
 |-- (0.12%, #39) 0x1000060e690e
 |    0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |   
 |-- (0.12%, #38) 0x100005d54e39
 |    |-- (0.06%, #20) 0x1000060e68e0
 |    |    0x1000060e72a0
 |    |    0x100006cc30c9
 |    |   
 |    \-- (0.05%, #18) 0x100005e69b7e
 |         0x1000060e6886
 |         0x1000060e72a0
 |   
 |-- (0.12%, #38) 0x1000060e68d8
 |    0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |   
 |-- (0.11%, #37) 0x10000602afe0
 |    0x100005fb1c2a
 |    0x100005f91820
 |    0x100005f77fc9
 |   
 |-- (0.11%, #36) 0x10000719b0af
 |    0x10000719468a
 |    0x10000718d51d
 |    0x100007185ea2
 |   
 |-- (0.11%, #35) 0x100000095ea7
 |    0x1000000961fa
 |    taskqueue_run_locked
 |    taskqueue_thread_loop
 |   
 |-- (0.11%, #35) 0x10000718d51d
 |    0x100007185ea2
 |    0x10000717e62c
 |    0x100007176c56
 |   
 |-- (0.10%, #34) 0x100006b0a3d1
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.10%, #32) 0x100006b49e2d
 |    0x100006b49e51
 |    0x100006b0a3f5
 |    0x1000060d4cc3
 |   
 |-- (0.09%, #31) 0x1000071777d2
 |    0x10000716faa2
 |    0x100007167bb7
 |    0x10000715faf3
 |   
 |-- (0.09%, #31) 0x1000062dbde8
 |    0x1000062c617a
 |    0x1000062b1760
 |    0x1000062b13d3
 |   
 |-- (0.09%, #31) 0x100007203d79
 |    0x1000071fedf5
 |    0x1000071f9e56
 |    0x1000071f4ebe
 |   
 |-- (0.09%, #30) 0x10000717f12f
 |    0x1000071777d2
 |    0x10000716faa2
 |    0x100007167bb7
 |   
 |-- (0.09%, #30) malloc
 |    operator new(unsigned long)
 |    |-- (0.06%, #19) sched::thread::main()
 |    |   
 |    |-- (0.01%, #3) 0x100005db5df8
 |    |    0x100005db2eff
 |    |   
 |    |-- (0.01%, #3) 0x100005db5270
 |    |    0x100005db1957
 |    |   
 |    |-- (0.01%, #2) 0x1000063765dd
 |    |    0x100006371a29
 |    |   
 |    |-- (0.00%, #1) 0x100005db2e06
 |    |    0x100005dadf05
 |    |   
 |    |-- (0.00%, #1) 0x100005d9ca96
 |    |    0x100005d8d94f
 |    |   
 |    \-- (0.00%, #1) 0x100005d865c3
 |         0x100005d682c3
 |   
 |-- (0.09%, #29) 0x100005cee3cf
 |    |-- (0.08%, #26) 0x100005ccb9b6
 |    |    |-- (0.05%, #16) 0x100006253e56
 |    |    |    |-- (0.03%, #10) 0x100006253cdf
 |    |    |    |   
 |    |    |    \-- (0.02%, #6) 0x1000062539aa
 |    |    |   
 |    |    |-- (0.02%, #8) 0x100006253a2b
 |    |    |    0x100006252ceb
 |    |    |   
 |    |    \-- (0.01%, #2) 0x1000060d1582
 |    |         0x1000063a930a
 |    |   
 |    \-- (0.01%, #3) 0x1000060d1d63
 |         0x1000060d22f0
 |         0x1000060d18d6
 |   
 |-- (0.08%, #27) memory::malloc_large(unsigned long, unsigned long, bool, bool)
 |    std_malloc(unsigned long, unsigned long)
 |    |-- (0.08%, #26) malloc
 |    |    operator new(unsigned long)
 |    |   
 |    \-- (0.00%, #1) posix_memalign
 |         0x10000000aed1
 |   
 |-- (0.08%, #27) 0x100007155093
 |    0x100007152454
 |    0x1000062979ff
 |    0x1000062dbde8
 |   
 |-- (0.08%, #27) 0x100005b28e82
 |    |-- (0.05%, #18) 0x100005b4d2a7
 |    |    0x100005b4d2c7
 |    |    |-- (0.05%, #17) 0x100005b4d2eb
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005ced6d2
 |    |   
 |    \-- (0.03%, #9) 0x100005bf6fab
 |         |-- (0.01%, #4) 0x100005d64ecf
 |         |    0x100005d525e9
 |         |   
 |         |-- (0.01%, #3) 0x100005bf6fcb
 |         |    0x100005bf6fff
 |         |   
 |         \-- (0.01%, #2) 0x100005d817a9
 |              0x100005d64fc5
 |   
 |-- (0.08%, #26) 0x100005d4e467
 |    0x100005e69bad
 |    0x1000060e6886
 |    0x1000060e72a0
 |   
 |-- (0.08%, #26) osv::clock::wall::now()
 |    clock_gettime
 |    |-- (0.06%, #21) 0x10000001eda3
 |    |    0x10000001fbb6
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::run()
 |    |   
 |    \-- (0.02%, #5) std::chrono::_V2::system_clock::now()
 |         0x1000061f022c
 |         0x1000061708a2
 |   
 |-- (0.08%, #26) 0x1000071dc0c1
 |    0x1000071d7145
 |    0x1000071d21a3
 |    0x1000071cd241
 |   
 |-- (0.08%, #26) 0x100006b4a03f
 |    0x100006b0a3e6
 |    0x1000060d4cc3
 |    0x100006cc308e
 |   
 |-- (0.08%, #26) 0x100005e69b95
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.07%, #24) 0x10000001c589
 |    |-- (0.07%, #23) 0x10000001fb71
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::run()
 |    |    sched::thread::main()
 |    |   
 |    \-- (0.00%, #1) 0x1000000208fb
 |         0x1000000210c3
 |         0x100000026a05
 |   
 |-- (0.07%, #24) 0x10000715faf3
 |    0x100007158f74
 |    0x100007155093
 |    0x100007152454
 |   
 |-- (0.07%, #24) 0x10000716faa2
 |    0x100007167bb7
 |    0x10000715faf3
 |    0x100007158f74
 |   
 |-- (0.07%, #24) memory::page_pool::l2::refill()
 |    memory::page_pool::l2::fill_thread()
 |    memory::page_pool::l2::l2()::{lambda()#1}::operator()() const
 |    void std::__invoke_impl<void, memory::page_pool::l2::l2()::{lambda()#1}&>(std::__invoke_other, memory::page_pool::l2::l2()::{lambda()#1}&)
 |    std::enable_if<std::__and_<std::is_void<void>, std::__is_invocable<memory::page_pool::l2::l2()::{lambda()#1}&> >::value, void>::type std::__invoke_r<void, memory::page_pool::l2::l2()::{lambda()#1}&>(memory::page_pool::l2::l2()::{lambda()#1}&)
 |    std::_Function_handler<void (), memory::page_pool::l2::l2()::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    sched::thread::main()
 |   
 |-- (0.07%, #24) 0x100005e2a5fb
 |    0x100005e266ba
 |    0x100005e25550
 |    0x100005e2536d
 |   
 |-- (0.07%, #23) 0x10000715866a
 |    0x100007154b13
 |    0x100007151fa0
 |    0x1000062976f3
 |   
 |-- (0.07%, #23) pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.07%, #22) 0x100007152454
 |    0x1000062979ff
 |    0x1000062dbde8
 |    0x1000062c617a
 |   
 |-- (0.07%, #22) 0x10000001eda3
 |    0x10000001fbb6
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.06%, #21) 0x10000719b0c2
 |    0x10000719468a
 |    0x10000718d51d
 |    0x100007185ea2
 |   
 |-- (0.06%, #21) 0x1000062979ff
 |    0x1000062dbde8
 |    0x1000062c617a
 |    0x1000062b1760
 |   
 |-- (0.06%, #21) 0x1000071e6007
 |    0x1000071e10a4
 |    0x1000071dc0d4
 |    0x1000071d7145
 |   
 |-- (0.06%, #20) 0x100006323c97
 |    0x10000632b9a1
 |    0x10000638e6cc
 |    0x100006ac0c44
 |   
 |-- (0.06%, #20) 0x1000071e10a4
 |    0x1000071dc0d4
 |    0x1000071d7145
 |    0x1000071d21a3
 |   
 |-- (0.06%, #20) 0x100007185e8f
 |    0x10000717e62c
 |    0x100007176c56
 |    0x10000716ef14
 |   
 |-- (0.06%, #19) 0x10000716ef01
 |    0x100007167015
 |    0x10000715eef5
 |    0x10000715867d
 |   
 |-- (0.06%, #19) 0x1000071a84b8
 |    0x1000071a1b02
 |    0x10000719b0c2
 |    0x10000719468a
 |   
 |-- (0.06%, #19) 0x100007167bb7
 |    0x10000715faf3
 |    0x100007158f74
 |    0x100007155093
 |   
 |-- (0.06%, #19) 0x1000071eafa5
 |    0x1000071e6007
 |    0x1000071e10a4
 |    0x1000071dc0d4
 |   
 |-- (0.06%, #19) 0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.06%, #19) 0x10000001c9c7
 |    0x10000001fbbe
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.06%, #19) 0x1000071d7145
 |    0x1000071d21a3
 |    0x1000071cd241
 |    0x1000071c8247
 |   
 |-- (0.06%, #19) 0x1000071d2ac1
 |    0x1000071cdb31
 |    0x1000071c8b97
 |    0x1000071c307b
 |   
 |-- (0.06%, #19) 0x100005e69b66
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.05%, #18) 0x1000062b17e6
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.05%, #18) 0x1000071f0831
 |    0x1000071eb8cb
 |    0x1000071e6925
 |    0x1000071e19c6
 |   
 |-- (0.05%, #18) 0x1000062b0a85
 |    0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.05%, #17) 0x10000717f142
 |    0x1000071777d2
 |    0x10000716faa2
 |    0x100007167bb7
 |   
 |-- (0.05%, #17) 0x100007158f74
 |    0x100007155093
 |    0x100007152454
 |    0x1000062979ff
 |   
 |-- (0.05%, #16) 0x10000001c85c
 |    0x10000001fbaa
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.05%, #16) 0x1000071dc0d4
 |    0x1000071d7145
 |    0x1000071d21a3
 |    0x1000071cd241
 |   
 |-- (0.05%, #16) 0x100005e69b76
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.05%, #16) virtio::virtio_driver::wait_for_queue(virtio::vring*, bool (virtio::vring::*)() const)
 |    wait_until<virtio::virtio_driver::wait_for_queue(virtio::vring*, bool (virtio::vring::*)() const)::<lambda()> >
 |    virtio::virtio_driver::wait_for_queue(virtio::vring*, bool (virtio::vring::*)() const)
 |    |-- (0.03%, #9) virtio::blk::req_done()
 |    |    std::_Function_handler<void (), virtio::blk::blk(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    |    __invoke_impl<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    |    __invoke_r<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    |    sched::thread::main()
 |    |   
 |    \-- (0.02%, #7) virtio::rng::refill()
 |         virtio::rng::worker()
 |         std::_Function_handler<void (), virtio::rng::rng(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |         __invoke_impl<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |         __invoke_r<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |   
 |-- (0.05%, #16) pthread_mutex_lock
 |    0x100005bd54f1
 |    0x100005bd5679
 |    |-- (0.03%, #11) 0x100005c36b5c
 |    |   
 |    \-- (0.02%, #5) 0x100005bd63dd
 |   
 |-- (0.05%, #16) 0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |    0x10000624cc55
 |   
 |-- (0.05%, #16) 0x1000071b58f2
 |    0x1000071aeee8
 |    0x1000071a84b8
 |    0x1000071a1b02
 |   
 |-- (0.05%, #16) memory::pool::free(void*)
 |    |-- (0.02%, #7) __gnu_cxx::new_allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> >::deallocate(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*, unsigned long)
 |    |    std::allocator_traits<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::deallocate(std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> >&, std::__detail::_Hash_node<pagecache::arc_hashkey, false>*, unsigned long)
 |    |    std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::_M_deallocate_node_ptr(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*)
 |    |    std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::_M_deallocate_node(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*)
 |    |    std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<pagecache::arc_hashkey, false> > >::_M_deallocate_nodes(std::__detail::_Hash_node<pagecache::arc_hashkey, false>*)
 |    |    std::_Hashtable<pagecache::arc_hashkey, pagecache::arc_hashkey, std::allocator<pagecache::arc_hashkey>, std::__detail::_Identity, std::equal_to<pagecache::arc_hashkey>, std::hash<pagecache::arc_hashkey>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::clear()
 |    |    std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >::clear()
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::run()
 |    |    sched::thread::main()
 |    |   
 |    |-- (0.01%, #3) 0x100005db6c67
 |    |    0x100005db52dc
 |    |    0x100005db19af
 |    |   
 |    |-- (0.01%, #2) 0x100005db6967
 |    |    0x100005db4fde
 |    |    0x100005db1469
 |    |   
 |    |-- (0.01%, #2) 0x100005db5d7f
 |    |    0x100005db2e72
 |    |    0x100005dadf5d
 |    |   
 |    |-- (0.00%, #1) 0x10000635da4f
 |    |    0x100006363256
 |    |    0x1000063570f9
 |    |   
 |    \-- (0.00%, #1) 0x100005d9814d
 |         0x100005d866b6
 |         0x100005d68467
 |   
 |-- (0.05%, #16) 0x100005e69b7e
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.05%, #15) 0x10000718d50a
 |    0x100007185ea2
 |    0x10000717e62c
 |    0x100007176c56
 |   
 |-- (0.05%, #15) 0x10000634e9d6
 |    0x100006315320
 |    |-- (0.04%, #12) 0x10000632c041
 |    |    0x100006357d10
 |    |   
 |    \-- (0.01%, #3) 0x10000632c092
 |         0x100006357d10
 |   
 |-- (0.05%, #15) 0x1000062b0aa7
 |    0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.05%, #15) 0x1000060e68fb
 |    0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |   
 |-- (0.05%, #15) 0x1000071eaf92
 |    0x1000071e6007
 |    0x1000071e10a4
 |    0x1000071dc0d4
 |   
 |-- (0.05%, #15) 0x1000071c258b
 |    0x1000071bc1db
 |    0x1000071b58f2
 |    0x1000071aeee8
 |   
 |-- (0.05%, #15) 0x10000001c9a5
 |    0x10000001fbbe
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.05%, #15) 0x1000071a8f6c
 |    0x1000071a259c
 |    0x10000719bb5e
 |    0x100007195153
 |   
 |-- (0.04%, #14) 0x1000071f9e56
 |    0x1000071f4ebe
 |    0x1000071eff26
 |    0x1000071eafa5
 |   
 |-- (0.04%, #14) page_fault
 |    ex_pf
 |    |-- (0.04%, #13) 0x100007236586
 |    |    0x100007236801
 |    |   
 |    \-- (0.00%, #1) 0x1000072de7d1
 |         0x1000072e2aad
 |   
 |-- (0.04%, #14) 0x1000071bc1db
 |    0x1000071b58f2
 |    0x1000071aeee8
 |    0x1000071a84b8
 |   
 |-- (0.04%, #14) 0x1000071eff26
 |    0x1000071eafa5
 |    0x1000071e6007
 |    0x1000071e10a4
 |   
 |-- (0.04%, #14) 0x1000062b1760
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.04%, #14) console::VGAConsole::flush()
 |    console::console_multiplexer::drivers_flush()
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |    console::console_multiplexer::write(uio*, int)
 |    linearize_uio_write<console::console_multiplexer::write(uio*, int)::<lambda(char const*, size_t)> >
 |    console::console_multiplexer::write(uio*, int)
 |   
 |-- (0.04%, #14) 0x1000071eff13
 |    0x1000071eafa5
 |    0x1000071e6007
 |    0x1000071e10a4
 |   
 |-- (0.04%, #14) 0x100005e968d2
 |    |-- (0.03%, #11) 0x1000060e690e
 |    |    0x1000060e72a0
 |    |    0x100006cc30c9
 |    |   
 |    \-- (0.01%, #3) 0x100005e69bef
 |         0x1000060e6886
 |         0x1000060e72a0
 |   
 |-- (0.04%, #14) 0x100007167002
 |    0x10000715eef5
 |    0x10000715867d
 |    0x100007154b13
 |   
 |-- (0.04%, #13) 0x1000071d2aae
 |    0x1000071cdb31
 |    0x1000071c8b97
 |    0x1000071c307b
 |   
 |-- (0.04%, #13) 0x100007186a08
 |    0x10000717f142
 |    0x1000071777d2
 |    0x10000716faa2
 |   
 |-- (0.04%, #13) 0x1000071c8234
 |    0x1000071c258b
 |    0x1000071bc1db
 |    0x1000071b58f2
 |   
 |-- (0.04%, #13) 0x1000071c8247
 |    0x1000071c258b
 |    0x1000071bc1db
 |    0x1000071b58f2
 |   
 |-- (0.04%, #13) 0x1000062b16ad
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.04%, #13) 0x1000071f4ebe
 |    0x1000071eff26
 |    0x1000071eafa5
 |    0x1000071e6007
 |   
 |-- (0.04%, #13) 0x10000719468a
 |    0x10000718d51d
 |    0x100007185ea2
 |    0x10000717e62c
 |   
 |-- (0.04%, #13) 0x1000072de7d1
 |    0x1000072e2aad
 |    0x1000072e02d4
 |    0x10000724a74d
 |   
 |-- (0.04%, #13) 0x100006b49e0d
 |    0x100006b49e2d
 |    0x100006b49e51
 |    0x100006b0a3f5
 |   
 |-- (0.04%, #12) 0x100005ccb9b6
 |    |-- (0.02%, #6) 0x100006253e56
 |    |    |-- (0.01%, #4) 0x1000062539aa
 |    |    |    0x100006252ceb
 |    |    |   
 |    |    \-- (0.01%, #2) 0x100006253cdf
 |    |         0x100006252a77
 |    |   
 |    |-- (0.01%, #4) 0x100006253a2b
 |    |    0x100006252ceb
 |    |    0x100006252aab
 |    |   
 |    \-- (0.01%, #2) 0x1000060d1582
 |         0x1000063a930a
 |         |-- (0.00%, #1) 0x100006cc2f22
 |         |   
 |         \-- (0.00%, #1) 0x100006d4ab46
 |   
 |-- (0.04%, #12) 0x100005bd54f1
 |    0x100005bd5679
 |    |-- (0.03%, #9) 0x100005bd63dd
 |    |    |-- (0.02%, #5) 0x10000634e9f4
 |    |    |   
 |    |    |-- (0.01%, #2) 0x100006387347
 |    |    |   
 |    |    |-- (0.00%, #1) 0x100005cd54d0
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100006323f6c
 |    |   
 |    \-- (0.01%, #3) 0x100005c36b5c
 |         0x100005c331d4
 |   
 |-- (0.04%, #12) 0x100006252aab
 |    0x10000625669e
 |    0x10000624cc55
 |    0x10000624f4b1
 |   
 |-- (0.04%, #12) 0x10000716fa8f
 |    0x100007167bb7
 |    0x10000715faf3
 |    0x100007158f74
 |   
 |-- (0.04%, #12) 0x10000718e075
 |    0x100007186a1b
 |    0x10000717f142
 |    0x1000071777d2
 |   
 |-- (0.03%, #11) 0x100007203d8c
 |    0x1000071fedf5
 |    0x1000071f9e56
 |    0x1000071f4ebe
 |   
 |-- (0.03%, #11) 0x1000071e6912
 |    0x1000071e19c6
 |    0x1000071dc9f8
 |    0x1000071d7a96
 |   
 |-- (0.03%, #11) 0x1000071c307b
 |    0x1000071bcc69
 |    0x1000071b63b9
 |    0x1000071af9b4
 |   
 |-- (0.03%, #11) 0x1000071d21a3
 |    0x1000071cd241
 |    0x1000071c8247
 |    0x1000071c258b
 |   
 |-- (0.03%, #11) 0x1000071a1aef
 |    0x10000719b0c2
 |    0x10000719468a
 |    0x10000718d51d
 |   
 |-- (0.03%, #11) random_kthread(void*)
 |    sched::thread::main()
 |   
 |-- (0.03%, #11) 0x100005da71e5
 |    0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |   
 |-- (0.03%, #11) 0x1000071777bf
 |    0x10000716faa2
 |    0x100007167bb7
 |    0x10000715faf3
 |   
 |-- (0.03%, #11) free
 |    free_page_range
 |    free_large
 |    free
 |    free
 |    |-- (0.03%, #10) 0x100005d7246e
 |    |    0x100005d5cf9a
 |    |    0x100005dba435
 |    |   
 |    \-- (0.00%, #1) 0x100005c37ec4
 |         0x100005c3308e
 |         0x100005d4d849
 |   
 |-- (0.03%, #11) 0x100005b4d393
 |    |-- (0.02%, #6) 0x100005ccb9c7
 |    |    |-- (0.01%, #2) 0x1000060d1582
 |    |    |    0x1000063a930a
 |    |    |   
 |    |    |-- (0.01%, #2) 0x100006253a2b
 |    |    |    0x100006252ceb
 |    |    |   
 |    |    \-- (0.01%, #2) 0x100006253e56
 |    |         0x1000062539aa
 |    |   
 |    |-- (0.01%, #2) 0x100005cc9e49
 |    |    |-- (0.00%, #1) 0x100006252cc6
 |    |    |    0x100006252aab
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005f61ef7
 |    |         0x1000060d246d
 |    |   
 |    |-- (0.00%, #1) 0x100005ccb60a
 |    |    0x1000060d4218
 |    |    0x1000060d471c
 |    |   
 |    |-- (0.00%, #1) 0x1000060d4343
 |    |    0x1000060d471c
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.00%, #1) 0x1000060d14ac
 |         0x1000063a930a
 |         0x100006d4ab46
 |   
 |-- (0.03%, #11) 0x1000071c2578
 |    0x1000071bc1db
 |    0x1000071b58f2
 |    0x1000071aeee8
 |   
 |-- (0.03%, #11) std::lock_guard<lockfree::mutex>::lock_guard(lockfree::mutex&)
 |    |-- (0.03%, #9) lock_guard_for_with_lock<lockfree::mutex>::lock_guard_for_with_lock(lockfree::mutex&)
 |    |    |-- (0.02%, #5) memory::malloc_large(unsigned long, unsigned long, bool, bool)
 |    |    |    std_malloc(unsigned long, unsigned long)
 |    |    |    malloc
 |    |    |    operator new(unsigned long)
 |    |    |   
 |    |    |-- (0.01%, #2) free_page_range
 |    |    |    free_large
 |    |    |    free
 |    |    |    free
 |    |    |    0x100005d7246e
 |    |    |    0x100005d5cf9a
 |    |    |    0x100005dba435
 |    |    |   
 |    |    \-- (0.01%, #2) rwlock::runlock()
 |    |         rwlock_for_read::unlock()
 |    |         std::lock_guard<rwlock_for_read&>::~lock_guard()
 |    |         |-- (0.00%, #1) lock_guard_for_with_lock<rwlock_for_read&>::~lock_guard_for_with_lock()
 |    |         |    mmu::vm_fault(unsigned long, exception_frame*)
 |    |         |    page_fault
 |    |         |    ex_pf
 |    |         |   
 |    |         \-- (0.00%, #1) mmu::find_hole(unsigned long, unsigned long)
 |    |              mmu::allocate(mmu::vma*, unsigned long, unsigned long, bool)
 |    |              mmu::map_anon(void const*, unsigned long, unsigned int, unsigned int)
 |    |   
 |    \-- (0.01%, #2) rwlock::rlock()
 |         |-- (0.00%, #1) 0x10000002b6b0
 |         |    0x10000002ccdc
 |         |    0x10000008eae0
 |         |   
 |         \-- (0.00%, #1) rwlock_for_read::lock()
 |              std::lock_guard<rwlock_for_read&>::lock_guard(rwlock_for_read&)
 |              lock_guard_for_with_lock<rwlock_for_read&>::lock_guard_for_with_lock(rwlock_for_read&)
 |              mmu::vm_fault(unsigned long, exception_frame*)
 |              page_fault
 |              ex_pf
 |   
 |-- (0.03%, #10) 0x100006318074
 |    0x10000631519e
 |    0x10000634e9d6
 |    0x100006315320
 |   
 |-- (0.03%, #10) 0x1000071cd241
 |    0x1000071c8247
 |    0x1000071c258b
 |    0x1000071bc1db
 |   
 |-- (0.03%, #10) 0x100006d524c3
 |    0x100006253b94
 |    0x100006252a77
 |    0x10000625669e
 |   
 |-- (0.03%, #10) 0x1000071e1091
 |    0x1000071dc0d4
 |    0x1000071d7145
 |    0x1000071d21a3
 |   
 |-- (0.03%, #10) 0x100007186a1b
 |    0x10000717f142
 |    0x1000071777d2
 |    0x10000716faa2
 |   
 |-- (0.03%, #10) 0x10000001c8ad
 |    |-- (0.02%, #8) 0x10000001fbaa
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    |    pagecache::access_scanner::run()
 |    |    sched::thread::main()
 |    |   
 |    \-- (0.01%, #2) 0x10000001fce4
 |         0x100000026acb
 |         0x1000000270bc
 |   
 |-- (0.03%, #10) 0x10000632b9fa
 |    0x10000638e6cc
 |    0x100006ac0c44
 |    0x100006d524c3
 |   
 |-- (0.03%, #10) 0x1000071cdb1e
 |    0x1000071c8b97
 |    0x1000071c307b
 |    0x1000071bcc69
 |   
 |-- (0.03%, #10) 0x100005d972f4
 |    0x100005d84d64
 |    0x100005d66d25
 |    0x100005d52741
 |   
 |-- (0.03%, #10) 0x100006253e56
 |    |-- (0.02%, #8) 0x1000062539aa
 |    |    0x100006252ceb
 |    |    0x100006252aab
 |    |   
 |    \-- (0.01%, #2) 0x100006253cdf
 |         0x100006252a77
 |         0x10000625669e
 |   
 |-- (0.03%, #10) 0x100007155080
 |    0x100007152454
 |    0x1000062979ff
 |    0x1000062dbde8
 |   
 |-- (0.03%, #10) 0x1000071d2190
 |    0x1000071cd241
 |    0x1000071c8247
 |    0x1000071c258b
 |   
 |-- (0.03%, #10) 0x1000071dc9e5
 |    0x1000071d7a96
 |    0x1000071d2ac1
 |    0x1000071cdb31
 |   
 |-- (0.03%, #10) 0x1000071bcc69
 |    0x1000071b63b9
 |    0x1000071af9b4
 |    0x1000071a8f7f
 |   
 |-- (0.03%, #10) 0x1000071b58df
 |    0x1000071aeee8
 |    0x1000071a84b8
 |    0x1000071a1b02
 |   
 |-- (0.03%, #9) 0x10000719bb4b
 |    0x100007195153
 |    0x10000718e075
 |    0x100007186a1b
 |   
 |-- (0.03%, #9) 0x10000638e6cc
 |    0x100006ac0c44
 |    0x100006d524c3
 |    0x100006253b94
 |   
 |-- (0.03%, #9) 0x1000071af9b4
 |    0x1000071a8f7f
 |    0x1000071a259c
 |    0x10000719bb5e
 |   
 |-- (0.03%, #9) 0x1000071a1b02
 |    0x10000719b0c2
 |    0x10000719468a
 |    0x10000718d51d
 |   
 |-- (0.03%, #9) 0x1000063a930a
 |    |-- (0.02%, #7) 0x100006d4ab46
 |    |    0x100006253990
 |    |    0x100006252ceb
 |    |   
 |    \-- (0.01%, #2) 0x100006cc2f22
 |         0x100006252e12
 |         0x100006252aab
 |   
 |-- (0.03%, #9) 0x100006252a77
 |    0x10000625669e
 |    0x10000624cc55
 |    0x10000624f4b1
 |   
 |-- (0.03%, #9) 0x10000634e32f
 |    |-- (0.02%, #5) 0x10000635da3d
 |    |    0x100006363256
 |    |    0x1000063570f9
 |    |   
 |    |-- (0.01%, #3) 0x1000063754f9
 |    |    0x10000636ff6a
 |    |    0x1000063676e1
 |    |   
 |    \-- (0.00%, #1) 0x10000632be94
 |         0x100006322807
 |         0x10000632b9fa
 |   
 |-- (0.03%, #9) 0x100006357d10
 |    0x100006323c97
 |    0x10000632b9a1
 |    0x10000638e6cc
 |   
 |-- (0.03%, #9) 0x1000071e5ff4
 |    0x1000071e10a4
 |    0x1000071dc0d4
 |    0x1000071d7145
 |   
 |-- (0.03%, #9) 0x100005b28d36
 |    |-- (0.02%, #8) 0x100005d51b1c
 |    |    0x100005d51b4a
 |    |    0x100005d64f33
 |    |   
 |    \-- (0.00%, #1) 0x100005b500f2
 |         0x100005b50120
 |         0x100005b50156
 |   
 |-- (0.03%, #9) 0x10000625669e
 |    0x10000624cc55
 |    0x10000624f4b1
 |    0x100006157371
 |   
 |-- (0.03%, #9) 0x100006293661
 |    |-- (0.02%, #6) 0x1000062c5dda
 |    |    0x1000062b1479
 |    |    0x1000062b13d3
 |    |   
 |    \-- (0.01%, #3) 0x1000062c4abc
 |         0x1000062b0874
 |         0x1000062b07ce
 |   
 |-- (0.03%, #9) 0x1000071ff704
 |    0x1000071fa774
 |    0x1000071f5813
 |    0x1000071f0844
 |   
 |-- (0.03%, #9) 0x1000060e68e0
 |    0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |   
 |-- (0.03%, #9) 0x1000071c8b84
 |    0x1000071c307b
 |    0x1000071bcc69
 |    0x1000071b63b9
 |   
 |-- (0.02%, #8) 0x1000071a2589
 |    0x10000719bb5e
 |    0x100007195153
 |    0x10000718e075
 |   
 |-- (0.02%, #8) 0x100005b2ad61
 |    0x100005b28e82
 |    |-- (0.01%, #4) 0x100005b4d2a7
 |    |    0x100005b4d2c7
 |    |   
 |    \-- (0.01%, #4) 0x100005bf6fab
 |         |-- (0.01%, #3) 0x100005bf6fcb
 |         |   
 |         \-- (0.00%, #1) 0x100005d64ecf
 |   
 |-- (0.02%, #8) 0x100005e69bad
 |    0x1000060e6886
 |    0x1000060e72a0
 |    0x100006cc30c9
 |   
 |-- (0.02%, #8) 0x100005bf6fab
 |    |-- (0.02%, #5) 0x100005bf6fcb
 |    |    |-- (0.01%, #3) 0x100005bf6fef
 |    |    |    |-- (0.01%, #2) 0x100005db79a5
 |    |    |    |   
 |    |    |    \-- (0.00%, #1) 0x100005db6d19
 |    |    |   
 |    |    \-- (0.01%, #2) 0x100005bf6fff
 |    |         0x100005da09b2
 |    |   
 |    |-- (0.01%, #2) 0x100005d64ecf
 |    |    0x100005d525e9
 |    |    0x100005cf205d
 |    |   
 |    \-- (0.00%, #1) 0x100005d81a25
 |         0x100005d65123
 |         0x100005ce769f
 |   
 |-- (0.02%, #8) 0x1000071f9e43
 |    0x1000071f4ebe
 |    0x1000071eff26
 |    0x1000071eafa5
 |   
 |-- (0.02%, #8) 0x100005ced63e
 |    0x100005cee3cf
 |    |-- (0.02%, #7) 0x100005ccb9b6
 |    |    |-- (0.01%, #4) 0x100006253e56
 |    |    |   
 |    |    \-- (0.01%, #3) 0x100006253a2b
 |    |   
 |    \-- (0.00%, #1) 0x1000060d1d63
 |         0x1000060d22f0
 |   
 |-- (0.02%, #8) 0x10000628178d
 |    0x100006281669
 |    |-- (0.02%, #6) 0x100005da3ab2
 |    |    0x100005d9b69c
 |    |   
 |    |-- (0.00%, #1) 0x100005d50033
 |    |    0x100005d5be9c
 |    |   
 |    \-- (0.00%, #1) 0x1000062b0ca3
 |         0x1000062b0ccf
 |   
 |-- (0.02%, #8) 0x10000602af8f
 |    0x100005fb1c2a
 |    0x100005f91820
 |    0x100005f77fc9
 |   
 |-- (0.02%, #8) 0x100005db5d7f
 |    0x100005db2e72
 |    0x100005dadf5d
 |    0x100005db8b63
 |   
 |-- (0.02%, #8) 0x100005b4d2a7
 |    |-- (0.02%, #7) 0x100005b4d2c7
 |    |    |-- (0.01%, #3) 0x100005b4d2eb
 |    |    |    |-- (0.01%, #2) 0x100005cee321
 |    |    |    |   
 |    |    |    \-- (0.00%, #1) 0x100005b4dc17
 |    |    |   
 |    |    |-- (0.01%, #2) 0x100005ced6d2
 |    |    |    0x100005cee3cf
 |    |    |   
 |    |    |-- (0.00%, #1) 0x100005d4cda2
 |    |    |    0x100005d4cc65
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005ced698
 |    |         0x100005cee3cf
 |    |   
 |    \-- (0.00%, #1) 0x100005d66c71
 |         0x100005d52695
 |         0x100005d4ce0f
 |   
 |-- (0.02%, #8) operator new(unsigned long)
 |    |-- (0.01%, #2) 0x100005db4bf4
 |    |    0x100005db0e53
 |    |    0x100005dabf95
 |    |   
 |    |-- (0.01%, #2) 0x100005db2e06
 |    |    0x100005dadf05
 |    |    0x100005da718d
 |    |   
 |    |-- (0.01%, #2) sched::thread::main()
 |    |   
 |    |-- (0.00%, #1) 0x1000060d4218
 |    |    0x1000060d471c
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.00%, #1) 0x100005db5df8
 |         0x100005db2eff
 |         0x100005dae099
 |   
 |-- (0.02%, #8) 0x10000715fae0
 |    0x100007158f74
 |    0x100007155093
 |    0x100007152454
 |   
 |-- (0.02%, #8) 0x1000071fa774
 |    0x1000071f5813
 |    0x1000071f0844
 |    0x1000071eb8cb
 |   
 |-- (0.02%, #8) 0x100005b2adf1
 |    |-- (0.02%, #7) 0x100005b28e82
 |    |    |-- (0.01%, #4) 0x100005bf6fab
 |    |    |    0x100005d64ecf
 |    |    |   
 |    |    \-- (0.01%, #3) 0x100005b4d2a7
 |    |         0x100005b4d2c7
 |    |   
 |    \-- (0.00%, #1) 0x100005b28d51
 |         0x100005d51b1c
 |         0x100005d51b4a
 |   
 |-- (0.02%, #8) 0x1000071eb8cb
 |    0x1000071e6925
 |    0x1000071e19c6
 |    0x1000071dc9f8
 |   
 |-- (0.02%, #8) 0x100007208d35
 |    0x100007203d8c
 |    0x1000071fedf5
 |    0x1000071f9e56
 |   
 |-- (0.02%, #8) 0x1000071a259c
 |    0x10000719bb5e
 |    0x100007195153
 |    0x10000718e075
 |   
 |-- (0.02%, #8) 0x1000071cdb31
 |    0x1000071c8b97
 |    0x1000071c307b
 |    0x1000071bcc69
 |   
 |-- (0.02%, #8) 0x1000071bcc56
 |    0x1000071b63b9
 |    0x1000071af9b4
 |    0x1000071a8f7f
 |   
 |-- (0.02%, #7) 0x100006218ee6
 |    |-- (0.02%, #5) 0x10000620c518
 |    |    0x1000061f046e
 |    |    0x1000061709d2
 |    |   
 |    \-- (0.01%, #2) 0x10000620c563
 |         0x1000061f048d
 |         0x1000061709e6
 |   
 |-- (0.02%, #7) 0x100005dba435
 |    0x100005dba459
 |    0x100005db9cd6
 |    0x100005db8aec
 |   
 |-- (0.02%, #7) 0x1000071b63a6
 |    0x1000071af9b4
 |    0x1000071a8f7f
 |    0x1000071a259c
 |   
 |-- (0.02%, #7) 0x1000063b7812
 |    0x1000063aecc1
 |    0x100006387997
 |    0x100006387b55
 |   
 |-- (0.02%, #7) 0x1000071c3068
 |    0x1000071bcc69
 |    0x1000071b63b9
 |    0x1000071af9b4
 |   
 |-- (0.02%, #7) 0x100005d64ecf
 |    |-- (0.01%, #3) 0x100005ced1f0
 |    |    |-- (0.01%, #2) 0x1000062b0841
 |    |    |    0x1000062b07ce
 |    |    |   
 |    |    \-- (0.00%, #1) 0x1000062b1446
 |    |         0x1000062b13d3
 |    |   
 |    |-- (0.01%, #3) 0x100005d525e9
 |    |    0x100005cf205d
 |    |    0x100005ce6f84
 |    |   
 |    \-- (0.00%, #1) 0x100005ce7922
 |         0x100005ce61c0
 |         0x100005ce6282
 |   
 |-- (0.02%, #7) 0x1000071e19c6
 |    0x1000071dc9f8
 |    0x1000071d7a96
 |    0x1000071d2ac1
 |   
 |-- (0.02%, #7) 0x100005d5c643
 |    0x100005d5c11b
 |    0x100005cd55d7
 |    0x1000060d47fe
 |   
 |-- (0.02%, #7) std::enable_if<((1)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::level)&&((1)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::map_range<1>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<1>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    std::enable_if<((2)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |    std::enable_if<((3)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::level)&&((3)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::map_range<3>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<3>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::operator()(mmu::hw_ptep<4>, unsigned long)
 |    void mmu::map_range<mmu::populate<(mmu::account_opt)0> >(unsigned long, unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long)
 |    unsigned long mmu::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, void*, unsigned long)
 |    unsigned long mmu::vma::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, unsigned long)
 |    unsigned long mmu::populate_vma<(mmu::account_opt)0>(mmu::vma*, void*, unsigned long, bool)
 |   
 |-- (0.02%, #7) 0x1000072046ad
 |    0x1000071ff717
 |    0x1000071fa774
 |    0x1000071f5813
 |   
 |-- (0.02%, #7) 0x10000634d7e2
 |    0x100006320654
 |    |-- (0.01%, #4) 0x100006320736
 |    |    0x100006314da5
 |    |   
 |    \-- (0.01%, #3) 0x10000632128e
 |         0x100006314faf
 |   
 |-- (0.02%, #7) 0x1000071bc1c8
 |    0x1000071b58f2
 |    0x1000071aeee8
 |    0x1000071a84b8
 |   
 |-- (0.02%, #7) 0x1000071a8f7f
 |    0x1000071a259c
 |    0x10000719bb5e
 |    0x100007195153
 |   
 |-- (0.02%, #7) 0x100005f77fc9
 |    0x100005f66fe5
 |    0x100005f61e4f
 |    0x100005f620ab
 |   
 |-- (0.02%, #7) 0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |    0x100005d66d25
 |   
 |-- (0.02%, #7) std::chrono::_V2::system_clock::now()
 |    0x1000061f022c
 |    0x1000061708a2
 |    0x100006253e43
 |   
 |-- (0.02%, #7) 0x1000071aeee8
 |    0x1000071a84b8
 |    0x1000071a1b02
 |    0x10000719b0c2
 |   
 |-- (0.02%, #7) 0x100005d4e007
 |    |-- (0.02%, #6) 0x100005ced63e
 |    |    0x100005cee3cf
 |    |    |-- (0.02%, #5) 0x100005ccb9b6
 |    |    |   
 |    |    \-- (0.00%, #1) 0x1000060d1d63
 |    |   
 |    \-- (0.00%, #1) 0x100005cec0bd
 |         0x100005e2667f
 |         0x100005e25550
 |   
 |-- (0.02%, #7) 0x1000063b77ec
 |    0x1000063aecc1
 |    0x100006387997
 |    0x100006387b55
 |   
 |-- (0.02%, #7) 0x1000071d7a96
 |    0x1000071d2ac1
 |    0x1000071cdb31
 |    0x1000071c8b97
 |   
 |-- (0.02%, #7) 0x100007209691
 |    0x1000072046ad
 |    0x1000071ff717
 |    0x1000071fa774
 |   
 |-- (0.02%, #7) 0x100007154b00
 |    0x100007151fa0
 |    0x1000062976f3
 |    0x1000062da85a
 |   
 |-- (0.02%, #7) console::console_multiplexer::drivers_flush()
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |    console::console_multiplexer::write(uio*, int)
 |    linearize_uio_write<console::console_multiplexer::write(uio*, int)::<lambda(char const*, size_t)> >
 |    console::console_multiplexer::write(uio*, int)
 |    int console::op_write<device>(device*, uio*, int)
 |   
 |-- (0.02%, #7) 0x1000071fede2
 |    0x1000071f9e56
 |    0x1000071f4ebe
 |    0x1000071eff26
 |   
 |-- (0.02%, #6) 0x100006218ea3
 |    0x10000620c506
 |    0x1000061f046e
 |    0x1000061709d2
 |   
 |-- (0.02%, #6) memory::pool::alloc()
 |    std_malloc(unsigned long, unsigned long)
 |    malloc
 |    |-- (0.02%, #5) operator new(unsigned long)
 |    |   
 |    \-- (0.00%, #1) 0x10000000aeff
 |   
 |-- (0.02%, #6) 0x1000071c8b97
 |    0x1000071c307b
 |    0x1000071bcc69
 |    0x1000071b63b9
 |   
 |-- (0.02%, #6) 0x1000071b63b9
 |    0x1000071af9b4
 |    0x1000071a8f7f
 |    0x1000071a259c
 |   
 |-- (0.02%, #6) 0x1000062b0874
 |    0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.02%, #6) 0x100005d81678
 |    0x100005d64ec3
 |    |-- (0.01%, #3) 0x100005d525e9
 |    |    0x100005cf205d
 |    |   
 |    |-- (0.01%, #2) 0x100005ce7922
 |    |    0x100005ce61c0
 |    |   
 |    \-- (0.00%, #1) 0x100005ced1f0
 |         0x1000062b0841
 |   
 |-- (0.02%, #6) 0x1000063e0d61
 |    0x1000063e0d99
 |    0x1000063e1005
 |    0x1000063e04e6
 |   
 |-- (0.02%, #6) 0x1000071dc9f8
 |    0x1000071d7a96
 |    0x1000071d2ac1
 |    0x1000071cdb31
 |   
 |-- (0.02%, #6) 0x1000071d7a83
 |    0x1000071d2ac1
 |    0x1000071cdb31
 |    0x1000071c8b97
 |   
 |-- (0.02%, #6) 0x10000632b9a1
 |    0x10000638e6cc
 |    0x100006ac0c44
 |    0x100006d524c3
 |   
 |-- (0.02%, #6) 0x100006cac884
 |    0x1000060de169
 |    0x100006253990
 |    0x100006252ceb
 |   
 |-- (0.02%, #6) 0x100005ced68c
 |    0x100005cee3cf
 |    |-- (0.02%, #5) 0x100005ccb9b6
 |    |    |-- (0.01%, #3) 0x100006253a2b
 |    |    |   
 |    |    \-- (0.01%, #2) 0x100006253e56
 |    |   
 |    \-- (0.00%, #1) 0x1000060d1d63
 |         0x1000060d22f0
 |   
 |-- (0.02%, #6) 0x1000071fedf5
 |    0x1000071f9e56
 |    0x1000071f4ebe
 |    0x1000071eff26
 |   
 |-- (0.02%, #6) 0x100005c37ec4
 |    0x100005c3308e
 |    0x100005d4d849
 |    0x100005dba3ce
 |   
 |-- (0.02%, #6) std::enable_if<((3)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::level)&&((3)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::map_range<3>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<3>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::operator()(mmu::hw_ptep<4>, unsigned long)
 |    void mmu::map_range<mmu::populate<(mmu::account_opt)0> >(unsigned long, unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long)
 |    unsigned long mmu::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, void*, unsigned long)
 |    unsigned long mmu::vma::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, unsigned long)
 |    unsigned long mmu::populate_vma<(mmu::account_opt)0>(mmu::vma*, void*, unsigned long, bool)
 |    mmu::vma::fault(unsigned long, exception_frame*)
 |    mmu::vm_fault(unsigned long, exception_frame*)
 |   
 |-- (0.02%, #6) 0x100005d52695
 |    |-- (0.01%, #3) 0x100005d4ce0f
 |    |    0x100005ced68c
 |    |    0x100005cee3cf
 |    |   
 |    \-- (0.01%, #3) 0x100005d4cd96
 |         0x100005d4cc65
 |         0x100006357b03
 |   
 |-- (0.02%, #6) 0x100007194677
 |    0x10000718d51d
 |    0x100007185ea2
 |    0x10000717e62c
 |   
 |-- (0.02%, #6) 0x1000071a84a5
 |    0x1000071a1b02
 |    0x10000719b0c2
 |    0x10000719468a
 |   
 |-- (0.02%, #6) 0x1000072096a7
 |    0x1000072046ad
 |    0x1000071ff717
 |    0x1000071fa774
 |   
 |-- (0.02%, #6) 0x100005d52741
 |    |-- (0.02%, #5) 0x100005cd81b3
 |    |    0x100005ced666
 |    |    0x100005cee3cf
 |    |   
 |    \-- (0.00%, #1) 0x100005d4cd7f
 |         0x100005d4cc65
 |         0x1000060d46e8
 |   
 |-- (0.02%, #6) 0x100005d5462b
 |    0x100005cc9c7e
 |    0x100005cc991a
 |    0x1000060d48a4
 |   
 |-- (0.02%, #6) 0x1000063565af
 |    0x1000063211d0
 |    0x1000063212a5
 |    0x100006314faf
 |   
 |-- (0.02%, #6) 0x1000060d42af
 |    0x1000060d471c
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.02%, #6) 0x100007158f61
 |    0x100007155093
 |    0x100007152454
 |    0x1000062979ff
 |   
 |-- (0.02%, #6) 0x100005d72538
 |    0x100005d5d01d
 |    0x100005d51120
 |    0x100005d5114e
 |   
 |-- (0.02%, #6) 0x1000071eb8b8
 |    0x1000071e6925
 |    0x1000071e19c6
 |    0x1000071dc9f8
 |   
 |-- (0.02%, #6) 0x100005ce5722
 |    0x100005ce7a1a
 |    0x100005ce61c0
 |    0x100005ce6282
 |   
 |-- (0.02%, #6) sched::cpu::do_idle()
 |    sched::cpu::idle()
 |    std::_Function_handler<void (), sched::cpu::init_idle_thread()::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    __invoke_r<void, sched::cpu::init_idle_thread()::<lambda()>&>
 |    sched::thread::main()
 |   
 |-- (0.02%, #6) 0x1000060d246d
 |    0x1000060d16c1
 |    0x100006cac884
 |    0x1000060de169
 |   
 |-- (0.02%, #5) 0x100005db2e06
 |    0x100005dadf05
 |    0x100005da718d
 |    0x100005da00ed
 |   
 |-- (0.02%, #5) 0x100005d7246e
 |    0x100005d5cf9a
 |    0x100005dba435
 |    0x100005dba459
 |   
 |-- (0.02%, #5) 0x100005cd556f
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.02%, #5) 0x1000063523e7
 |    |-- (0.01%, #4) 0x100006321206
 |    |    0x1000063212a5
 |    |    0x100006314faf
 |    |   
 |    \-- (0.00%, #1) 0x1000063564b5
 |         0x100006320c80
 |         0x100006320d2d
 |   
 |-- (0.02%, #5) std::enable_if<((2)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |    std::enable_if<((3)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::level)&&((3)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::map_range<3>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<3>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::operator()(mmu::hw_ptep<4>, unsigned long)
 |    void mmu::map_range<mmu::populate<(mmu::account_opt)0> >(unsigned long, unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long)
 |    unsigned long mmu::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, void*, unsigned long)
 |    unsigned long mmu::vma::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, unsigned long)
 |    unsigned long mmu::populate_vma<(mmu::account_opt)0>(mmu::vma*, void*, unsigned long, bool)
 |    mmu::vma::fault(unsigned long, exception_frame*)
 |   
 |-- (0.02%, #5) virtio::vring::kick()
 |    |-- (0.01%, #3) virtio::rng::refill()
 |    |    virtio::rng::worker()
 |    |    std::_Function_handler<void (), virtio::rng::rng(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    |    __invoke_impl<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |    |    __invoke_r<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |    |   
 |    \-- (0.01%, #2) virtio::blk::make_request(bio*)
 |         0x10000006b1d5
 |         0x1000000961fa
 |   
 |-- (0.02%, #5) 0x100005f61f83
 |    0x1000060d246d
 |    0x1000060d16c1
 |    0x100006cac884
 |   
 |-- (0.02%, #5) 0x1000071e6925
 |    0x1000071e19c6
 |    0x1000071dc9f8
 |    0x1000071d7a96
 |   
 |-- (0.02%, #5) 0x100006252e12
 |    0x100006252aab
 |    0x10000625669e
 |    0x10000624cc55
 |   
 |-- (0.02%, #5) 0x100005bd56ab
 |    |-- (0.01%, #3) 0x100005c36b05
 |    |    0x100005c33195
 |    |    0x10000634e5c1
 |    |   
 |    \-- (0.01%, #2) 0x100005bd6400
 |         0x10000634ea66
 |         0x100006315320
 |   
 |-- (0.02%, #5) memory::page_pool::l1::alloc_page()
 |    untracked_alloc_page
 |    |-- (0.01%, #4) memory::alloc_page()
 |    |    mmu::uninitialized_anonymous_page_provider::map(unsigned long, mmu::hw_ptep<0>, mmu::pt_element<0>, bool)
 |    |    bool mmu::populate<(mmu::account_opt)0>::page<0>(mmu::hw_ptep<0>, unsigned long)
 |    |    page<mmu::populate<(mmu::account_opt)0>, 0>
 |    |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 1>::operator()(mmu::hw_ptep<1>, unsigned long)
 |    |    std::enable_if<((1)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::level)&&((1)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::map_range<1>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<1>, unsigned long)
 |    |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    |   
 |    \-- (0.00%, #1) memory::pool::add_page()
 |         memory::pool::alloc()
 |         std_malloc(unsigned long, unsigned long)
 |         malloc
 |   
 |-- (0.02%, #5) 0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |    0x1000060de169
 |   
 |-- (0.02%, #5) 0x1000071af9a1
 |    0x1000071a8f7f
 |    0x1000071a259c
 |    0x10000719bb5e
 |   
 |-- (0.02%, #5) 0x1000060d152e
 |    0x1000063a930a
 |    |-- (0.01%, #3) 0x100006d4ab46
 |    |    0x100006253990
 |    |   
 |    \-- (0.01%, #2) 0x100006cc2f22
 |         0x100006252e12
 |   
 |-- (0.02%, #5) 0x100005d66be7
 |    0x100005d66c52
 |    0x100005d52695
 |    |-- (0.01%, #4) 0x100005d4ce0f
 |    |   
 |    \-- (0.00%, #1) 0x100005d4cd96
 |   
 |-- (0.02%, #5) 0x1000071f0844
 |    0x1000071eb8cb
 |    0x1000071e6925
 |    0x1000071e19c6
 |   
 |-- (0.02%, #5) 0x100006281669
 |    |-- (0.01%, #4) 0x100005da3ab2
 |    |    0x100005d9b69c
 |    |    0x100005d8ba9d
 |    |   
 |    \-- (0.00%, #1) 0x1000063873eb
 |         0x100005cd556f
 |         0x1000060d47fe
 |   
 |-- (0.02%, #5) 0x100005b6b657
 |    0x100005bd5d48
 |    |-- (0.01%, #2) 0x10000632b575
 |    |    0x10000632b8e7
 |    |   
 |    |-- (0.01%, #2) 0x100006d52423
 |    |    0x100006253b94
 |    |   
 |    \-- (0.00%, #1) 0x100006cc2f4a
 |         0x100006252e12
 |   
 |-- (0.02%, #5) 0x100005ce61c0
 |    0x100005ce6282
 |    |-- (0.01%, #4) 0x1000060d4830
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.00%, #1) 0x1000060d4794
 |         0x100006cc308e
 |   
 |-- (0.02%, #5) 0x10000720469a
 |    0x1000071ff717
 |    0x1000071fa774
 |    0x1000071f5813
 |   
 |-- (0.02%, #5) 0x1000061708f0
 |    0x100006253e43
 |    |-- (0.01%, #2) 0x1000062539aa
 |    |    0x100006252ceb
 |    |   
 |    |-- (0.01%, #2) 0x100006252e34
 |    |    0x100006252aab
 |    |   
 |    \-- (0.00%, #1) 0x100006253cdf
 |         0x100006252a77
 |   
 |-- (0.02%, #5) 0x100005d84d64
 |    0x100005d66d25
 |    0x100005d52741
 |    |-- (0.01%, #4) 0x100005cd81b3
 |    |   
 |    \-- (0.00%, #1) 0x100005d4cd7f
 |   
 |-- (0.02%, #5) 0x100005d66d25
 |    0x100005d52741
 |    0x100005cd81b3
 |    0x100005ced666
 |   
 |-- (0.02%, #5) 0x10000628704a
 |    0x100006284cd1
 |    |-- (0.01%, #3) 0x10000635f196
 |    |    0x100006353090
 |    |   
 |    |-- (0.00%, #1) 0x100006370635
 |    |    0x100006367f96
 |    |   
 |    \-- (0.00%, #1) 0x100006352430
 |         0x10000634e33f
 |   
 |-- (0.02%, #5) mmu::vm_fault(unsigned long, exception_frame*)
 |    page_fault
 |    ex_pf
 |    |-- (0.01%, #3) 0x100007236586
 |    |   
 |    \-- (0.01%, #2) 0x1000072de7d1
 |   
 |-- (0.02%, #5) 0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |    0x100006322807
 |   
 |-- (0.02%, #5) 0x100005b3a27a
 |    |-- (0.01%, #4) 0x100005d4ceb4
 |    |    0x100005d4cede
 |    |    0x100005ced679
 |    |   
 |    \-- (0.00%, #1) 0x100005d87ab0
 |         0x100005d87ada
 |         0x100006385d30
 |   
 |-- (0.02%, #5) 0x100007195153
 |    0x10000718e075
 |    0x100007186a1b
 |    0x10000717f142
 |   
 |-- (0.02%, #5) 0x100005e968e1
 |    0x100005e69bef
 |    0x1000060e6886
 |    0x1000060e72a0
 |   
 |-- (0.02%, #5) 0x10000628ba82
 |    0x100006289837
 |    0x10000628704a
 |    0x100006284cd1
 |   
 |-- (0.02%, #5) 0x100005d8e73f
 |    0x100005d72427
 |    |-- (0.01%, #3) 0x100005d724c7
 |    |    0x100005d5d02f
 |    |   
 |    |-- (0.00%, #1) 0x100005d5cf69
 |    |    0x100005dba435
 |    |   
 |    \-- (0.00%, #1) 0x100005d7249d
 |         0x100005d5cfd0
 |   
 |-- (0.02%, #5) 0x10000631507e
 |    0x10000634e9d6
 |    0x100006315320
 |    |-- (0.01%, #3) 0x10000632c041
 |    |   
 |    \-- (0.01%, #2) 0x10000632c092
 |   
 |-- (0.02%, #5) 0x100005db4f72
 |    0x100005db1411
 |    0x100005dacb79
 |    0x100005da63ed
 |   
 |-- (0.02%, #5) 0x1000062b168b
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.02%, #5) 0x100005d9d32c
 |    0x100005d8e75d
 |    0x100005d72561
 |    |-- (0.01%, #2) 0x100005d5d04f
 |    |   
 |    |-- (0.01%, #2) 0x100005d5d03b
 |    |   
 |    \-- (0.00%, #1) 0x100005d72445
 |   
 |-- (0.02%, #5) 0x10000001fbc7
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::mark_accessed(std::unordered_set<pagecache::arc_hashkey, std::hash<pagecache::arc_hashkey>, std::equal_to<pagecache::arc_hashkey>, std::allocator<pagecache::arc_hashkey> >&)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.02%, #5) 0x100005e5736f
 |    |-- (0.01%, #3) 0x100005ce6261
 |    |    0x1000060d4794
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.01%, #2) 0x100005ce690e
 |         0x100005db6cea
 |         0x100005db5369
 |   
 |-- (0.02%, #5) 0x1000071fa761
 |    0x1000071f5813
 |    0x1000071f0844
 |    0x1000071eb8cb
 |   
 |-- (0.01%, #4) 0x1000063e0db0
 |    0x1000063e1005
 |    0x1000063e04e6
 |    0x100006ac0b67
 |   
 |-- (0.01%, #4) 0x100007195140
 |    0x10000718e075
 |    0x100007186a1b
 |    0x10000717f142
 |   
 |-- (0.01%, #4) 0x100005d728ee
 |    0x100005d5d583
 |    0x100005d652f0
 |    |-- (0.01%, #3) 0x100005d5239d
 |    |   
 |    \-- (0.00%, #1) 0x100005ce7932
 |   
 |-- (0.01%, #4) 0x10000625c1ed
 |    |-- (0.01%, #2) 0x100006253aac
 |    |    0x100006252ceb
 |    |    0x100006252aab
 |    |   
 |    \-- (0.01%, #2) 0x1000062536a2
 |         0x10000625379f
 |         0x100006252ceb
 |   
 |-- (0.01%, #4) 0x100005d81041
 |    0x100005d645f3
 |    |-- (0.01%, #2) 0x100005ce6987
 |    |    0x100005db6cea
 |    |   
 |    \-- (0.01%, #2) 0x100005ce6964
 |         |-- (0.00%, #1) 0x100005db6cea
 |         |   
 |         \-- (0.00%, #1) 0x100005d4deec
 |   
 |-- (0.01%, #4) 0x100006352562
 |    0x10000634e32f
 |    |-- (0.01%, #3) 0x10000635da3d
 |    |    0x100006363256
 |    |   
 |    \-- (0.00%, #1) 0x1000063754f9
 |         0x10000636ff6a
 |   
 |-- (0.01%, #4) 0x100006274f7f
 |    0x10000626f907
 |    0x100006268c3b
 |    0x100006261953
 |   
 |-- (0.01%, #4) 0x100005ced679
 |    0x100005cee3cf
 |    |-- (0.01%, #2) 0x100005ccb9b6
 |    |    |-- (0.00%, #1) 0x100006253a2b
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100006253e56
 |    |   
 |    \-- (0.01%, #2) 0x1000060d1d63
 |         0x1000060d22f0
 |   
 |-- (0.01%, #4) 0x100005cf2019
 |    0x100005ce6f84
 |    0x100005cc9e38
 |    |-- (0.01%, #2) 0x100006252cc6
 |    |   
 |    \-- (0.01%, #2) 0x100006253892
 |   
 |-- (0.01%, #4) 0x100005ed350e
 |    0x100005e9c517
 |    0x100005e5736f
 |    |-- (0.01%, #2) 0x100005ce690e
 |    |   
 |    |-- (0.00%, #1) 0x100005ce6261
 |    |   
 |    \-- (0.00%, #1) 0x100005ce6168
 |   
 |-- (0.01%, #4) 0x100005db6967
 |    0x100005db4fde
 |    0x100005db1469
 |    0x100005db8671
 |   
 |-- (0.01%, #4) 0x10000632be66
 |    0x100006322807
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.01%, #4) memory::page_range* memory::page_range_allocator::alloc<true>(unsigned long, bool)
 |    |-- (0.01%, #2) memory::page_pool::l2::refill()
 |    |    memory::page_pool::l2::fill_thread()
 |    |    memory::page_pool::l2::l2()::{lambda()#1}::operator()() const
 |    |    void std::__invoke_impl<void, memory::page_pool::l2::l2()::{lambda()#1}&>(std::__invoke_other, memory::page_pool::l2::l2()::{lambda()#1}&)
 |    |    std::enable_if<std::__and_<std::is_void<void>, std::__is_invocable<memory::page_pool::l2::l2()::{lambda()#1}&> >::value, void>::type std::__invoke_r<void, memory::page_pool::l2::l2()::{lambda()#1}&>(memory::page_pool::l2::l2()::{lambda()#1}&)
 |    |    std::_Function_handler<void (), memory::page_pool::l2::l2()::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    |   
 |    \-- (0.01%, #2) memory::malloc_large(unsigned long, unsigned long, bool, bool)
 |         std_malloc(unsigned long, unsigned long)
 |         malloc
 |   
 |-- (0.01%, #4) 0x100007208d4b
 |    0x100007203d8c
 |    0x1000071fedf5
 |    0x1000071f9e56
 |   
 |-- (0.01%, #4) 0x100005d955d8
 |    0x100005d80fc2
 |    0x100005d645a9
 |    0x100005ce5606
 |   
 |-- (0.01%, #4) 0x1000060d16c1
 |    0x100006cac884
 |    0x1000060de169
 |    0x100006253990
 |   
 |-- (0.01%, #4) 0x1000063a9766
 |    |-- (0.01%, #2) 0x1000063c035e
 |    |    0x1000063c0593
 |    |    0x1000063b7812
 |    |   
 |    \-- (0.01%, #2) 0x1000063a979d
 |         0x100006387988
 |         0x100006387b55
 |   
 |-- (0.01%, #4) 0x100006cac8dc
 |    0x1000060de169
 |    0x100006253990
 |    0x100006252ceb
 |   
 |-- (0.01%, #4) 0x100005db5270
 |    0x100005db1957
 |    0x100005dac9ed
 |    0x100005da6381
 |   
 |-- (0.01%, #4) 0x100005d5233f
 |    0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |   
 |-- (0.01%, #4) 0x100005ce690e
 |    |-- (0.01%, #2) 0x100005db6cea
 |    |    0x100005db5369
 |    |    0x100005db1aeb
 |    |   
 |    |-- (0.00%, #1) 0x100005d4deec
 |    |    0x100005db6d0d
 |    |    0x100005db5369
 |    |   
 |    \-- (0.00%, #1) 0x100005d866fd
 |         0x100005d684eb
 |         0x100005da7871
 |   
 |-- (0.01%, #4) 0x1000063718af
 |    0x10000636a016
 |    0x10000636a144
 |    0x100006360f3f
 |   
 |-- (0.01%, #4) 0x100005db2e2d
 |    0x100005dadf1b
 |    0x100005da718d
 |    0x100005da00ed
 |   
 |-- (0.01%, #4) 0x1000062c4af7
 |    0x1000062b0874
 |    0x1000062b07ce
 |    0x10000631818b
 |   
 |-- (0.01%, #4) 0x100005cc9e38
 |    |-- (0.01%, #3) 0x100006252a64
 |    |    0x10000625669e
 |    |    0x10000624cc55
 |    |   
 |    \-- (0.00%, #1) 0x100005f61ef7
 |         0x1000060d246d
 |         0x1000060d16c1
 |   
 |-- (0.01%, #4) 0x100005d4e198
 |    |-- (0.01%, #3) 0x1000060d2046
 |    |    |-- (0.01%, #2) 0x1000060d18d6
 |    |    |    0x1000060d152e
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005f61f83
 |    |         0x1000060d246d
 |    |   
 |    \-- (0.00%, #1) 0x100005cec12c
 |         0x100005e2667f
 |         0x100005e25550
 |   
 |-- (0.01%, #4) 0x1000060d48db
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #4) 0x100006376583
 |    0x10000637176a
 |    0x100006371794
 |    0x100006371858
 |   
 |-- (0.01%, #4) 0x100006253a2b
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.01%, #4) 0x1000063be8c7
 |    0x1000063b6691
 |    0x1000063ad82d
 |    0x1000063ad593
 |   
 |-- (0.01%, #4) 0x100005d4cd7f
 |    0x100005d4cc65
 |    0x100006357b03
 |    0x100006323c97
 |   
 |-- (0.01%, #4) 0x1000062b1479
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.01%, #4) 0x100005d72427
 |    |-- (0.01%, #2) 0x100005d5cf69
 |    |    |-- (0.00%, #1) 0x100005cd7ecc
 |    |    |    0x100005db5df8
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005dba435
 |    |         0x100005dba459
 |    |   
 |    |-- (0.00%, #1) 0x100005d724c7
 |    |    0x100005d5d02f
 |    |    0x100005d51120
 |    |   
 |    \-- (0.00%, #1) 0x100005d72538
 |         0x100005d5d01d
 |         0x100005d51120
 |   
 |-- (0.01%, #4) 0x1000063873c9
 |    0x100005cd556f
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.01%, #4) 0x100005d64f07
 |    |-- (0.01%, #2) 0x100005d5238d
 |    |    0x100005cf205d
 |    |    0x100005ce6f84
 |    |   
 |    |-- (0.00%, #1) 0x100005ce6f13
 |    |    0x100005ce6e84
 |    |    0x100005f64b6f
 |    |   
 |    \-- (0.00%, #1) 0x100005ce6f2e
 |         0x100005ce6e84
 |         0x1000060d4be4
 |   
 |-- (0.01%, #4) 0x100007167ba4
 |    0x10000715faf3
 |    0x100007158f74
 |    0x100007155093
 |   
 |-- (0.01%, #4) 0x100006284cd1
 |    |-- (0.01%, #3) 0x100006352430
 |    |    0x10000634e33f
 |    |    |-- (0.01%, #2) 0x1000063754f9
 |    |    |   
 |    |    \-- (0.00%, #1) 0x10000635da3d
 |    |   
 |    \-- (0.00%, #1) 0x100006370635
 |         0x100006367f96
 |         0x100006367fc0
 |   
 |-- (0.01%, #4) 0x100005db6c67
 |    0x100005db52dc
 |    0x100005db19af
 |    0x100005db8325
 |   
 |-- (0.01%, #4) 0x100005d58045
 |    0x100005e69b41
 |    0x1000060e6886
 |    |-- (0.01%, #2) 0x1000060e72a0
 |    |   
 |    \-- (0.01%, #2) 0x1000060e72bd
 |   
 |-- (0.01%, #4) 0x100005f66fe5
 |    0x100005f61e4f
 |    0x100005f620ab
 |    0x1000060d246d
 |   
 |-- (0.01%, #4) 0x1000060ecde6
 |    0x1000060d14db
 |    0x1000063a930a
 |    |-- (0.01%, #3) 0x100006d4ab46
 |    |   
 |    \-- (0.00%, #1) 0x100006cc2f22
 |   
 |-- (0.01%, #4) 0x100005d723fb
 |    0x100005d5cedf
 |    0x100005d5ceff
 |    0x100005d5cf1f
 |   
 |-- (0.01%, #4) 0x100000024ddd
 |    |-- (0.01%, #3) 0x100000026a9d
 |    |    |-- (0.01%, #2) 0x10000002732e
 |    |    |    0x10000003635b
 |    |    |   
 |    |    \-- (0.00%, #1) 0x1000000270bc
 |    |         0x10000002b792
 |    |   
 |    \-- (0.00%, #1) 0x10000002693f
 |         0x10000003482e
 |         0x100000034c0f
 |   
 |-- (0.01%, #4) 0x100005e25550
 |    0x100005e2536d
 |    0x1000060d403a
 |    0x1000060d486d
 |   
 |-- (0.01%, #4) 0x1000062965dc
 |    0x1000062b1804
 |    0x1000062b13d3
 |    0x10000631818b
 |   
 |-- (0.01%, #4) 0x10000722c4bf
 |    0x10000722c529
 |    0x10000723645b
 |    0x100007236801
 |   
 |-- (0.01%, #4) std::lock_guard<lockfree::mutex>::~lock_guard()
 |    |-- (0.01%, #3) lock_guard_for_with_lock<lockfree::mutex>::~lock_guard_for_with_lock()
 |    |    |-- (0.00%, #1) memory::malloc_large(unsigned long, unsigned long, bool, bool)
 |    |    |    std_malloc(unsigned long, unsigned long)
 |    |    |    malloc
 |    |    |    operator new(unsigned long)
 |    |    |   
 |    |    |-- (0.00%, #1) free_page_range
 |    |    |    free_large
 |    |    |    free
 |    |    |    free
 |    |    |    0x100005d7246e
 |    |    |    0x100005d5cf9a
 |    |    |    0x100005dba435
 |    |    |   
 |    |    \-- (0.00%, #1) rwlock::runlock()
 |    |         rwlock_for_read::unlock()
 |    |         std::lock_guard<rwlock_for_read&>::~lock_guard()
 |    |         lock_guard_for_with_lock<rwlock_for_read&>::~lock_guard_for_with_lock()
 |    |         mmu::vm_fault(unsigned long, exception_frame*)
 |    |         page_fault
 |    |         ex_pf
 |    |   
 |    \-- (0.00%, #1) rwlock::rlock()
 |         rwlock_for_read::lock()
 |         std::lock_guard<rwlock_for_read&>::lock_guard(rwlock_for_read&)
 |         lock_guard_for_with_lock<rwlock_for_read&>::lock_guard_for_with_lock(rwlock_for_read&)
 |         mmu::vm_fault(unsigned long, exception_frame*)
 |         page_fault
 |         ex_pf
 |   
 |-- (0.01%, #4) 0x100005ced750
 |    0x100005cee3cf
 |    |-- (0.01%, #3) 0x1000060d1d63
 |    |    0x1000060d22f0
 |    |   
 |    \-- (0.00%, #1) 0x100005ccb9b6
 |         0x100006253e56
 |   
 |-- (0.01%, #4) void mmu::map_range<mmu::populate<(mmu::account_opt)0> >(unsigned long, unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long)
 |    unsigned long mmu::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, void*, unsigned long)
 |    unsigned long mmu::vma::operate_range<mmu::populate<(mmu::account_opt)0> >(mmu::populate<(mmu::account_opt)0>, void*, unsigned long)
 |    unsigned long mmu::populate_vma<(mmu::account_opt)0>(mmu::vma*, void*, unsigned long, bool)
 |    mmu::vma::fault(unsigned long, exception_frame*)
 |    mmu::vm_fault(unsigned long, exception_frame*)
 |    page_fault
 |   
 |-- (0.01%, #4) 0x100006367676
 |    0x10000635e4f3
 |    0x1000063523e7
 |    |-- (0.01%, #3) 0x1000063206c5
 |    |   
 |    \-- (0.00%, #1) 0x100006321206
 |   
 |-- (0.01%, #4) 0x100005d66d8d
 |    0x100005d52777
 |    |-- (0.01%, #3) 0x100005cd81bf
 |    |    0x100005ced666
 |    |   
 |    \-- (0.00%, #1) 0x100005d4ce1f
 |         0x100005ced68c
 |   
 |-- (0.01%, #4) 0x100005ced957
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    0x100006253e56
 |   
 |-- (0.01%, #4) 0x100005d652f0
 |    0x100005d5239d
 |    0x100005cf205d
 |    0x100005ce6f84
 |   
 |-- (0.01%, #4) 0x1000060d22f0
 |    |-- (0.01%, #3) 0x1000060d18d6
 |    |    0x1000060d152e
 |    |    0x1000063a930a
 |    |   
 |    \-- (0.00%, #1) 0x100005f61f83
 |         0x1000060d246d
 |         0x1000060d16c1
 |   
 |-- (0.01%, #4) 0x100005e94df1
 |    0x1000060d42af
 |    0x1000060d471c
 |    0x100006cc308e
 |   
 |-- (0.01%, #4) 0x100005b4d2c7
 |    |-- (0.01%, #3) 0x100005b4d2eb
 |    |    |-- (0.01%, #2) 0x100005cee321
 |    |    |    0x100005cee3cf
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005db7a7d
 |    |         0x100005dba392
 |    |   
 |    \-- (0.00%, #1) 0x100005ced698
 |         0x100005cee3cf
 |         0x100005ccb9b6
 |   
 |-- (0.01%, #4) 0x100006253768
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.01%, #3) 0x100005b28d51
 |    0x100005d51b1c
 |    0x100005d51b4a
 |    0x100005d64f33
 |   
 |-- (0.01%, #3) 0x100005d58aa8
 |    0x100005cc9d4f
 |    |-- (0.01%, #2) 0x100005f61ef7
 |    |    0x1000060d246d
 |    |   
 |    \-- (0.00%, #1) 0x100006cc2f00
 |         0x100006252e12
 |   
 |-- (0.01%, #3) 0x100006322740
 |    0x10000632b9fa
 |    0x10000638e6cc
 |    0x100006ac0c44
 |   
 |-- (0.01%, #3) 0x1000063705f6
 |    0x100006370629
 |    0x100006367f96
 |    0x100006367fc0
 |   
 |-- (0.01%, #3) 0x100005d66ccd
 |    0x100005d66c65
 |    0x100005d52695
 |    0x100005d4ce0f
 |   
 |-- (0.01%, #3) 0x100005db6cea
 |    0x100005db5369
 |    0x100005db1aeb
 |    0x100005daca45
 |   
 |-- (0.01%, #3) 0x1000061f046e
 |    0x1000061709d2
 |    0x1000061708f0
 |    0x100006253e43
 |   
 |-- (0.01%, #3) 0x100005d5238d
 |    0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |   
 |-- (0.01%, #3) 0x100005d66c65
 |    0x100005d52695
 |    |-- (0.01%, #2) 0x100005d4ce0f
 |    |    0x100005ced68c
 |    |   
 |    \-- (0.00%, #1) 0x100005d4cd96
 |         0x100005d4cc65
 |   
 |-- (0.01%, #3) 0x100006352497
 |    0x10000634e1ed
 |    0x10000634e20d
 |    0x10000634e2c4
 |   
 |-- (0.01%, #3) 0x100006261465
 |    0x10000625ad5d
 |    0x100006252d89
 |    0x100006252aab
 |   
 |-- (0.01%, #3) 0x100005d5d04f
 |    0x100005d51120
 |    0x100005d5114e
 |    0x100005cd7ec0
 |   
 |-- (0.01%, #3) 0x100005d4d859
 |    |-- (0.01%, #2) 0x100005db7a89
 |    |    0x100005dba392
 |    |    0x100005db9bfe
 |    |   
 |    \-- (0.00%, #1) 0x100005dba3ce
 |         0x100005db9c46
 |         0x100005db87a0
 |   
 |-- (0.01%, #3) 0x100005db6d19
 |    0x100005db5369
 |    0x100005db1aeb
 |    0x100005daca45
 |   
 |-- (0.01%, #3) 0x100005d6f7ff
 |    0x100005d590f6
 |    0x100005d59120
 |    0x100005ccb679
 |   
 |-- (0.01%, #3) 0x100005db2e72
 |    0x100005dadf5d
 |    0x100005db8b63
 |    0x100005b2adf1
 |   
 |-- (0.01%, #3) 0x1000063ae300
 |    0x100006387972
 |    0x100006387b55
 |    0x10000628178d
 |   
 |-- (0.01%, #3) 0x100005d4d71d
 |    0x100005d4debb
 |    0x100005db6d0d
 |    0x100005db5369
 |   
 |-- (0.01%, #3) 0x100006352dd4
 |    0x10000632069d
 |    0x100006320749
 |    0x100006314da5
 |   
 |-- (0.01%, #3) 0x100005db9bfe
 |    0x100005db85fa
 |    0x100005b2ad61
 |    0x100005b28d51
 |   
 |-- (0.01%, #3) 0x100006357b38
 |    0x100006323c97
 |    0x10000632b9a1
 |    0x10000638e6cc
 |   
 |-- (0.01%, #3) 0x1000063b6691
 |    0x1000063ad82d
 |    0x1000063ad593
 |    |-- (0.01%, #2) 0x100006385ade
 |    |   
 |    \-- (0.00%, #1) 0x100006387a72
 |   
 |-- (0.01%, #3) 0x10000621ae73
 |    0x10000620e4d9
 |    0x1000061f1c49
 |    0x1000061dcd2d
 |   
 |-- (0.01%, #3) 0x100005da63ed
 |    0x100005d9f160
 |    0x100005d960c8
 |    0x100005d81a94
 |   
 |-- (0.01%, #3) 0x10000634e33f
 |    |-- (0.00%, #1) 0x10000635da3d
 |    |    0x100006363256
 |    |    0x1000063570f9
 |    |   
 |    |-- (0.00%, #1) 0x10000632be94
 |    |    0x100006322807
 |    |    0x10000632b9fa
 |    |   
 |    \-- (0.00%, #1) 0x1000063754f9
 |         0x10000636ff6a
 |         0x1000063676e1
 |   
 |-- (0.01%, #3) boost::intrusive::set_impl<boost::intrusive::mhtraits<mmu::vma, boost::intrusive::set_member_hook<>, &mmu::vma::_vma_list_hook>, void, mmu::vma_compare, unsigned long, true, void>::insert(mmu::vma&)
 |    mmu::allocate(mmu::vma*, unsigned long, unsigned long, bool)
 |    mmu::map_anon(void const*, unsigned long, unsigned int, unsigned int)
 |    mmap
 |    0x10000724bc87
 |   
 |-- (0.01%, #3) 0x100005ced5c6
 |    0x100005cee3cf
 |    |-- (0.01%, #2) 0x100005ccb9b6
 |    |    0x100006253e56
 |    |   
 |    \-- (0.00%, #1) 0x1000060d1d63
 |         0x1000060d22f0
 |   
 |-- (0.01%, #3) 0x100006274d03
 |    0x10000626f48a
 |    0x1000062685a1
 |    0x100006261465
 |   
 |-- (0.01%, #3) 0x100005bd63dd
 |    |-- (0.01%, #2) 0x10000634e9f4
 |    |    0x100006315320
 |    |    |-- (0.00%, #1) 0x10000632c041
 |    |    |   
 |    |    \-- (0.00%, #1) 0x10000632c092
 |    |   
 |    \-- (0.00%, #1) 0x100006323f6c
 |         0x100006357b38
 |         0x100006323c97
 |   
 |-- (0.01%, #3) 0x100005d980ae
 |    0x100005d865f9
 |    0x100005d68300
 |    0x100005d6860f
 |   
 |-- (0.01%, #3) 0x100005bd5d48
 |    |-- (0.00%, #1) 0x100006acc3b9
 |    |    0x100006ac0bc8
 |    |    0x100006d524c3
 |    |   
 |    |-- (0.00%, #1) 0x100006cc2f4a
 |    |    0x100006252e12
 |    |    0x100006252aab
 |    |   
 |    \-- (0.00%, #1) 0x100006d52423
 |         0x100006253b94
 |         0x100006252a77
 |   
 |-- (0.01%, #3) 0x100005d525d1
 |    0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |   
 |-- (0.01%, #3) 0x100005ced6e8
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    0x100006253a2b
 |   
 |-- (0.01%, #3) 0x1000071d7132
 |    0x1000071d21a3
 |    0x1000071cd241
 |    0x1000071c8247
 |   
 |-- (0.01%, #3) 0x100005d51b1c
 |    0x100005d51b4a
 |    0x100005d64f33
 |    |-- (0.01%, #2) 0x100005d5238d
 |    |   
 |    \-- (0.00%, #1) 0x100005ce6f13
 |   
 |-- (0.01%, #3) 0x100005dabf82
 |    0x100005da5d7f
 |    0x100005d9e956
 |    0x100005d955d8
 |   
 |-- (0.01%, #3) 0x10000637a1e5
 |    0x1000063765af
 |    |-- (0.01%, #2) 0x1000063718eb
 |    |    0x10000636a09f
 |    |   
 |    \-- (0.00%, #1) 0x100006371974
 |         0x10000636a09f
 |   
 |-- (0.01%, #3) 0x100005f04a3d
 |    0x100005ee3432
 |    0x100005eb5985
 |    0x100005e72e83
 |   
 |-- (0.01%, #3) random_process_event(harvest*)
 |    random_kthread(void*)
 |    sched::thread::main()
 |   
 |-- (0.01%, #3) 0x1000060d486d
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #3) 0x100005dae021
 |    0x100005da71e5
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.01%, #3) 0x100005bf6fcb
 |    |-- (0.01%, #2) 0x100005bf6fef
 |    |    0x100005da09b2
 |    |    0x100005d98116
 |    |   
 |    \-- (0.00%, #1) 0x100005ce7a3d
 |         0x100005ce61c0
 |         0x100005ce6282
 |   
 |-- (0.01%, #3) 0x100005d58db7
 |    0x100005d58aa8
 |    0x100005cc9d4f
 |    |-- (0.00%, #1) 0x100006252a64
 |    |   
 |    |-- (0.00%, #1) 0x100006cc2f00
 |    |   
 |    \-- (0.00%, #1) 0x100005f61ef7
 |   
 |-- (0.01%, #3) 0x100005bf6fff
 |    |-- (0.01%, #2) 0x100005ce76c9
 |    |    0x100005ce734d
 |    |    0x100005ccb57e
 |    |   
 |    \-- (0.00%, #1) 0x1000060d4d21
 |         0x100006cc308e
 |         0x100006252e12
 |   
 |-- (0.01%, #3) 0x100005d64ec3
 |    |-- (0.01%, #2) 0x100005d525e9
 |    |    0x100005cf205d
 |    |    0x100005ce6f84
 |    |   
 |    \-- (0.00%, #1) 0x100005ced1f0
 |         0x1000062b0841
 |         0x1000062b07ce
 |   
 |-- (0.01%, #3) 0x100005cd7ec0
 |    0x100005db5df8
 |    0x100005db2eff
 |    0x100005dae099
 |   
 |-- (0.01%, #3) 0x10000722afa6
 |    0x10000722c795
 |    0x100007235fcc
 |    0x100007236430
 |   
 |-- (0.01%, #3) 0x10000724aa3b
 |    0x100007247cc4
 |    0x10000724846c
 |    0x1000072991aa
 |   
 |-- (0.01%, #3) 0x100005c43ca4
 |    0x100005c3e061
 |    0x100005c37e7d
 |    |-- (0.01%, #2) 0x100005c3305d
 |    |   
 |    \-- (0.00%, #1) 0x100005cbb6eb
 |   
 |-- (0.01%, #3) 0x100005e5e971
 |    |-- (0.01%, #2) 0x100005bf701f
 |    |    |-- (0.00%, #1) 0x100005da09b2
 |    |    |    0x100005d98116
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100005cc9c8a
 |    |         0x100005cc991a
 |    |   
 |    \-- (0.00%, #1) 0x100005cc9c99
 |         0x100005cc991a
 |         0x1000060d48a4
 |   
 |-- (0.01%, #3) 0x100005bd5679
 |    |-- (0.01%, #2) 0x100005bd63dd
 |    |    |-- (0.00%, #1) 0x10000634e9f4
 |    |    |    0x100006315320
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100006323f6c
 |    |         0x100006357b38
 |    |   
 |    \-- (0.00%, #1) 0x100005c36b5c
 |         0x100005c331d4
 |         0x10000634d7e2
 |   
 |-- (0.01%, #3) 0x100005d66c02
 |    0x100005d66c52
 |    0x100005d52695
 |    0x100005d4ce0f
 |   
 |-- (0.01%, #3) 0x10000717e619
 |    0x100007176c56
 |    0x10000716ef14
 |    0x100007167015
 |   
 |-- (0.01%, #3) 0x100005cc98d1
 |    0x1000060d4cf4
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.01%, #3) memory::page_range_allocator::free(memory::page_range*)
 |    free
 |    free_page_range
 |    free_large
 |    free
 |    free
 |    0x100005d7246e
 |    0x100005d5cf9a
 |   
 |-- (0.01%, #3) 0x100005d5c62e
 |    0x100005d5c11b
 |    0x100005cd55d7
 |    0x1000060d47fe
 |   
 |-- (0.01%, #3) 0x1000071ff717
 |    0x1000071fa774
 |    0x1000071f5813
 |    0x1000071f0844
 |   
 |-- (0.01%, #3) 0x100005d64eb0
 |    |-- (0.01%, #2) 0x100005d525e9
 |    |    0x100005cf205d
 |    |    0x100005ce6f84
 |    |   
 |    \-- (0.00%, #1) 0x100005ce7922
 |         0x100005ce61c0
 |         0x100005ce6282
 |   
 |-- (0.01%, #3) 0x100006252d89
 |    0x100006252aab
 |    0x10000625669e
 |    0x10000624cc55
 |   
 |-- (0.01%, #3) 0x1000062c5dda
 |    0x1000062b1479
 |    0x1000062b13d3
 |    0x10000631818b
 |   
 |-- (0.01%, #3) 0x100006387941
 |    0x100006387b55
 |    0x10000628178d
 |    0x100006281669
 |   
 |-- (0.01%, #3) 0x100005f6c0ef
 |    0x1000061f0393
 |    0x1000061708cf
 |    0x100006253e43
 |   
 |-- (0.01%, #3) 0x100006d52463
 |    0x100006253b94
 |    0x100006252a77
 |    0x10000625669e
 |   
 |-- (0.01%, #3) 0x100005d81693
 |    |-- (0.00%, #1) 0x100005d64ec3
 |    |    0x100005d525e9
 |    |    0x100005cf205d
 |    |   
 |    |-- (0.00%, #1) 0x100005d8179d
 |    |    0x100005d64fc5
 |    |    0x100005ce7677
 |    |   
 |    \-- (0.00%, #1) 0x100005d81a19
 |         0x100005d65123
 |         0x100005ce769f
 |   
 |-- (0.01%, #3) 0x100005d590b3
 |    0x100005d50643
 |    0x100005d50683
 |    0x100005ccb5aa
 |   
 |-- (0.01%, #3) 0x100005d66d32
 |    0x100005d52741
 |    0x100005cd81b3
 |    0x100005ced666
 |   
 |-- (0.01%, #3) 0x100005d5be25
 |    0x100005cd5357
 |    0x100005cd55a1
 |    0x1000060d47fe
 |   
 |-- (0.01%, #3) 0x100006253a83
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.01%, #3) 0x1000062b0841
 |    0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.01%, #3) 0x100005b51fe6
 |    0x100005b504bb
 |    |-- (0.01%, #2) 0x100005d4cbf0
 |    |    0x100005ced5a1
 |    |   
 |    \-- (0.00%, #1) 0x100005b5009f
 |         0x100005d4d9dd
 |   
 |-- (0.01%, #3) 0x10000719bb5e
 |    0x100007195153
 |    0x10000718e075
 |    0x100007186a1b
 |   
 |-- (0.01%, #3) 0x100005cf2036
 |    0x100005ce6f84
 |    0x100005cc9e38
 |    |-- (0.01%, #2) 0x100006253892
 |    |   
 |    \-- (0.00%, #1) 0x100006252cc6
 |   
 |-- (0.01%, #3) 0x100007240862
 |    0x10000729bcbc
 |    0x10000722afa6
 |    0x10000722c795
 |   
 |-- (0.01%, #3) 0x100005d728c4
 |    |-- (0.01%, #2) 0x100005d5d570
 |    |    0x100005d652f0
 |    |    0x100005d5239d
 |    |   
 |    \-- (0.00%, #1) 0x100005d66dcd
 |         0x100005d527c6
 |         0x100005d4d25a
 |   
 |-- (0.01%, #3) 0x1000060d471c
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #3) 0x1000060d4218
 |    0x1000060d471c
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.01%, #3) 0x10000635f8e9
 |    0x100006353535
 |    |-- (0.01%, #2) 0x100006357ca3
 |    |    0x100006323c97
 |    |   
 |    \-- (0.00%, #1) 0x1000063227da
 |         0x10000632b9fa
 |   
 |-- (0.01%, #3) 0x100005b4dc85
 |    0x100005b4d622
 |    0x1000060d4d55
 |    0x100006cc308e
 |   
 |-- (0.01%, #3) 0x100005ced1a5
 |    |-- (0.01%, #2) 0x100005e26659
 |    |    0x100005e25550
 |    |    0x100005e2536d
 |    |   
 |    \-- (0.00%, #1) 0x1000062b0841
 |         0x1000062b07ce
 |         0x10000631818b
 |   
 |-- (0.01%, #3) 0x100005ce762c
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.01%, #3) 0x100006218e6c
 |    0x10000620c4ea
 |    0x1000061f046e
 |    0x1000061709d2
 |   
 |-- (0.01%, #3) 0x100005da552a
 |    0x100005d9d30e
 |    0x100005d8e73f
 |    0x100005d72427
 |   
 |-- (0.01%, #3) 0x100006261c9b
 |    0x10000625c1aa
 |    0x10000625396b
 |    0x100006252ceb
 |   
 |-- (0.01%, #3) 0x1000063edae6
 |    0x1000063ec9c8
 |    0x1000063eb20b
 |    0x1000063e93d2
 |   
 |-- (0.01%, #3) 0x100005eb2c75
 |    0x100005e6fe51
 |    |-- (0.01%, #2) 0x100005e6fe14
 |    |    0x1000060d4c77
 |    |   
 |    \-- (0.00%, #1) 0x100005e6fe33
 |         0x1000060e72b5
 |   
 |-- (0.01%, #3) sched::thread::sleep_impl(sched::timer&)
 |    wait_until<sched::thread::sleep_impl(sched::timer&)::<lambda()> >
 |    sched::thread::sleep_impl(sched::timer&)
 |    void sched::thread::sleep<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.01%, #3) 0x100005e72e46
 |    0x100006253958
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.01%, #3) 0x100005d5d02f
 |    0x100005d51120
 |    0x100005d5114e
 |    0x100005cd7ec0
 |   
 |-- (0.01%, #3) bool mmu::populate<(mmu::account_opt)0>::page<0>(mmu::hw_ptep<0>, unsigned long)
 |    page<mmu::populate<(mmu::account_opt)0>, 0>
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 1>::operator()(mmu::hw_ptep<1>, unsigned long)
 |    std::enable_if<((1)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::level)&&((1)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::map_range<1>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<1>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 2>::operator()(mmu::hw_ptep<2>, unsigned long)
 |    std::enable_if<((2)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::level)&&((2)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::map_range<2>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<2>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 3>::operator()(mmu::hw_ptep<3>, unsigned long)
 |    std::enable_if<((3)==mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::level)&&((3)!=(0)), void>::type mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::map_range<3>(unsigned long, unsigned long, mmu::populate<(mmu::account_opt)0>&, unsigned long, mmu::hw_ptep<3>, unsigned long)
 |    mmu::map_level<mmu::populate<(mmu::account_opt)0>, 4>::operator()(mmu::hw_ptep<4>, unsigned long)
 |   
 |-- (0.01%, #3) 0x1000063212a5
 |    0x100006314faf
 |    0x10000634e9d6
 |    0x100006315320
 |   
 |-- (0.01%, #3) 0x100005b4e6ba
 |    0x100005b4e1e8
 |    0x100005b4dbd7
 |    |-- (0.01%, #2) 0x1000060f3ebc
 |    |   
 |    \-- (0.00%, #1) 0x100005d6f7ff
 |   
 |-- (0.01%, #3) 0x100005ced62f
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    |-- (0.01%, #2) 0x100006253e56
 |    |   
 |    \-- (0.00%, #1) 0x1000060d1582
 |   
 |-- (0.01%, #3) 0x100005d6852f
 |    0x100005d5462b
 |    0x100005cc9c7e
 |    0x100005cc991a
 |   
 |-- (0.01%, #3) 0x1000060d4794
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #3) 0x100005e6fe51
 |    |-- (0.01%, #2) 0x100005e6fe14
 |    |    0x1000060d4c77
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.00%, #1) 0x100005e6fe33
 |         0x1000060d47ce
 |         0x100006cc308e
 |   
 |-- (0.01%, #3) 0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |    |-- (0.01%, #2) 0x100006253892
 |    |   
 |    \-- (0.00%, #1) 0x100006252cc6
 |   
 |-- (0.01%, #3) 0x100005e72e83
 |    0x100005e72e46
 |    0x100006253958
 |    0x100006252ceb
 |   
 |-- (0.01%, #3) 0x1000060d17d8
 |    0x1000060d152e
 |    0x1000063a930a
 |    |-- (0.01%, #2) 0x100006d4ab46
 |    |   
 |    \-- (0.00%, #1) 0x100006cc2f22
 |   
 |-- (0.01%, #3) 0x1000060d1927
 |    0x1000060d152e
 |    0x1000063a930a
 |    |-- (0.01%, #2) 0x100006cc2f22
 |    |   
 |    \-- (0.00%, #1) 0x100006d4ab46
 |   
 |-- (0.01%, #3) 0x100005cd7ecc
 |    0x100005db5df8
 |    0x100005db2eff
 |    0x100005dae099
 |   
 |-- (0.01%, #3) 0x100005e2536d
 |    0x1000060d403a
 |    0x1000060d486d
 |    0x100006cc308e
 |   
 |-- (0.01%, #3) 0x10000631818b
 |    0x100006318074
 |    0x10000631519e
 |    0x10000634e9d6
 |   
 |-- (0.01%, #3) 0x1000060d1804
 |    0x1000060d152e
 |    0x1000063a930a
 |    |-- (0.01%, #2) 0x100006d4ab46
 |    |   
 |    \-- (0.00%, #1) 0x100006cc2f22
 |   
 |-- (0.01%, #3) 0x100005d87285
 |    |-- (0.01%, #2) 0x1000062818a2
 |    |    0x100006281601
 |    |    |-- (0.00%, #1) 0x100005d8ded7
 |    |    |   
 |    |    \-- (0.00%, #1) 0x1000063873df
 |    |   
 |    \-- (0.00%, #1) 0x1000062818e3
 |         0x100006281799
 |         0x100006281669
 |   
 |-- (0.01%, #3) 0x100005b2fde9
 |    0x100005b2eb31
 |    0x100005b2c9e5
 |    0x100005d53b3a
 |   
 |-- (0.01%, #3) 0x100005cd81b3
 |    0x100005ced666
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.01%, #3) 0x100005b501d3
 |    0x100005d720d8
 |    0x100005d5cbda
 |    |-- (0.00%, #1) 0x100006b121c1
 |    |   
 |    |-- (0.00%, #1) 0x100006b1175f
 |    |   
 |    \-- (0.00%, #1) 0x100006b0a34f
 |   
 |-- (0.01%, #3) void sched::timer_base::set<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
 |    void sched::thread::sleep<long, std::ratio<1l, 1000000000l> >(std::chrono::duration<long, std::ratio<1l, 1000000000l> >)
 |    pagecache::access_scanner::run()
 |    sched::thread::main()
 |   
 |-- (0.01%, #3) 0x1000063ad82d
 |    |-- (0.01%, #2) 0x1000063ad593
 |    |    |-- (0.00%, #1) 0x100006387a72
 |    |    |    0x10000628178d
 |    |    |   
 |    |    \-- (0.00%, #1) 0x100006385ade
 |    |         0x1000063873c9
 |    |   
 |    \-- (0.00%, #1) 0x1000063ad5f1
 |         0x100006387a91
 |         0x10000628178d
 |   
 |-- (0.01%, #3) 0x100005ce6f13
 |    0x100005ce6e84
 |    |-- (0.01%, #2) 0x100005ce65e8
 |    |    0x100005ce7598
 |    |   
 |    \-- (0.00%, #1) 0x1000060d4928
 |         0x100006cc308e
 |   
 |-- (0.01%, #3) 0x100005cbb3fb
 |    |-- (0.01%, #2) 0x100005cbb41b
 |    |    0x100005cbb43b
 |    |    0x100005cbb466
 |    |   
 |    \-- (0.00%, #1) 0x100005cbb4f3
 |         0x100005cbb224
 |         0x100005cbb24e
 |   
 |-- (0.01%, #3) 0x100006314faf
 |    0x10000634e9d6
 |    0x100006315320
 |    0x10000632c041
 |   
 |-- (0.01%, #3) 0x100005d52887
 |    0x100005d528b2
 |    |-- (0.01%, #2) 0x100005d4d70d
 |    |    0x100005d4debb
 |    |   
 |    \-- (0.00%, #1) 0x100005d4d76f
 |         0x100005db67f0
 |   
 |-- (0.01%, #3) 0x100005d66e19
 |    0x100005d528d2
 |    0x100005d4d859
 |    |-- (0.00%, #1) 0x100005db7a89
 |    |   
 |    |-- (0.00%, #1) 0x100005db79b1
 |    |   
 |    \-- (0.00%, #1) 0x100005dba3ce
 |   
 |-- (0.01%, #3) 0x100005e26665
 |    0x100005e25550
 |    0x100005e2536d
 |    0x1000060d403a
 |   
 |-- (0.01%, #3) taskqueue_enqueue_locked
 |    taskqueue_enqueue
 |    0x10000000bd74
 |    0x100000098fb2
 |    virtio::blk::req_done()
 |   
 |-- (0.01%, #3) 0x100005e5721b
 |    0x1000060d4776
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.01%, #3) 0x100005cc9d76
 |    |-- (0.01%, #2) 0x100006253892
 |    |    0x100006252ceb
 |    |    0x100006252aab
 |    |   
 |    \-- (0.00%, #1) 0x100006252a64
 |         0x10000625669e
 |         0x10000624cc55
 |   
 |-- (0.01%, #3) 0x100005f61e4f
 |    0x100005f620ab
 |    0x1000060d246d
 |    0x1000060d16c1
 |   
 |-- (0.01%, #3) 0x100005dae125
 |    |-- (0.00%, #1) 0x100005db8ace
 |    |    0x100005b2ad61
 |    |    0x100005b28e82
 |    |   
 |    |-- (0.00%, #1) 0x100005dae084
 |    |    0x100005da71e5
 |    |    0x100005da00ed
 |    |   
 |    \-- (0.00%, #1) 0x100005da721d
 |         0x100005da00ed
 |         0x100005d972f4
 |   
 |-- (0.01%, #3) 0x1000061f0383
 |    0x1000061708cf
 |    0x100006253e43
 |    |-- (0.01%, #2) 0x100006252e34
 |    |   
 |    \-- (0.00%, #1) 0x1000062539aa
 |   
 |-- (0.01%, #3) 0x100005db2eff
 |    0x100005dae099
 |    0x100005da71e5
 |    0x100005da00ed
 |   
 |-- (0.01%, #3) 0x100005d9cb87
 |    0x100005d8da4d
 |    0x100005d7103f
 |    |-- (0.01%, #2) 0x100005d5c029
 |    |   
 |    \-- (0.00%, #1) 0x100005d70e5c
 |   
 |-- (0.01%, #2) 0x100005db85ef
 |    0x100005b2ad61
 |    0x100005b28d51
 |    0x100005d51b1c
 |   
 |-- (0.01%, #2) 0x100006386e2a
 |    0x100006386f2d
 |    0x100005d50027
 |    0x100005d5be9c
 |   
 |-- (0.01%, #2) 0x100005ee0bf5
 |    0x100005eb2c75
 |    0x100005e6fe51
 |    0x100005e6fe33
 |   
 |-- (0.01%, #2) 0x100005b391a7
 |    |-- (0.00%, #1) 0x1000060d1576
 |    |    0x1000063a930a
 |    |    0x100006d4ab46
 |    |   
 |    \-- (0.00%, #1) 0x100005cc9e71
 |         0x100006252a64
 |         0x10000625669e
 |   
 |-- (0.01%, #2) 0x1000060d1d2e
 |    0x1000060d22f0
 |    |-- (0.00%, #1) 0x100005f61f83
 |    |    0x1000060d246d
 |    |   
 |    \-- (0.00%, #1) 0x100005f61fdd
 |         0x1000060d246d
 |   
 |-- (0.01%, #2) 0x100006315135
 |    0x10000634e9d6
 |    0x100006315320
 |    |-- (0.00%, #1) 0x10000632c041
 |    |   
 |    \-- (0.00%, #1) 0x10000632c092
 |   
 |-- (0.01%, #2) 0x100005d4e041
 |    0x100005ced63e
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.01%, #2) 0x100006253e43
 |    |-- (0.00%, #1) 0x100006252e34
 |    |    0x100006252aab
 |    |    0x10000625669e
 |    |   
 |    \-- (0.00%, #1) 0x1000062539aa
 |         0x100006252ceb
 |         0x100006252aab
 |   
 |-- (0.01%, #2) 0x100005d4feef
 |    |-- (0.00%, #1) 0x100005cd5499
 |    |    0x1000060d47fe
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.00%, #1) 0x100006b0a45f
 |         0x1000060d4cc3
 |         0x100006cc308e
 |   
 |-- (0.01%, #2) 0x100005ce5606
 |    0x100005ce5722
 |    0x100005ce7a1a
 |    0x100005ce61c0
 |   
 |-- (0.01%, #2) 0x100005c331d4
 |    0x10000634d7e2
 |    0x100006320654
 |    |-- (0.00%, #1) 0x10000632128e
 |    |   
 |    \-- (0.00%, #1) 0x100006320736
 |   
 |-- (0.01%, #2) 0x1000061f022c
 |    0x1000061708a2
 |    0x100006253e43
 |    |-- (0.00%, #1) 0x1000062539aa
 |    |   
 |    \-- (0.00%, #1) 0x100006252e34
 |   
 |-- (0.01%, #2) 0x10000634e5c1
 |    |-- (0.00%, #1) 0x100006320759
 |    |    0x100006314da5
 |    |    0x10000632be66
 |    |   
 |    \-- (0.00%, #1) 0x1000063212b4
 |         0x100006314faf
 |         0x10000634e9d6
 |   
 |-- (0.01%, #2) 0x100005d72561
 |    0x100005d5d03b
 |    0x100005d51120
 |    0x100005d5114e
 |   
 |-- (0.01%, #2) 0x100006cc309a
 |    0x100006252e12
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.01%, #2) 0x100005ce6e54
 |    |-- (0.00%, #1) 0x100005f64b6f
 |    |    0x1000060d2108
 |    |    0x100005f61fdd
 |    |   
 |    \-- (0.00%, #1) 0x100005ce7336
 |         0x100005ccb57e
 |         0x100006cac8dc
 |   
 |-- (0.01%, #2) 0x100005db8b4b
 |    0x100005b2adf1
 |    0x100005b28e82
 |    0x100005b4d2a7
 |   
 |-- (0.01%, #2) 0x100005ce6e84
 |    |-- (0.00%, #1) 0x100005ce65e8
 |    |    0x100005ce7598
 |    |    0x100005ce734d
 |    |   
 |    \-- (0.00%, #1) 0x100005f64b6f
 |         0x1000060d2108
 |         0x100005f61fdd
 |   
 |-- (0.01%, #2) 0x100005db5dd6
 |    0x100005db2eff
 |    0x100005dae099
 |    0x100005da71e5
 |   
 |-- (0.01%, #2) 0x100005d9d30e
 |    0x100005d8e73f
 |    0x100005d72427
 |    |-- (0.00%, #1) 0x100005d5cf69
 |    |   
 |    \-- (0.00%, #1) 0x100005d724c7
 |   
 |-- (0.01%, #2) 0x1000063676e1
 |    0x10000635e632
 |    0x100006352562
 |    0x10000634e32f
 |   
 |-- (0.01%, #2) 0x100006385b29
 |    0x1000063873c9
 |    0x100005cd556f
 |    0x1000060d47fe
 |   
 |-- (0.01%, #2) 0x100005ce65b5
 |    0x100005ce7598
 |    0x100005ce734d
 |    0x100005ccb57e
 |   
 |-- (0.01%, #2) 0x100005db5297
 |    0x100005db196d
 |    0x100005dac9ed
 |    0x100005da6381
 |   
 |-- (0.01%, #2) 0x100005daca45
 |    0x100005da6381
 |    0x100005d9f11e
 |    0x100005d9601a
 |   
 |-- (0.01%, #2) 0x100005d97344
 |    0x100005d84df5
 |    0x100005d66e19
 |    0x100005d528d2
 |   
 |-- (0.01%, #2) 0x100005d6ecc2
 |    0x100005d58b18
 |    0x100005cc9c01
 |    0x100005cc991a
 |   
 |-- (0.01%, #2) 0x100005d51a0c
 |    0x100005ce6f59
 |    0x100005ce6e84
 |    |-- (0.00%, #1) 0x100005f64b6f
 |    |   
 |    \-- (0.00%, #1) 0x100005ce65e8
 |   
 |-- (0.01%, #2) 0x100006cc2f34
 |    0x100006252e12
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.01%, #2) 0x1000063ad574
 |    0x100006387362
 |    0x100005cd556f
 |    0x1000060d47fe
 |   
 |-- (0.01%, #2) 0x1000062c4abc
 |    0x1000062b0874
 |    0x1000062b07ce
 |    0x10000631818b
 |   
 |-- (0.01%, #2) 0x1000060d1d73
 |    0x1000060d22f0
 |    0x100005f61f83
 |    0x1000060d246d
 |   
 |-- (0.01%, #2) 0x10000636a0c6
 |    0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.01%, #2) 0x100005ced6c0
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    |-- (0.00%, #1) 0x100006253e56
 |    |   
 |    \-- (0.00%, #1) 0x100006253a2b
 |   
 |-- (0.01%, #2) 0x100005ccb99c
 |    0x100006253a2b
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x1000063b76ec
 |    0x1000063ae7b1
 |    0x100006386e2a
 |    0x100006386f2d
 |   
 |-- (0.01%, #2) 0x100006352599
 |    0x10000634e24d
 |    0x10000634e26d
 |    0x10000634e2f0
 |   
 |-- (0.01%, #2) 0x100005da71b0
 |    0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |   
 |-- (0.01%, #2) 0x100005d64f16
 |    |-- (0.00%, #1) 0x100005d5238d
 |    |    0x100005cf205d
 |    |    0x100005ce6f84
 |    |   
 |    \-- (0.00%, #1) 0x100005ce6f13
 |         0x100005ce6e84
 |         0x100005f64b6f
 |   
 |-- (0.01%, #2) 0x1000072d6d9b
 |    0x1000072d8908
 |    0x1000072d8c1a
 |    0x1000072e0c2b
 |   
 |-- (0.01%, #2) 0x100005d5cedf
 |    |-- (0.00%, #1) 0x100005d5ceff
 |    |    0x100005d5cf1f
 |    |    0x100005d5cf4a
 |    |   
 |    \-- (0.00%, #1) 0x100005d72491
 |         0x100005d5cfd0
 |         0x100005d5cffa
 |   
 |-- (0.01%, #2) 0x100005dacc1c
 |    0x100005da63ed
 |    0x100005d9f160
 |    0x100005d960c8
 |   
 |-- (0.01%, #2) 0x10000724a74d
 |    0x10000724aa3b
 |    0x100007247cc4
 |    0x10000724846c
 |   
 |-- (0.01%, #2) 0x100006253b2c
 |    0x100006252a77
 |    0x10000625669e
 |    0x10000624cc55
 |   
 |-- (0.01%, #2) 0x100005d5196c
 |    0x100005d5199a
 |    0x100005d519de
 |    0x100005d51a0c
 |   
 |-- (0.01%, #2) 0x100006321206
 |    0x1000063212a5
 |    0x100006314faf
 |    0x10000634e9d6
 |   
 |-- (0.01%, #2) 0x100006285aa7
 |    0x100006283932
 |    |-- (0.00%, #1) 0x1000062b141b
 |    |    0x1000062b13d3
 |    |   
 |    \-- (0.00%, #1) 0x1000062b0816
 |         0x1000062b07ce
 |   
 |-- (0.01%, #2) 0x1000063668c3
 |    0x10000635d9c5
 |    |-- (0.00%, #1) 0x100006363217
 |    |    0x1000063570f9
 |    |   
 |    \-- (0.00%, #1) 0x10000635173f
 |         0x100006322784
 |   
 |-- (0.01%, #2) 0x1000060fc02f
 |    0x1000060fc077
 |    0x1000060f404f
 |    0x1000060ed667
 |   
 |-- (0.01%, #2) 0x100005d84d4e
 |    0x100005d66d25
 |    0x100005d52741
 |    |-- (0.00%, #1) 0x100005d4cd7f
 |    |   
 |    \-- (0.00%, #1) 0x100005cd81b3
 |   
 |-- (0.01%, #2) 0x100005d58ab8
 |    0x100005cc9d4f
 |    |-- (0.00%, #1) 0x100006cc2f00
 |    |    0x100006252e12
 |    |   
 |    \-- (0.00%, #1) 0x100006253892
 |         0x100006252ceb
 |   
 |-- (0.01%, #2) 0x10000632b595
 |    0x10000632b8e7
 |    0x10000632b867
 |    |-- (0.00%, #1) 0x100006357a4d
 |    |   
 |    \-- (0.00%, #1) 0x1000063239ae
 |   
 |-- (0.01%, #2) 0x100005d86783
 |    0x100005d6852f
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.01%, #2) 0x1000063524a3
 |    0x10000634e1ed
 |    0x10000634e20d
 |    0x10000634e2c4
 |   
 |-- (0.01%, #2) 0x1000063e04e6
 |    0x100006ac0b67
 |    0x100006d524c3
 |    0x100006253b94
 |   
 |-- (0.01%, #2) 0x100005d650d8
 |    0x100005ce762c
 |    0x100005ce734d
 |    0x100005ccb57e
 |   
 |-- (0.01%, #2) 0x100005d72407
 |    0x100005d5cedf
 |    0x100005d5ceff
 |    0x100005d5cf1f
 |   
 |-- (0.01%, #2) virtio::vring::add_buf(void*)
 |    |-- (0.00%, #1) virtio::vring::add_buf_wait(void*)
 |    |    virtio::blk::make_request(bio*)
 |    |    0x10000006b1d5
 |    |   
 |    \-- (0.00%, #1) virtio::rng::refill()
 |         virtio::rng::worker()
 |         std::_Function_handler<void (), virtio::rng::rng(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |         __invoke_impl<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |         __invoke_r<void, virtio::rng::rng(virtio::virtio_device&)::<lambda()>&>
 |   
 |-- (0.01%, #2) 0x100005d50027
 |    0x100005d5be9c
 |    0x100005cd53d4
 |    0x100005cd55f7
 |   
 |-- (0.01%, #2) 0x100006352d8f
 |    0x10000634ea06
 |    0x100006315320
 |    0x10000632c041
 |   
 |-- (0.01%, #2) 0x100005b50120
 |    0x100005b50156
 |    0x100005b500b2
 |    |-- (0.00%, #1) 0x1000060fc02f
 |    |   
 |    \-- (0.00%, #1) 0x100005d4d9dd
 |   
 |-- (0.01%, #2) 0x1000060d4ce5
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x10000635e632
 |    0x100006352562
 |    0x10000634e32f
 |    0x10000632be94
 |   
 |-- (0.01%, #2) 0x100005cc9c7e
 |    0x100005cc991a
 |    0x1000060d48a4
 |    0x100006cc308e
 |   
 |-- (0.01%, #2) 0x100005d5c151
 |    |-- (0.00%, #1) 0x100005d70ca0
 |    |    0x100005d5be25
 |    |    0x100005cd5357
 |    |   
 |    \-- (0.00%, #1) 0x100005cd5755
 |         0x1000060d47fe
 |         0x100006cc308e
 |   
 |-- (0.01%, #2) 0x100005dba392
 |    0x100005db9bfe
 |    0x100005db85fa
 |    0x100005b2ad61
 |   
 |-- (0.01%, #2) 0x1000060d1851
 |    0x1000060d152e
 |    0x1000063a930a
 |    |-- (0.00%, #1) 0x100006cc2f22
 |    |   
 |    \-- (0.00%, #1) 0x100006d4ab46
 |   
 |-- (0.01%, #2) 0x100006223507
 |    0x100006218e6c
 |    0x10000620c4ea
 |    0x1000061f046e
 |   
 |-- (0.01%, #2) 0x1000062b1446
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.01%, #2) 0x100005ed34f3
 |    0x100005e9c517
 |    0x100005e5736f
 |    |-- (0.00%, #1) 0x100005ce6319
 |    |   
 |    \-- (0.00%, #1) 0x100005ce6168
 |   
 |-- (0.01%, #2) 0x1000060de169
 |    0x100006253990
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x10000634e2b4
 |    0x100006322740
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.01%, #2) 0x1000060d4c1e
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x100005d52329
 |    0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |   
 |-- (0.01%, #2) 0x100005f7ae71
 |    0x10000632b62f
 |    0x10000632b92b
 |    0x10000632b8ab
 |   
 |-- (0.01%, #2) 0x100006352dfb
 |    0x10000632069d
 |    0x100006320749
 |    0x100006314da5
 |   
 |-- (0.01%, #2) 0x100005d9e956
 |    0x100005d955d8
 |    0x100005d80fc2
 |    0x100005d645a9
 |   
 |-- (0.01%, #2) 0x1000062629db
 |    0x10000625c300
 |    0x100006253b60
 |    0x100006252a77
 |   
 |-- (0.01%, #2) 0x100006386dbd
 |    0x100006386f2d
 |    0x100005d50027
 |    0x100005d5be9c
 |   
 |-- (0.01%, #2) 0x1000063754c9
 |    0x10000636ff17
 |    0x100006367676
 |    0x10000635e4f3
 |   
 |-- (0.01%, #2) mmu::vma::fault(unsigned long, exception_frame*)
 |    mmu::vm_fault(unsigned long, exception_frame*)
 |    page_fault
 |    ex_pf
 |   
 |-- (0.01%, #2) 0x100005db1631
 |    0x100005db85dc
 |    0x100005b2ad61
 |    0x100005b28d51
 |   
 |-- (0.01%, #2) 0x100005dba459
 |    0x100005db9cd6
 |    0x100005db8aec
 |    0x100005b2ad61
 |   
 |-- (0.01%, #2) 0x10000632be3d
 |    0x100006322807
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.01%, #2) 0x100006d4f4cf
 |    0x100006d4ec25
 |    0x100006d52463
 |    0x100006253b94
 |   
 |-- (0.01%, #2) 0x100005cd5357
 |    0x100005cd55a1
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.01%, #2) console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |    console::console_multiplexer::write(uio*, int)
 |    linearize_uio_write<console::console_multiplexer::write(uio*, int)::<lambda(char const*, size_t)> >
 |    console::console_multiplexer::write(uio*, int)
 |    int console::op_write<device>(device*, uio*, int)
 |   
 |-- (0.01%, #2) 0x1000063530bd
 |    0x100006314ecc
 |    0x10000634e9d6
 |    0x100006315320
 |   
 |-- (0.01%, #2) 0x100005d6de30
 |    0x100005d57e24
 |    0x100006b0aca0
 |    0x1000060d4cc3
 |   
 |-- (0.01%, #2) 0x100005d724da
 |    0x100005d5d02f
 |    0x100005d51120
 |    0x100005d5114e
 |   
 |-- (0.01%, #2) 0x100005db8b6f
 |    0x100005b2adf1
 |    0x100005b28e82
 |    0x100005b4d2a7
 |   
 |-- (0.01%, #2) 0x100005db67f0
 |    0x100005db4ced
 |    0x100005db0fe7
 |    0x100005dabfed
 |   
 |-- (0.01%, #2) 0x100005d71815
 |    0x100005d5c643
 |    0x100005d5c11b
 |    0x100005cd55d7
 |   
 |-- (0.01%, #2) 0x100005d5cf4a
 |    0x100005cd7e75
 |    0x100005db5df8
 |    0x100005db2eff
 |   
 |-- (0.01%, #2) 0x100005cd81bf
 |    0x100005ced666
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.01%, #2) 0x10000631519e
 |    0x10000634e9d6
 |    0x100006315320
 |    0x10000632c092
 |   
 |-- (0.01%, #2) 0x100006320d2d
 |    0x1000063209e4
 |    0x100006320a53
 |    0x100006314e44
 |   
 |-- (0.01%, #2) 0x100005d80fc2
 |    0x100005d645a9
 |    0x100005ce5606
 |    0x100005ce5722
 |   
 |-- (0.01%, #2) 0x100005b2b3c5
 |    0x100005cc9905
 |    0x1000060d48a4
 |    0x100006cc308e
 |   
 |-- (0.01%, #2) 0x100005c3e09d
 |    0x100005c37f01
 |    0x100005c330b9
 |    0x100005d4d8a7
 |   
 |-- (0.01%, #2) 0x10000609d306
 |    0x100006095413
 |    0x100006087845
 |    0x100006085e5d
 |   
 |-- (0.01%, #2) 0x100005d51b4a
 |    0x100005d64f33
 |    0x100005ce6f13
 |    0x100005ce6e84
 |   
 |-- (0.01%, #2) 0x100005dae099
 |    0x100005da71e5
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.01%, #2) 0x100000026a9d
 |    |-- (0.00%, #1) 0x1000000270bc
 |    |    0x10000002b792
 |    |    0x10000002ccdc
 |    |   
 |    \-- (0.00%, #1) 0x10000002732e
 |         0x10000003635b
 |         0x10000002cc92
 |   
 |-- (0.01%, #2) 0x100005db8319
 |    0x100005b2adf1
 |    0x100005b28e82
 |    0x100005bf6fab
 |   
 |-- (0.01%, #2) 0x100005b6b607
 |    0x100005bd5d58
 |    |-- (0.00%, #1) 0x100006cc2f4a
 |    |    0x100006252e12
 |    |   
 |    \-- (0.00%, #1) 0x100006d52423
 |         0x100006253b94
 |   
 |-- (0.01%, #2) 0x1000072de109
 |    0x1000072e173b
 |    0x1000072e202e
 |    0x1000072e0240
 |   
 |-- (0.01%, #2) 0x100005e67a0d
 |    0x100005e94e08
 |    0x1000060d42af
 |    0x1000060d471c
 |   
 |-- (0.01%, #2) 0x10000620c4ea
 |    0x1000061f046e
 |    0x1000061709d2
 |    0x1000061708f0
 |   
 |-- (0.01%, #2) 0x100006371962
 |    0x10000636a09f
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.01%, #2) 0x100005d960c8
 |    0x100005d81a94
 |    0x100005d6516e
 |    0x100005ce7645
 |   
 |-- (0.01%, #2) 0x100005db0e53
 |    0x100005dabf95
 |    0x100005da5d7f
 |    0x100005d9e956
 |   
 |-- (0.01%, #2) 0x100005da6381
 |    0x100005d9f11e
 |    0x100005d9601a
 |    0x100005d81978
 |   
 |-- (0.01%, #2) 0x1000060ecf3e
 |    0x1000060d2058
 |    0x1000060d18d6
 |    0x1000060d152e
 |   
 |-- (0.01%, #2) 0x100006289837
 |    0x10000628704a
 |    0x100006284cd1
 |    0x100006352430
 |   
 |-- (0.01%, #2) 0x1000063aec8d
 |    0x100006387941
 |    0x100006387b55
 |    0x10000628178d
 |   
 |-- (0.01%, #2) 0x100006253892
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.01%, #2) 0x100006d4ec25
 |    0x100006d52463
 |    0x100006253b94
 |    0x100006252a77
 |   
 |-- (0.01%, #2) 0x10000629c9fb
 |    0x10000629ca1b
 |    0x100006352410
 |    0x10000634e2b4
 |   
 |-- (0.01%, #2) 0x1000060f3515
 |    0x1000060eccf1
 |    0x1000060d1646
 |    0x100006cac884
 |   
 |-- (0.01%, #2) 0x100005ce6f84
 |    0x100005cc9e38
 |    |-- (0.00%, #1) 0x100006253892
 |    |    0x100006252ceb
 |    |   
 |    \-- (0.00%, #1) 0x100005f61ef7
 |         0x1000060d246d
 |   
 |-- (0.01%, #2) 0x1000062b141b
 |    0x1000062b13d3
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.01%, #2) 0x1000063eb24e
 |    |-- (0.00%, #1) 0x1000063e93e4
 |    |    0x1000063e72d0
 |    |    0x1000063e0df0
 |    |   
 |    \-- (0.00%, #1) 0x1000063e942f
 |         0x1000063e72ef
 |         0x1000063e0e04
 |   
 |-- (0.01%, #2) 0x100005e918df
 |    0x100005e5e971
 |    0x100005cc9c99
 |    0x100005cc991a
 |   
 |-- (0.01%, #2) 0x100006253990
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.01%, #2) 0x100005d4ce0f
 |    0x100005ced68c
 |    0x100005cee3cf
 |    0x1000060d1d63
 |   
 |-- (0.01%, #2) 0x100005cdd61e
 |    0x1000061709b0
 |    0x1000061708f0
 |    0x100006253e43
 |   
 |-- (0.01%, #2) 0x1000071f5813
 |    0x1000071f0844
 |    0x1000071eb8cb
 |    0x1000071e6925
 |   
 |-- (0.01%, #2) 0x1000072dba73
 |    0x1000072e0fed
 |    0x1000072e1763
 |    0x1000072e0017
 |   
 |-- (0.01%, #2) 0x10000634e9f4
 |    0x100006315320
 |    |-- (0.00%, #1) 0x10000632c092
 |    |    0x100006357d10
 |    |   
 |    \-- (0.00%, #1) 0x10000632c041
 |         0x100006357d10
 |   
 |-- (0.01%, #2) std::function<void (char const*, unsigned long)>::operator()(char const*, unsigned long) const
 |    console::LineDiscipline::write(char const*, unsigned long, std::function<void (char const*, unsigned long)>&)
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |    console::console_multiplexer::write(char const*, unsigned long)
 |    console::console_multiplexer::write(uio*, int)
 |    linearize_uio_write<console::console_multiplexer::write(uio*, int)::<lambda(char const*, size_t)> >
 |    console::console_multiplexer::write(uio*, int)
 |   
 |-- (0.01%, #2) 0x100005d81386
 |    |-- (0.00%, #1) 0x100005d64eb0
 |    |    0x100005d525e9
 |    |    0x100005cf205d
 |    |   
 |    \-- (0.00%, #1) 0x100005d64b9b
 |         0x100005ce65d5
 |         0x100005ce7598
 |   
 |-- (0.01%, #2) 0x100005d4d849
 |    |-- (0.00%, #1) 0x100005dba3ce
 |    |    0x100005db9c46
 |    |    0x100005db87a0
 |    |   
 |    \-- (0.00%, #1) 0x100005db7a89
 |         0x100005dba392
 |         0x100005db9bfe
 |   
 |-- (0.01%, #2) 0x100006322784
 |    0x10000632b9fa
 |    0x10000638e6cc
 |    0x100006ac0c44
 |   
 |-- (0.01%, #2) 0x100005cec2d5
 |    0x1000060d4c1e
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.01%, #2) 0x100005dacc09
 |    0x100005da63ed
 |    0x100005d9f160
 |    0x100005d960c8
 |   
 |-- (0.01%, #2) 0x100005ee3432
 |    0x100005eb5985
 |    0x100005e72e83
 |    0x100005e72e46
 |   
 |-- (0.01%, #2) 0x100005d6709b
 |    0x100005d52a7a
 |    |-- (0.00%, #1) 0x100005d4e039
 |    |    0x100005cec0bd
 |    |   
 |    \-- (0.00%, #1) 0x100005d4e0e5
 |         0x100005ced5f7
 |   
 |-- (0.01%, #2) 0x100005db2ee9
 |    0x100005dae099
 |    0x100005da71e5
 |    0x100005da00ed
 |   
 |-- (0.01%, #2) 0x100005d528b2
 |    0x100005d4d70d
 |    0x100005d4debb
 |    0x100005db6d0d
 |   
 |-- (0.01%, #2) 0x100005d4d7bb
 |    0x100005db67f0
 |    0x100005db4ced
 |    0x100005db0fe7
 |   
 |-- (0.01%, #2) 0x10000632128e
 |    0x100006314faf
 |    0x10000634e9d6
 |    0x100006315320
 |   
 |-- (0.01%, #2) 0x100006370635
 |    0x100006367f96
 |    0x100006367fc0
 |    0x1000063717f4
 |   
 |-- (0.01%, #2) 0x100005cbb1f6
 |    0x100005d4d7bb
 |    0x100005db67f0
 |    0x100005db4ced
 |   
 |-- (0.01%, #2) 0x100005b2b415
 |    0x100005cc98f6
 |    0x1000060d48a4
 |    0x100006cc308e
 |   
 |-- (0.01%, #2) 0x100005ce7a1a
 |    0x100005ce61c0
 |    0x100005ce6282
 |    0x1000060d4794
 |   
 |-- (0.01%, #2) 0x100005d867b0
 |    0x100005d6852f
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.01%, #2) 0x100005e93095
 |    0x100005e5720f
 |    |-- (0.00%, #1) 0x1000060d4812
 |    |    0x100006cc308e
 |    |   
 |    \-- (0.00%, #1) 0x1000060d4776
 |         0x100006cc308e
 |   
 |-- (0.01%, #2) 0x100005d66c40
 |    0x100005d52695
 |    0x100005d4ce0f
 |    0x100005ced68c
 |   
 |-- (0.01%, #2) 0x100005ce6261
 |    |-- (0.00%, #1) 0x1000060d4794
 |    |    0x100006cc308e
 |    |    0x100006252e12
 |    |   
 |    \-- (0.00%, #1) 0x1000060d4830
 |         0x100006cc308e
 |         0x100006252e12
 |   
 |-- (0.01%, #2) 0x1000060d1576
 |    0x1000063a930a
 |    0x100006cc2f22
 |    0x100006252e12
 |   
 |-- (0.01%, #2) 0x100006315320
 |    0x10000632c041
 |    0x100006357d10
 |    0x100006323c97
 |   
 |-- (0.01%, #2) 0x100005c3e061
 |    0x100005c37e7d
 |    |-- (0.00%, #1) 0x100005c3305d
 |    |    0x100005d4d7c7
 |    |   
 |    \-- (0.00%, #1) 0x100005cbb4ff
 |         0x100005cbb224
 |   
 |-- (0.01%, #2) 0x100006253b94
 |    0x100006252a77
 |    0x10000625669e
 |    0x10000624cc55
 |   
 |-- (0.01%, #2) 0x1000060d18d6
 |    0x1000060d152e
 |    0x1000063a930a
 |    0x100006d4ab46
 |   
 |-- (0.01%, #2) 0x100005d95d48
 |    0x100005d81678
 |    0x100005d64ec3
 |    0x100005d525e9
 |   
 |-- (0.01%, #2) 0x1000060d2108
 |    |-- (0.00%, #1) 0x100005f61f83
 |    |    0x1000060d246d
 |    |    0x1000060d16c1
 |    |   
 |    \-- (0.00%, #1) 0x1000060d18d6
 |         0x1000060d152e
 |         0x1000063a930a
 |   
 |-- (0.01%, #2) 0x100005d54501
 |    0x100005d54616
 |    0x100005cc9c7e
 |    0x100005cc991a
 |   
 |-- (0.01%, #2) 0x100005f6c0bd
 |    0x1000061f0383
 |    0x1000061708cf
 |    0x100006253e43
 |   
 |-- (0.01%, #2) 0x10000632b62f
 |    0x10000632b92b
 |    0x10000632b8ab
 |    0x100006357a63
 |   
 |-- (0.01%, #2) 0x100005d51120
 |    0x100005d5114e
 |    0x100005cd7ec0
 |    0x100005db5df8
 |   
 |-- (0.01%, #2) 0x100005d9f160
 |    0x100005d960c8
 |    0x100005d81a94
 |    0x100005d6516e
 |   
 |-- (0.01%, #2) 0x100005d6825b
 |    0x100005d86739
 |    0x100005d6852f
 |    0x100005d5462b
 |   
 |-- (0.01%, #2) 0x100005d5d03b
 |    0x100005d51120
 |    0x100005d5114e
 |    0x100005cd7ec0
 |   
 |-- (0.01%, #2) 0x1000061708a2
 |    0x100006253e43
 |    |-- (0.00%, #1) 0x100006253cdf
 |    |    0x100006252a77
 |    |   
 |    \-- (0.00%, #1) 0x100006252e34
 |         0x100006252aab
 |   
 |-- (0.01%, #2) taskqueue_run_locked
 |    taskqueue_thread_loop
 |    sched::thread::main()
 |   
 |-- (0.01%, #2) 0x10000624fcd3
 |    0x100006b080eb
 |    0x1000061573db
 |    0x1000061699c8
 |   
 |-- (0.01%, #2) 0x100006283932
 |    0x1000062b141b
 |    0x1000062b13d3
 |    0x10000631818b
 |   
 |-- (0.01%, #2) 0x100005da1f16
 |    0x100005d9996b
 |    0x1000060f3fb8
 |    0x1000060ed55d
 |   
 |-- (0.01%, #2) 0x100005d5cfd0
 |    0x100005d5cffa
 |    0x100005cd7ead
 |    0x100005db5df8
 |   
 |-- (0.01%, #2) 0x10000722c795
 |    0x100007235fcc
 |    0x100007236430
 |    0x100007236801
 |   
 |-- (0.01%, #2) 0x1000060eccf1
 |    |-- (0.00%, #1) 0x1000060d1897
 |    |    0x1000060d152e
 |    |    0x1000063a930a
 |    |   
 |    \-- (0.00%, #1) 0x1000060d16e6
 |         0x100006cac884
 |         0x1000060de169
 |   
 |-- (0.01%, #2) 0x100005d6f761
 |    0x100005d590b3
 |    0x100005d50643
 |    0x100005d50683
 |   
 |-- (0.01%, #2) 0x1000060d47b2
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x10000632c041
 |    0x100006357d10
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.01%, #2) 0x100005dae069
 |    0x100005da71e5
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.01%, #2) 0x10000001ee56
 |    0x10000001fcef
 |    0x100000026acb
 |    0x1000000270bc
 |   
 |-- (0.01%, #2) 0x1000072265ea
 |    0x100007226639
 |    0x100007226659
 |    0x10000722e811
 |   
 |-- (0.01%, #2) 0x100005b504bb
 |    0x100005d4cbf0
 |    |-- (0.00%, #1) 0x100005ced5a1
 |    |    0x100005cee3cf
 |    |   
 |    \-- (0.00%, #1) 0x100005d4f745
 |         0x100005ccb658
 |   
 |-- (0.01%, #2) 0x1000060f404f
 |    0x1000060ed667
 |    0x1000060d495e
 |    0x100006cc308e
 |   
 |-- (0.01%, #2) 0x1000061dcd2d
 |    0x1000061d7707
 |    0x1000063e0d61
 |    0x1000063e0d99
 |   
 |-- (0.01%, #2) 0x100005cc991a
 |    0x1000060d48a4
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.01%, #2) 0x100005d5c4c9
 |    0x100005d7179e
 |    0x100005d5c643
 |    0x100005d5c11b
 |   
 |-- (0.01%, #2) 0x1000061d7707
 |    0x1000063e0d61
 |    0x1000063e0d99
 |    0x1000063e1005
 |   
 |-- (0.01%, #2) 0x100005bd662e
 |    0x100006cc302c
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x10000729f5c9
 |    0x10000729fe39
 |    0x1000072a1e1a
 |    0x1000072a1f6d
 |   
 |-- (0.01%, #2) 0x100005d64f33
 |    |-- (0.00%, #1) 0x100005d5238d
 |    |    0x100005cf205d
 |    |    0x100005ce6f84
 |    |   
 |    \-- (0.00%, #1) 0x100005ce6f13
 |         0x100005ce6e84
 |         0x100005ce65e8
 |   
 |-- (0.01%, #2) rwlock_for_read::lock()
 |    std::lock_guard<rwlock_for_read&>::lock_guard(rwlock_for_read&)
 |    lock_guard_for_with_lock<rwlock_for_read&>::lock_guard_for_with_lock(rwlock_for_read&)
 |    mmu::vm_fault(unsigned long, exception_frame*)
 |    page_fault
 |    ex_pf
 |    0x100007236586
 |   
 |-- (0.01%, #2) 0x1000060ed46d
 |    0x1000060e7546
 |    0x1000060e7574
 |    0x1000060d422b
 |   
 |-- (0.01%, #2) 0x10000636ff17
 |    0x100006367676
 |    0x10000635e4f3
 |    0x1000063523e7
 |   
 |-- (0.01%, #2) 0x100005db8823
 |    0x100005b2adf1
 |    0x100005b28e82
 |    0x100005bf6fab
 |   
 |-- (0.01%, #2) 0x100005d525e9
 |    0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |   
 |-- (0.01%, #2) 0x100005d71777
 |    0x100005d5c643
 |    0x100005d5c11b
 |    0x100005cd55d7
 |   
 |-- (0.01%, #2) 0x100005d4e029
 |    0x100005ced63e
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.01%, #2) 0x100006ac0b67
 |    0x100006d524c3
 |    0x100006253b94
 |    0x100006252a77
 |   
 |-- (0.01%, #2) 0x100005b4d622
 |    0x1000060d4d55
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.01%, #2) 0x10000723c420
 |    0x10000723c8a3
 |    0x10000723c9b5
 |    0x1000072407fc
 |   
 |-- (0.01%, #2) 0x1000063757aa
 |    0x1000063704a8
 |    0x100006367d7d
 |    0x10000635edc7
 |   
 |-- (0.01%, #2) 0x100006085e5d
 |    0x1000060d1d73
 |    0x1000060d22f0
 |    0x100005f61f83
 |   
 |-- (0.01%, #2) 0x1000062818a2
 |    0x100006281601
 |    |-- (0.00%, #1) 0x10000638777b
 |    |    0x1000062c4ec4
 |    |   
 |    \-- (0.00%, #1) 0x1000063873df
 |         0x100005cd556f
 |   
 |-- (0.01%, #2) 0x100005ce76c9
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.01%, #2) 0x100006087845
 |    0x100006085e5d
 |    0x1000060d1d73
 |    0x1000060d22f0
 |   
 |-- (0.01%, #2) 0x1000063227d2
 |    0x10000632b9fa
 |    0x10000638e6cc
 |    0x100006ac0c44
 |   
 |-- (0.01%, #2) 0x100005d5d01d
 |    0x100005d51120
 |    0x100005d5114e
 |    0x100005cd7ec0
 |   
 |-- (0.01%, #2) 0x1000061029b0
 |    0x1000060fb78b
 |    0x1000060f3515
 |    0x1000060eccf1
 |   
 |-- (0.01%, #2) 0x100005d4f1cd
 |    0x1000062815d3
 |    |-- (0.00%, #1) 0x1000063873df
 |    |    0x100005cd556f
 |    |   
 |    \-- (0.00%, #1) 0x100005d8ded7
 |         0x100005d716ef
 |   
 |-- (0.01%, #2) 0x1000063632e1
 |    0x100006357146
 |    0x100006357ce9
 |    0x100006323c97
 |   
 |-- (0.01%, #2) 0x100006d4ab46
 |    0x100006253990
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x100006314ecc
 |    0x10000634e9d6
 |    0x100006315320
 |    0x10000632c041
 |   
 |-- (0.01%, #2) 0x10000632b8ab
 |    0x100006357a63
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.01%, #2) 0x1000062816f9
 |    0x1000062c4a42
 |    0x1000062b0874
 |    0x1000062b07ce
 |   
 |-- (0.01%, #2) 0x100005db4bf4
 |    0x100005db0e53
 |    0x100005dabf95
 |    0x100005da5d7f
 |   
 |-- (0.01%, #2) 0x10000602afbd
 |    0x100005fb1c2a
 |    0x100005f91820
 |    0x100005f77fc9
 |   
 |-- (0.01%, #2) 0x100005d8105c
 |    0x100005d645f3
 |    0x100005ce6964
 |    0x100005db6cea
 |   
 |-- (0.01%, #2) 0x100005d5cf9a
 |    0x100005dba435
 |    0x100005dba459
 |    0x100005db9cd6
 |   
 |-- (0.01%, #2) 0x100005d5d58f
 |    0x100005d652f0
 |    0x100005ce7932
 |    0x100005ce61c0
 |   
 |-- (0.01%, #2) virtio::blk::req_done()
 |    std::_Function_handler<void (), virtio::blk::blk(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    __invoke_r<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    sched::thread::main()
 |   
 |-- (0.01%, #2) 0x100005e94e08
 |    0x1000060d42af
 |    0x1000060d471c
 |    0x100006cc308e
 |   
 |-- (0.01%, #2) 0x10000635da3d
 |    0x100006363256
 |    0x1000063570f9
 |    0x10000634fc34
 |   
 |-- (0.01%, #2) 0x10000722c529
 |    0x10000723645b
 |    0x100007236801
 |    0x100007236891
 |   
 |-- (0.01%, #2) 0x100005ce7645
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.01%, #2) 0x100005d70d96
 |    0x100005d5be25
 |    0x100005cd5357
 |    0x100005cd55a1
 |   
 |-- (0.01%, #2) 0x100005d8726a
 |    |-- (0.00%, #1) 0x1000062818a2
 |    |    0x100006281601
 |    |    0x100005d8ded7
 |    |   
 |    \-- (0.00%, #1) 0x1000062818e3
 |         0x100006281799
 |         0x100006281669
 |   
 |-- (0.01%, #2) 0x100005b4d2eb
 |    0x100005cee321
 |    0x100005cee3cf
 |    0x1000060d1d63
 |   
 |-- (0.01%, #2) 0x100005bd5520
 |    0x100005bd56ab
 |    |-- (0.00%, #1) 0x100005c36b05
 |    |    0x100005c33195
 |    |   
 |    \-- (0.00%, #1) 0x100005bd6400
 |         0x100006323fd4
 |   
 |-- (0.01%, #2) 0x100005b4dbd7
 |    |-- (0.00%, #1) 0x100005d6f7ff
 |    |    0x100005d590f6
 |    |    0x100005d59120
 |    |   
 |    \-- (0.00%, #1) 0x1000060f3ebc
 |         0x1000060ed44d
 |         0x1000060e7546
 |   
 |-- (0.01%, #2) 0x100005e73b3a
 |    0x100006cc2f34
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.01%, #2) 0x1000063e0d99
 |    0x1000063e1005
 |    0x1000063e04e6
 |    0x100006ac0b67
 |   
 |-- (0.01%, #2) 0x100005ced6e1
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    0x100006253e56
 |   
 |-- (0.01%, #2) 0x100005b4d353
 |    0x100005b4d373
 |    0x100005bf700f
 |    |-- (0.00%, #1) 0x100005cc9c8a
 |    |   
 |    \-- (0.00%, #1) 0x100005db6d19
 |   
 |-- (0.01%, #2) 0x100005da7206
 |    0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |   
 |-- (0.01%, #2) 0x100005d8e75d
 |    0x100005d72561
 |    0x100005d72445
 |    0x100005d5cf85
 |   
 |-- (0.01%, #2) 0x10000001fc3f
 |    0x100000026acb
 |    0x1000000270bc
 |    0x10000002b792
 |   
 |-- (0.01%, #2) 0x100005d853b1
 |    0x100005d67326
 |    |-- (0.00%, #1) 0x1000060ed58a
 |    |    0x1000060d48db
 |    |   
 |    \-- (0.00%, #1) 0x100005d52e3a
 |         0x1000060d4ce5
 |   
 |-- (0.01%, #2) 0x100006252a64
 |    0x10000625669e
 |    0x10000624cc55
 |    0x10000624f4b1
 |   
 |-- (0.01%, #2) SHA256_Final
 |    reseed(unsigned int)
 |    random_process_event(harvest*)
 |    random_kthread(void*)
 |   
 |-- (0.01%, #2) 0x100005d5ceff
 |    0x100005d5cf1f
 |    0x100005d5cf4a
 |    0x100005cd7e75
 |   
 |-- (0.01%, #2) 0x100005e91920
 |    0x100005e9194a
 |    0x100005e57318
 |    0x100005ce65a5
 |   
 |-- (0.01%, #2) 0x100005d66dcd
 |    0x100005d527c6
 |    0x100005d4d25a
 |    |-- (0.00%, #1) 0x100005d4f735
 |    |   
 |    \-- (0.00%, #1) 0x100005ce6335
 |   
 |-- (0.01%, #2) 0x100005db8a83
 |    0x100005db8b57
 |    0x100005b2adf1
 |    0x100005b28e82
 |   
 |-- (0.01%, #2) 0x100005b50210
 |    |-- (0.00%, #1) 0x100005d720d8
 |    |    0x100005d5cbda
 |    |    0x100006b121c1
 |    |   
 |    \-- (0.00%, #1) 0x100005d4e107
 |         0x100005cec112
 |         0x100005ccb6c9
 |   
 |-- (0.01%, #2) 0x100005ce6282
 |    |-- (0.00%, #1) 0x1000060d4794
 |    |    0x100006cc308e
 |    |    0x100006252e12
 |    |   
 |    \-- (0.00%, #1) 0x1000060d4830
 |         0x100006cc308e
 |         0x100006252e12
 |   
 |-- (0.01%, #2) 0x100005cedf20
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    |-- (0.00%, #1) 0x1000060d1582
 |    |   
 |    \-- (0.00%, #1) 0x100006253e56
 |   
 |-- (0.01%, #2) 0x100005db8b57
 |    0x100005b2adf1
 |    0x100005b28e82
 |    0x100005b4d2a7
 |   
 |-- (0.01%, #2) 0x100005eb5985
 |    0x100005e72e83
 |    0x100005e72e46
 |    0x100006253958
 |   
 |-- (0.01%, #2) 0x1000060ed4ba
 |    0x1000060d48db
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.01%, #2) 0x100005cbb6c7
 |    0x100005cbb3fb
 |    |-- (0.00%, #1) 0x100005cbb41b
 |    |    0x100005cbb43b
 |    |   
 |    \-- (0.00%, #1) 0x100005cbb4f3
 |         0x100005cbb224
 |   
 |-- (0.01%, #2) 0x100005d4e0b3
 |    0x100005ced5f7
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.01%, #2) 0x1000063adae3
 |    0x1000063a97b5
 |    0x100006387988
 |    0x100006387b55
 |   
 |-- (0.00%, #1) 0x10000729e03d
 |    0x10000729fee1
 |    0x1000072a1ee7
 |    0x1000072a1f6d
 |   
 |-- (0.00%, #1) rijndael_makeKey
 |    reseed(unsigned int)
 |    random_process_event(harvest*)
 |    random_kthread(void*)
 |   
 |-- (0.00%, #1) 0x100005d58988
 |    0x100005cc98d1
 |    0x1000060d4cf4
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100006385a24
 |    0x100006386dbd
 |    0x100006386f2d
 |    0x100005d50027
 |   
 |-- (0.00%, #1) 0x10000636a19b
 |    0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.00%, #1) 0x1000063d897e
 |    0x1000063d46e3
 |    0x1000063cfe12
 |    0x1000063c91a0
 |   
 |-- (0.00%, #1) 0x100005d4d7a4
 |    0x100005db67f0
 |    0x100005db4ced
 |    0x100005db0fe7
 |   
 |-- (0.00%, #1) 0x100005ce7922
 |    0x100005ce61c0
 |    0x100005ce6282
 |    0x1000060d4830
 |   
 |-- (0.00%, #1) 0x100005bbc4a7
 |    0x100005bbc328
 |    0x100005f61f59
 |    0x1000060d246d
 |   
 |-- (0.00%, #1) 0x100005dae084
 |    0x100005da71e5
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.00%, #1) 0x100005dadfaa
 |    0x100005da71b0
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.00%, #1) 0x1000061573db
 |    0x1000061699c8
 |    0x100006169a1a
 |    0x100006169b5a
 |   
 |-- (0.00%, #1) 0x100007282dc3
 |    0x100007284a93
 |    0x100007284af4
 |    0x100007286b7e
 |   
 |-- (0.00%, #1) 0x1000000961fa
 |    taskqueue_run_locked
 |    taskqueue_thread_loop
 |    sched::thread::main()
 |   
 |-- (0.00%, #1) 0x1000072a0fe4
 |    0x1000072a12b2
 |    0x1000072a1eaf
 |    0x1000072a1f6d
 |   
 |-- (0.00%, #1) 0x1000060d23c7
 |    0x1000060d16c1
 |    0x100006cac884
 |    0x1000060de169
 |   
 |-- (0.00%, #1) 0x100005cbb4c1
 |    0x100005cbb1c8
 |    0x100005cbb1f6
 |    0x100005d4d7bb
 |   
 |-- (0.00%, #1) 0x10000610687a
 |    0x1000061029b0
 |    0x1000060fb78b
 |    0x1000060f3515
 |   
 |-- (0.00%, #1) 0x1000072d1e3c
 |    0x1000072d1efb
 |    0x1000072d2141
 |    0x1000072d16fc
 |   
 |-- (0.00%, #1) 0x100005da788f
 |    0x100005da08ae
 |    0x100005d980ae
 |    0x100005d865f9
 |   
 |-- (0.00%, #1) 0x10000638756a
 |    0x1000062c621c
 |    0x1000062c5bea
 |    0x1000062b1354
 |   
 |-- (0.00%, #1) 0x10000002b7eb
 |    0x10000002ccdc
 |    0x10000008eae0
 |    vfs_file::read(uio*, int)
 |   
 |-- (0.00%, #1) 0x1000072283af
 |    0x10000722845d
 |    0x100007236719
 |    0x100007236891
 |   
 |-- (0.00%, #1) 0x1000072d2de5
 |    0x1000072d30a6
 |    0x1000072d322e
 |    0x1000072e2a57
 |   
 |-- (0.00%, #1) 0x100005da71f5
 |    0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |   
 |-- (0.00%, #1) 0x100005f7af5e
 |    0x100005f6c0ef
 |    0x1000061f0393
 |    0x1000061708cf
 |   
 |-- (0.00%, #1) 0x100005d9b6cb
 |    0x100005d8bac1
 |    0x100005d6de5a
 |    0x100005d6de84
 |   
 |-- (0.00%, #1) 0x1000060a2f5c
 |    0x10000609d306
 |    0x100006095413
 |    0x100006087845
 |   
 |-- (0.00%, #1) 0x100005dacbd1
 |    0x100005da63ed
 |    0x100005d9f160
 |    0x100005d960c8
 |   
 |-- (0.00%, #1) 0x1000060f3796
 |    0x1000060ecf3e
 |    0x1000060d2058
 |    0x1000060d18d6
 |   
 |-- (0.00%, #1) 0x100005d5235c
 |    0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |   
 |-- (0.00%, #1) 0x100005e73b77
 |    0x100005e73b3a
 |    0x100006cc2f34
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100006268c3b
 |    0x100006261953
 |    0x10000625b32c
 |    0x100006253b76
 |   
 |-- (0.00%, #1) 0x100005ced1ac
 |    0x100005e26659
 |    0x100005e25550
 |    0x100005e2536d
 |   
 |-- (0.00%, #1) 0x100005f91820
 |    0x100005f77fc9
 |    0x100005f66fe5
 |    0x100005f61e4f
 |   
 |-- (0.00%, #1) 0x100005d70be9
 |    0x100005d70d1a
 |    0x100005d5be25
 |    0x100005cd5357
 |   
 |-- (0.00%, #1) 0x100006320759
 |    0x100006314da5
 |    0x10000632be66
 |    0x100006322807
 |   
 |-- (0.00%, #1) 0x100005d5192c
 |    0x100005ce6941
 |    0x100005d866fd
 |    0x100005d684eb
 |   
 |-- (0.00%, #1) 0x100005fb74fc
 |    0x100005f9a11d
 |    0x100005f7afef
 |    0x100005f6c307
 |   
 |-- (0.00%, #1) 0x100005f620ab
 |    0x1000060d246d
 |    0x1000060d16c1
 |    0x100006cac884
 |   
 |-- (0.00%, #1) 0x100000025ec2
 |    0x10000002cd90
 |    0x10000008eae0
 |    vfs_file::read(uio*, int)
 |   
 |-- (0.00%, #1) 0x100005d8178a
 |    0x100005d64fc5
 |    0x100005ce7677
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005db502e
 |    0x100005db1be9
 |    0x100005dacbd1
 |    0x100005da63ed
 |   
 |-- (0.00%, #1) 0x1000063d5079
 |    0x1000063cfef7
 |    0x1000063c91a0
 |    0x1000063bf931
 |   
 |-- (0.00%, #1) sched::thread::wake()
 |    memory::page_pool::l2::try_alloc_page_batch()
 |    memory::page_pool::l2::alloc_page_batch()
 |    memory::page_pool::l1::refill()
 |    memory::page_pool::l1::fill_thread()
 |    memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}::operator()() const
 |    void std::__invoke_impl<void, memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&>(std::__invoke_other, memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&)
 |    std::enable_if<std::__and_<std::is_void<void>, std::__is_invocable<memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&> >::value, void>::type std::__invoke_r<void, memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&>(memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&)
 |    std::_Function_handler<void (), memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |   
 |-- (0.00%, #1) 0x100005d9ce1b
 |    0x100005d8df13
 |    0x100005d71777
 |    0x100005d5c643
 |   
 |-- (0.00%, #1) 0x100005ced698
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    0x100006253e56
 |   
 |-- (0.00%, #1) 0x1000072dc727
 |    0x1000072de212
 |    0x1000072e0df6
 |    0x1000072e1763
 |   
 |-- (0.00%, #1) 0x100005db9bd5
 |    0x100005db8630
 |    0x100005b2adf1
 |    0x100005b28d51
 |   
 |-- (0.00%, #1) 0x100005d544b1
 |    0x100005d68556
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.00%, #1) 0x100005cc98a1
 |    0x1000060d487c
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d5bfb7
 |    0x100005d50e4d
 |    0x100005d50e6d
 |    0x100005cd54a5
 |   
 |-- (0.00%, #1) 0x100006387acb
 |    0x10000628178d
 |    0x100006281669
 |    0x100005da3ab2
 |   
 |-- (0.00%, #1) 0x100006363256
 |    0x1000063570f9
 |    0x10000634fc34
 |    0x10000634fc62
 |   
 |-- (0.00%, #1) 0x1000072d9f68
 |    0x1000072d9ffd
 |    0x1000072db675
 |    0x1000072dba73
 |   
 |-- (0.00%, #1) 0x10000638738f
 |    0x100005cd556f
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005dba3ce
 |    0x100005db9c46
 |    0x100005db87a0
 |    0x100005b2ad61
 |   
 |-- (0.00%, #1) 0x100006352648
 |    0x10000634e31f
 |    0x10000632be94
 |    0x100006322807
 |   
 |-- (0.00%, #1) 0x100005d52867
 |    0x100005d52887
 |    0x100005d528b2
 |    0x100005d4d70d
 |   
 |-- (0.00%, #1) 0x100005d68649
 |    0x100005d5462b
 |    0x100005cc9c7e
 |    0x100005cc991a
 |   
 |-- (0.00%, #1) 0x100005d51abb
 |    0x100005d51adb
 |    0x100005ce76bd
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005ce6959
 |    0x100005d866fd
 |    0x100005d684eb
 |    0x100005d685cd
 |   
 |-- (0.00%, #1) 0x10000724bc87
 |    0x10000724c221
 |    0x1000072e480f
 |    0x1000072d50b1
 |   
 |-- (0.00%, #1) 0x1000060d163e
 |    0x100006cac884
 |    0x1000060de169
 |    0x100006253990
 |   
 |-- (0.00%, #1) 0x100005d4f1ad
 |    0x1000062818ef
 |    0x100006281799
 |    0x100006281669
 |   
 |-- (0.00%, #1) 0x1000063719c7
 |    0x10000636a0dd
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x10000632be49
 |    0x100006322807
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.00%, #1) 0x10000728a2e3
 |    0x10000728b4a3
 |    0x10000728baba
 |    0x10000728b409
 |   
 |-- (0.00%, #1) 0x10000729e135
 |    0x10000729e14f
 |    0x10000729e225
 |    0x10000729e5f6
 |   
 |-- (0.00%, #1) 0x100005d4cede
 |    0x100005ced679
 |    0x100005cee3cf
 |    0x1000060d1d63
 |   
 |-- (0.00%, #1) 0x100005cd55d7
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x1000072d69d9
 |    0x1000072d8cd7
 |    0x1000072e0c2b
 |    0x1000072e2b85
 |   
 |-- (0.00%, #1) 0x100005db82a3
 |    0x100005b2ad61
 |    0x100005b28e82
 |    0x100005bf6fab
 |   
 |-- (0.00%, #1) 0x100005d66d0f
 |    0x100005d52741
 |    0x100005cd81b3
 |    0x100005ced666
 |   
 |-- (0.00%, #1) 0x10000635435d
 |    0x10000632be88
 |    0x100006322807
 |    0x10000632b9fa
 |   
 |-- (0.00%, #1) 0x100006208cd5
 |    0x1000061ecdea
 |    0x100006165ba3
 |    0x1000061645f5
 |   
 |-- (0.00%, #1) 0x10000002693f
 |    0x10000003482e
 |    0x100000035201
 |    0x100000025600
 |   
 |-- (0.00%, #1) 0x10000620c4d3
 |    0x1000061f046e
 |    0x1000061709d2
 |    0x1000061708f0
 |   
 |-- (0.00%, #1) 0x1000072e1763
 |    0x1000072e0017
 |    0x10000724a697
 |    0x10000724aa3b
 |   
 |-- (0.00%, #1) 0x100005da4c53
 |    0x100005d9ca41
 |    0x100005d8d8ac
 |    0x100005d70c79
 |   
 |-- (0.00%, #1) 0x1000062234b1
 |    0x100006218e25
 |    0x10000620c4d3
 |    0x1000061f046e
 |   
 |-- (0.00%, #1) 0x100005dac9ed
 |    0x100005da6381
 |    0x100005d9f11e
 |    0x100005d9601a
 |   
 |-- (0.00%, #1) 0x100005cc9c6f
 |    0x100005cc991a
 |    0x1000060d48a4
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005da0899
 |    0x100005d980ae
 |    0x100005d865f9
 |    0x100005d68300
 |   
 |-- (0.00%, #1) 0x1000062eaf93
 |    0x1000062da6b2
 |    0x1000062da6dc
 |    0x1000062c48dc
 |   
 |-- (0.00%, #1) 0x100005d588c9
 |    0x100005d5042f
 |    0x100005d5044f
 |    0x100005cc9879
 |   
 |-- (0.00%, #1) 0x100005d81978
 |    0x100005d650d8
 |    0x100005ce762c
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005d8656b
 |    0x100005d6825b
 |    0x100005d86739
 |    0x100005d6852f
 |   
 |-- (0.00%, #1) 0x100006371935
 |    0x10000636a09f
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x100005f7b13d
 |    0x100005f6c71b
 |    0x100005f6909f
 |    0x1000060d1686
 |   
 |-- (0.00%, #1) 0x100005db880b
 |    0x100005b2adf1
 |    0x100005b28e82
 |    0x100005bf6fab
 |   
 |-- (0.00%, #1) 0x100005d52a7a
 |    0x100005d4e039
 |    0x100005ced63e
 |    0x100005cee3cf
 |   
 |-- (0.00%, #1) 0x100005c4841d
 |    0x100005c43cc2
 |    0x100005c3e07f
 |    0x100005c37ee3
 |   
 |-- (0.00%, #1) 0x100005d4ce1f
 |    0x100005ced68c
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.00%, #1) 0x100005ce79f4
 |    0x100005ce61c0
 |    0x100005ce6282
 |    0x1000060d4794
 |   
 |-- (0.00%, #1) 0x1000072e01f1
 |    0x10000724a74d
 |    0x10000724aa3b
 |    0x100007247cc4
 |   
 |-- (0.00%, #1) 0x100005d80fac
 |    0x100005d645a9
 |    0x100005ce5606
 |    0x100005ce5722
 |   
 |-- (0.00%, #1) 0x1000063565ff
 |    0x1000063211e0
 |    0x1000063212a5
 |    0x100006314faf
 |   
 |-- (0.00%, #1) 0x10000635c827
 |    0x10000636a0c6
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x100005ce6e71
 |    0x100005ce65e8
 |    0x100005ce7598
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005d588bd
 |    0x100005d5042f
 |    0x100005d5044f
 |    0x100005cc9879
 |   
 |-- (0.00%, #1) 0x1000063e93b6
 |    0x1000063e72d0
 |    0x1000063e0df0
 |    0x1000063e0db0
 |   
 |-- (0.00%, #1) 0x10000622e969
 |    0x10000622358a
 |    0x100006218ea3
 |    0x10000620c506
 |   
 |-- (0.00%, #1) 0x100005bd5d6f
 |    0x100006d52423
 |    0x100006253b94
 |    0x100006252a77
 |   
 |-- (0.00%, #1) 0x1000060d499a
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100006371a66
 |    0x10000636a1c0
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x10000628159f
 |    0x100006385b3f
 |    0x1000063873c9
 |    0x100005cd556f
 |   
 |-- (0.00%, #1) 0x100005d9cacc
 |    0x100005d8d98c
 |    0x100005d70d5c
 |    0x100005d5be25
 |   
 |-- (0.00%, #1) 0x100005cbb1c8
 |    0x100005cbb1f6
 |    0x100005d4d7bb
 |    0x100005db67f0
 |   
 |-- (0.00%, #1) 0x100005d6f71f
 |    0x100005d59073
 |    0x100005d5055b
 |    0x100005d505a7
 |   
 |-- (0.00%, #1) 0x100005ced721
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    0x100006253e56
 |   
 |-- (0.00%, #1) 0x100005d52d7f
 |    0x100005d4e621
 |    0x100005d4e641
 |    0x1000060d48b3
 |   
 |-- (0.00%, #1) 0x100005d64fc5
 |    0x100005ce7677
 |    0x100005ce734d
 |    0x100005ccb57e
 |   
 |-- (0.00%, #1) 0x1000072d9f4e
 |    0x1000072d9f68
 |    0x1000072d9ffd
 |    0x1000072db675
 |   
 |-- (0.00%, #1) 0x100005d865f9
 |    0x100005d68300
 |    0x100005d68649
 |    0x100005d5462b
 |   
 |-- (0.00%, #1) 0x100005d8df5d
 |    0x100005d71777
 |    0x100005d5c643
 |    0x100005d5c11b
 |   
 |-- (0.00%, #1) 0x100005f6909f
 |    0x1000060d189f
 |    0x1000060d152e
 |    0x1000063a930a
 |   
 |-- (0.00%, #1) 0x100005ced60d
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |    0x100006253a2b
 |   
 |-- (0.00%, #1) 0x10000626284d
 |    0x10000625c184
 |    0x100006252dda
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100006376568
 |    0x10000637176a
 |    0x100006371794
 |    0x100006371858
 |   
 |-- (0.00%, #1) 0x1000072d322e
 |    0x1000072e2a57
 |    0x1000072e02d4
 |    0x10000724a74d
 |   
 |-- (0.00%, #1) 0x100006051ca6
 |    0x100005fb74ce
 |    0x100005f9a09d
 |    0x100005f7ae71
 |   
 |-- (0.00%, #1) 0x1000072dc9e1
 |    0x1000072de174
 |    0x1000072e173b
 |    0x1000072e202e
 |   
 |-- (0.00%, #1) 0x100005b5036a
 |    0x100005b503aa
 |    0x100005b503d4
 |    0x100005f917d1
 |   
 |-- (0.00%, #1) 0x10000628e14d
 |    0x10000631818b
 |    0x100006318074
 |    0x10000631519e
 |   
 |-- (0.00%, #1) 0x100006322838
 |    0x10000632b9fa
 |    0x10000638e6cc
 |    0x100006ac0c44
 |   
 |-- (0.00%, #1) 0x100005db0eab
 |    0x100005db8817
 |    0x100005b2adf1
 |    0x100005b28e82
 |   
 |-- (0.00%, #1) 0x100005d645a9
 |    0x100005ce5606
 |    0x100005ce5722
 |    0x100005ce7a1a
 |   
 |-- (0.00%, #1) 0x1000063d4fed
 |    0x1000063cfef7
 |    0x1000063c91a0
 |    0x1000063bf931
 |   
 |-- (0.00%, #1) 0x1000063e0e04
 |    0x1000063e0db0
 |    0x1000063e1005
 |    0x1000063e04e6
 |   
 |-- (0.00%, #1) 0x100006387b0a
 |    0x10000628178d
 |    0x100006281669
 |    0x100005da3ab2
 |   
 |-- (0.00%, #1) 0x100005cd7ead
 |    0x100005db5df8
 |    0x100005db2eff
 |    0x100005dae099
 |   
 |-- (0.00%, #1) 0x100006371926
 |    0x10000636a09f
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x1000062b1354
 |    0x100006317fd0
 |    0x100006314f7a
 |    0x10000634e9d6
 |   
 |-- (0.00%, #1) 0x100005ced5f7
 |    0x100005cee3cf
 |    0x1000060d1d63
 |    0x1000060d22f0
 |   
 |-- (0.00%, #1) 0x100005ce6f59
 |    0x100005ce6e84
 |    0x100005ce7336
 |    0x100005ccb57e
 |   
 |-- (0.00%, #1) 0x10000724c221
 |    0x1000072e480f
 |    0x1000072d50b1
 |    0x1000072d51c2
 |   
 |-- (0.00%, #1) 0x10000729bc3c
 |    0x10000722afa6
 |    0x10000722c795
 |    0x100007235fcc
 |   
 |-- (0.00%, #1) 0x1000063c035e
 |    0x1000063c0593
 |    0x1000063b7812
 |    0x1000063aecc1
 |   
 |-- (0.00%, #1) 0x10000728b0fc
 |    0x10000728b764
 |    0x10000728b979
 |    0x10000728baa2
 |   
 |-- (0.00%, #1) 0x100005f64b6f
 |    0x1000060d2108
 |    0x1000060d18d6
 |    0x1000060d152e
 |   
 |-- (0.00%, #1) 0x100006279bcb
 |    0x100006275602
 |    0x1000062704b6
 |    0x100006269c93
 |   
 |-- (0.00%, #1) 0x10000632bff5
 |    0x100006357d10
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.00%, #1) 0x100005cd5499
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005e7532b
 |    0x100005e37364
 |    0x100005e42882
 |    0x100005e429b7
 |   
 |-- (0.00%, #1) 0x100005d9ceb7
 |    0x100005d8e08e
 |    0x100005d71857
 |    0x100005d5c643
 |   
 |-- (0.00%, #1) 0x100006238fc3
 |    0x10000622e945
 |    0x10000622358a
 |    0x100006218ea3
 |   
 |-- (0.00%, #1) 0x100005f9179f
 |    0x100005f77fc9
 |    0x100005f66fe5
 |    0x100005f61e4f
 |   
 |-- (0.00%, #1) 0x1000063632b1
 |    0x100006357105
 |    0x10000634fc34
 |    0x10000634fc62
 |   
 |-- (0.00%, #1) 0x10000002cdab
 |    0x10000008eae0
 |    vfs_file::read(uio*, int)
 |    sys_read
 |   
 |-- (0.00%, #1) 0x1000063ad593
 |    0x100006385ade
 |    0x1000063873c9
 |    0x100005cd556f
 |   
 |-- (0.00%, #1) 0x100005d5d583
 |    0x100005d652f0
 |    0x100005d5239d
 |    0x100005cf205d
 |   
 |-- (0.00%, #1) 0x100005d5c072
 |    0x100005cd58bc
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x1000063b744e
 |    0x1000063ae300
 |    0x100006387972
 |    0x100006387b55
 |   
 |-- (0.00%, #1) 0x100007236891
 |    0x10000722d3f9
 |    0x1000072369da
 |    0x100007224af1
 |   
 |-- (0.00%, #1) 0x1000063a971b
 |    0x1000063a9ac3
 |    0x100006387e57
 |    0x1000063ae411
 |   
 |-- (0.00%, #1) 0x1000063e939f
 |    0x1000063e72d0
 |    0x1000063e0df0
 |    0x1000063e0db0
 |   
 |-- (0.00%, #1) 0x100005d4fecf
 |    0x100005d4feef
 |    0x100005cd5499
 |    0x1000060d47fe
 |   
 |-- (0.00%, #1) pthread_mutex_trylock
 |    0x1000072de076
 |    0x1000072de115
 |    0x1000072e173b
 |   
 |-- (0.00%, #1) 0x100005ce628e
 |    0x1000060d4830
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100006314da5
 |    0x10000632be66
 |    0x100006322807
 |    0x10000632b9fa
 |   
 |-- (0.00%, #1) 0x100005d8e9a0
 |    0x100005d728ee
 |    0x100005d5d583
 |    0x100005d652f0
 |   
 |-- (0.00%, #1) 0x100005ce624f
 |    0x1000060d4830
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005daca66
 |    0x100005da6381
 |    0x100005d9f11e
 |    0x100005d9601a
 |   
 |-- (0.00%, #1) 0x100006385b07
 |    0x1000063873c9
 |    0x100005cd556f
 |    0x1000060d47fe
 |   
 |-- (0.00%, #1) 0x100005d70d5c
 |    0x100005d5be25
 |    0x100005cd5357
 |    0x100005cd55a1
 |   
 |-- (0.00%, #1) 0x100006360f2a
 |    0x10000635436f
 |    0x10000632be88
 |    0x100006322807
 |   
 |-- (0.00%, #1) 0x100005d504ef
 |    0x100005d5050f
 |    0x100005d5059b
 |    0x100005d50623
 |   
 |-- (0.00%, #1) 0x1000060d2058
 |    0x100005f61f83
 |    0x1000060d246d
 |    0x1000060d16c1
 |   
 |-- (0.00%, #1) 0x1000072dc749
 |    0x1000072de212
 |    0x1000072e0df6
 |    0x1000072e1763
 |   
 |-- (0.00%, #1) 0x1000063a9966
 |    0x1000063c0616
 |    0x1000063c0c3b
 |    0x1000063b7977
 |   
 |-- (0.00%, #1) 0x100006253aac
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.00%, #1) 0x10000729e78b
 |    0x1000072a103f
 |    0x1000072a12d5
 |    0x1000072a1eaf
 |   
 |-- (0.00%, #1) 0x10000635f183
 |    0x100006353090
 |    0x100006314e12
 |    0x10000632be3d
 |   
 |-- (0.00%, #1) 0x10000635ee4b
 |    0x100006352dd4
 |    0x10000632069d
 |    0x100006320749
 |   
 |-- (0.00%, #1) 0x100005e462e4
 |    0x100005e42a55
 |    0x10000639e875
 |    0x10000639f57c
 |   
 |-- (0.00%, #1) 0x100007248356
 |    0x1000072991aa
 |    0x1000072409c8
 |    0x100007240862
 |   
 |-- (0.00%, #1) 0x100005dabfed
 |    0x100005da5d7f
 |    0x100005d9e956
 |    0x100005d955d8
 |   
 |-- (0.00%, #1) 0x100005d4ce27
 |    0x100005ced68c
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.00%, #1) 0x10000636c245
 |    0x1000063632e1
 |    0x100006357146
 |    0x100006357ce9
 |   
 |-- (0.00%, #1) 0x100005f6c71b
 |    0x100005f6909f
 |    0x1000060d1686
 |    0x100006cac884
 |   
 |-- (0.00%, #1) 0x100005e9c1f2
 |    0x100006253768
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x1000061095f1
 |    0x10000610687a
 |    0x1000061029b0
 |    0x1000060fb78b
 |   
 |-- (0.00%, #1) 0x100005b4d373
 |    0x100005bf700f
 |    0x100005d8c3a1
 |    0x100005d6f2fc
 |   
 |-- (0.00%, #1) 0x100005ced1f0
 |    0x1000062b0841
 |    0x1000062b07ce
 |    0x10000631818b
 |   
 |-- (0.00%, #1) 0x100005d66c71
 |    0x100005d52695
 |    0x100005d4ce0f
 |    0x100005ced68c
 |   
 |-- (0.00%, #1) 0x10000632c01c
 |    0x100006357d10
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.00%, #1) 0x100005b31431
 |    0x100005b30a6b
 |    0x100005b2fde9
 |    0x100005b2eb31
 |   
 |-- (0.00%, #1) 0x100005d972e2
 |    0x100005d84d64
 |    0x100005d66d25
 |    0x100005d52741
 |   
 |-- (0.00%, #1) 0x10000637176a
 |    0x100006371794
 |    0x100006371858
 |    0x1000063718af
 |   
 |-- (0.00%, #1) 0x100005db0f9c
 |    0x100005dabfed
 |    0x100005da5d7f
 |    0x100005d9e956
 |   
 |-- (0.00%, #1) 0x100005b2c9e5
 |    0x100005d53b3a
 |    0x10000625387c
 |    0x100006252ceb
 |   
 |-- (0.00%, #1) 0x10000728aefa
 |    0x10000728b116
 |    0x10000728b795
 |    0x10000728b979
 |   
 |-- (0.00%, #1) 0x100005dadfc9
 |    0x100005dadfe9
 |    0x100005db8a77
 |    0x100005db8b57
 |   
 |-- (0.00%, #1) 0x1000063516b5
 |    0x1000063631e1
 |    0x10000635709a
 |    0x1000063570c4
 |   
 |-- (0.00%, #1) 0x10000008eb52
 |    vfs_file::read(uio*, int)
 |    sys_read
 |    pread64
 |   
 |-- (0.00%, #1) 0x100005d504af
 |    0x100005cc98a1
 |    0x1000060d487c
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100006b0aca0
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d81aa1
 |    0x100005d6516e
 |    0x100005ce7645
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005d5cf69
 |    0x100005dba435
 |    0x100005dba459
 |    0x100005db9cd6
 |   
 |-- (0.00%, #1) 0x10000626f3d7
 |    0x1000062684ee
 |    0x100006261267
 |    0x10000625acf1
 |   
 |-- (0.00%, #1) 0x10000632be94
 |    0x100006322807
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.00%, #1) 0x100006353535
 |    0x1000063227da
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.00%, #1) 0x10000632b909
 |    0x10000632b889
 |    0x100006357a37
 |    0x100006323c97
 |   
 |-- (0.00%, #1) 0x1000060d4343
 |    0x1000060d471c
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d86554
 |    0x100005d6825b
 |    0x100005d86739
 |    0x100005d6852f
 |   
 |-- (0.00%, #1) 0x10000635e575
 |    0x100006352497
 |    0x10000634e1ed
 |    0x10000634e20d
 |   
 |-- (0.00%, #1) 0x100006323f7f
 |    0x100006357b38
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.00%, #1) 0x100005ce6184
 |    0x100005ce6282
 |    0x1000060d4830
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005d70d46
 |    0x100005d5be25
 |    0x100005cd5357
 |    0x100005cd55a1
 |   
 |-- (0.00%, #1) 0x1000060d1686
 |    0x100006cac884
 |    0x1000060de169
 |    0x100006253990
 |   
 |-- (0.00%, #1) 0x1000060d4776
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x1000063a96fb
 |    0x1000063a973b
 |    0x100006387be5
 |    0x1000063aeab9
 |   
 |-- (0.00%, #1) 0x100000098ac5
 |    0x10000002b750
 |    0x10000002ccdc
 |    0x10000008eae0
 |   
 |-- (0.00%, #1) 0x1000072d2cd4
 |    0x1000072d2de5
 |    0x1000072d3165
 |    0x1000072d325c
 |   
 |-- (0.00%, #1) 0x1000062da807
 |    0x1000062c4af7
 |    0x1000062b0874
 |    0x1000062b07ce
 |   
 |-- (0.00%, #1) 0x100005d8ba73
 |    0x100005d6ddef
 |    0x100005d57ddc
 |    0x100005d57e30
 |   
 |-- (0.00%, #1) 0x100005d6516e
 |    0x100005ce7645
 |    0x100005ce734d
 |    0x100005ccb57e
 |   
 |-- (0.00%, #1) 0x100006281716
 |    0x1000062da7f4
 |    0x1000062c4af7
 |    0x1000062b0874
 |   
 |-- (0.00%, #1) 0x10000727f810
 |    0x10000727f82a
 |    0x10000727f856
 |    0x10000727f870
 |   
 |-- (0.00%, #1) 0x100005d51a33
 |    0x100005d51a53
 |    0x100005ce76ae
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005ce7598
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.00%, #1) 0x100005db5daa
 |    0x100005db2ec2
 |    0x100005dae05d
 |    0x100005da71e5
 |   
 |-- (0.00%, #1) 0x10000626f48a
 |    0x1000062685a1
 |    0x100006261465
 |    0x10000625ad5d
 |   
 |-- (0.00%, #1) 0x100005c37e7d
 |    0x100005cbb4ff
 |    0x100005cbb224
 |    0x100005cbb24e
 |   
 |-- (0.00%, #1) 0x1000063717f4
 |    0x1000063718af
 |    0x10000636a016
 |    0x10000636a144
 |   
 |-- (0.00%, #1) 0x100005daca55
 |    0x100005da6381
 |    0x100005d9f11e
 |    0x100005d9601a
 |   
 |-- (0.00%, #1) 0x100005b5206f
 |    0x100005b50658
 |    0x100005ccb6ac
 |    0x1000060d4218
 |   
 |-- (0.00%, #1) 0x100005d70e5c
 |    0x100005d5be25
 |    0x100005cd5357
 |    0x100005cd55a1
 |   
 |-- (0.00%, #1) 0x100005d9807b
 |    0x100005d865f9
 |    0x100005d68300
 |    0x100005d6860f
 |   
 |-- (0.00%, #1) 0x100005cdd633
 |    0x1000061709b0
 |    0x1000061708f0
 |    0x100006253e43
 |   
 |-- (0.00%, #1) 0x100006371794
 |    0x100006371858
 |    0x1000063718af
 |    0x10000636a016
 |   
 |-- (0.00%, #1) 0x1000063211d0
 |    0x1000063212a5
 |    0x100006314faf
 |    0x10000634e9d6
 |   
 |-- (0.00%, #1) 0x100007287e8b
 |    0x100007286bee
 |    0x100007286d8e
 |    0x10000728c18c
 |   
 |-- (0.00%, #1) 0x100005d5268a
 |    0x100005d4ce0f
 |    0x100005ced68c
 |    0x100005cee3cf
 |   
 |-- (0.00%, #1) 0x100005f61f3e
 |    0x1000060d246d
 |    0x1000060d16c1
 |    0x100006cac884
 |   
 |-- (0.00%, #1) 0x1000062537c8
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.00%, #1) 0x10000728c0fe
 |    0x10000722c4bf
 |    0x10000722c529
 |    0x10000723645b
 |   
 |-- (0.00%, #1) 0x10000632c092
 |    0x100006357d10
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.00%, #1) 0x10000728ee6e
 |    0x1000072283d3
 |    0x10000722845d
 |    0x100007236719
 |   
 |-- (0.00%, #1) 0x1000060d1646
 |    0x100006cac884
 |    0x1000060de169
 |    0x100006253990
 |   
 |-- (0.00%, #1) 0x100005d66cb2
 |    0x100005d66c65
 |    0x100005d52695
 |    0x100005d4ce0f
 |   
 |-- (0.00%, #1) 0x100005e4299c
 |    0x100005e426c1
 |    0x1000063ad929
 |    0x100006385a3b
 |   
 |-- (0.00%, #1) 0x100005d53b3a
 |    0x10000625387c
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100006253cdf
 |    0x100006252a77
 |    0x10000625669e
 |    0x10000624cc55
 |   
 |-- (0.00%, #1) TQ_SLEEP
 |    taskqueue_thread_loop
 |    sched::thread::main()
 |   
 |-- (0.00%, #1) 0x100000097d07
 |    0x1000000961fa
 |    0x1000000973d8
 |    0x1000000961fa
 |   
 |-- (0.00%, #1) 0x100006220a08
 |    0x100006215dfb
 |    0x100006208d4d
 |    0x1000061ecea8
 |   
 |-- (0.00%, #1) 0x100006386f63
 |    0x100005d50027
 |    0x100005d5be9c
 |    0x100005cd53d4
 |   
 |-- (0.00%, #1) 0x1000000279a0
 |    0x100000044cce
 |    0x10000004669f
 |    0x10000005726a
 |   
 |-- (0.00%, #1) 0x10000009ba0c
 |    0x100000097d07
 |    0x1000000961fa
 |    taskqueue_run_locked
 |   
 |-- (0.00%, #1) 0x10000006f1fe
 |    0x1000000964b7
 |    0x1000000961fa
 |    taskqueue_run_locked
 |   
 |-- (0.00%, #1) 0x100005ced5db
 |    0x100005cee3cf
 |    0x1000060d1d63
 |    0x1000060d22f0
 |   
 |-- (0.00%, #1) 0x100005d5048f
 |    0x100005d504af
 |    0x100005cc98a1
 |    0x1000060d487c
 |   
 |-- (0.00%, #1) 0x1000000575bf
 |    0x100000063dc7
 |    sched::thread::main()
 |   
 |-- (0.00%, #1) 0x100005da5d69
 |    0x100005d9e956
 |    0x100005d955d8
 |    0x100005d80fc2
 |   
 |-- (0.00%, #1) 0x1000060ed43b
 |    0x1000060e7546
 |    0x1000060e7574
 |    0x1000060d422b
 |   
 |-- (0.00%, #1) 0x10000623ec65
 |    0x100006238fc3
 |    0x10000622e945
 |    0x10000622358a
 |   
 |-- (0.00%, #1) 0x10000728bb5e
 |    0x10000728b3ee
 |    0x10000728bcb4
 |    0x10000728c0fe
 |   
 |-- (0.00%, #1) 0x1000063718fa
 |    0x10000636a09f
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x10000728b465
 |    0x10000728ba8f
 |    0x10000722c1dd
 |    0x10000722c439
 |   
 |-- (0.00%, #1) 0x100005d52e46
 |    0x1000060d4ce5
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005c3305d
 |    0x100005d4d849
 |    0x100005db7a89
 |    0x100005dba392
 |   
 |-- (0.00%, #1) 0x10000729bc52
 |    0x10000722afa6
 |    0x10000722c795
 |    0x100007235fcc
 |   
 |-- (0.00%, #1) 0x100005d4f1fc
 |    0x100005d4f1cd
 |    0x1000062815d3
 |    0x100005d8ded7
 |   
 |-- (0.00%, #1) 0x100005da5548
 |    0x100005d9d32c
 |    0x100005d8e75d
 |    0x100005d72561
 |   
 |-- (0.00%, #1) 0x100005db8290
 |    0x100005b2ad61
 |    0x100005b28e82
 |    0x100005bf6fab
 |   
 |-- (0.00%, #1) 0x10000636a23a
 |    0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.00%, #1) 0x10000729bca7
 |    0x10000722afa6
 |    0x10000722c795
 |    0x100007235fcc
 |   
 |-- (0.00%, #1) 0x100006371683
 |    0x100006369ed9
 |    0x100006360c7b
 |    0x100006354001
 |   
 |-- (0.00%, #1) 0x100005dabfb8
 |    0x100005da5d7f
 |    0x100005d9e956
 |    0x100005d955d8
 |   
 |-- (0.00%, #1) 0x100006d52423
 |    0x100006253b94
 |    0x100006252a77
 |    0x10000625669e
 |   
 |-- (0.00%, #1) 0x100005ce697c
 |    0x100005d866fd
 |    0x100005d684eb
 |    0x100005d685cd
 |   
 |-- (0.00%, #1) 0x100005d682c3
 |    0x100005d68584
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.00%, #1) 0x100006281799
 |    0x100006281669
 |    0x100005da3ab2
 |    0x100005d9b69c
 |   
 |-- (0.00%, #1) 0x100005ced82a
 |    0x100005cee3cf
 |    0x1000060d1d63
 |    0x1000060d22f0
 |   
 |-- (0.00%, #1) 0x100005d960b2
 |    0x100005d81a94
 |    0x100005d6516e
 |    0x100005ce7645
 |   
 |-- (0.00%, #1) 0x100006269eab
 |    0x1000062629db
 |    0x10000625c300
 |    0x100006253b60
 |   
 |-- (0.00%, #1) 0x10000637729d
 |    0x100006372ca1
 |    0x10000636c245
 |    0x1000063632e1
 |   
 |-- (0.00%, #1) 0x1000061f053e
 |    0x100006170a66
 |    0x1000061708f0
 |    0x100006253e43
 |   
 |-- (0.00%, #1) 0x100005ced1bc
 |    0x1000062b1446
 |    0x1000062b13d3
 |    0x10000631818b
 |   
 |-- (0.00%, #1) 0x1000063ed88c
 |    0x1000063ec5b4
 |    0x1000063eaf2f
 |    0x1000063e8f73
 |   
 |-- (0.00%, #1) 0x100005dadf05
 |    0x100005da718d
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.00%, #1) 0x1000060d1616
 |    0x100006cac884
 |    0x1000060de169
 |    0x100006253990
 |   
 |-- (0.00%, #1) 0x100005d52e3a
 |    0x1000060d4ce5
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d5c519
 |    0x100005d5c62e
 |    0x100005d5c11b
 |    0x100005cd55d7
 |   
 |-- (0.00%, #1) 0x1000063e73e4
 |    0x1000063e0f2e
 |    0x1000063e0db0
 |    0x1000063e1005
 |   
 |-- (0.00%, #1) 0x10000729bcbc
 |    0x10000722afa6
 |    0x10000722c795
 |    0x100007235fcc
 |   
 |-- (0.00%, #1) 0x100000026acb
 |    0x1000000270bc
 |    0x10000002b792
 |    0x10000002ccdc
 |   
 |-- (0.00%, #1) 0x10000723c9b5
 |    0x1000072407fc
 |    0x10000729bcbc
 |    0x10000722afa6
 |   
 |-- (0.00%, #1) mmu::map_anon(void const*, unsigned long, unsigned int, unsigned int)
 |    mmap
 |    0x10000724bc87
 |    0x10000724c221
 |   
 |-- (0.00%, #1) 0x100006218e3a
 |    0x10000620c4d3
 |    0x1000061f046e
 |    0x1000061709d2
 |   
 |-- (0.00%, #1) 0x100005ce7932
 |    0x100005ce61c0
 |    0x100005ce6282
 |    0x1000060d4794
 |   
 |-- (0.00%, #1) 0x100006387426
 |    0x100005cd556f
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x10000620e4d9
 |    0x1000061f1c49
 |    0x1000061dcd2d
 |    0x1000061d7707
 |   
 |-- (0.00%, #1) 0x1000072283d3
 |    0x10000722845d
 |    0x100007236719
 |    0x100007236891
 |   
 |-- (0.00%, #1) 0x1000072f3247
 |    0x1000072f3278
 |    0x1000072f33e3
 |    0x10000728c302
 |   
 |-- (0.00%, #1) 0x100005db8642
 |    0x100005b2adf1
 |    0x100005b28d51
 |    0x100005d51b1c
 |   
 |-- (0.00%, #1) 0x1000063eb18d
 |    0x1000063e939f
 |    0x1000063e72d0
 |    0x1000063e0df0
 |   
 |-- (0.00%, #1) 0x100006371a29
 |    0x10000636a0f4
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x100006380cc9
 |    0x10000637e09a
 |    0x10000637a1ce
 |    0x1000063765af
 |   
 |-- (0.00%, #1) 0x1000072907d0
 |    0x10000729bca7
 |    0x10000722afa6
 |    0x10000722c795
 |   
 |-- (0.00%, #1) 0x100006385ade
 |    0x1000063873c9
 |    0x100005cd556f
 |    0x1000060d47fe
 |   
 |-- (0.00%, #1) 0x100005d65123
 |    0x100005ce769f
 |    0x100005ce734d
 |    0x100005ccb57e
 |   
 |-- (0.00%, #1) 0x1000072409c8
 |    0x100007240862
 |    0x10000729bcbc
 |    0x10000722afa6
 |   
 |-- (0.00%, #1) 0x1000060d4090
 |    0x1000060d486d
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100006165d13
 |    0x100006385a24
 |    0x100006386dbd
 |    0x100006386f2d
 |   
 |-- (0.00%, #1) 0x1000063873f7
 |    0x100005cd556f
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005d64b9b
 |    0x100005ce65c5
 |    0x100005ce7598
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005da7230
 |    0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |   
 |-- (0.00%, #1) 0x100005d4deec
 |    0x100005db6d0d
 |    0x100005db5369
 |    0x100005db1aeb
 |   
 |-- (0.00%, #1) 0x100006322807
 |    0x10000632b9fa
 |    0x10000638e6cc
 |    0x100006ac0c44
 |   
 |-- (0.00%, #1) 0x10000002b7b8
 |    0x10000002ccdc
 |    0x10000008eae0
 |    vfs_file::read(uio*, int)
 |   
 |-- (0.00%, #1) 0x100005db5369
 |    0x100005db1aeb
 |    0x100005daca45
 |    0x100005da6381
 |   
 |-- (0.00%, #1) 0x100005d9776a
 |    0x100005d853b1
 |    0x100005d67326
 |    0x100005d52e3a
 |   
 |-- (0.00%, #1) 0x10000636a144
 |    0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.00%, #1) 0x1000063a9ac3
 |    0x100006387e57
 |    0x1000063aeab9
 |    0x100006387461
 |   
 |-- (0.00%, #1) 0x1000063cefb0
 |    0x1000063c81af
 |    0x1000063be91b
 |    0x1000063b672b
 |   
 |-- (0.00%, #1) 0x100005cec0bd
 |    0x100005e2667f
 |    0x100005e25550
 |    0x100005e2536d
 |   
 |-- (0.00%, #1) 0x100006ac0b8a
 |    0x100006d524c3
 |    0x100006253b94
 |    0x100006252a77
 |   
 |-- (0.00%, #1) 0x100005cc9c8a
 |    0x100005cc991a
 |    0x1000060d48a4
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100006d52556
 |    0x100006250a91
 |    0x10000624fc9c
 |    0x100006b080eb
 |   
 |-- (0.00%, #1) 0x10000635e4f3
 |    0x1000063523e7
 |    0x1000063206c5
 |    0x100006320749
 |   
 |-- (0.00%, #1) 0x1000072de152
 |    0x1000072e1fec
 |    0x1000072e0240
 |    0x10000724a74d
 |   
 |-- (0.00%, #1) 0x1000062c4f4f
 |    0x1000062c48cc
 |    0x1000062b074f
 |    0x100006317fd0
 |   
 |-- (0.00%, #1) 0x1000062b076d
 |    0x100006317fd0
 |    0x100006314f7a
 |    0x10000634e9d6
 |   
 |-- (0.00%, #1) 0x1000063db4f9
 |    0x1000063d8eba
 |    0x1000063d5079
 |    0x1000063cfef7
 |   
 |-- (0.00%, #1) 0x100005d685da
 |    0x100005d5462b
 |    0x100005cc9c7e
 |    0x100005cc991a
 |   
 |-- (0.00%, #1) 0x100005db9cad
 |    0x100005db8ae1
 |    0x100005b2ad61
 |    0x100005b28e82
 |   
 |-- (0.00%, #1) 0x100005db8a77
 |    0x100005db8b57
 |    0x100005b2adf1
 |    0x100005b28e82
 |   
 |-- (0.00%, #1) 0x100005dae075
 |    0x100005da71e5
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.00%, #1) 0x10000632b8e7
 |    0x10000632b867
 |    0x100006322625
 |    0x10000632b9fa
 |   
 |-- (0.00%, #1) 0x10000636a170
 |    0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.00%, #1) 0x10000724a697
 |    0x10000724aa3b
 |    0x100007247cc4
 |    0x10000724846c
 |   
 |-- (0.00%, #1) 0x100005cd5529
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) screen_scroll_up(tsm_screen*, unsigned int)
 |    tsm_screen_write
 |    tsm_vte_input
 |    tsm_vte_input
 |    console::console_multiplexer::drivers_write(char const*, unsigned long)
 |    operator()
 |    __invoke_impl<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    __invoke_r<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |   
 |-- (0.00%, #1) 0x100006314e12
 |    0x10000632be3d
 |    0x100006322807
 |    0x10000632b9fa
 |   
 |-- (0.00%, #1) 0x100000052441
 |    0x1000000912bf
 |    0x10000008eb35
 |    vfs_file::read(uio*, int)
 |   
 |-- (0.00%, #1) 0x100005ccb679
 |    0x1000060d4218
 |    0x1000060d471c
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x1000062c5e15
 |    0x1000062b1479
 |    0x1000062b13d3
 |    0x10000631818b
 |   
 |-- (0.00%, #1) 0x1000063ee84f
 |    0x1000063edaf5
 |    0x1000063ec9c8
 |    0x1000063eb20b
 |   
 |-- (0.00%, #1) 0x100005d4cc65
 |    0x100006357b03
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.00%, #1) tsm_screen_write
 |    tsm_vte_input
 |    tsm_vte_input
 |    console::console_multiplexer::drivers_write(char const*, unsigned long)
 |    operator()
 |    __invoke_impl<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    __invoke_r<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    std::function<void (char const*, unsigned long)>::operator()(char const*, unsigned long) const
 |    console::LineDiscipline::write(char const*, unsigned long, std::function<void (char const*, unsigned long)>&)
 |   
 |-- (0.00%, #1) 0x100006253807
 |    0x100006252ceb
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.00%, #1) 0x100006321237
 |    0x1000063212a5
 |    0x100006314faf
 |    0x10000634e9d6
 |   
 |-- (0.00%, #1) 0x1000060d495e
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100005dacb66
 |    0x100005da63ed
 |    0x100005d9f160
 |    0x100005d960c8
 |   
 |-- (0.00%, #1) 0x100005db2f1f
 |    0x100005dae125
 |    0x100005dae084
 |    0x100005da71e5
 |   
 |-- (0.00%, #1) 0x100005d86684
 |    0x100005d6842e
 |    0x100005d58988
 |    0x100005cc98d1
 |   
 |-- (0.00%, #1) 0x100006387a85
 |    0x10000628178d
 |    0x100006281669
 |    0x1000062b0ca3
 |   
 |-- (0.00%, #1) 0x100005e37364
 |    0x100005e42882
 |    0x100005e429b7
 |    0x100005e426c1
 |   
 |-- (0.00%, #1) 0x100005d58095
 |    0x100005e69b51
 |    0x1000060e6886
 |    0x1000060e72a0
 |   
 |-- (0.00%, #1) 0x100006387a72
 |    0x10000628178d
 |    0x100006281669
 |    0x100005da3ab2
 |   
 |-- (0.00%, #1) 0x1000063c92a9
 |    0x1000063bfa0f
 |    0x1000063b77c9
 |    0x1000063aec8d
 |   
 |-- (0.00%, #1) 0x10000636a0dd
 |    0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.00%, #1) 0x100007236719
 |    0x100007236891
 |    0x10000722d3f9
 |    0x1000072369da
 |   
 |-- (0.00%, #1) 0x100005bfe148
 |    0x100005bee697
 |    0x100006ac0b8a
 |    0x100006d524c3
 |   
 |-- (0.00%, #1) 0x100007225544
 |    0x1000072256d9
 |    0x100007235adf
 |    0x10000723624f
 |   
 |-- (0.00%, #1) 0x100006387b66
 |    0x10000628178d
 |    0x100006281669
 |    0x100005da3ab2
 |   
 |-- (0.00%, #1) 0x1000072d30a6
 |    0x1000072d322e
 |    0x1000072e2a57
 |    0x1000072e02d4
 |   
 |-- (0.00%, #1) 0x100005db6d0d
 |    0x100005db5369
 |    0x100005db1aeb
 |    0x100005daca45
 |   
 |-- (0.00%, #1) 0x1000061e5781
 |    0x1000061e51ef
 |    0x10000615738c
 |    0x1000061699c8
 |   
 |-- (0.00%, #1) 0x10000727f82a
 |    0x10000727f856
 |    0x10000727f870
 |    0x10000727f905
 |   
 |-- (0.00%, #1) 0x100005ce6319
 |    0x100005cc9c6f
 |    0x100005cc991a
 |    0x1000060d48a4
 |   
 |-- (0.00%, #1) 0x1000060f3697
 |    0x1000060ecdf6
 |    0x1000060d14db
 |    0x1000063a930a
 |   
 |-- (0.00%, #1) 0x1000072d2229
 |    0x1000072a1e48
 |    0x1000072a1f6d
 |    0x1000072d3276
 |   
 |-- (0.00%, #1) 0x100005ce76ae
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.00%, #1) 0x100005f64b5d
 |    0x1000060d2108
 |    0x1000060d18d6
 |    0x1000060d152e
 |   
 |-- (0.00%, #1) 0x100007248510
 |    0x1000072991aa
 |    0x1000072409c8
 |    0x100007240862
 |   
 |-- (0.00%, #1) 0x100005e9c50c
 |    0x100005e5736f
 |    0x100005ce690e
 |    0x100005db6cea
 |   
 |-- (0.00%, #1) 0x100006170a66
 |    0x1000061708f0
 |    0x100006253e43
 |    0x100006252e34
 |   
 |-- (0.00%, #1) 0x100005e9c1e2
 |    0x100006253768
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x1000062da6b2
 |    0x1000062da6dc
 |    0x1000062c48dc
 |    0x1000062b074f
 |   
 |-- (0.00%, #1) 0x1000063ee831
 |    0x1000063edae6
 |    0x1000063ec9c8
 |    0x1000063eb20b
 |   
 |-- (0.00%, #1) 0x100005db8ae1
 |    0x100005b2ad61
 |    0x100005b28e82
 |    0x100005b4d2a7
 |   
 |-- (0.00%, #1) 0x10000635256e
 |    0x10000634e32f
 |    0x1000063754f9
 |    0x10000636ff6a
 |   
 |-- (0.00%, #1) 0x1000063bc5cd
 |    0x1000063b3949
 |    0x1000063be877
 |    0x1000063b6548
 |   
 |-- (0.00%, #1) 0x100005d5be9c
 |    0x100005cd53d4
 |    0x100005cd55f7
 |    0x1000060d47fe
 |   
 |-- (0.00%, #1) 0x100005da718d
 |    0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |   
 |-- (0.00%, #1) 0x100005d68300
 |    0x100005d68649
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.00%, #1) 0x100005d866fd
 |    0x100005d684eb
 |    0x100005d685cd
 |    0x100005d5462b
 |   
 |-- (0.00%, #1) 0x10000729fe39
 |    0x1000072a1e1a
 |    0x1000072a1f6d
 |    0x1000072d3276
 |   
 |-- (0.00%, #1) 0x1000060fb78b
 |    0x1000060f3515
 |    0x1000060eccf1
 |    0x1000060d167e
 |   
 |-- (0.00%, #1) 0x1000063a96db
 |    0x1000063a971b
 |    0x1000063a9ac3
 |    0x1000063879a3
 |   
 |-- (0.00%, #1) 0x100007228030
 |    0x100007229e46
 |    0x100007229ea7
 |    0x100007235d49
 |   
 |-- (0.00%, #1) 0x10000626287a
 |    0x10000625c1ed
 |    0x1000062536a2
 |    0x10000625379f
 |   
 |-- (0.00%, #1) 0x100005db8331
 |    0x100005b2adf1
 |    0x100005b28e82
 |    0x100005bf6fab
 |   
 |-- (0.00%, #1) 0x1000072a1eaf
 |    0x1000072a1f6d
 |    0x1000072d3276
 |    0x1000072e2a57
 |   
 |-- (0.00%, #1) 0x100005ce7677
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.00%, #1) 0x100005b2eb31
 |    0x100005b2c9e5
 |    0x100005d53b3a
 |    0x10000625387c
 |   
 |-- (0.00%, #1) 0x10000636774d
 |    0x10000635e70e
 |    0x100006352648
 |    0x10000634e31f
 |   
 |-- (0.00%, #1) 0x100005d4d77f
 |    0x100005db67f0
 |    0x100005db4ced
 |    0x100005db0fe7
 |   
 |-- (0.00%, #1) 0x100005cc9e13
 |    0x100006cc2f00
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x1000072e2a57
 |    0x1000072e02d4
 |    0x10000724a74d
 |    0x10000724aa3b
 |   
 |-- (0.00%, #1) 0x1000063211e0
 |    0x1000063212a5
 |    0x100006314faf
 |    0x10000634e9d6
 |   
 |-- (0.00%, #1) 0x100005db0f17
 |    0x100005db0f37
 |    0x100005db872b
 |    0x100005db880b
 |   
 |-- (0.00%, #1) 0x100006281777
 |    0x100006281669
 |    0x100005da3ab2
 |    0x100005d9b69c
 |   
 |-- (0.00%, #1) 0x1000063a87bd
 |    0x1000063bfa55
 |    0x1000063b77ec
 |    0x1000063aecc1
 |   
 |-- (0.00%, #1) 0x100005cd54a5
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100006387334
 |    0x100005cd556f
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x10000006f113
 |    0x100000097764
 |    0x1000000961fa
 |    0x10000006e466
 |   
 |-- (0.00%, #1) pthread_mutex_unlock
 |    0x100005bd5520
 |    0x100005bd56ab
 |    0x100005bd6400
 |   
 |-- (0.00%, #1) 0x100005f917f3
 |    0x100005f77fc9
 |    0x100005f66fe5
 |    0x100005f61e4f
 |   
 |-- (0.00%, #1) 0x100005db1a3b
 |    0x100005db8239
 |    0x100005db8319
 |    0x100005b2adf1
 |   
 |-- (0.00%, #1) 0x100005ce75af
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.00%, #1) 0x100005d8da4d
 |    0x100005d7103f
 |    0x100005d70e5c
 |    0x100005d5be25
 |   
 |-- (0.00%, #1) 0x100005c33125
 |    0x100006315135
 |    0x10000634e9d6
 |    0x100006315320
 |   
 |-- (0.00%, #1) 0x1000072295f7
 |    0x100007229880
 |    0x10000722b08d
 |    0x10000722c5f8
 |   
 |-- (0.00%, #1) 0x10000622358a
 |    0x100006218ea3
 |    0x10000620c506
 |    0x1000061f046e
 |   
 |-- (0.00%, #1) 0x100005d519de
 |    0x100005d51a0c
 |    0x100005cec145
 |    0x100005ccb6c9
 |   
 |-- (0.00%, #1) 0x100007226dcd
 |    0x100007228328
 |    0x10000722845d
 |    0x100007236719
 |   
 |-- (0.00%, #1) 0x100005d4ceb4
 |    0x100005d4cede
 |    0x100005ced679
 |    0x100005cee3cf
 |   
 |-- (0.00%, #1) 0x1000071f5800
 |    0x1000071f0844
 |    0x1000071eb8cb
 |    0x1000071e6925
 |   
 |-- (0.00%, #1) 0x1000062705bd
 |    0x100006269eab
 |    0x1000062629db
 |    0x10000625c300
 |   
 |-- (0.00%, #1) 0x100005cc9e2d
 |    0x100006253892
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x1000063e0ff3
 |    0x1000063e04e6
 |    0x100006ac0b67
 |    0x100006d524c3
 |   
 |-- (0.00%, #1) 0x10000729e77d
 |    0x1000072a1e26
 |    0x1000072a1f6d
 |    0x1000072d3276
 |   
 |-- (0.00%, #1) 0x1000060ed5bf
 |    0x1000060d48db
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005ed3067
 |    0x100005e9c1f2
 |    0x100006253768
 |    0x100006252ceb
 |   
 |-- (0.00%, #1) 0x1000063a9a59
 |    0x1000063a99c3
 |    0x1000063a99e3
 |    0x1000063a9a03
 |   
 |-- (0.00%, #1) 0x100005bc3345
 |    0x100005bc06a7
 |    0x100005bbc4a7
 |    0x100005bbc328
 |   
 |-- (0.00%, #1) 0x100007286d8e
 |    0x10000728c18c
 |    0x10000722c4bf
 |    0x10000722c529
 |   
 |-- (0.00%, #1) 0x1000063cffe1
 |    0x1000063c92a9
 |    0x1000063bfa0f
 |    0x1000063b77c9
 |   
 |-- (0.00%, #1) 0x10000635663a
 |    0x100006321237
 |    0x1000063212a5
 |    0x100006314faf
 |   
 |-- (0.00%, #1) 0x100005da03f9
 |    0x100005d97772
 |    0x100005d853b1
 |    0x100005d67326
 |   
 |-- (0.00%, #1) 0x100005f7af31
 |    0x100005f6c0ef
 |    0x1000061f0393
 |    0x1000061708cf
 |   
 |-- (0.00%, #1) 0x100006367f96
 |    0x100006367fc0
 |    0x1000063717f4
 |    0x1000063718af
 |   
 |-- (0.00%, #1) 0x1000060e68c8
 |    0x1000060e72a0
 |    0x100006cc30c9
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100006357146
 |    0x100006357ce9
 |    0x100006323c97
 |    0x10000632b9a1
 |   
 |-- (0.00%, #1) 0x100005f7aec8
 |    0x100005f6c0bd
 |    0x1000061f0383
 |    0x1000061708cf
 |   
 |-- (0.00%, #1) 0x1000072de115
 |    0x1000072e173b
 |    0x1000072e0017
 |    0x10000724a697
 |   
 |-- (0.00%, #1) 0x100005d87219
 |    0x100005d68cd6
 |    0x100005d54b41
 |    0x100006386f40
 |   
 |-- (0.00%, #1) 0x1000063b77c9
 |    0x1000063aec8d
 |    0x100006387941
 |    0x100006387b55
 |   
 |-- (0.00%, #1) 0x100006371716
 |    0x100006371740
 |    0x10000637180f
 |    0x1000063718af
 |   
 |-- (0.00%, #1) 0x10000637652d
 |    0x100006371716
 |    0x100006371740
 |    0x10000637180f
 |   
 |-- (0.00%, #1) 0x100000097333
 |    0x1000000961fa
 |    0x100000099020
 |    0x10000002b7eb
 |   
 |-- (0.00%, #1) 0x100005c483ff
 |    0x100005c43ca4
 |    0x100005c3e061
 |    0x100005c37e7d
 |   
 |-- (0.00%, #1) 0x100005db1aeb
 |    0x100005daca45
 |    0x100005da6381
 |    0x100005d9f11e
 |   
 |-- (0.00%, #1) 0x100005db8aec
 |    0x100005b2ad61
 |    0x100005b28e82
 |    0x100005b4d2a7
 |   
 |-- (0.00%, #1) 0x1000072a1f6d
 |    0x1000072d3276
 |    0x1000072e2a57
 |    0x1000072e02d4
 |   
 |-- (0.00%, #1) 0x100005ce6987
 |    0x100005d4deec
 |    0x100005db6d0d
 |    0x100005db5369
 |   
 |-- (0.00%, #1) 0x100005d527c6
 |    0x100005d4d25a
 |    0x100005ce6335
 |    0x100005cc9c6f
 |   
 |-- (0.00%, #1) 0x1000062815ee
 |    0x1000063873df
 |    0x100005cd556f
 |    0x1000060d47fe
 |   
 |-- (0.00%, #1) 0x100006387b55
 |    0x10000628178d
 |    0x100006281669
 |    0x100005da3ab2
 |   
 |-- (0.00%, #1) 0x1000060d1d63
 |    0x1000060d22f0
 |    0x1000060d18d6
 |    0x1000060d152e
 |   
 |-- (0.00%, #1) 0x100005da721d
 |    0x100005da00ed
 |    0x100005d972f4
 |    0x100005d84d64
 |   
 |-- (0.00%, #1) 0x100007248521
 |    0x1000072991aa
 |    0x1000072409c8
 |    0x100007240862
 |   
 |-- (0.00%, #1) 0x1000062c4a62
 |    0x1000062b0874
 |    0x1000062b07ce
 |    0x10000631818b
 |   
 |-- (0.00%, #1) 0x100005b78a6c
 |    0x100005b744d9
 |    0x100005b7cf95
 |    0x100005bbb2f5
 |   
 |-- (0.00%, #1) synch_port::_msleep(void*, mtx*, int, char const*, int)
 |    synch_port::_msleep(void*, mtx*, int, char const*, int)
 |    TQ_SLEEP
 |    taskqueue_thread_loop
 |    sched::thread::main()
 |   
 |-- (0.00%, #1) 0x1000060d153f
 |    0x1000063a930a
 |    0x100006cc2f22
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d720d8
 |    0x100005d5cbda
 |    0x100006b0a34f
 |    0x1000060d4cc3
 |   
 |-- (0.00%, #1) 0x100005d96004
 |    0x100005d81978
 |    0x100005d650d8
 |    0x100005ce762c
 |   
 |-- (0.00%, #1) 0x100005d5896b
 |    0x100005cc98d1
 |    0x1000060d4cf4
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005db8630
 |    0x100005b2adf1
 |    0x100005b28d51
 |    0x100005d51b1c
 |   
 |-- (0.00%, #1) 0x100005d6ddef
 |    0x100005d57ddc
 |    0x100005d57e30
 |    0x1000060d4d12
 |   
 |-- (0.00%, #1) 0x100005ce75a7
 |    0x100005ce734d
 |    0x100005ccb57e
 |    0x100006cac8dc
 |   
 |-- (0.00%, #1) 0x100005dab140
 |    0x100005da5022
 |    0x100005d9ce1b
 |    0x100005d8df13
 |   
 |-- (0.00%, #1) 0x100005cd58bc
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d684eb
 |    0x100005d685cd
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.00%, #1) 0x10000622e936
 |    0x10000622358a
 |    0x100006218ea3
 |    0x10000620c506
 |   
 |-- (0.00%, #1) 0x100005b4dc17
 |    0x100005da03f9
 |    0x100005d97772
 |    0x100005d853b1
 |   
 |-- (0.00%, #1) 0x100005d52a30
 |    0x100005ce7a31
 |    0x100005ce61c0
 |    0x100005ce6282
 |   
 |-- (0.00%, #1) 0x100005d72525
 |    0x100005d5d01d
 |    0x100005d51120
 |    0x100005d5114e
 |   
 |-- (0.00%, #1) 0x100006320749
 |    0x100006314da5
 |    0x10000632be66
 |    0x100006322807
 |   
 |-- (0.00%, #1) 0x1000063525ff
 |    0x100006352654
 |    0x10000634e31f
 |    0x1000063754f9
 |   
 |-- (0.00%, #1) 0x1000061709b0
 |    0x1000061708f0
 |    0x100006253e43
 |    0x100006252e34
 |   
 |-- (0.00%, #1) 0x100005d8e977
 |    0x100005d728ee
 |    0x100005d5d583
 |    0x100005d652f0
 |   
 |-- (0.00%, #1) 0x100005d58b66
 |    0x100005cc9cad
 |    0x100005cc991a
 |    0x1000060d48a4
 |   
 |-- (0.00%, #1) 0x100005d9f11e
 |    0x100005d9601a
 |    0x100005d81978
 |    0x100005d650d8
 |   
 |-- (0.00%, #1) 0x100005db79a5
 |    0x100005dba31a
 |    0x100005db9b6e
 |    0x100005db82ae
 |   
 |-- (0.00%, #1) 0x100006cc2f22
 |    0x100006252e12
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.00%, #1) 0x10000635edc7
 |    0x100006352d8f
 |    0x10000634ea06
 |    0x100006315320
 |   
 |-- (0.00%, #1) 0x100007289a88
 |    0x100007229e81
 |    0x100007229ea7
 |    0x100007235d49
 |   
 |-- (0.00%, #1) 0x1000063c8ffc
 |    0x1000063bf7cb
 |    0x1000063b756f
 |    0x1000063ae58e
 |   
 |-- (0.00%, #1) 0x1000060fc014
 |    0x1000060fc077
 |    0x1000060f404f
 |    0x1000060ed667
 |   
 |-- (0.00%, #1) 0x1000060d441b
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<void* const, synch_thread*> > >::deallocate(std::_Rb_tree_node<std::pair<void* const, synch_thread*> >*, unsigned long)
 |    std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<void* const, synch_thread*> > > >::deallocate(std::allocator<std::_Rb_tree_node<std::pair<void* const, synch_thread*> > >&, std::_Rb_tree_node<std::pair<void* const, synch_thread*> >*, unsigned long)
 |    std::_Rb_tree<void*, std::pair<void* const, synch_thread*>, std::_Select1st<std::pair<void* const, synch_thread*> >, std::less<void*>, std::allocator<std::pair<void* const, synch_thread*> > >::_M_put_node(std::_Rb_tree_node<std::pair<void* const, synch_thread*> >*)
 |    std::_Rb_tree<void*, std::pair<void* const, synch_thread*>, std::_Select1st<std::pair<void* const, synch_thread*> >, std::less<void*>, std::allocator<std::pair<void* const, synch_thread*> > >::_M_drop_node(std::_Rb_tree_node<std::pair<void* const, synch_thread*> >*)
 |    std::_Rb_tree<void*, std::pair<void* const, synch_thread*>, std::_Select1st<std::pair<void* const, synch_thread*> >, std::less<void*>, std::allocator<std::pair<void* const, synch_thread*> > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<void* const, synch_thread*> >)
 |    std::_Rb_tree<void*, std::pair<void* const, synch_thread*>, std::_Select1st<std::pair<void* const, synch_thread*> >, std::less<void*>, std::allocator<std::pair<void* const, synch_thread*> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<void* const, synch_thread*> >)
 |    std::multimap<void*, synch_thread*, std::less<void*>, std::allocator<std::pair<void* const, synch_thread*> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<void* const, synch_thread*> >)
 |    synch_port::wakeup_one(void*)
 |    taskqueue_enqueue_locked
 |    taskqueue_enqueue
 |    0x10000000bd74
 |    0x100000098fb2
 |   
 |-- (0.00%, #1) 0x1000000964b7
 |    0x1000000961fa
 |    taskqueue_run_locked
 |    taskqueue_thread_loop
 |   
 |-- (0.00%, #1) 0x100005db9c46
 |    0x100005db87a0
 |    0x100005b2ad61
 |    0x100005b28e82
 |   
 |-- (0.00%, #1) 0x1000060f3fa1
 |    0x1000060ed55d
 |    0x1000060d48db
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005ccb9c7
 |    0x100006253e56
 |    0x1000062539aa
 |    0x100006252ceb
 |   
 |-- (0.00%, #1) 0x10000729763e
 |    0x10000729923c
 |    0x1000072409c8
 |    0x100007240862
 |   
 |-- (0.00%, #1) 0x1000060d4bcf
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100005e5eba9
 |    0x100005e5eca3
 |    0x100005ce6e54
 |    0x100005ce65e8
 |   
 |-- (0.00%, #1) rwlock_for_read::unlock()
 |    std::lock_guard<rwlock_for_read&>::~lock_guard()
 |    lock_guard_for_with_lock<rwlock_for_read&>::~lock_guard_for_with_lock()
 |    mmu::vm_fault(unsigned long, exception_frame*)
 |    page_fault
 |    ex_pf
 |    0x100007236586
 |   
 |-- (0.00%, #1) reseed(unsigned int)
 |    random_process_event(harvest*)
 |    random_kthread(void*)
 |    sched::thread::main()
 |   
 |-- (0.00%, #1) 0x1000072de174
 |    0x1000072e173b
 |    0x1000072e202e
 |    0x1000072e0240
 |   
 |-- (0.00%, #1) 0x1000063c8191
 |    0x1000063be8c7
 |    0x1000063b6691
 |    0x1000063ad82d
 |   
 |-- (0.00%, #1) 0x1000060a70a4
 |    0x1000060a2f5c
 |    0x10000609d306
 |    0x100006095413
 |   
 |-- (0.00%, #1) 0x100005db0f37
 |    0x100005db872b
 |    0x100005db880b
 |    0x100005b2adf1
 |   
 |-- (0.00%, #1) 0x10000006b29b
 |    virtio::blk::req_done()
 |    std::_Function_handler<void (), virtio::blk::blk(virtio::virtio_device&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    __invoke_impl<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    __invoke_r<void, virtio::blk::blk(virtio::virtio_device&)::<lambda()>&>
 |    sched::thread::main()
 |   
 |-- (0.00%, #1) 0x100005cc9e71
 |    0x100006252cc6
 |    0x100006252aab
 |    0x10000625669e
 |   
 |-- (0.00%, #1) 0x10000635852b
 |    0x100006323c97
 |    0x10000632b9a1
 |    0x10000638e6cc
 |   
 |-- (0.00%, #1) 0x100005dadf5d
 |    0x100005db8b63
 |    0x100005b2adf1
 |    0x100005b28e82
 |   
 |-- (0.00%, #1) 0x100006357c9b
 |    0x100006323c97
 |    0x10000632b9a1
 |    0x10000638e6cc
 |   
 |-- (0.00%, #1) 0x10000729920e
 |    0x1000072409c8
 |    0x100007240862
 |    0x10000729bcbc
 |   
 |-- (0.00%, #1) 0x10000634da66
 |    0x10000632b9ce
 |    0x10000638e6cc
 |    0x100006ac0c44
 |   
 |-- (0.00%, #1) 0x10000636a039
 |    0x10000636a23a
 |    0x100006360f3f
 |    0x10000635436f
 |   
 |-- (0.00%, #1) 0x1000063a97b5
 |    0x100006387988
 |    0x100006387b55
 |    0x10000628178d
 |   
 |-- (0.00%, #1) 0x1000063d46e3
 |    0x1000063cfe12
 |    0x1000063c91a0
 |    0x1000063bf931
 |   
 |-- (0.00%, #1) 0x100005ce7a31
 |    0x100005ce61c0
 |    0x100005ce6282
 |    0x1000060d4830
 |   
 |-- (0.00%, #1) 0x100005d724c7
 |    0x100005d5d02f
 |    0x100005d51120
 |    0x100005d5114e
 |   
 |-- (0.00%, #1) 0x10000728b979
 |    0x10000728bacd
 |    0x10000728b409
 |    0x10000728c10a
 |   
 |-- (0.00%, #1) 0x10000728baa2
 |    0x10000722c1dd
 |    0x10000722c439
 |    0x10000722c529
 |   
 |-- (0.00%, #1) 0x10000008ea20
 |    vfs_file::read(uio*, int)
 |    sys_read
 |    pread64
 |   
 |-- (0.00%, #1) 0x100005db1a73
 |    0x100005daca45
 |    0x100005da6381
 |    0x100005d9f11e
 |   
 |-- (0.00%, #1) 0x100005d95e57
 |    0x100005d8178a
 |    0x100005d64fc5
 |    0x100005ce7677
 |   
 |-- (0.00%, #1) 0x100005d68556
 |    0x100005d5462b
 |    0x100005cc9c7e
 |    0x100005cc991a
 |   
 |-- (0.00%, #1) 0x10000628c5c7
 |    0x10000628a7d3
 |    0x10000629c9fb
 |    0x10000629ca1b
 |   
 |-- (0.00%, #1) 0x1000063e93d2
 |    0x1000063e72d0
 |    0x1000063e0df0
 |    0x1000063e0db0
 |   
 |-- (0.00%, #1) 0x100005bf701f
 |    0x100005cc9c8a
 |    0x100005cc991a
 |    0x1000060d48a4
 |   
 |-- (0.00%, #1) 0x100005d58acf
 |    0x100005cc9d4f
 |    0x100006252cc6
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100005d4e0d5
 |    0x100005ced5f7
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.00%, #1) 0x100005d8679a
 |    0x100005d6852f
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.00%, #1) 0x100005d9ce81
 |    0x100005d8e051
 |    0x100005d717cc
 |    0x100005d5c643
 |   
 |-- (0.00%, #1) 0x10000635c877
 |    0x100006360f2a
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.00%, #1) 0x100005c33079
 |    0x100005d4d849
 |    0x100005dba3ce
 |    0x100005db9c46
 |   
 |-- (0.00%, #1) 0x100005d99882
 |    0x100005d88d6b
 |    0x1000060ed494
 |    0x1000060d48db
 |   
 |-- (0.00%, #1) 0x100005b4d32f
 |    0x100005b4d353
 |    0x100005b4d373
 |    0x100005b4dc27
 |   
 |-- (0.00%, #1) 0x100005cc9c54
 |    0x100005cc991a
 |    0x1000060d48a4
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x10000727f77f
 |    0x10000727f810
 |    0x10000727f82a
 |    0x10000727f856
 |   
 |-- (0.00%, #1) 0x1000060e7574
 |    0x1000060d422b
 |    0x1000060d471c
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x1000061699a0
 |    0x100006169a1a
 |    0x100006169b5a
 |    0x10000616a375
 |   
 |-- (0.00%, #1) 0x100005db8795
 |    0x100005b2ad61
 |    0x100005b28e82
 |    0x100005bf6fab
 |   
 |-- (0.00%, #1) 0x100005bc56cd
 |    0x100005bc3345
 |    0x100005bc06a7
 |    0x100005bbc4a7
 |   
 |-- (0.00%, #1) 0x10000632b575
 |    0x10000632b8e7
 |    0x10000632b867
 |    0x100006357a4d
 |   
 |-- (0.00%, #1) 0x10000729e14f
 |    0x10000729e225
 |    0x10000729e5f6
 |    0x10000729e708
 |   
 |-- (0.00%, #1) 0x1000072d6761
 |    0x1000072d69c2
 |    0x1000072d8cd7
 |    0x1000072e0c2b
 |   
 |-- (0.00%, #1) 0x100005e5eca3
 |    0x100005ce6e54
 |    0x100005f64b6f
 |    0x1000060d2108
 |   
 |-- (0.00%, #1) 0x1000072407fc
 |    0x10000729bcbc
 |    0x10000722afa6
 |    0x10000722c795
 |   
 |-- (0.00%, #1) 0x100005db872b
 |    0x100005db880b
 |    0x100005b2adf1
 |    0x100005b28e82
 |   
 |-- (0.00%, #1) 0x1000060d422b
 |    0x1000060d471c
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x1000063ae411
 |    0x100006386d90
 |    0x100006386f2d
 |    0x100005d50027
 |   
 |-- (0.00%, #1) 0x100005e42882
 |    0x100005e429b7
 |    0x100005e426c1
 |    0x10000638ca7b
 |   
 |-- (0.00%, #1) 0x100005d97fe1
 |    0x100005d86554
 |    0x100005d6825b
 |    0x100005d86739
 |   
 |-- (0.00%, #1) 0x100005db19af
 |    0x100005db8325
 |    0x100005b2adf1
 |    0x100005b28e82
 |   
 |-- (0.00%, #1) 0x1000072d6cb3
 |    0x1000072d8908
 |    0x1000072d8c1a
 |    0x1000072e0c2b
 |   
 |-- (0.00%, #1) 0x100005b5009f
 |    0x1000060fc02f
 |    0x1000060fc077
 |    0x1000060f404f
 |   
 |-- (0.00%, #1) 0x100005d50663
 |    0x100005ccb48d
 |    0x100006cac8dc
 |    0x1000060de169
 |   
 |-- (0.00%, #1) 0x1000063765dd
 |    0x100006371a29
 |    0x10000636a0f4
 |    0x100006360f3f
 |   
 |-- (0.00%, #1) 0x10000628a7d3
 |    0x10000629c9fb
 |    0x10000629ca1b
 |    0x100006352410
 |   
 |-- (0.00%, #1) 0x100005cee3b4
 |    0x100005ccb9b6
 |    0x100006253e56
 |    0x100006253cdf
 |   
 |-- (0.00%, #1) 0x100005d86815
 |    0x100005d6856d
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.00%, #1) 0x1000072d21ff
 |    0x1000072a1069
 |    0x1000072a12d5
 |    0x1000072a1eaf
 |   
 |-- (0.00%, #1) 0x10000620c563
 |    0x1000061f048d
 |    0x1000061709e6
 |    0x1000061708f0
 |   
 |-- (0.00%, #1) 0x10000636a186
 |    0x100006360f3f
 |    0x10000635436f
 |    0x10000632be88
 |   
 |-- (0.00%, #1) 0x10000002ccdc
 |    0x10000008eae0
 |    vfs_file::read(uio*, int)
 |    sys_read
 |   
 |-- (0.00%, #1) 0x100005f61ef7
 |    0x1000060d246d
 |    0x1000060d16c1
 |    0x100006cac884
 |   
 |-- (0.00%, #1) 0x100005d4d9b4
 |    0x100005db6d8b
 |    0x100005db53c5
 |    0x100005db1c25
 |   
 |-- (0.00%, #1) 0x100006d50180
 |    0x100006d4fcdc
 |    0x100006d4f4cf
 |    0x100006d4ec25
 |   
 |-- (0.00%, #1) 0x10000632b889
 |    0x100006322635
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.00%, #1) 0x100005f66f0c
 |    0x100005f61e4f
 |    0x100005f620ab
 |    0x1000060d246d
 |   
 |-- (0.00%, #1) 0x100005ce6f2e
 |    0x100005ce6e84
 |    0x1000060d4be4
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x1000062c5d60
 |    0x1000062b1479
 |    0x1000062b13d3
 |    0x10000631818b
 |   
 |-- (0.00%, #1) 0x100007295c72
 |    0x100007295e1a
 |    0x100007296a35
 |    0x10000729bc52
 |   
 |-- (0.00%, #1) 0x100005d5c0bc
 |    0x100005cd5503
 |    0x1000060d47fe
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005d64fba
 |    0x100005ce7677
 |    0x100005ce734d
 |    0x100005ccb57e
 |   
 |-- (0.00%, #1) 0x1000072d5f2b
 |    0x1000072d8bd3
 |    0x1000072e0c2b
 |    0x1000072e2b85
 |   
 |-- (0.00%, #1) 0x10000624fc9c
 |    0x100006b080eb
 |    0x1000061573db
 |    0x1000061699c8
 |   
 |-- (0.00%, #1) tsm_vte_input
 |    tsm_vte_input
 |    console::console_multiplexer::drivers_write(char const*, unsigned long)
 |    operator()
 |    __invoke_impl<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    __invoke_r<void, console::console_multiplexer::start()::<lambda(char const*, size_t)>&, char const*, long unsigned int>
 |    std::function<void (char const*, unsigned long)>::operator()(char const*, unsigned long) const
 |    console::LineDiscipline::write(char const*, unsigned long, std::function<void (char const*, unsigned long)>&)
 |    console::console_multiplexer::write_ll(char const*, unsigned long)
 |   
 |-- (0.00%, #1) 0x100006225939
 |    0x10000621c051
 |    0x10000621152e
 |    0x10000620188f
 |   
 |-- (0.00%, #1) 0x100005dadf1b
 |    0x100005da718d
 |    0x100005da00ed
 |    0x100005d972f4
 |   
 |-- (0.00%, #1) 0x1000063bfa74
 |    0x1000063b77ec
 |    0x1000063aecc1
 |    0x100006387997
 |   
 |-- (0.00%, #1) 0x1000060d18ed
 |    0x1000060d152e
 |    0x1000063a930a
 |    0x100006d4ab46
 |   
 |-- (0.00%, #1) 0x100005d4e621
 |    0x100005d4e641
 |    0x1000060d48b3
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) memory::page_pool::l1::fill_thread()
 |    memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}::operator()() const
 |    void std::__invoke_impl<void, memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&>(std::__invoke_other, memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&)
 |    std::enable_if<std::__and_<std::is_void<void>, std::__is_invocable<memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&> >::value, void>::type std::__invoke_r<void, memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&>(memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}&)
 |    std::_Function_handler<void (), memory::page_pool::l1::l1(sched::cpu*)::{lambda()#1}>::_M_invoke(std::_Any_data const&)
 |    sched::thread::main()
 |   
 |-- (0.00%, #1) 0x1000063eb20b
 |    0x1000063e93d2
 |    0x1000063e72d0
 |    0x1000063e0df0
 |   
 |-- (0.00%, #1) 0x1000060d15f2
 |    0x100006cac884
 |    0x1000060de169
 |    0x100006253990
 |   
 |-- (0.00%, #1) 0x100005d8dfef
 |    0x100005d717b5
 |    0x100005d5c643
 |    0x100005d5c11b
 |   
 |-- (0.00%, #1) 0x100006387917
 |    0x100006387b55
 |    0x10000628178d
 |    0x100006281669
 |   
 |-- (0.00%, #1) 0x10000628c5d3
 |    0x10000628a7d3
 |    0x10000629c9fb
 |    0x10000629ca1b
 |   
 |-- (0.00%, #1) 0x100005d58b18
 |    0x100005cc9c01
 |    0x100005cc991a
 |    0x1000060d48a4
 |   
 |-- (0.00%, #1) 0x10000729fa09
 |    0x1000072a0f13
 |    0x1000072a12b2
 |    0x1000072a1eaf
 |   
 |-- (0.00%, #1) 0x1000060ece0d
 |    0x1000060d14db
 |    0x1000063a930a
 |    0x100006d4ab46
 |   
 |-- (0.00%, #1) 0x100005ccb954
 |    0x1000060d1582
 |    0x1000063a930a
 |    0x100006d4ab46
 |   
 |-- (0.00%, #1) 0x100005cec145
 |    0x100005ccb6c9
 |    0x1000060d4218
 |    0x1000060d471c
 |   
 |-- (0.00%, #1) 0x100005d84df5
 |    0x100005d66e19
 |    0x100005d528d2
 |    0x100005d4d859
 |   
 |-- (0.00%, #1) 0x1000060d4d35
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100005d4e307
 |    0x1000060d4c5b
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x1000063aeab9
 |    0x100006387461
 |    0x1000062c621c
 |    0x1000062c5bea
 |   
 |-- (0.00%, #1) 0x100006225046
 |    0x10000621ae73
 |    0x10000620e4d9
 |    0x1000061f1c49
 |   
 |-- (0.00%, #1) 0x1000072a103f
 |    0x1000072a12d5
 |    0x1000072a1eaf
 |    0x1000072a1f6d
 |   
 |-- (0.00%, #1) 0x10000006e4b1
 |    0x1000000961fa
 |    0x100000020d50
 |    0x1000000210c3
 |   
 |-- (0.00%, #1) 0x100005cd55f7
 |    0x1000060d47fe
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d5236c
 |    0x100005cf205d
 |    0x100005ce6f84
 |    0x100005cc9e38
 |   
 |-- (0.00%, #1) 0x100005d5cf85
 |    0x100005dba435
 |    0x100005dba459
 |    0x100005db9cd6
 |   
 |-- (0.00%, #1) 0x1000062b0829
 |    0x1000062b07ce
 |    0x10000631818b
 |    0x100006318074
 |   
 |-- (0.00%, #1) 0x100005db13e9
 |    0x100005dacc28
 |    0x100005da63ed
 |    0x100005d9f160
 |   
 |-- (0.00%, #1) 0x100005d57e24
 |    0x1000060d4d12
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x1000072811bb
 |    0x100007286c10
 |    0x100007286d8e
 |    0x10000728c18c
 |   
 |-- (0.00%, #1) 0x100005d4cbf0
 |    0x100005ced5a1
 |    0x100005cee3cf
 |    0x100005ccb9b6
 |   
 |-- (0.00%, #1) 0x100005ce7a55
 |    0x100005ce61c0
 |    0x100005ce6282
 |    0x1000060d4830
 |   
 |-- (0.00%, #1) 0x100006b0a83d
 |    0x1000060d4cc3
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005fb74ce
 |    0x100005f9a09d
 |    0x100005f7ae71
 |    0x10000632b62f
 |   
 |-- (0.00%, #1) 0x100005d70c79
 |    0x100005d5be25
 |    0x100005cd5357
 |    0x100005cd55a1
 |   
 |-- (0.00%, #1) 0x1000060d487c
 |    0x100006cc308e
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100005da511e
 |    0x100005d9ceb7
 |    0x100005d8e08e
 |    0x100005d71857
 |   
 |-- (0.00%, #1) 0x10000635262b
 |    0x10000634e31f
 |    0x10000635da3d
 |    0x100006363256
 |   
 |-- (0.00%, #1) 0x100005da3ab2
 |    0x100005d9b69c
 |    0x100005d8ba9d
 |    0x100005d6de30
 |   
 |-- (0.00%, #1) 0x10000631509b
 |    0x10000634e9d6
 |    0x100006315320
 |    0x10000632c041
 |   
 |-- (0.00%, #1) 0x100005db7a7d
 |    0x100005dba392
 |    0x100005db9bfe
 |    0x100005db85fa
 |   
 |-- (0.00%, #1) 0x10000632be7d
 |    0x100006322807
 |    0x10000632b9fa
 |    0x10000638e6cc
 |   
 |-- (0.00%, #1) 0x1000060d2075
 |    0x1000060d18d6
 |    0x1000060d152e
 |    0x1000063a930a
 |   
 |-- (0.00%, #1) 0x100005b4e6d8
 |    0x100005b4e207
 |    0x1000060ed459
 |    0x1000060e7546
 |   
 |-- (0.00%, #1) 0x1000071e19b3
 |    0x1000071dc9f8
 |    0x1000071d7a96
 |    0x1000071d2ac1
 |   
 |-- (0.00%, #1) 0x100005f03b71
 |    0x100005ee0bf5
 |    0x100005eb2c75
 |    0x100005e6fe51
 |   
 |-- (0.00%, #1) 0x100005db1c25
 |    0x100005dacbd1
 |    0x100005da63ed
 |    0x100005d9f160
 |   
 |-- (0.00%, #1) 0x100005d7179e
 |    0x100005d5c643
 |    0x100005d5c11b
 |    0x100005cd55d7
 |   
 |-- (0.00%, #1) 0x100006385b3f
 |    0x1000063873c9
 |    0x100005cd556f
 |    0x1000060d47fe
 |   
 |-- (0.00%, #1) 0x100005d68584
 |    0x100005d5462b
 |    0x100005cc9c7e
 |    0x100005cc991a
 |   
 |-- (0.00%, #1) 0x1000060d14db
 |    0x1000063a930a
 |    0x100006d4ab46
 |    0x100006253990
 |   
 |-- (0.00%, #1) 0x1000060ed64d
 |    0x1000060d4c42
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d5d3a5
 |    0x100005d51902
 |    0x100005d5192c
 |    0x100005ce6941
 |   
 |-- (0.00%, #1) 0x100005db14d5
 |    0x100005db14f5
 |    0x100005db8585
 |    0x100005db8665
 |   
 |-- (0.00%, #1) 0x100005cc9d67
 |    0x100006253892
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100007286bee
 |    0x100007286d8e
 |    0x10000728c18c
 |    0x10000722c4bf
 |   
 |-- (0.00%, #1) 0x100005d8ba9d
 |    0x100005d6de30
 |    0x100005d57e24
 |    0x1000060d4d12
 |   
 |-- (0.00%, #1) 0x100005dacbe1
 |    0x100005da63ed
 |    0x100005d9f160
 |    0x100005d960c8
 |   
 |-- (0.00%, #1) 0x10000639f57c
 |    0x100006385c05
 |    0x1000063875ff
 |    0x1000062c4ec4
 |   
 |-- (0.00%, #1) 0x100005d590f6
 |    0x100005d59120
 |    0x100005ccb679
 |    0x1000060d4218
 |   
 |-- (0.00%, #1) 0x10000729f5a2
 |    0x10000729fe39
 |    0x1000072a1e1a
 |    0x1000072a1f6d
 |   
 |-- (0.00%, #1) 0x100006d4eeed
 |    0x100006d52476
 |    0x100006253b94
 |    0x100006252a77
 |   
 |-- (0.00%, #1) 0x100005f11aea
 |    0x100005ef770c
 |    0x100005ed5e39
 |    0x100005e9f4b5
 |   
 |-- (0.00%, #1) 0x1000063875ff
 |    0x1000062c4ec4
 |    0x1000062c48cc
 |    0x1000062b074f
 |   
 |-- (0.00%, #1) 0x100006ac0c44
 |    0x100006d524c3
 |    0x100006253b94
 |    0x100006252a77
 |   
 |-- (0.00%, #1) 0x100005d4debb
 |    0x100005db6d0d
 |    0x100005db5369
 |    0x100005db1aeb
 |   
 |-- (0.00%, #1) 0x100005d4e107
 |    0x100005cec112
 |    0x100005e2667f
 |    0x100005e25550
 |   
 |-- (0.00%, #1) 0x100005d84d27
 |    0x100005dae069
 |    0x100005da71e5
 |    0x100005da00ed
 |   
 |-- (0.00%, #1) 0x100005d5055b
 |    0x100005d505a7
 |    0x100005d50623
 |    0x100005d50663
 |   
 |-- (0.00%, #1) 0x1000061f1c49
 |    0x1000061dcd2d
 |    0x1000061d7707
 |    0x1000063e0d61
 |   
 |-- (0.00%, #1) 0x100005c36b5c
 |    0x100005c331d4
 |    0x10000634d7e2
 |    0x100006320654
 |   
 |-- (0.00%, #1) 0x1000072da79f
 |    0x1000072db6df
 |    0x1000072dba73
 |    0x1000072e0fed
 |   
 |-- (0.00%, #1) 0x10000724a9f4
 |    0x100007247cc4
 |    0x10000724846c
 |    0x1000072991aa
 |   
 |-- (0.00%, #1) 0x100006253deb
 |    0x100006253921
 |    0x100006252ceb
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x100006387997
 |    0x100006387b55
 |    0x10000628178d
 |    0x100006281669
 |   
 |-- (0.00%, #1) 0x100005ccb6c9
 |    0x1000060d4218
 |    0x1000060d471c
 |    0x100006cc308e
 |   
 |-- (0.00%, #1) 0x100005d86748
 |    0x100005d6852f
 |    0x100005d5462b
 |    0x100005cc9c7e
 |   
 |-- (0.00%, #1) 0x100005bd6655
 |    0x100006cc302c
 |    0x100006252e12
 |    0x100006252aab
 |   
 |-- (0.00%, #1) 0x1000063a99c3
 |    0x1000063a99e3
 |    0x1000063a9a03
 |    0x1000063ad43a
 |   
 |-- (0.00%, #1) 0x100005db4ced
 |    0x100005db0fe7
 |    0x100005dabfed
 |    0x100005da5d7f
 |   
 |-- (0.00%, #1) 0x100005d81985
 |    0x100005d650d8
 |    0x100005ce762c
 |    0x100005ce734d
 |   
 |-- (0.00%, #1) 0x100005e679f9
 |    0x100005e94e08
 |    0x1000060d42af
 |    0x1000060d471c
 |   
 |-- (0.00%, #1) 0x100005cc98c5
 |    0x1000060d4cf4
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005d66c52
 |    0x100005d52695
 |    0x100005d4ce0f
 |    0x100005ced68c
 |   
 |-- (0.00%, #1) 0x1000060ed55d
 |    0x1000060d48db
 |    0x100006cc308e
 |    0x100006252e12
 |   
 |-- (0.00%, #1) 0x100005da0c03
 |    0x10000628159f
 |    0x100006385d46
 |    0x1000063875ff
 |   
 \-- (0.00%, #1) 0x100006ac0c7e
      0x100006d524c3
      0x100006253b94
      0x100006252a77
wkozaczuk commented 1 year ago

It turns out it is a bit more complicated than I thought. In essence, it is not enough to execute osv syms when all objects are loaded because the symbols information would never be saved as part of the trace file. So in order for the trace.py to see the application symbols we need to save the symbol information with virtual addresses to some extra file. This is what I am working on.

MTJH1404 commented 1 year ago

Where in the code are the traces generated for the sampler?

wkozaczuk commented 1 year ago

It is implemented in core/sampler.cc. There is also a unit test tst-sampler.cc that can help understand how it is used.

wkozaczuk commented 1 year ago

I think I have something that should fix the problem with unresolved symbols in the profiling output. It is not exactly ideal but hopefully enough for now.

Here is a patch below you can try to apply:

diff --git a/scripts/loader.py b/scripts/loader.py
index 0ce782d0..a7f82e6c 100755
--- a/scripts/loader.py
+++ b/scripts/loader.py
@@ -101,6 +101,15 @@ class syminfo_resolver(object):
     def clear_cache(clazz):
         clazz.cache.clear()

+    @classmethod
+    def output_cache(clazz, output_func):
+        for source_addr in clazz.cache.values():
+            addr = source_addr[0]
+            if addr.line:
+                output_func("0x%x %s %d %s\n" % (addr.addr, addr.filename, addr.line, addr.name))
+            else:
+                output_func("0x%x %s <?> %s\n" % (addr.addr, addr.filename, addr.name))
+
 symbol_resolver = syminfo_resolver()

 def symbol_formatter(src_addr):
@@ -1304,6 +1313,17 @@ def all_traces():
 def save_traces_to_file(filename):
     trace.write_to_file(filename, list(all_traces()))

+def save_backtrace_symbols_to_file(filename):
+    # Iterate over all traces and force resolution of symbols in
+    # included backtrace if any
+    for trace in all_traces():
+        if trace.backtrace:
+            for address in list(x - 1 for x in trace.backtrace if x):
+                symbol_resolver(address)
+    # Save resolved symbol information from cache into a file
+    with open(filename, 'wt') as sout:
+        syminfo_resolver.output_cache(sout.write)
+
 def make_symbolic(addr):
     return str(syminfo(addr))

@@ -1503,14 +1523,14 @@ class osv_trace_save(gdb.Command):

         gdb.write('Saving traces to %s ...\n' % arg)
         save_traces_to_file(arg)
+        save_backtrace_symbols_to_file("%s.symbols" % arg)

 class osv_trace_file(gdb.Command):
     def __init__(self):
         gdb.Command.__init__(self, 'osv trace2file', gdb.COMMAND_USER, gdb.COMPLETE_NONE)
     def invoke(self, arg, from_tty):
-        fout = file("trace.txt", "wt")
-        dump_trace(fout.write)
-        fout.close()
+        with open("trace.txt", 'wt') as fout:
+            dump_trace(fout.write)

 class osv_leak(gdb.Command):
     def __init__(self):
diff --git a/scripts/osv/debug.py b/scripts/osv/debug.py
index 83372ada..d7d34637 100644
--- a/scripts/osv/debug.py
+++ b/scripts/osv/debug.py
@@ -99,6 +99,42 @@ class SymbolResolver(object):
         self.addr2line.stdin.close()
         self.addr2line.wait()

+class SymbolsFileResolver(object):
+    def __init__(self, symbols_file, fallback_resolver=DummyResolver()):
+        if not os.path.exists(symbols_file):
+            raise Exception('File not found: ' + object_path)
+        self.fallback_resolver = fallback_resolver
+        self.cache = dict()
+
+        try:
+            symbol_lines = open(symbols_file).read().split('\n')
+        except IOError:
+            symbol_lines = []
+
+        for symbol_line in symbol_lines:
+            tokens = symbol_line.split(maxsplit=3)
+            if len(tokens) > 0:
+                addr = int(tokens[0], 16)
+                filename = tokens[1]
+                if tokens[2] == '<?>':
+                    line = None
+                else:
+                    line = int(tokens[2])
+                name = tokens[3]
+                self.cache[addr] = [SourceAddress(addr, name=name, filename=filename, line=line)]
+
+    def __call__(self, addr):
+        """
+        Returns an iterable of SourceAddress objects for given addr.
+
+        """
+
+        result = self.cache.get(addr, None)
+        if result:
+            return result
+        else:
+            return self.fallback_resolver(addr)
+
 def resolve_all(resolver, raw_addresses):
     """
     Returns iterable of SourceAddress objects for given list of raw addresses
diff --git a/scripts/osv/prof.py b/scripts/osv/prof.py
index 2de0d4ac..edb8a5c1 100644
--- a/scripts/osv/prof.py
+++ b/scripts/osv/prof.py
@@ -103,6 +103,8 @@ def strip_garbage(backtrace):
     def is_good(src_addr):
         if not src_addr.name:
             return True
+        if src_addr.filename and src_addr.filename.endswith("trace.hh"):
+            return False
         return not src_addr.name in unimportant_functions

     for chain in unimportant_prefixes:
diff --git a/scripts/osv/trace.py b/scripts/osv/trace.py
index fb14c4fe..1b979215 100644
--- a/scripts/osv/trace.py
+++ b/scripts/osv/trace.py
@@ -33,7 +33,7 @@ class BacktraceFormatter:

         frames = list(debug.resolve_all(self.resolver, (x - 1 for x in backtrace if x)))

-        while frames[0].name and (frames[0].name.startswith("tracepoint") or frames[0].filename.endswith("trace.hh")):
+        while frames[0].name and (frames[0].name.startswith("tracepoint") or (frames[0].filename and frames[0].filename.endswith("trace.hh"))):
             frames.pop(0)

         if self.multiline:
diff --git a/scripts/trace.py b/scripts/trace.py
index 3d3d0dce..17a6faeb 100755
--- a/scripts/trace.py
+++ b/scripts/trace.py
@@ -63,6 +63,7 @@ def add_symbol_resolution_options(parser):
     group.add_argument("-L", "--show-line-number", action='store_true', help="show line numbers")
     group.add_argument("-A", "--show-address", action='store_true', help="show raw addresses")
     group.add_argument("-F", "--show-file-name", action='store_true', help="show file names")
+    group.add_argument("-S", "--use-symbols-file", action='store_true', help="use <tracefile>.symbols to resolve symbols")

 class BeautifyingResolver(object):
     def __init__(self, delegate):
@@ -82,6 +83,10 @@ def symbol_resolver(args):
     if args.no_resolve:
         return debug.DummyResolver()

+    if args.use_symbols_file:
+        symbols_file = "%s.symbols" % args.tracefile
+        return BeautifyingResolver(debug.SymbolsFileResolver(symbols_file))
+
     if args.exe:
         elf_path = args.exe
     elif args.debug:
@@ -281,6 +286,7 @@ def extract(args):
             cmdline.extend(['-ex', 'target remote ' + args.remote])
         else:
             cmdline.extend(['-ex', 'conn'])
+        cmdline.extend(['-ex', 'osv syms'])
         cmdline.extend(['-ex', 'osv trace save ' + args.tracefile])
         proc = subprocess.Popen(cmdline, stdout=subprocess.PIPE,
             stderr=subprocess.STDOUT)

Here is how you would use it by adding a new -S option that instructs trace.py to use tracefile.symbols file for symbol resolution instead of addr2line uitility:

./scripts/trace.py prof -FLS

In essence, this new patch enhances loader.py to generate new tracefile.symbols along the trace file which has information like this:

0x100000119277 /usr/lib/golang/src/runtime/mheap.go 1950 runtime.newMarkBits
0x100000114a04 /usr/lib/golang/src/runtime/mgcsweep.go 471 runtime.(*mspan).sweep
0x10000010824a /usr/lib/golang/src/runtime/mcentral.go 214 runtime.(*mcentral).uncacheSpan
0x100000107c3b /usr/lib/golang/src/runtime/mcache.go 276 runtime.(*mcache).releaseAll
0x40351825 core/mempool.cc 356 memory::pool::free(void*)
0x402403b6 ./bsd/sys/sys/mbuf.h 609 m_freem
0x40388884 /usr/include/c++/11/bits/std_mutex.h 228 epoll_file::wait(epoll_event*, int, int)

This new file contains symbol information for both kernel and application.

Please note the trace.py extract calls osv sysm to load all application objects. But this would only help if the objects are still loaded by OSv. For example, if you run some server app that you are profiling under load and then use trace.py extract, then it will work because the app would be still running and OSv has not entered into a shutdown phase.

However, if you test it with any app that simply completes like native-example it will not work because objects are unloaded. In this case, you have to run with -w option, set a breakpoint in OSv code after it loads objects but before it starts the apps (for example at core/app.cc:220) and then manually run osv syms.

MTJH1404 commented 1 year ago

Thank you for the patch. I tested it with my Code and I get now a better symbol resolution. I have one further question regarding the generation of the traces. The osv cpu_sampler uses timer_fired to generate tracepoints but how are these transformed into traces with memory address?

wkozaczuk commented 1 year ago

I am not sure which memory addresses are you referring to. Could you please enclose an example?

As I understand the CPU sampler simply sets timer events at a specified frequency and corresponding APIC interrupts end up executing the timer_fired() routine which then invokes the trace_sampler_tick() tracepoint which in essence captures current stack trace. This only works if interrupts are enabled so some kernel code where we disable interrupts (see the irq_lock in include/osv/irqlock.hh as an example) would never show up in the sampler-triggered stack traces. This is one of the sampler limitations.

wkozaczuk commented 1 year ago

@MTJH1404 I have applied corresponding patches to the master and updated the wiki page.

Shall we close this issue?

MTJH1404 commented 1 year ago

I have not tested it yet in osv debug yet but in release i can work with it. We can close the issue.

wkozaczuk commented 1 year ago

Fixed with https://github.com/cloudius-systems/osv/commit/8c8d477d6f6194d5f43ecf13e065afd3ac4ece36