LCOV - code coverage report
Current view: top level - pageserver/src - context.rs (source / functions) Coverage Total Hit
Test: befab6bd7a1d43d9d0f7dc96f75bdc872dffa42a.info Lines: 52.1 % 307 160
Test Date: 2025-06-14 11:52:36 Functions: 46.5 % 114 53

Function Name Sort by function name Hit count Sort by function hit count
<<pageserver::tenant::timeline::Timeline>::get_vectored_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<<pageserver::tenant::timeline::Timeline>::get_vectored_impl::{closure#0}::{closure#1}>::{closure#0} 0
<::record_op_start_and_throttle::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::pagestream_read_message>>>::{closure#0}::{closure#1}>::{closure#0} 0
<::collect_pending_ios::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#5}::{closure#0}>::{closure#0} 0
<::get_values_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#3}>::{closure#0} 0
<::get_values_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#1}>::{closure#0} 0
<::download_init_and_wait::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_or_maybe_download::{closure#0}::{closure#5}::{closure#1}>::{closure#0} 0
<::get_or_maybe_download::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#1}>::{closure#0} 0
<::get_ready_ancestor_timeline::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_reconstruct_data::{closure#0}::{closure#3}>::{closure#0} 0
<::get_rel_size::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#1}>::{closure#0} 0
<::get_rel_size::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#1}>::{closure#0} 0
<::get_vectored::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#4}>::{closure#0} 0
<::get_vectored::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#4}>::{closure#0} 0
<::get_vectored_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#1}>::{closure#0} 0
<::get_vectored_reconstruct_data_timeline::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_reconstruct_data::{closure#0}::{closure#1}>::{closure#0} 0
<::reconstruct_value::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#5}::{closure#1}>::{closure#0} 0
<::wait_lsn::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#2}>::{closure#0} 0
::measure<>>>>::flush::{closure#0}, core::result::Result<(), std::io::error::Error>>::{closure#0}, >>>>::flush::{closure#0}> as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::pagestream_handle_batched_message>>>::{closure#0}::{closure#0}::{closure#4}>::{closure#0} 0
::get_vectored_impl::{closure#0}::{closure#5}>, alloc::collections::btree::map::BTreeMap>> as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#6}>::{closure#0} 0
::get_values_reconstruct_data::{closure#0}> as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#4}>::{closure#0} 0
<pageserver::context::RequestContext>::has_perf_span 0
<pageserver::context::RequestContext>::io_size_metrics::LIMIT::{closure#0} 0
<pageserver::context::RequestContext>::io_size_metrics::{closure#0} 0
<pageserver::context::RequestContext>::ondemand_download_wait_observe::LIMIT::{closure#0} 0
<pageserver::context::RequestContext>::ondemand_download_wait_observe::{closure#0} 0
<pageserver::context::RequestContext>::read_path_debug 0
<pageserver::context::RequestContext>::with_scope_debug_tools 0
<pageserver::context::RequestContext>::with_scope_page_service_pagestream 0
<pageserver::context::RequestContext>::with_scope_secondary_tenant 0
<pageserver::context::RequestContext>::with_scope_secondary_timeline 0
<pageserver::context::RequestContextBuilder>::perf_span::<<pageserver::tenant::timeline::Timeline>::get_vectored_impl::{closure#0}::{closure#0}>::{closure#0} 0
::perf_span::<::pagestream_handle_batched_message>>>::{closure#0}::{closure#0}::{closure#3}::{closure#0}>::{closure#0} 0
::perf_span::<::pagestream_read_message>>>::{closure#0}::{closure#2}>::{closure#0} 0
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#0}>::{closure#0} 0
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#2}>::{closure#0} 0
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#0}>::{closure#0} 0
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#3}>::{closure#0} 0
::perf_span::<::get_or_maybe_download::{closure#0}::{closure#4}>::{closure#0} 0
::perf_span::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#0}>::{closure#0} 0
::perf_span::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#2}>::{closure#0} 0
::perf_span::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#0}>::{closure#0} 0
::perf_span::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#2}>::{closure#0} 0
::perf_span::<::get_vectored_impl::{closure#0}::{closure#0}>::{closure#0} 0
::perf_span::<::get_vectored_impl::{closure#0}::{closure#3}>::{closure#0} 0
::perf_span::<::get_vectored_impl::{closure#0}::{closure#4}>::{closure#0} 0
::perf_span::<::get_vectored_reconstruct_data::{closure#0}::{closure#0}>::{closure#0} 0
::perf_span::<::get_vectored_reconstruct_data::{closure#0}::{closure#2}>::{closure#0} 0
<pageserver::context::RequestContextBuilder>::perf_span_dispatch 0
<pageserver::context::RequestContextBuilder>::read_path_debug 0
<pageserver::context::RequestContextBuilder>::root_perf_span::<<pageserver::page_service::PageServerHandler>::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#1}> 0
::root_perf_span::<::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#1}> 0
::root_perf_span::<::pagestream_read_message>>>::{closure#0}::{closure#0}> 0
<pageserver::context::Scope>::new_debug_tools 0
<pageserver::context::Scope>::new_page_service_pagestream 0
<pageserver::context::Scope>::new_secondary_tenant 0
<pageserver::context::Scope>::new_secondary_timeline 0
<pageserver::context::RequestContext>::download_behavior 15
<pageserver::context::RequestContext>::detached_child 114
<pageserver::context::RequestContext>::with_scope_unit_test 139
<pageserver::context::Scope>::new_unit_test 139
pageserver::context::GLOBAL_IO_SIZE_METRICS::{closure#0} 142
<pageserver::context::RequestContextBuilder>::access_stats_behavior 192
<pageserver::context::RequestContext>::todo_child 231
<pageserver::context::RequestContextBuilder>::task_kind 253
<pageserver::context::RequestContext>::with_scope_timeline 256
<pageserver::context::RequestContextBuilder>::detached_child 348
<pageserver::context::RequestContext>::new 388
<pageserver::context::RequestContextBuilder>::new 388
<pageserver::context::RequestContextBuilder>::root 388
<pageserver::context::Scope>::new_global 388
<pageserver::context::Scope>::new_timeline 490
<pageserver::context::RequestContextBuilder>::download_behavior 509
<pageserver::context::RequestContextBuilder>::scope 629
<pageserver::context::RequestContext>::perf_follows_from 9192
<pageserver::context::RequestContext>::access_stats_behavior 137773
<pageserver::context::RequestContext>::ondemand_download_wait_observe 138071
<pageserver::context::RequestContext>::io_size_metrics 296821
<pageserver::context::RequestContext>::attached_child 424178
<pageserver::context::RequestContextBuilder>::page_content_kind 445975
<pageserver::context::RequestContext>::page_content_kind 584112
<pageserver::context::RequestContext>::task_kind 1020606
<pageserver::context::RequestContextBuilder>::perf_span::<<pageserver::tenant::timeline::Timeline>::get_vectored_impl::{closure#0}::{closure#0}> 2266061
::perf_span::<::pagestream_handle_batched_message>>>::{closure#0}::{closure#0}::{closure#3}::{closure#0}> 0
::perf_span::<::pagestream_read_message>>>::{closure#0}::{closure#2}> 0
::perf_span::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#0}> 0
::perf_span::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#2}> 0
::perf_span::<::get_or_maybe_download::{closure#0}::{closure#4}> 7
::perf_span::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#0}> 9192
::perf_span::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#2}> 9192
::perf_span::<::get_vectored_reconstruct_data::{closure#0}::{closure#2}> 113188
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#0}> 137767
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#0}> 137773
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#3}> 137773
::perf_span::<::get_values_reconstruct_data::{closure#0}::{closure#2}> 307259
::perf_span::<::get_vectored_impl::{closure#0}::{closure#3}> 312382
::perf_span::<::get_vectored_impl::{closure#0}::{closure#0}> 312390
::perf_span::<::get_vectored_impl::{closure#0}::{closure#4}> 363561
::perf_span::<::get_vectored_reconstruct_data::{closure#0}::{closure#0}> 425577
<<pageserver::tenant::timeline::Timeline>::get_vectored_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<<pageserver::tenant::timeline::Timeline>::get_vectored_impl::{closure#0}::{closure#1}> 2629622
<::record_op_start_and_throttle::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::pagestream_read_message>>>::{closure#0}::{closure#1}> 0
<::get_rel_size::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#1}> 0
<::get_vectored::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#4}>>::{closure#0}::{closure#4}> 0
<::wait_lsn::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::handle_get_page_at_lsn_request_batched::{closure#0}::{closure#0}::{closure#2}> 0
::measure<>>>>::flush::{closure#0}, core::result::Result<(), std::io::error::Error>>::{closure#0}, >>>>::flush::{closure#0}> as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::pagestream_handle_batched_message>>>::{closure#0}::{closure#0}::{closure#4}> 0
<::download_init_and_wait::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_or_maybe_download::{closure#0}::{closure#5}::{closure#1}> 7
<::get_rel_size::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#1}> 9192
<::get_vectored::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_rel_page_at_lsn_batched, ::get_rel_page_at_lsn::{closure#0}::{closure#0}>>::{closure#0}::{closure#4}> 9192
<::get_ready_ancestor_timeline::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_reconstruct_data::{closure#0}::{closure#3}> 113188
<::get_values_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#1}> 137767
<::get_or_maybe_download::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#1}> 137773
::get_values_reconstruct_data::{closure#0}> as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#4}> 137773
<::get_values_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_values_reconstruct_data::{closure#0}::{closure#3}> 307259
::get_vectored_impl::{closure#0}::{closure#5}>, alloc::collections::btree::map::BTreeMap>> as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#6}> 312382
<::get_vectored_reconstruct_data::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#1}> 312390
<::collect_pending_ios::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#5}::{closure#0}> 363561
<::reconstruct_value::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_impl::{closure#0}::{closure#5}::{closure#1}> 363561
<::get_vectored_reconstruct_data_timeline::{closure#0} as pageserver::context::PerfInstrumentFutureExt>::maybe_perf_instrument::<::get_vectored_reconstruct_data::{closure#0}::{closure#1}> 425577
<pageserver::context::RequestContextBuilder>::attached_child 3136808
<pageserver::context::RequestContext>::clone 3137156
<pageserver::context::RequestContextBuilder>::from 3137156

Generated by: LCOV version 2.1-beta