|
|
|
|
|
Thread: 1 (ceph-mgr) - 1000 samples
|
|
|
|
+ 100.00% main
|
|
+ 100.00% MgrStandby::main
|
|
+ 100.00% AsyncMessenger::wait
|
|
+ 100.00% Cond::Wait
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 2 (msgr-worker-0) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% execute_native_thread_routine
|
|
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
|
|
+ 100.00% NetworkStack::<lambda()>::operator()
|
|
+ 100.00% EventCenter::process_events
|
|
+ 56.60% EventCenter::process_time_events
|
|
| + 49.30% AsyncConnection::wakeup_from
|
|
| | + 43.90% AsyncConnection::process
|
|
| | | + 35.10% ProtocolV2::read_event
|
|
| | | | + 34.90% ProtocolV2::run_continuation
|
|
| | | | + 34.70% ProtocolV2::throttle_message
|
|
| | | | | + 23.40% Throttle::get_or_fail
|
|
| | | | | | + 10.70% std::lock_guard<std::mutex>::~lock_guard
|
|
| | | | | | | + 10.70% std::mutex::unlock
|
|
| | | | | | | + 10.70% __gthread_mutex_unlock
|
|
| | | | | | | + 10.70% __pthread_mutex_unlock_usercnt
|
|
| | | | | | | + 10.00% __lll_unlock_wake
|
|
| | | | | | + 8.80% std::lock_guard<std::mutex>::lock_guard
|
|
| | | | | | | + 8.80% std::mutex::lock
|
|
| | | | | | | + 8.80% __gthread_mutex_lock
|
|
| | | | | | | + 8.70% __GI___pthread_mutex_lock
|
|
| | | | | | | + 7.00% __lll_lock_wait
|
|
| | | | | | + 1.90% PerfCounters::inc
|
|
| | | | | | + 0.10% Throttle::_should_wait
|
|
| | | | | + 10.00% EventCenter::create_time_event
|
|
| | | | | | + 4.90% std::multimap<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, EventCenter::TimeEvent, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::insert(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&)
|
|
| | | | | | | + 4.90% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_insert_equal<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&)
|
|
| | | | | | | + 3.60% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_get_insert_equal_pos
|
|
| | | | | | | | + 0.10% std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >::operator()
|
|
| | | | | | | + 1.30% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_insert_<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&, std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node&)
|
|
| | | | | | | + 0.40% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node::operator()<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&) const
|
|
| | | | | | | + 0.30% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | | | | | + 4.70% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::operator[]
|
|
| | | | | | | + 3.10% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::lower_bound
|
|
| | | | | | | | + 3.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::lower_bound
|
|
| | | | | | | | + 3.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_lower_bound
|
|
| | | | | | | + 1.50% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
|
|
| | | | | | | + 0.60% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_insert_node
|
|
| | | | | | | + 0.50% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
|
|
| | | | | | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_get_insert_hint_unique_pos
|
|
| | | | | | + 0.10% ceph::time_detail::coarse_mono_clock::now
|
|
| | | | | + 1.00% std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::insert(unsigned long&&)
|
|
| | | | | + 1.00% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_insert_unique<unsigned long>(unsigned long&&)
|
|
| | | | | + 0.90% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_insert_<unsigned long, std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, unsigned long&&, std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_Alloc_node&)
|
|
| | | | + 0.10% CtFun<ProtocolV2>::call
|
|
| | | + 2.80% AsyncConnection::<lambda(auto:48)>::operator()<CephContext*>
|
|
| | | | + 2.80% ceph::logging::SubsystemMap::should_gather<27u, 20>
|
|
| | | + 2.30% ceph::time_detail::mono_clock::now
|
|
| | | | + 2.30% __GI___clock_gettime
|
|
| | | | + 2.10% clock_gettime
|
|
| | | | + 1.30% ???
|
|
| | | + 0.50% ceph::time_detail::coarse_mono_clock::now
|
|
| | | + 0.40% std::lock_guard<std::mutex>::lock_guard
|
|
| | | + 0.30% std::lock_guard<std::mutex>::~lock_guard
|
|
| | | + 0.30% PerfCounters::tinc
|
|
| | + 3.50% std::mutex::lock
|
|
| | | + 3.50% __gthread_mutex_lock
|
|
| | | + 3.30% __GI___pthread_mutex_lock
|
|
| | + 0.90% std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::erase
|
|
| | + 0.90% std::mutex::unlock
|
|
| + 3.80% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::erase
|
|
| | + 3.80% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::erase
|
|
| | + 2.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::equal_range
|
|
| | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_upper_bound
|
|
| | + 1.70% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_erase_aux
|
|
| | + 1.60% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_erase_aux
|
|
| | | + 1.10% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | | + 0.50% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_drop_node
|
|
| | + 0.10% std::_Rb_tree_const_iterator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >::operator++
|
|
| + 1.90% std::multimap<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, EventCenter::TimeEvent, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >)
|
|
| + 1.90% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >)
|
|
| + 1.90% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_erase_aux
|
|
| + 1.00% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| + 0.70% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_drop_node
|
|
+ 42.10% EpollDriver::event_wait
|
|
| + 42.10% epoll_wait
|
|
+ 0.80% AsyncConnection::process
|
|
+ 0.10% std::vector<FiredFileEvent, std::allocator<FiredFileEvent> >::~vector
|
|
+ 0.10% ceph::time_detail::mono_clock::now
|
|
+ 0.10% Processor::accept
|
|
|
|
Thread: 3 (msgr-worker-1) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% execute_native_thread_routine
|
|
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
|
|
+ 100.00% NetworkStack::<lambda()>::operator()
|
|
+ 99.90% EventCenter::process_events
|
|
+ 58.70% EventCenter::process_time_events
|
|
| + 50.60% AsyncConnection::wakeup_from
|
|
| | + 41.70% AsyncConnection::process
|
|
| | | + 31.00% ProtocolV2::read_event
|
|
| | | | + 30.40% ProtocolV2::run_continuation
|
|
| | | | + 30.10% ProtocolV2::throttle_message
|
|
| | | | + 19.20% Throttle::get_or_fail
|
|
| | | | | + 9.20% std::lock_guard<std::mutex>::~lock_guard
|
|
| | | | | | + 9.20% std::mutex::unlock
|
|
| | | | | | + 9.20% __gthread_mutex_unlock
|
|
| | | | | | + 9.20% __pthread_mutex_unlock_usercnt
|
|
| | | | | | + 8.60% __lll_unlock_wake
|
|
| | | | | + 7.40% std::lock_guard<std::mutex>::lock_guard
|
|
| | | | | | + 7.40% std::mutex::lock
|
|
| | | | | | + 7.30% __gthread_mutex_lock
|
|
| | | | | | + 7.30% __GI___pthread_mutex_lock
|
|
| | | | | | + 6.20% __lll_lock_wait
|
|
| | | | | + 1.60% PerfCounters::inc
|
|
| | | | | + 0.10% std::unique_ptr<PerfCounters, PerfCountersDeleter>::operator bool
|
|
| | | | + 9.50% EventCenter::create_time_event
|
|
| | | | | + 4.80% std::multimap<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, EventCenter::TimeEvent, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::insert(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&)
|
|
| | | | | | + 4.80% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_insert_equal<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&)
|
|
| | | | | | + 3.60% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_get_insert_equal_pos
|
|
| | | | | | + 1.20% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_insert_<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&, std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node&)
|
|
| | | | | | + 0.70% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | | | | | + 0.40% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node::operator()<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&) const
|
|
| | | | | + 3.90% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::operator[]
|
|
| | | | | | + 2.60% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::lower_bound
|
|
| | | | | | | + 2.60% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::lower_bound
|
|
| | | | | | | + 2.60% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_lower_bound
|
|
| | | | | | + 1.30% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
|
|
| | | | | | + 1.00% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_insert_node
|
|
| | | | | | | + 1.00% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | | | | | + 0.20% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_get_insert_hint_unique_pos
|
|
| | | | | | + 0.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
|
|
| | | | | + 0.50% ceph::time_detail::coarse_mono_clock::now
|
|
| | | | + 0.60% std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::insert(unsigned long&&)
|
|
| | | + 3.50% ceph::time_detail::mono_clock::now
|
|
| | | | + 3.30% __GI___clock_gettime
|
|
| | | | | + 2.90% clock_gettime
|
|
| | | | | + 1.70% ???
|
|
| | | | + 0.10% clock_gettime@plt
|
|
| | | + 2.50% AsyncConnection::<lambda(auto:48)>::operator()<CephContext*>
|
|
| | | | + 2.50% ceph::logging::SubsystemMap::should_gather<27u, 20>
|
|
| | | + 0.40% std::lock_guard<std::mutex>::~lock_guard
|
|
| | | + 0.30% PerfCounters::tinc
|
|
| | | + 0.20% ceph::time_detail::coarse_mono_clock::now
|
|
| | | + 0.10% std::lock_guard<std::mutex>::lock_guard
|
|
| | + 4.80% std::mutex::lock
|
|
| | | + 4.70% __gthread_mutex_lock
|
|
| | | + 4.40% __GI___pthread_mutex_lock
|
|
| | | + 0.10% pthread_mutex_lock@plt
|
|
| | + 2.20% std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::erase
|
|
| | | + 2.20% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::erase
|
|
| | | + 1.60% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::equal_range
|
|
| | | + 0.50% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_erase_aux
|
|
| | + 1.70% std::mutex::unlock
|
|
| | + 1.70% __gthread_mutex_unlock
|
|
| | + 1.70% __pthread_mutex_unlock_usercnt
|
|
| + 3.90% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::erase
|
|
| | + 3.90% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::erase
|
|
| | + 2.50% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_erase_aux
|
|
| | | + 2.50% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_erase_aux
|
|
| | | + 1.90% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | | + 0.60% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_drop_node
|
|
| | + 1.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::equal_range
|
|
| | + 0.20% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_upper_bound
|
|
| | + 0.20% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_lower_bound
|
|
| + 2.20% std::multimap<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, EventCenter::TimeEvent, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >)
|
|
| + 2.20% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >)
|
|
| + 2.20% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_erase_aux
|
|
| + 1.30% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| + 0.90% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_drop_node
|
|
+ 36.40% EpollDriver::event_wait
|
|
| + 36.30% epoll_wait
|
|
+ 2.70% AsyncConnection::process
|
|
| + 0.90% std::function<void (char*, long)>::operator()(char*, long) const
|
|
| + 0.70% ProtocolV2::read_event
|
|
| + 0.50% AsyncConnection::read(unsigned int, char*, std::function<void (char*, long)>)
|
|
| + 0.30% ceph::time_detail::mono_clock::now
|
|
+ 1.10% AsyncConnection::handle_write
|
|
| + 1.10% ProtocolV2::write_event
|
|
| + 0.60% ProtocolV2::prepare_send_message
|
|
| + 0.50% ProtocolV2::write_message
|
|
+ 0.40% C_clean_handler::do_request
|
|
+ 0.20% std::vector<FiredFileEvent, std::allocator<FiredFileEvent> >::~vector
|
|
+ 0.20% AsyncMessenger::reap_dead
|
|
+ 0.10% C_handle_notify::do_request
|
|
|
|
Thread: 4 (msgr-worker-2) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% execute_native_thread_routine
|
|
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
|
|
+ 100.00% NetworkStack::<lambda()>::operator()
|
|
+ 99.80% EventCenter::process_events
|
|
| + 57.50% EventCenter::process_time_events
|
|
| | + 47.40% AsyncConnection::wakeup_from
|
|
| | | + 39.40% AsyncConnection::process
|
|
| | | | + 26.70% ProtocolV2::read_event
|
|
| | | | | + 26.20% ProtocolV2::run_continuation
|
|
| | | | | + 25.80% ProtocolV2::throttle_message
|
|
| | | | | | + 13.00% EventCenter::create_time_event
|
|
| | | | | | | + 7.60% std::multimap<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, EventCenter::TimeEvent, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::insert(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&)
|
|
| | | | | | | | + 7.60% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_insert_equal<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&)
|
|
| | | | | | | | + 5.50% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_get_insert_equal_pos
|
|
| | | | | | | | | + 0.10% std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >::operator()
|
|
| | | | | | | | + 2.10% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_insert_<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&, std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node&)
|
|
| | | | | | | | + 1.50% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | | | | | | | + 0.50% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_Alloc_node::operator()<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >(std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>&&) const
|
|
| | | | | | | + 4.40% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::operator[]
|
|
| | | | | | | | + 3.30% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::lower_bound
|
|
| | | | | | | | | + 3.30% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::lower_bound
|
|
| | | | | | | | | + 3.30% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_lower_bound
|
|
| | | | | | | | + 1.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
|
|
| | | | | | | | + 0.80% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_insert_node
|
|
| | | | | | | | + 0.20% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_get_insert_hint_unique_pos
|
|
| | | | | | | | + 0.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
|
|
| | | | | | | + 0.50% ceph::time_detail::coarse_mono_clock::now
|
|
| | | | | | | + 0.10% EventCenter::in_thread
|
|
| | | | | | + 11.20% Throttle::get_or_fail
|
|
| | | | | | | + 7.10% std::lock_guard<std::mutex>::lock_guard
|
|
| | | | | | | | + 7.10% std::mutex::lock
|
|
| | | | | | | | + 7.10% __gthread_mutex_lock
|
|
| | | | | | | | + 7.00% __GI___pthread_mutex_lock
|
|
| | | | | | | | + 6.30% __lll_lock_wait
|
|
| | | | | | | + 3.10% std::lock_guard<std::mutex>::~lock_guard
|
|
| | | | | | | | + 3.10% std::mutex::unlock
|
|
| | | | | | | | + 3.10% __gthread_mutex_unlock
|
|
| | | | | | | | + 3.10% __pthread_mutex_unlock_usercnt
|
|
| | | | | | | | + 2.20% __lll_unlock_wake
|
|
| | | | | | | + 0.80% PerfCounters::inc
|
|
| | | | | | + 0.80% std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::insert(unsigned long&&)
|
|
| | | | | + 0.30% CtFun<ProtocolV2>::call
|
|
| | | | + 3.40% AsyncConnection::<lambda(auto:48)>::operator()<CephContext*>
|
|
| | | | | + 3.40% ceph::logging::SubsystemMap::should_gather<27u, 20>
|
|
| | | | + 2.20% ceph::time_detail::mono_clock::now
|
|
| | | | | + 2.20% __GI___clock_gettime
|
|
| | | | | + 2.10% clock_gettime
|
|
| | | | | + 1.20% ???
|
|
| | | | + 0.90% std::lock_guard<std::mutex>::lock_guard
|
|
| | | | + 0.70% std::lock_guard<std::mutex>::~lock_guard
|
|
| | | | + 0.70% PerfCounters::tinc
|
|
| | | | + 0.30% ceph::time_detail::coarse_mono_clock::now
|
|
| | | + 4.30% std::mutex::lock
|
|
| | | | + 4.20% __gthread_mutex_lock
|
|
| | | | + 4.20% __GI___pthread_mutex_lock
|
|
| | | + 2.30% std::set<unsigned long, std::less<unsigned long>, std::allocator<unsigned long> >::erase
|
|
| | | | + 2.30% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::erase
|
|
| | | | + 1.40% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::equal_range
|
|
| | | | + 0.70% std::_Rb_tree<unsigned long, unsigned long, std::_Identity<unsigned long>, std::less<unsigned long>, std::allocator<unsigned long> >::_M_erase_aux
|
|
| | | + 1.30% std::mutex::unlock
|
|
| | | + 1.30% __gthread_mutex_unlock
|
|
| | | + 1.20% __pthread_mutex_unlock_usercnt
|
|
| | + 4.40% std::map<unsigned long, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::erase
|
|
| | | + 4.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::erase
|
|
| | | + 2.30% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::equal_range
|
|
| | | | + 1.20% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_upper_bound
|
|
| | | | + 0.30% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_lower_bound
|
|
| | | + 2.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_erase_aux
|
|
| | | + 1.70% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_erase_aux
|
|
| | | | + 1.40% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | | | + 0.30% std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >, std::_Select1st<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > > >::_M_drop_node
|
|
| | | + 0.40% std::_Rb_tree_const_iterator<std::pair<unsigned long const, std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > > >::operator++
|
|
| | + 2.70% std::multimap<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, EventCenter::TimeEvent, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >)
|
|
| | + 2.70% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >)
|
|
| | + 2.70% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_erase_aux
|
|
| | + 2.10% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
|
|
| | + 0.60% std::_Rb_tree<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent>, std::_Select1st<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> >, std::less<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > >, std::allocator<std::pair<std::chrono::time_point<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > > const, EventCenter::TimeEvent> > >::_M_drop_node
|
|
| + 40.60% EpollDriver::event_wait
|
|
| | + 40.60% epoll_wait
|
|
| + 1.20% AsyncConnection::process
|
|
| | + 0.70% ProtocolV2::read_event
|
|
| | + 0.20% std::function<void (char*, long)>::operator()(char*, long) const
|
|
| | + 0.10% ceph::time_detail::mono_clock::now
|
|
| | + 0.10% EventCenter::create_file_event
|
|
| | + 0.10% AsyncConnection::<lambda(auto:48)>::operator()<CephContext*>
|
|
| + 0.10% C_handle_notify::do_request
|
|
+ 0.10% NetworkStack::<lambda()>::<lambda(auto:22)>::operator()<CephContext*>
|
|
|
|
Thread: 5 (log) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% ceph::logging::Log::entry
|
|
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 6 (service) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% CephContextServiceThread::entry
|
|
+ 100.00% std::condition_variable::wait_for<unsigned long, std::ratio<1l, 1000000000l> >
|
|
+ 100.00% std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >
|
|
+ 100.00% std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >
|
|
+ 100.00% __gthread_cond_timedwait
|
|
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
|
|
|
|
Thread: 7 (admin_socket) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% execute_native_thread_routine
|
|
+ 100.00% AdminSocket::entry
|
|
+ 99.90% poll
|
|
| + 99.90% poll
|
|
+ 0.10% AdminSocket::do_accept
|
|
|
|
Thread: 8 (ceph-mgr) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% execute_native_thread_routine
|
|
+ 100.00% ceph::timer_detail::timer<ceph::time_detail::coarse_mono_clock>::timer_thread
|
|
+ 100.00% std::condition_variable::wait_until<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >
|
|
+ 100.00% std::condition_variable::__wait_until_impl<std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >
|
|
+ 100.00% __gthread_cond_timedwait
|
|
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
|
|
|
|
Thread: 9 (fn_anonymous) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% Finisher::finisher_thread_entry
|
|
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 10 (fn_anonymous) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% Finisher::finisher_thread_entry
|
|
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 11 (signal_handler) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% SignalHandler::entry
|
|
+ 100.00% poll
|
|
+ 100.00% __poll_chk
|
|
+ 100.00% poll
|
|
|
|
Thread: 12 (mgrsb-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% Finisher::finisher_thread_entry
|
|
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 13 (ms_dispatch) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% DispatchQueue::DispatchThread::entry
|
|
+ 100.00% DispatchQueue::entry
|
|
+ 99.90% Cond::Wait
|
|
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
|
|
| + 0.10% __pthread_mutex_cond_lock
|
|
+ 0.10% Messenger::ms_deliver_dispatch
|
|
|
|
Thread: 14 (ms_local) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
|
|
+ 100.00% DispatchQueue::run_local_delivery
|
|
+ 100.00% Cond::Wait
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 15 (safe_timer) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% SafeTimerThread::entry
|
|
+ 100.00% SafeTimer::timer_thread
|
|
+ 100.00% Cond::WaitUntil
|
|
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
|
|
|
|
Thread: 16 (fn_anonymous) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% Finisher::finisher_thread_entry
|
|
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 17 (safe_timer) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% SafeTimerThread::entry
|
|
+ 100.00% SafeTimer::timer_thread
|
|
+ 100.00% Cond::WaitUntil
|
|
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
|
|
|
|
Thread: 18 (safe_timer) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% SafeTimerThread::entry
|
|
+ 100.00% SafeTimer::timer_thread
|
|
+ 100.00% Cond::Wait
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 19 (flusher) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% ObjectCacher::FlusherThread::entry
|
|
+ 100.00% ObjectCacher::flusher_entry
|
|
+ 100.00% Cond::WaitInterval<std::chrono::duration<long, std::ratio<1l, 1l> > >
|
|
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
|
|
|
|
Thread: 20 (safe_timer) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% SafeTimerThread::entry
|
|
+ 100.00% SafeTimer::timer_thread
|
|
+ 96.30% Cond::WaitUntil
|
|
| + 96.30% pthread_cond_timedwait@@GLIBC_2.3.2
|
|
+ 3.70% Context::complete
|
|
+ 3.70% FunctionContext::finish
|
|
+ 3.70% boost::function1<void, int>::operator()
|
|
+ 3.70% MgrStandby::tick
|
|
+ 3.70% MgrStandby::send_beacon
|
|
+ 3.70% collect_sys_info
|
|
+ 3.70% _IO_new_fopen
|
|
+ 3.70% __fopen_internal
|
|
+ 3.70% _IO_new_file_fopen
|
|
+ 3.70% __GI__IO_file_open
|
|
+ 3.70% open64
|
|
|
|
Thread: 21 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% Finisher::finisher_thread_entry
|
|
+ 100.00% Context::complete
|
|
+ 100.00% FunctionContext::finish
|
|
+ 100.00% boost::function1<void, int>::operator()
|
|
+ 100.00% ActivePyModule::notify
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% ceph_state_get
|
|
+ 100.00% ActivePyModules::get_python
|
|
+ 100.00% ClusterState::with_pgmap<ActivePyModules::get_python(const string&)::<lambda(const PGMap&)> >
|
|
+ 100.00% ActivePyModules::<lambda(const PGMap&)>::operator()
|
|
+ 100.00% PGMap::dump
|
|
+ 100.00% PGMap::dump_osd_stats
|
|
+ 100.00% osd_stat_t::dump
|
|
+ 52.00% PyFormatter::open_object_section
|
|
| + 50.30% PyDict_New
|
|
| | + 49.70% _PyObject_GC_New
|
|
| | | + 49.70% _PyObject_GC_Malloc
|
|
| | | + 45.50% collect_generations
|
|
| | | | + 45.50% collect
|
|
| | | | + 30.00% subtract_refs
|
|
| | | | | + 22.30% dict_traverse.lto_priv.405
|
|
| | | | | | + 15.40% visit_decref
|
|
| | | | | | | + 0.10% type_is_gc.lto_priv.155
|
|
| | | | | | + 6.00% PyDict_Next
|
|
| | | | | + 5.30% list_traverse.lto_priv.387
|
|
| | | | | | + 4.30% visit_decref
|
|
| | | | | + 0.40% type_traverse.lto_priv.150
|
|
| | | | | + 0.40% func_traverse.lto_priv.356
|
|
| | | | | + 0.20% visit_decref
|
|
| | | | | + 0.20% subtype_traverse
|
|
| | | | | + 0.20% set_traverse.lto_priv.137
|
|
| | | | + 13.40% update_refs
|
|
| | | | + 1.80% move_unreachable
|
|
| | | | | + 1.20% dict_traverse.lto_priv.405
|
|
| | | | | | + 0.60% visit_reachable
|
|
| | | | | | + 0.50% PyDict_Next
|
|
| | | | | + 0.30% list_traverse.lto_priv.387
|
|
| | | | + 0.30% gc_list_size
|
|
| | | + 4.00% PyObject_Malloc
|
|
| | | + 0.40% new_arena
|
|
| | + 0.40% memset
|
|
| + 1.60% PyFormatter::dump_pyobject
|
|
| | + 0.60% PyString_FromString
|
|
| | + 0.40% PyList_Append
|
|
| | + 0.20% PyDict_SetItem
|
|
| | + 0.10% PyList_Append@plt
|
|
| + 0.10% std::stack<_object*, std::deque<_object*, std::allocator<_object*> > >::push
|
|
+ 25.80% ceph::fixed_u_to_string[abi:cxx11](unsigned long, int)
|
|
| + 16.00% std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)
|
|
| | + 14.80% std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*)
|
|
| | | + 10.50% std::basic_ios<char, std::char_traits<char> >::_M_cache_locale(std::locale const&)
|
|
| | | | + 2.80% std::ctype<char> const& std::use_facet<std::ctype<char> >(std::locale const&)
|
|
| | | | | + 2.50% __dynamic_cast
|
|
| | | | | | + 1.50% __cxxabiv1::__vmi_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const
|
|
| | | | | | + 0.80% __strcmp_sse2_unaligned
|
|
| | | | | + 0.10% std::locale::id::_M_id() const
|
|
| | | | + 1.90% bool std::has_facet<std::ctype<char> >(std::locale const&)
|
|
| | | | | + 1.80% __dynamic_cast
|
|
| | | | | + 1.00% __cxxabiv1::__vmi_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const
|
|
| | | | | + 0.40% __strcmp_sse2_unaligned
|
|
| | | | + 1.80% bool std::has_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > >(std::locale const&)
|
|
| | | | | + 1.50% __dynamic_cast
|
|
| | | | | + 0.20% __cxxabiv1::__si_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const
|
|
| | | | + 1.30% std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > >(std::locale const&)
|
|
| | | | | + 1.00% __dynamic_cast
|
|
| | | | | + 0.10% __cxxabiv1::__si_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const
|
|
| | | | + 1.20% std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > const& std::use_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > >(std::locale const&)
|
|
| | | | | + 0.90% __dynamic_cast
|
|
| | | | + 1.10% bool std::has_facet<std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > > >(std::locale const&)
|
|
| | | | + 0.80% __dynamic_cast
|
|
| | | + 3.70% std::ios_base::_M_init()
|
|
| | | + 1.30% std::locale::locale()
|
|
| | | | + 0.30% std::locale::_S_initialize()
|
|
| | | + 1.10% std::locale::~locale()
|
|
| | | + 1.10% std::locale::operator=(std::locale const&)
|
|
| | + 0.80% std::locale::locale()
|
|
| | + 0.40% std::ios_base::ios_base()
|
|
| + 2.80% std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::str
|
|
| | + 2.80% std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const
|
|
| | + 1.20% void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.78]
|
|
| | | + 0.10% memcpy@plt
|
|
| | | + 0.10% __memmove_avx_unaligned_erms
|
|
| | + 0.60% __memmove_avx_unaligned_erms
|
|
| + 2.70% std::ostream::operator<<
|
|
| | + 2.70% std::ostream& std::ostream::_M_insert<unsigned long>(unsigned long)
|
|
| | + 1.80% std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_int<unsigned long>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, unsigned long) const
|
|
| | | + 0.60% std::basic_streambuf<char, std::char_traits<char> >::xsputn(char const*, long)
|
|
| | | + 0.50% int std::__int_to_char<char, unsigned long>(char*, unsigned long, char const*, std::_Ios_Fmtflags, bool)
|
|
| | | + 0.10% std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_pad(char, long, std::ios_base&, char*, char const*, int&) const
|
|
| | | + 0.10% std::__use_cache<std::__numpunct_cache<char> >::operator()(std::locale const&) const
|
|
| | + 0.50% std::ostream::sentry::~sentry()
|
|
| | + 0.20% std::ostream::sentry::sentry(std::ostream&)
|
|
| + 2.10% std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream
|
|
| | + 1.10% std::basic_ios<char, std::char_traits<char> >::~basic_ios
|
|
| | | + 0.50% std::ios_base::~ios_base()
|
|
| | | + 0.20% std::locale::~locale()
|
|
| | + 0.60% std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::~basic_stringbuf
|
|
| | + 0.30% std::basic_ostream<char, std::char_traits<char> >::~basic_ostream
|
|
| + 0.70% std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)
|
|
| + 0.60% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr
|
|
| + 0.20% std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*)
|
|
| + 0.10% std::basic_ios<char, std::char_traits<char> >::fill
|
|
| + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
|
|
+ 14.50% ceph::Formatter::dump_format_unquoted
|
|
| + 13.90% PyFormatter::dump_format_va
|
|
| + 7.00% PyFormatter::dump_pyobject
|
|
| | + 3.70% PyDict_SetItem
|
|
| | | + 1.60% string_hash.lto_priv.452
|
|
| | | + 1.10% dict_set_item_by_hash_or_entry
|
|
| | | | + 0.90% insertdict
|
|
| | | + 0.20% PyObject_Hash
|
|
| | + 2.60% PyString_FromString
|
|
| | + 2.00% PyObject_Malloc
|
|
| | | + 0.30% new_arena
|
|
| | + 0.10% strlen@plt
|
|
| | + 0.10% strlen
|
|
| + 3.80% vsnprintf
|
|
| | + 3.80% ___vsnprintf_chk
|
|
| | + 2.60% _IO_vfprintf_internal
|
|
| | | + 0.50% __find_specmb
|
|
| | | + 0.50% __GI__IO_default_xsputn
|
|
| | | + 0.10% strlen
|
|
| | + 0.20% _IO_str_init_static_internal
|
|
| | + 0.20% _IO_no_init
|
|
| + 3.00% PyString_FromString
|
|
| + 1.60% PyObject_Malloc
|
|
| | + 0.10% new_arena
|
|
| + 0.30% strlen
|
|
| + 0.10% memcpy
|
|
+ 2.30% ctime_r
|
|
| + 1.50% __asctime_r
|
|
| | + 1.50% asctime_internal
|
|
| | + 1.50% __snprintf
|
|
| | + 1.50% _IO_vsnprintf
|
|
| | + 1.20% _IO_vfprintf_internal
|
|
| | | + 0.20% strnlen
|
|
| | | + 0.20% read_int
|
|
| | | + 0.20% __GI__IO_default_xsputn
|
|
| | | + 0.10% _itoa_word
|
|
| | + 0.10% _IO_str_init_static_internal
|
|
| + 0.80% __localtime_r
|
|
+ 1.60% PyFormatter::dump_pyobject
|
|
| + 0.80% PyString_FromString
|
|
| + 0.70% PyDict_SetItem
|
|
| + 0.10% PyList_Append
|
|
+ 1.10% PyFormatter::open_array_section
|
|
| + 0.80% PyList_New
|
|
| + 0.20% PyList_New@plt
|
|
| + 0.10% PyFormatter::dump_pyobject
|
|
+ 0.60% std::_Rb_tree_const_iterator<std::pair<int const, osd_stat_t::Interfaces> >::operator++
|
|
+ 0.50% PyFormatter::dump_string
|
|
+ 0.50% PyFormatter::dump_int
|
|
+ 0.30% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
|
|
+ 0.20% dump
|
|
+ 0.10% PyFormatter::close_section
|
|
|
|
Thread: 22 (ms_dispatch) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% DispatchQueue::DispatchThread::entry
|
|
+ 100.00% DispatchQueue::entry
|
|
+ 100.00% Messenger::ms_deliver_dispatch
|
|
+ 100.00% Dispatcher::ms_dispatch2
|
|
+ 100.00% DaemonServer::ms_dispatch
|
|
+ 100.00% ClusterState::ingest_pgstats
|
|
+ 100.00% std::lock_guard<Mutex>::lock_guard
|
|
+ 100.00% Mutex::lock
|
|
+ 100.00% __GI___pthread_mutex_lock
|
|
+ 100.00% __lll_lock_wait
|
|
|
|
Thread: 23 (ms_local) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
|
|
+ 100.00% DispatchQueue::run_local_delivery
|
|
+ 100.00% Cond::Wait
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 24 (safe_timer) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% SafeTimerThread::entry
|
|
+ 100.00% SafeTimer::timer_thread
|
|
+ 100.00% Context::complete
|
|
+ 100.00% FunctionContext::finish
|
|
+ 100.00% boost::function1<void, int>::operator()
|
|
+ 100.00% DaemonServer::tick
|
|
+ 100.00% DaemonServer::send_report
|
|
+ 100.00% ClusterState::with_mutable_pgmap<DaemonServer::send_report()::<lambda(PGMap&)> >
|
|
+ 100.00% std::lock_guard<Mutex>::lock_guard
|
|
+ 100.00% Mutex::lock
|
|
+ 100.00% __GI___pthread_mutex_lock
|
|
+ 100.00% __lll_lock_wait
|
|
|
|
Thread: 25 (cmdfin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% Finisher::finisher_thread_entry
|
|
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
|
|
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
|
|
|
|
Thread: 26 (balancer) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% PyModuleRunner::PyModuleRunnerThread::entry
|
|
+ 100.00% PyModuleRunner::serve
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 27 (crash) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% PyModuleRunner::PyModuleRunnerThread::entry
|
|
+ 100.00% PyModuleRunner::serve
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 28 (devicehealth) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% PyModuleRunner::PyModuleRunnerThread::entry
|
|
+ 100.00% PyModuleRunner::serve
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 29 (diskprediction_) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% PyModuleRunner::PyModuleRunnerThread::entry
|
|
+ 100.00% PyModuleRunner::serve
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 30 (diskprediction_) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% PyModuleRunner::PyModuleRunnerThread::entry
|
|
+ 100.00% PyModuleRunner::serve
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 31 (progress) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% PyModuleRunner::PyModuleRunnerThread::entry
|
|
+ 100.00% PyModuleRunner::serve
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 32 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% t_bootstrap
|
|
+ 100.00% PyEval_CallObjectWithKeywords
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% ext_do_call
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 33 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% t_bootstrap
|
|
+ 100.00% PyEval_CallObjectWithKeywords
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% ext_do_call
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 34 (telemetry) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% PyModuleRunner::PyModuleRunnerThread::entry
|
|
+ 100.00% PyModuleRunner::serve
|
|
+ 100.00% PyObject_CallMethod
|
|
+ 100.00% call_function_tail
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 35 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% t_bootstrap
|
|
+ 100.00% PyEval_CallObjectWithKeywords
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% time_sleep
|
|
+ 100.00% floatsleep
|
|
+ 100.00% PyEval_RestoreThread
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 36 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% t_bootstrap
|
|
+ 100.00% PyEval_CallObjectWithKeywords
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% lock_PyThread_acquire_lock
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 37 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% t_bootstrap
|
|
+ 100.00% PyEval_CallObjectWithKeywords
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% lock_PyThread_acquire_lock
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 38 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% t_bootstrap
|
|
+ 100.00% PyEval_CallObjectWithKeywords
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% lock_PyThread_acquire_lock
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|
|
|
|
Thread: 39 (mgr-fin) - 1000 samples
|
|
|
|
+ 100.00% clone
|
|
+ 100.00% start_thread
|
|
+ 100.00% t_bootstrap
|
|
+ 100.00% PyEval_CallObjectWithKeywords
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% instancemethod_call.lto_priv.271
|
|
+ 100.00% PyObject_Call
|
|
+ 100.00% function_call.lto_priv.355
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% fast_function
|
|
+ 100.00% PyEval_EvalCodeEx
|
|
+ 100.00% PyEval_EvalFrameEx
|
|
+ 100.00% call_function
|
|
+ 100.00% lock_PyThread_acquire_lock
|
|
+ 100.00% PyThread_acquire_lock
|
|
+ 100.00% __new_sem_wait_slow
|
|
+ 100.00% do_futex_wait
|
|
+ 100.00% futex_abstimed_wait_cancelable
|