Skip to content

Instantly share code, notes, and snippets.

@aclamk
Created January 17, 2018 14:53
Show Gist options
  • Save aclamk/3dda6320bf82c4a855e7aec658545af5 to your computer and use it in GitHub Desktop.
Save aclamk/3dda6320bf82c4a855e7aec658545af5 to your computer and use it in GitHub Desktop.
Libunwind & gdb wallclocks
Thread: 1 (ceph-osd) - 218 samples
+ 100.00% main
+ 100.00% AsyncMessenger::wait
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 2 (signal_handler) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SignalHandler::entry
+ 100.00% poll
+ 100.00% poll
Thread: 3 (osd_srv_agent) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% OSDService::AgentThread::entry
+ 100.00% OSDService::agent_entry
+ 100.00% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 4 (safe_timer) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 5 (safe_timer) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 6 (safe_timer) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 7 (safe_timer) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 8 (finisher) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% Finisher::finisher_thread_entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 9 (fn_anonymous) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% Finisher::finisher_thread_entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 10 (osd_srv_heartbt) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% OSD::T_Heartbeat::entry
+ 100.00% OSD::heartbeat_entry
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 11 (tp_osd_cmd) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 12 (tp_osd_disk) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 13 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.92% run
+ 0.92% PGOpItem::run
+ 0.92% OSD::dequeue_op
+ 0.92% PrimaryLogPG::do_request
+ 0.92% PrimaryLogPG::do_op
+ 0.92% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% ~list
| + 0.46% ~list
| + 0.46% ~_List_base
| + 0.46% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.46% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.46% ~_List_node
| + 0.46% ~ptr
| + 0.46% ceph::buffer::ptr::release
| + 0.46% tc_free
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 14 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 15 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 16 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
| + 0.46% PGOpItem::run
| + 0.46% OSD::dequeue_op
| + 0.46% PrimaryLogPG::do_request
| + 0.46% PrimaryLogPG::do_op
| + 0.46% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_870
| + 0.46% __lll_lock_wait
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 17 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.92% Mutex::Lock
+ 0.92% pthread_mutex_lock
+ 0.92% _L_lock_812
+ 0.92% __lll_lock_wait
Thread: 18 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.62% WaitInterval
| + 98.62% WaitUntil
| + 98.62% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.38% run
+ 1.38% PGOpItem::run
+ 1.38% OSD::dequeue_op
+ 1.38% PrimaryLogPG::do_request
+ 1.38% PrimaryLogPG::do_op
+ 1.38% PrimaryLogPG::execute_ctx
+ 0.92% PrimaryLogPG::issue_repop
| + 0.92% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.92% PrimaryLogPG::queue_transactions
| + 0.92% queue_transactions
| + 0.92% BlueStore::queue_transactions
| + 0.46% ceph_clock_now
| | + 0.46% clock_gettime
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::Collection::get_onode
| + 0.46% BlueStore::OnodeSpace::lookup
| + 0.46% find
| + 0.46% std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find
| + 0.46% _M_find_node
| + 0.46% std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node
| + 0.46% _M_equals
| + 0.46% _S_equals
| + 0.46% operator()
| + 0.46% operator==
| + 0.46% operator==
| + 0.46% operator==<char>
| + 0.46% compare
| + 0.46% __memcmp_sse4_1
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 19 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.17% WaitInterval
| + 98.17% WaitUntil
| + 98.17% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.38% run
| + 1.38% PGOpItem::run
| + 1.38% OSD::dequeue_op
| + 1.38% PrimaryLogPG::do_request
| + 1.38% PrimaryLogPG::do_op
| + 1.38% PrimaryLogPG::execute_ctx
| + 0.92% PrimaryLogPG::issue_repop
| | + 0.92% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.92% PrimaryLogPG::queue_transactions
| | + 0.92% queue_transactions
| | + 0.92% BlueStore::queue_transactions
| | + 0.92% BlueStore::_txc_state_proc
| | + 0.92% BlueStore::_txc_finish_io
| | + 0.92% BlueStore::_txc_state_proc
| | + 0.92% lock_guard
| | + 0.92% lock
| | + 0.92% __gthread_mutex_lock
| | + 0.92% pthread_mutex_lock
| | + 0.92% _L_lock_812
| | + 0.92% __lll_lock_wait
| + 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_870
| + 0.46% __lll_lock_wait
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 20 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.62% WaitInterval
| + 98.62% WaitUntil
| + 98.62% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.92% run
| + 0.92% PGOpItem::run
| + 0.92% OSD::dequeue_op
| + 0.92% PrimaryLogPG::do_request
| + 0.92% PrimaryLogPG::do_op
| + 0.92% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::prepare_transaction
| | + 0.46% PrimaryLogPG::finish_ctx
| | + 0.46% PGTransaction::setattrs
| | + 0.46% operator[]
| | + 0.46% std::_Rb_tree<std::string, std::pair<std::string const, boost::optional<ceph::buffer::list> >, std::_Select1st<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::optional<ceph::buffer::list> > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::string const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::piecewise_construct_t const&, std::tuple<std::string const&>&&, std::tuple<>&&)
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::Collection::get_onode
| + 0.46% BlueStore::OnodeSpace::lookup
| + 0.46% BlueStore::TwoQCache::_touch_onode
| + 0.46% erase
| + 0.46% erase_and_dispose<boost::intrusive::detail::null_disposer>
| + 0.46% decrement
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 21 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 22 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::log_operation
+ 0.46% PG::append_log
+ 0.46% PG::write_if_dirty
+ 0.46% PGLog::write_log_and_missing
+ 0.46% PGLog::_write_log_and_missing
+ 0.46% ~set
+ 0.46% ~_Rb_tree
+ 0.46% std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_erase
+ 0.46% std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_erase
+ 0.46% _M_destroy_node
+ 0.46% destroy<std::_Rb_tree_node<std::basic_string<char> > >
+ 0.46% ~_Rb_tree_node
+ 0.46% ~basic_string
+ 0.46% std::string::_Rep::_M_dispose
+ 0.46% std::string::_Rep::_M_destroy
+ 0.46% deallocate
+ 0.46% tc_delete
+ 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
+ 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
Thread: 23 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% __pthread_mutex_cond_lock
+ 0.46% _L_cond_lock_789
+ 0.46% __lll_lock_wait
Thread: 24 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 99.54% OSD::ShardedOpWQ::_process
| + 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% ceph::HeartbeatMap::reset_timeout
Thread: 25 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 26 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.92% run
+ 0.92% PGOpItem::run
+ 0.92% OSD::dequeue_op
+ 0.92% PrimaryLogPG::do_request
+ 0.92% PrimaryLogPG::do_op
+ 0.92% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% md_config_t::_get_val_generic
| + 0.46% ConfFile::normalize_key_name
| + 0.46% ConfFile::trim_whitespace
| + 0.46% isspace
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% collect_contexts
+ 0.46% C_ContextsBase<Context, Context>::list_to_context
+ 0.46% tc_new
Thread: 27 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
| + 0.46% PGOpItem::run
| + 0.46% OSD::dequeue_op
| + 0.46% PrimaryLogPG::do_request
| + 0.46% PrimaryLogPG::do_op
| + 0.46% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 28 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.87% WaitInterval
| + 95.87% WaitUntil
| + 95.87% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.75% run
| + 2.75% PGOpItem::run
| + 2.75% OSD::dequeue_op
| + 2.75% PrimaryLogPG::do_request
| + 2.75% PrimaryLogPG::do_op
| + 2.75% PrimaryLogPG::execute_ctx
| + 1.83% PrimaryLogPG::calc_trim_to
| | + 1.83% size
| | + 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.92% PrimaryLogPG::issue_repop
| + 0.92% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.92% PrimaryLogPG::queue_transactions
| + 0.92% queue_transactions
| + 0.92% BlueStore::queue_transactions
| + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.46% RocksDBStore::RocksDBTransactionImpl::put_bat
| | + 0.46% rocksdb::WriteBatch::Put
| | + 0.46% rocksdb::WriteBatchInternal::Put
| | + 0.46% PutLengthPrefixedSliceParts
| | + 0.46% std::string::append
| | + 0.46% std::string::reserve
| | + 0.46% std::string::_Rep::_M_clone
| | + 0.46% _M_copy
| | + 0.46% copy
| | + 0.46% __memcpy_ssse3
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_omap_setkeys
| + 0.46% operator+=
| + 0.46% std::string::append
| + 0.46% std::string::reserve
| + 0.46% std::string::_Rep::_M_clone
| + 0.46% std::string::_Rep::_S_create
| + 0.46% allocate
| + 0.46% tc_new
+ 1.38% PG::lock
+ 1.38% Mutex::Lock
+ 1.38% pthread_mutex_lock
+ 1.38% _L_lock_812
+ 1.38% __lll_lock_wait
Thread: 29 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 30 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.92% run
+ 0.92% PGOpItem::run
+ 0.92% OSD::dequeue_op
+ 0.92% PrimaryLogPG::do_request
+ 0.92% PrimaryLogPG::do_op
+ 0.92% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_870
| + 0.46% __lll_lock_wait
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% BlueStore::_txc_state_proc
+ 0.46% BlueStore::_txc_finish_io
+ 0.46% BlueStore::_txc_state_proc
+ 0.46% lock_guard
+ 0.46% lock
+ 0.46% __gthread_mutex_lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 31 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
| + 0.46% PGOpItem::run
| + 0.46% OSD::dequeue_op
| + 0.46% PrimaryLogPG::do_request
| + 0.46% PrimaryLogPG::do_op
| + 0.46% OSDService::check_failsafe_full
| + 0.46% OSDService::_check_full
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_812
| + 0.46% __lll_lock_wait
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 32 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.08% WaitInterval
| + 99.08% WaitUntil
| + 99.08% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.92% run
+ 0.92% PGOpItem::run
+ 0.92% OSD::dequeue_op
+ 0.92% PrimaryLogPG::do_request
+ 0.92% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% OSDService::check_failsafe_full
+ 0.46% OSDService::_check_full
+ 0.46% Locker
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 33 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% operator++
Thread: 34 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.17% WaitInterval
| + 98.17% WaitUntil
| + 98.17% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.83% run
+ 1.83% PGOpItem::run
+ 1.83% OSD::dequeue_op
+ 1.83% PrimaryLogPG::do_request
+ 1.83% PrimaryLogPG::do_op
+ 1.83% PrimaryLogPG::execute_ctx
+ 0.92% PrimaryLogPG::calc_trim_to
| + 0.92% size
| + 0.92% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.92% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_870
| + 0.46% __lll_lock_wait
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::log_operation
+ 0.46% PG::append_log
+ 0.46% PG::write_if_dirty
+ 0.46% PGLog::write_log_and_missing
+ 0.46% PGLog::_write_log_and_missing
+ 0.46% pg_log_entry_t::encode_with_checksum
+ 0.46% pg_log_entry_t::encode
+ 0.46% encode
+ 0.46% ObjectModDesc::encode
+ 0.46% encode
+ 0.46% ceph::buffer::list::append
Thread: 35 (tp_osd_tp) - 218 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.71% WaitInterval
| + 97.71% WaitUntil
| + 97.71% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.29% run
+ 2.29% PGOpItem::run
+ 2.29% OSD::dequeue_op
+ 2.29% PrimaryLogPG::do_request
+ 2.29% PrimaryLogPG::do_op
+ 2.29% PrimaryLogPG::execute_ctx
+ 1.38% PrimaryLogPG::issue_repop
| + 1.38% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.92% PrimaryLogPG::queue_transactions
| | + 0.92% queue_transactions
| | + 0.92% BlueStore::queue_transactions
| | + 0.46% BlueStore::_txc_write_nodes
| | | + 0.46% BlueStore::ExtentMap::update
| | | + 0.46% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | + 0.46% operator()
| | | + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.46% combine_strings
| | | + 0.46% std::string::append
| | | + 0.46% std::string::reserve
| | | + 0.46% std::string::_Rep::_M_clone
| | | + 0.46% std::string::_Rep::_S_create
| | | + 0.46% allocate
| | | + 0.46% tc_new
| | | + 0.46% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.46% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.46% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.46% BlueStore::_txc_add_transaction
| | + 0.46% BlueStore::Collection::get_onode
| | + 0.46% BlueStore::OnodeSpace::lookup
| | + 0.46% operator=
| | + 0.46% swap
| + 0.46% insert<std::_Rb_tree_const_iterator<pg_shard_t> >
| + 0.46% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_insert_unique<std::_Rb_tree_const_iterator<pg_shard_t> >
| + 0.46% _M_insert_unique_<pg_shard_t const&>
| + 0.46% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_get_insert_hint_unique_pos
| + 0.46% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_get_insert_unique_pos
+ 0.92% PrimaryLogPG::calc_trim_to
+ 0.92% size
+ 0.92% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.92% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 36 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.09% WaitInterval
| + 99.09% WaitUntil
| + 99.09% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
| + 0.46% PGOpItem::run
| + 0.46% OSD::dequeue_op
| + 0.46% PrimaryLogPG::do_request
| + 0.46% PrimaryLogPG::do_op
| + 0.46% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 37 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% operator++
Thread: 38 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 39 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.63% WaitInterval
| + 98.63% WaitUntil
| + 98.63% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.37% run
+ 1.37% PGOpItem::run
+ 1.37% OSD::dequeue_op
+ 0.91% PrimaryLogPG::do_request
+ 0.91% PrimaryLogPG::do_op
+ 0.91% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::log_operation
| + 0.46% PG::append_log
| + 0.46% PG::write_if_dirty
| + 0.46% ~map
| + 0.46% ~_Rb_tree
| + 0.46% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.46% _M_destroy_node
| + 0.46% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| + 0.46% ~_Rb_tree_node
| + 0.46% ~pair
| + 0.46% ~basic_string
| + 0.46% _ZNSs4_Rep10_M_disposeERKSaIcE@plt
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 40 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.09% WaitInterval
| + 99.09% WaitUntil
| + 99.09% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.91% run
+ 0.91% PGOpItem::run
+ 0.91% OSD::dequeue_op
+ 0.91% PrimaryLogPG::do_request
+ 0.91% PrimaryLogPG::do_op
+ 0.91% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% decode_attrset_bl
| + 0.46% decode_str_str_map_to_bl
| + 0.46% ceph::buffer::list::iterator::copy
| + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| + 0.46% ceph::buffer::list::append
| + 0.46% push_back
| + 0.46% push_back
| + 0.46% _M_insert<ceph::buffer::ptr>
| + 0.46% _M_create_node<ceph::buffer::ptr>
| + 0.46% _M_get_node
| + 0.46% allocate
| + 0.46% tc_new
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 41 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 42 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 43 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.28% run
+ 2.28% PGOpItem::run
+ 2.28% OSD::dequeue_op
+ 2.28% PrimaryLogPG::do_request
+ 2.28% PrimaryLogPG::do_op
+ 2.28% PrimaryLogPG::execute_ctx
+ 1.83% PrimaryLogPG::calc_trim_to
| + 1.83% size
| + 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% BlueStore::_txc_add_transaction
+ 0.46% BlueStore::_omap_setkeys
+ 0.46% RocksDBStore::RocksDBTransactionImpl::set
+ 0.46% RocksDBStore::RocksDBTransactionImpl::put_bat
+ 0.46% rocksdb::WriteBatch::Put
+ 0.46% rocksdb::WriteBatchInternal::Put
+ 0.46% PutLengthPrefixedSliceParts
+ 0.46% std::string::append
+ 0.46% std::string::reserve
+ 0.46% std::string::_Rep::_M_clone
+ 0.46% std::string::_Rep::_S_create
Thread: 44 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 45 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.09% WaitInterval
| + 99.09% WaitUntil
| + 99.09% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
| + 0.46% PGOpItem::run
| + 0.46% OSD::dequeue_op
| + 0.46% PrimaryLogPG::do_request
| + 0.46% PrimaryLogPG::do_op
| + 0.46% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 46 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% BlueStore::_txc_write_nodes
+ 0.46% BlueStore::ExtentMap::update
+ 0.46% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
+ 0.46% operator()
+ 0.46% RocksDBStore::RocksDBTransactionImpl::set
+ 0.46% ~basic_string
+ 0.46% tc_delete
Thread: 47 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 48 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.17% WaitInterval
| + 98.17% WaitUntil
| + 98.17% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.83% run
+ 1.83% PGOpItem::run
+ 1.83% OSD::dequeue_op
+ 1.83% PrimaryLogPG::do_request
+ 1.83% PrimaryLogPG::do_op
+ 1.83% PrimaryLogPG::execute_ctx
+ 0.91% PrimaryLogPG::issue_repop
| + 0.46% add
| | + 0.46% push_back
| | + 0.46% _M_insert<pg_log_entry_t const&>
| | + 0.46% _M_create_node<pg_log_entry_t const&>
| | + 0.46% construct<std::_List_node<pg_log_entry_t>, pg_log_entry_t const&>
| | + 0.46% _List_node<pg_log_entry_t const&>
| | + 0.46% pg_log_entry_t
| | + 0.46% hobject_t::hobject_t
| | + 0.46% object_t
| | + 0.46% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | + 0.46% _M_grab
| | + 0.46% _M_refcopy
| | + 0.46% __atomic_add_dispatch
| | + 0.46% __atomic_add
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_write_nodes
| + 0.46% denc<bluestore_onode_t, denc_traits<bluestore_onode_t> >
| + 0.46% bound_encode
| + 0.46% bound_encode
| + 0.46% _denc_friend<bluestore_onode_t const, unsigned long>
| + 0.46% denc<std::map<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr>, denc_traits<std::map<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr>, void> >
| + 0.46% bound_encode<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr> >
| + 0.46% pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr, void>
| + 0.46% std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >::basic_string
+ 0.91% PrimaryLogPG::calc_trim_to
+ 0.91% size
+ 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 49 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.63% WaitInterval
| + 98.63% WaitUntil
| + 98.63% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.91% run
| + 0.91% PGOpItem::run
| + 0.91% OSD::dequeue_op
| + 0.91% PrimaryLogPG::do_request
| + 0.91% PrimaryLogPG::do_op
| + 0.91% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::prepare_transaction
| | + 0.46% PrimaryLogPG::do_osd_ops
| | + 0.46% get_val<bool>
| | + 0.46% md_config_t::get_val_generic
| | + 0.46% Locker
| | + 0.46% Mutex::Lock
| | + 0.46% pthread_mutex_lock
| | + 0.46% _L_lock_870
| | + 0.46% __lll_lock_wait
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_write
| + 0.46% BlueStore::_do_write
| + 0.46% BlueStore::_do_write_data
| + 0.46% BlueStore::_do_write_small
| + 0.46% BlueStore::_buffer_cache_write
| + 0.46% write
| + 0.46% _add_buffer
| + 0.46% operator[]
| + 0.46% std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > >, std::less<unsigned int>, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<unsigned int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > >, std::piecewise_construct_t const&, std::tuple<unsigned int const&>&&, std::tuple<>&&)
| + 0.46% _M_create_node<const std::piecewise_construct_t&, std::tuple<unsigned int const&>, std::tuple<> >
| + 0.46% _M_get_node
| + 0.46% allocate
| + 0.46% tc_newarray
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 50 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.63% WaitInterval
| + 98.63% WaitUntil
| + 98.63% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.91% run
| + 0.91% PGOpItem::run
| + 0.91% OSD::dequeue_op
| + 0.91% PrimaryLogPG::do_request
| + 0.91% PrimaryLogPG::do_op
| + 0.46% hobject_t::~hobject_t
| | + 0.46% ~object_t
| | + 0.46% ~basic_string
| | + 0.46% std::string::_Rep::_M_dispose
| + 0.46% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 51 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.80% WaitInterval
| + 96.80% WaitUntil
| + 96.80% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.74% run
| + 2.74% PGOpItem::run
| + 2.74% OSD::dequeue_op
| + 2.74% PrimaryLogPG::do_request
| + 2.74% PrimaryLogPG::do_op
| + 1.83% PrimaryLogPG::execute_ctx
| | + 1.37% PrimaryLogPG::issue_repop
| | | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 0.91% PrimaryLogPG::log_operation
| | | | + 0.91% PG::append_log
| | | | + 0.46% PGLog::trim
| | | | | + 0.46% PGLog::IndexedLog::trim
| | | | | + 0.46% PGLog::IndexedLog::unindex
| | | | | + 0.46% erase
| | | | | + 0.46% erase
| | | | | + 0.46% _M_erase
| | | | | + 0.46% std::_Hashtable<osd_reqid_t, std::pair<osd_reqid_t const, pg_log_entry_t*>, std::allocator<std::pair<osd_reqid_t const, pg_log_entry_t*> >, std::__detail::_Select1st, std::equal_to<osd_reqid_t>, std::hash<osd_reqid_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node
| | | | + 0.46% PG::write_if_dirty
| | | | + 0.46% PGLog::write_log_and_missing
| | | | + 0.46% PGLog::_write_log_and_missing
| | | | + 0.46% pg_log_entry_t::encode_with_checksum
| | | | + 0.46% pg_log_entry_t::encode
| | | | + 0.46% encode
| | | | + 0.46% hobject_t::encode
| | | | + 0.46% encode
| | | | + 0.46% encode
| | | | + 0.46% encode
| | | | + 0.46% encode
| | | | + 0.46% encode_raw<ceph_le<unsigned int> >
| | | | + 0.46% ceph::buffer::list::append
| | | | + 0.46% ceph::buffer::list::append
| | | + 0.46% PrimaryLogPG::queue_transactions
| | | + 0.46% queue_transactions
| | | + 0.46% BlueStore::queue_transactions
| | | + 0.46% BlueStore::_txc_add_transaction
| | | + 0.46% decode_attrset
| | | + 0.46% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | + 0.46% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | + 0.46% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | + 0.46% insert<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% emplace_hint<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::string const, ceph::buffer::ptr> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >::_M_emplace_hint_unique<std::pair<std::string, ceph::buffer::ptr> >(std::_Rb_tree_const_iterator<std::pair<std::string const, ceph::buffer::ptr> >, std::pair<std::string, ceph::buffer::ptr>&&)
| | | + 0.46% _M_create_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% construct<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::ptr> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% _S_construct<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::ptr> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% construct<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::ptr> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% _Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% pair<std::basic_string<char>, ceph::buffer::ptr, void>
| | | + 0.46% ceph::buffer::ptr::ptr(ceph::buffer::ptr&&)
| | + 0.46% PrimaryLogPG::calc_trim_to
| | + 0.46% size
| | + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% OSDService::check_failsafe_full
| | + 0.46% OSDService::_check_full
| | + 0.46% operator<<
| | + 0.46% std::ostream::_M_insert<double>
| | + 0.46% put
| | + 0.46% std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>
| | + 0.46% std::__convert_from_v
| | + 0.46% vsnprintf
| | + 0.46% vfprintf
| | + 0.46% __printf_fp
| | + 0.46% __strlen_sse2
| + 0.46% OSD::init_op_flags
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 52 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 99.54% OSD::ShardedOpWQ::_process
| + 97.72% WaitInterval
| | + 97.72% WaitUntil
| | + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
| + 1.83% run
| + 1.83% PGOpItem::run
| + 1.83% OSD::dequeue_op
| + 1.83% PrimaryLogPG::do_request
| + 1.83% PrimaryLogPG::do_op
| + 1.83% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::calc_trim_to
| | + 1.37% size
| | + 1.37% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.37% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_omap_setkeys
| + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| + 0.46% RocksDBStore::RocksDBTransactionImpl::put_bat
| + 0.46% rocksdb::WriteBatch::Put
| + 0.46% rocksdb::WriteBatchInternal::Put
| + 0.46% PutLengthPrefixedSliceParts
| + 0.46% std::string::append
| + 0.46% std::string::reserve
| + 0.46% std::string::_Rep::_M_clone
| + 0.46% std::string::_Rep::_S_create
| + 0.46% allocate
| + 0.46% tc_new
+ 0.46% ceph::HeartbeatMap::reset_timeout
Thread: 53 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.35% WaitInterval
| + 96.35% WaitUntil
| + 96.35% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.46% __pthread_mutex_cond_lock
| + 0.46% _L_cond_lock_789
| + 0.46% __lll_lock_wait
+ 3.65% run
+ 3.65% PGOpItem::run
+ 3.65% OSD::dequeue_op
+ 3.65% PrimaryLogPG::do_request
+ 3.65% PrimaryLogPG::do_op
+ 2.74% PrimaryLogPG::execute_ctx
| + 2.28% PrimaryLogPG::calc_trim_to
| | + 2.28% size
| | + 2.28% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 2.28% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.46% operator++
| + 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_870
| + 0.46% __lll_lock_wait
+ 0.46% std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream
| + 0.46% basic_ostream
| + 0.46% std::basic_ios<char, std::char_traits<char> >::init
| + 0.46% std::basic_ios<char, std::char_traits<char> >::_M_cache_locale
| + 0.46% std::has_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > >
| + 0.46% __cxxabiv1::__dynamic_cast
+ 0.46% clear_payload
+ 0.46% Throttle::put
+ 0.46% uniquely_lock<std::mutex&>
+ 0.46% unique_lock
+ 0.46% lock
+ 0.46% lock
+ 0.46% __gthread_mutex_lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 54 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.17% WaitInterval
| + 98.17% WaitUntil
| + 98.17% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.37% run
| + 1.37% PGOpItem::run
| + 1.37% OSD::dequeue_op
| + 1.37% PrimaryLogPG::do_request
| + 1.37% PrimaryLogPG::do_op
| + 1.37% PrimaryLogPG::execute_ctx
| + 0.91% PrimaryLogPG::calc_trim_to
| | + 0.91% size
| | + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_write
| + 0.46% BlueStore::_do_write
| + 0.46% BlueStore::ExtentMap::fault_range
| + 0.46% PerfCounters::inc
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 55 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.17% WaitInterval
| + 98.17% WaitUntil
| + 98.17% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.91% __pthread_mutex_cond_lock
| + 0.91% _L_cond_lock_789
| + 0.91% __lll_lock_wait
+ 1.37% run
| + 1.37% PGOpItem::run
| + 1.37% OSD::dequeue_op
| + 1.37% PrimaryLogPG::do_request
| + 1.37% PrimaryLogPG::do_op
| + 1.37% PrimaryLogPG::execute_ctx
| + 0.91% PrimaryLogPG::issue_repop
| | + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | + 0.91% queue_transactions
| | + 0.91% BlueStore::queue_transactions
| | + 0.91% BlueStore::_txc_add_transaction
| | + 0.46% decode_attrset
| | | + 0.46% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | + 0.46% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | + 0.46% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | + 0.46% insert<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% emplace_hint<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::string const, ceph::buffer::ptr> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >::_M_emplace_hint_unique<std::pair<std::string, ceph::buffer::ptr> >(std::_Rb_tree_const_iterator<std::pair<std::string const, ceph::buffer::ptr> >, std::pair<std::string, ceph::buffer::ptr>&&)
| | | + 0.46% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::string const, ceph::buffer::ptr> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >::_M_get_insert_hint_unique_pos
| | + 0.46% BlueStore::_omap_setkeys
| | + 0.46% note_modified_object
| | + 0.46% insert
| | + 0.46% std::_Rb_tree<boost::intrusive_ptr<BlueStore::Onode>, boost::intrusive_ptr<BlueStore::Onode>, std::_Identity<boost::intrusive_ptr<BlueStore::Onode> >, std::less<boost::intrusive_ptr<BlueStore::Onode> >, std::allocator<boost::intrusive_ptr<BlueStore::Onode> > >::_M_insert_unique<boost::intrusive_ptr<BlueStore::Onode> const&>
| | + 0.46% _M_get_insert_unique_pos
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 56 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.17% WaitInterval
| + 98.17% WaitUntil
| + 98.17% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.37% PG::lock
| + 1.37% Mutex::Lock
| + 1.37% pthread_mutex_lock
| + 1.37% _L_lock_812
| + 1.37% __lll_lock_wait
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% BlueStore::_txc_write_nodes
+ 0.46% BlueStore::ExtentMap::update
+ 0.46% BlueStore::ExtentMap::encode_some
Thread: 57 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.26% WaitInterval
| + 97.26% WaitUntil
| + 97.26% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.74% run
+ 2.74% PGOpItem::run
+ 2.74% OSD::dequeue_op
+ 2.74% PrimaryLogPG::do_request
+ 2.74% PrimaryLogPG::do_op
+ 2.74% PrimaryLogPG::execute_ctx
+ 1.37% PrimaryLogPG::issue_repop
| + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.91% PrimaryLogPG::queue_transactions
| | + 0.91% queue_transactions
| | + 0.91% BlueStore::queue_transactions
| | + 0.91% BlueStore::_txc_add_transaction
| | + 0.46% decode_attrset
| | | + 0.46% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | + 0.46% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | + 0.46% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | + 0.46% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | + 0.46% decode
| | | + 0.46% decode<std::basic_string<char> >
| | | + 0.46% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | + 0.46% decode
| | | + 0.46% decode
| | | + 0.46% denc<unsigned int, denc_traits<unsigned int, void>, _denc::has_legacy_denc<unsigned int, void> >
| | | + 0.46% decode
| | | + 0.46% decode
| | | + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| | + 0.46% BlueStore::_write
| | + 0.46% BlueStore::_do_write
| | + 0.46% BlueStore::_do_write_data
| | + 0.46% BlueStore::_do_write_small
| | + 0.46% BlueStore::ExtentMap::set_lextent
| | + 0.46% BlueStore::ExtentMap::punch_hole
| | + 0.46% BlueStore::ExtentMap::seek_lextent
| | + 0.46% operator--
| | + 0.46% prev_node
| + 0.46% PrimaryLogPG::log_operation
| + 0.46% PG::append_log
| + 0.46% PG::write_if_dirty
| + 0.46% PGLog::write_log_and_missing
| + 0.46% PGLog::_write_log_and_missing
| + 0.46% pg_log_entry_t::encode_with_checksum
| + 0.46% pg_log_entry_t::encode
| + 0.46% encode
| + 0.46% ObjectModDesc::encode
+ 0.91% PrimaryLogPG::calc_trim_to
| + 0.91% size
| + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% operator++
+ 0.46% PrimaryLogPG::new_repop
+ 0.46% ceph::logging::SubsystemMap::should_gather
+ 0.46% size
Thread: 58 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.80% WaitInterval
| + 96.80% WaitUntil
| + 96.80% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.46% __pthread_mutex_cond_lock
| + 0.46% _L_cond_lock_789
| + 0.46% __lll_lock_wait
+ 2.74% run
| + 2.74% PGOpItem::run
| + 2.74% OSD::dequeue_op
| + 2.74% PrimaryLogPG::do_request
| + 2.74% PrimaryLogPG::do_op
| + 2.74% PrimaryLogPG::execute_ctx
| + 1.83% PrimaryLogPG::calc_trim_to
| | + 1.83% size
| | + 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% PrimaryLogPG::issue_repop
| + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.91% PrimaryLogPG::queue_transactions
| + 0.91% queue_transactions
| + 0.91% BlueStore::queue_transactions
| + 0.91% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_get_collection
| | + 0.46% find
| | + 0.46% find
| | + 0.46% _M_hash_code
| | + 0.46% operator()
| | + 0.46% to_str
| | + 0.46% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | + 0.46% _S_construct<char const*>
| | + 0.46% _S_construct_aux<char const*>
| | + 0.46% char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag)
| | + 0.46% std::string::_Rep::_S_create
| | + 0.46% allocate
| | + 0.46% tc_new
| + 0.46% BlueStore::Collection::get_onode
| + 0.46% BlueStore::OnodeSpace::lookup
| + 0.46% find
| + 0.46% std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find
| + 0.46% _M_find_node
| + 0.46% std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node
| + 0.46% _M_equals
| + 0.46% _S_equals
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 59 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.26% WaitInterval
| + 97.26% WaitUntil
| + 97.26% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.28% run
| + 2.28% PGOpItem::run
| + 2.28% OSD::dequeue_op
| + 2.28% PrimaryLogPG::do_request
| + 2.28% PrimaryLogPG::do_op
| + 2.28% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::issue_repop
| | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | | + 0.91% queue_transactions
| | | + 0.91% BlueStore::queue_transactions
| | | + 0.46% BlueStore::_txc_write_nodes
| | | | + 0.46% denc<bluestore_onode_t, denc_traits<bluestore_onode_t> >
| | | | + 0.46% encode
| | | | + 0.46% encode
| | | | + 0.46% _denc_friend<bluestore_onode_t const, ceph::buffer::list::contiguous_appender>
| | | | + 0.46% denc<std::map<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr>, denc_traits<std::map<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr>, void> >
| | | | + 0.46% encode<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr> >
| | | | + 0.46% encode_nohead<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr> >
| | | | + 0.46% denc<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, ceph::buffer::ptr>, void> >
| | | | + 0.46% encode<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >
| | | | + 0.46% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr> >
| | | | + 0.46% encode
| | | | + 0.46% append
| | | | + 0.46% ceph::buffer::ptr::c_str
| | | + 0.46% BlueStore::_txc_add_transaction
| | | + 0.46% BlueStore::_write
| | | + 0.46% BlueStore::_do_write
| | | + 0.46% BlueStore::_do_write_data
| | | + 0.46% BlueStore::_do_write_small
| | | + 0.46% BlueStore::_buffer_cache_write
| | | + 0.46% insert
| | | + 0.46% std::_Rb_tree<boost::intrusive_ptr<BlueStore::SharedBlob>, boost::intrusive_ptr<BlueStore::SharedBlob>, std::_Identity<boost::intrusive_ptr<BlueStore::SharedBlob> >, std::less<boost::intrusive_ptr<BlueStore::SharedBlob> >, std::allocator<boost::intrusive_ptr<BlueStore::SharedBlob> > >::_M_insert_unique<boost::intrusive_ptr<BlueStore::SharedBlob> const&>
| | | + 0.46% _M_insert_<boost::intrusive_ptr<BlueStore::SharedBlob> const&>
| | | + 0.46% _M_create_node<boost::intrusive_ptr<BlueStore::SharedBlob> const&>
| | | + 0.46% _M_get_node
| | | + 0.46% allocate
| | | + 0.46% tc_new
| | + 0.46% generate_transaction
| | + 0.46% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.46% operator()
| | + 0.46% ObjectStore::Transaction::setattrs
| | + 0.46% ObjectStore::Transaction::_get_next_op
| | + 0.46% ceph::buffer::ptr::ptr
| | + 0.46% ceph::buffer::create
| | + 0.46% ceph::buffer::create_aligned
| | + 0.46% ceph::buffer::create_aligned_in_mempool
| | + 0.46% create
| | + 0.46% tc_posix_memalign
| | + 0.46% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| + 0.91% PrimaryLogPG::calc_trim_to
| + 0.91% size
| + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 60 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.80% WaitInterval
| + 96.80% WaitUntil
| + 96.80% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.91% __pthread_mutex_cond_lock
| + 0.91% _L_cond_lock_789
| + 0.91% __lll_lock_wait
+ 3.20% run
+ 3.20% PGOpItem::run
+ 3.20% OSD::dequeue_op
+ 3.20% PrimaryLogPG::do_request
+ 3.20% PrimaryLogPG::do_op
+ 2.74% PrimaryLogPG::execute_ctx
| + 1.83% PrimaryLogPG::calc_trim_to
| | + 1.83% size
| | + 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.46% operator++
| + 0.46% PrimaryLogPG::prepare_transaction
| | + 0.46% PrimaryLogPG::finish_ctx
| | + 0.46% encode
| | + 0.46% object_info_t::encode
| | + 0.46% object_locator_t::~object_locator_t
| | + 0.46% ~basic_string
| | + 0.46% std::string::_Rep::_M_dispose
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_write
| + 0.46% BlueStore::_do_write
| + 0.46% BlueStore::ExtentMap::dirty_range
| + 0.46% seek_shard
+ 0.46% hobject_t::~hobject_t
+ 0.46% ~basic_string
Thread: 61 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.80% WaitInterval
| + 96.80% WaitUntil
| + 96.80% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.74% run
| + 2.74% PGOpItem::run
| + 2.74% OSD::dequeue_op
| + 2.74% PrimaryLogPG::do_request
| + 2.74% PrimaryLogPG::do_op
| + 2.74% PrimaryLogPG::execute_ctx
| + 1.83% PrimaryLogPG::issue_repop
| | + 1.83% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 1.37% PrimaryLogPG::queue_transactions
| | | + 1.37% queue_transactions
| | | + 1.37% BlueStore::queue_transactions
| | | + 0.91% BlueStore::_txc_add_transaction
| | | | + 0.46% BlueStore::_write
| | | | | + 0.46% BlueStore::_do_write
| | | | | + 0.46% BlueStore::_do_write_data
| | | | | + 0.46% BlueStore::_do_write_small
| | | | | + 0.46% BlueStore::ExtentMap::set_lextent
| | | | | + 0.46% BlueStore::ExtentMap::punch_hole
| | | | | + 0.46% BlueStore::OldExtent::create
| | | | | + 0.46% BlueStore::Blob::put_ref
| | | | + 0.46% BlueStore::Collection::get_onode
| | | | + 0.46% BlueStore::OnodeSpace::lookup
| | | | + 0.46% find
| | | | + 0.46% std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find
| | | | + 0.46% _M_find_node
| | | | + 0.46% std::_Hashtable<ghobject_t, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> >, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<ghobject_t const, boost::intrusive_ptr<BlueStore::Onode> > >, std::__detail::_Select1st, std::equal_to<ghobject_t>, std::hash<ghobject_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node
| | | | + 0.46% _M_equals
| | | | + 0.46% _S_equals
| | | | + 0.46% operator()
| | | | + 0.46% operator==
| | | | + 0.46% operator==
| | | + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.46% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.46% rocksdb::WriteBatch::Put
| | | + 0.46% rocksdb::WriteBatchInternal::Put
| | | + 0.46% PutLengthPrefixedSliceParts
| | | + 0.46% std::string::append
| | | + 0.46% _M_copy
| | | + 0.46% copy
| | | + 0.46% __memcpy_ssse3
| | + 0.46% PrimaryLogPG::log_operation
| | + 0.46% PG::append_log
| | + 0.46% PGLog::roll_forward_to
| | + 0.46% roll_forward_to
| | + 0.46% advance_can_rollback_to<PGLog::IndexedLog::roll_forward_to(eversion_t, PGLog::LogEntryHandler*)::__lambda8>
| | + 0.46% operator()
| | + 0.46% PG::PGLogEntryHandler::rollforward
| | + 0.46% PrimaryLogPG::get_pgbackend
| + 0.91% PrimaryLogPG::calc_trim_to
| + 0.91% size
| + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 62 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.83% run
| + 1.83% PGOpItem::run
| + 1.83% OSD::dequeue_op
| + 1.83% PrimaryLogPG::do_request
| + 1.83% PrimaryLogPG::do_op
| + 1.83% PrimaryLogPG::execute_ctx
| + 0.91% PrimaryLogPG::issue_repop
| | + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | + 0.91% queue_transactions
| | + 0.91% BlueStore::queue_transactions
| | + 0.91% BlueStore::_txc_add_transaction
| | + 0.91% decode_attrset_bl
| | + 0.91% decode_str_str_map_to_bl
| | + 0.46% ceph::buffer::list::iterator_impl<false>::advance
| | + 0.46% ceph::buffer::list::iterator::copy
| | + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| | + 0.46% ceph::buffer::list::append
| | + 0.46% push_back
| | + 0.46% push_back
| | + 0.46% _M_insert<ceph::buffer::ptr>
| | + 0.46% _M_create_node<ceph::buffer::ptr>
| | + 0.46% _M_get_node
| | + 0.46% allocate
| | + 0.46% tc_new
| | + 0.46% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.46% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.46% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 0.91% PrimaryLogPG::calc_trim_to
| + 0.91% size
| + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 63 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.83% run
| + 1.83% PGOpItem::run
| + 1.83% OSD::dequeue_op
| + 1.83% PrimaryLogPG::do_request
| + 1.83% PrimaryLogPG::do_op
| + 1.83% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::issue_repop
| | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | | + 0.91% queue_transactions
| | | + 0.91% BlueStore::queue_transactions
| | | + 0.46% BlueStore::_txc_write_nodes
| | | | + 0.46% BlueStore::ExtentMap::update
| | | | + 0.46% BlueStore::ExtentMap::encode_some
| | | | + 0.46% get_contiguous_appender
| | | | + 0.46% ceph::buffer::list::contiguous_appender::contiguous_appender
| | | | + 0.46% ceph::buffer::create
| | | | + 0.46% ceph::buffer::create_aligned
| | | | + 0.46% ceph::buffer::create_aligned_in_mempool
| | | | + 0.46% create
| | | | + 0.46% tc_posix_memalign
| | | | + 0.46% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | + 0.46% BlueStore::_txc_add_transaction
| | | + 0.46% BlueStore::_write
| | | + 0.46% BlueStore::_do_write
| | | + 0.46% BlueStore::_do_write_data
| | | + 0.46% BlueStore::_do_write_small
| | | + 0.46% BlueStore::ExtentMap::set_lextent
| | + 0.46% generate_transaction
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 64 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% run
+ 0.46% PGOpItem::run
+ 0.46% OSD::dequeue_op
+ 0.46% PrimaryLogPG::do_request
+ 0.46% PrimaryLogPG::do_op
+ 0.46% PrimaryLogPG::execute_ctx
+ 0.46% PrimaryLogPG::calc_trim_to
+ 0.46% size
+ 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 65 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.09% WaitInterval
| + 99.09% WaitUntil
| + 99.09% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.91% run
+ 0.91% PGOpItem::run
+ 0.91% OSD::dequeue_op
+ 0.91% PrimaryLogPG::do_request
+ 0.91% PrimaryLogPG::do_op
+ 0.91% PrimaryLogPG::execute_ctx
+ 0.91% PrimaryLogPG::issue_repop
+ 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% generate_transaction
| + 0.46% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| + 0.46% operator()
| + 0.46% ObjectStore::Transaction::setattrs
| + 0.46% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| + 0.46% get_contiguous_appender
| + 0.46% ceph::buffer::list::contiguous_appender::contiguous_appender
| + 0.46% ceph::buffer::create
| + 0.46% ceph::buffer::create_aligned
| + 0.46% ceph::buffer::create_aligned_in_mempool
| + 0.46% create
| + 0.46% tc_posix_memalign
| + 0.46% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% BlueStore::_txc_write_nodes
+ 0.46% BlueStore::ExtentMap::update
+ 0.46% BlueStore::ExtentMap::encode_some
+ 0.46% get_contiguous_appender
+ 0.46% ceph::buffer::list::contiguous_appender::contiguous_appender
+ 0.46% ceph::buffer::create
+ 0.46% ceph::buffer::create_aligned
+ 0.46% ceph::buffer::create_aligned_in_mempool
+ 0.46% create
+ 0.46% raw_combined
Thread: 66 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.26% WaitInterval
| + 97.26% WaitUntil
| + 97.26% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.28% run
| + 2.28% PGOpItem::run
| + 2.28% OSD::dequeue_op
| + 2.28% PrimaryLogPG::do_request
| + 2.28% PrimaryLogPG::do_op
| + 2.28% PrimaryLogPG::execute_ctx
| + 1.83% PrimaryLogPG::calc_trim_to
| | + 1.83% size
| | + 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::log_operation
| + 0.46% PG::append_log
| + 0.46% PG::write_if_dirty
| + 0.46% PG::prepare_write_info
| + 0.46% PG::_prepare_write_info
| + 0.46% operator==
| + 0.46% operator==
| + 0.46% operator==<snapid_t, snapid_t, std::less<snapid_t>, std::allocator<std::pair<const snapid_t, snapid_t> > >
| + 0.46% operator==<snapid_t, std::pair<const snapid_t, snapid_t>, std::_Select1st<std::pair<const snapid_t, snapid_t> >, std::less<snapid_t>, std::allocator<std::pair<const snapid_t, snapid_t> > >
| + 0.46% equal<std::_Rb_tree_const_iterator<std::pair<snapid_t const, snapid_t> >, std::_Rb_tree_const_iterator<std::pair<snapid_t const, snapid_t> > >
| + 0.46% __equal_aux<std::_Rb_tree_const_iterator<std::pair<snapid_t const, snapid_t> >, std::_Rb_tree_const_iterator<std::pair<snapid_t const, snapid_t> > >
| + 0.46% equal<std::_Rb_tree_const_iterator<std::pair<snapid_t const, snapid_t> >, std::_Rb_tree_const_iterator<std::pair<snapid_t const, snapid_t> > >
| + 0.46% operator==<const snapid_t, snapid_t>
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 67 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 94.06% WaitInterval
| + 94.06% WaitUntil
| + 94.06% pthread_cond_timedwait@@GLIBC_2.3.2
+ 5.48% run
| + 5.48% PGOpItem::run
| + 5.48% OSD::dequeue_op
| + 5.48% PrimaryLogPG::do_request
| + 5.48% PrimaryLogPG::do_op
| + 5.02% PrimaryLogPG::execute_ctx
| | + 3.20% PrimaryLogPG::calc_trim_to
| | | + 3.20% size
| | | + 3.20% distance<std::_List_const_iterator<pg_log_entry_t> >
| | | + 3.20% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.83% PrimaryLogPG::issue_repop
| | + 1.83% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 1.83% PrimaryLogPG::queue_transactions
| | + 1.83% queue_transactions
| | + 1.83% BlueStore::queue_transactions
| | + 0.46% Throttle::get_or_fail
| | | + 0.46% PerfCounters::inc
| | + 0.46% Throttle::get
| | | + 0.46% PerfCounters::inc
| | + 0.46% BlueStore::_txc_write_nodes
| | | + 0.46% BlueStore::ExtentMap::update
| | | + 0.46% BlueStore::ExtentMap::encode_some
| | | + 0.46% get_contiguous_appender
| | | + 0.46% ceph::buffer::list::contiguous_appender::contiguous_appender
| | | + 0.46% ceph::buffer::create
| | | + 0.46% ceph::buffer::create_aligned
| | | + 0.46% ceph::buffer::create_aligned_in_mempool
| | | + 0.46% create
| | + 0.46% BlueStore::_txc_add_transaction
| | + 0.46% BlueStore::_write
| | + 0.46% BlueStore::_do_write
| | + 0.46% BlueStore::_do_write_data
| | + 0.46% BlueStore::_do_write_small
| | + 0.46% BlueStore::ExtentMap::seek_lextent
| | + 0.46% lower_bound
| | + 0.46% lower_bound<BlueStore::Extent, std::less<BlueStore::Extent> >
| | + 0.46% lower_bound<BlueStore::Extent, boost::intrusive::detail::key_nodeptr_comp<std::less<BlueStore::Extent>, boost::intrusive::bhtraits<BlueStore::Extent, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 3u>, boost::move_detail::identity<BlueStore::Extent> > >
| | + 0.46% lower_bound_loop<BlueStore::Extent, boost::intrusive::detail::key_nodeptr_comp<std::less<BlueStore::Extent>, boost::intrusive::bhtraits<BlueStore::Extent, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 3u>, boost::move_detail::identity<BlueStore::Extent> > >
| | + 0.46% get_right
| + 0.46% tc_new
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 68 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.46% __pthread_mutex_cond_lock
| + 0.46% _L_cond_lock_789
| + 0.46% __lll_lock_wait
+ 1.83% run
| + 1.83% PGOpItem::run
| + 1.83% OSD::dequeue_op
| + 1.83% PrimaryLogPG::do_request
| + 1.83% PrimaryLogPG::do_op
| + 1.83% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::calc_trim_to
| | + 1.37% size
| | + 1.37% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.37% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.46% operator++
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_omap_setkeys
| + 0.46% RocksDBStore::RocksDBTransactionImpl::set
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 69 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.17% WaitInterval
| + 98.17% WaitUntil
| + 98.17% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.83% run
+ 1.83% PGOpItem::run
+ 1.83% OSD::dequeue_op
+ 1.83% PrimaryLogPG::do_request
+ 1.83% PrimaryLogPG::do_op
+ 1.83% PrimaryLogPG::execute_ctx
+ 0.91% PrimaryLogPG::issue_repop
| + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.91% PrimaryLogPG::queue_transactions
| + 0.91% queue_transactions
| + 0.91% BlueStore::queue_transactions
| + 0.91% BlueStore::_txc_state_proc
| + 0.46% log_state_latency
| | + 0.46% ceph_clock_now
| + 0.46% BlueStore::_txc_finish_io
| + 0.46% operator--
| + 0.46% get_previous
+ 0.91% PrimaryLogPG::calc_trim_to
+ 0.91% size
+ 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% operator++
Thread: 70 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.54% WaitInterval
| + 99.54% WaitUntil
| + 99.54% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 71 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.83% run
| + 1.83% PGOpItem::run
| + 1.83% OSD::dequeue_op
| + 1.83% PrimaryLogPG::do_request
| + 1.83% PrimaryLogPG::do_op
| + 1.83% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::issue_repop
| | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 1.37% PrimaryLogPG::queue_transactions
| | + 1.37% queue_transactions
| | + 1.37% BlueStore::queue_transactions
| | + 0.91% BlueStore::_txc_add_transaction
| | | + 0.91% BlueStore::_write
| | | + 0.91% BlueStore::_do_write
| | | + 0.46% BlueStore::ExtentMap::fault_range
| | | | + 0.46% seek_shard
| | | + 0.46% BlueStore::ExtentMap::compress_extent_map
| | | + 0.46% operator++
| | | + 0.46% boost::intrusive::bstree_algorithms_base<boost::intrusive::rbtree_node_traits<void*, true> >::next_node
| | | + 0.46% minimum
| | + 0.46% BlueStore::_txc_write_nodes
| | + 0.46% BlueStore::ExtentMap::update
| | + 0.46% BlueStore::ExtentMap::encode_some
| | + 0.46% lower_bound
| | + 0.46% lower_bound<BlueStore::Extent, std::less<BlueStore::Extent> >
| | + 0.46% lower_bound<BlueStore::Extent, boost::intrusive::detail::key_nodeptr_comp<std::less<BlueStore::Extent>, boost::intrusive::bhtraits<BlueStore::Extent, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 3u>, boost::move_detail::identity<BlueStore::Extent> > >
| | + 0.46% lower_bound_loop<BlueStore::Extent, boost::intrusive::detail::key_nodeptr_comp<std::less<BlueStore::Extent>, boost::intrusive::bhtraits<BlueStore::Extent, boost::intrusive::rbtree_node_traits<void*, true>, (boost::intrusive::link_mode_type)1, boost::intrusive::dft_tag, 3u>, boost::move_detail::identity<BlueStore::Extent> > >
| | + 0.46% get_right
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 72 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.89% WaitInterval
| + 95.89% WaitUntil
| + 95.89% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.65% run
| + 3.65% PGOpItem::run
| + 3.65% OSD::dequeue_op
| + 3.65% PrimaryLogPG::do_request
| + 3.65% PrimaryLogPG::do_op
| + 3.65% PrimaryLogPG::execute_ctx
| + 2.28% PrimaryLogPG::calc_trim_to
| | + 2.28% size
| | + 2.28% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 2.28% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% PrimaryLogPG::issue_repop
| | + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.46% PrimaryLogPG::queue_transactions
| | | + 0.46% queue_transactions
| | | + 0.46% BlueStore::queue_transactions
| | | + 0.46% BlueStore::_txc_state_proc
| | | + 0.46% log_state_latency
| | | + 0.46% ceph_clock_now
| | | + 0.46% clock_gettime
| | + 0.46% PrimaryLogPG::log_operation
| | + 0.46% PG::append_log
| | + 0.46% PG::write_if_dirty
| | + 0.46% PG::prepare_write_info
| | + 0.46% PG::_prepare_write_info
| | + 0.46% encode
| | + 0.46% pg_fast_info_t::encode
| | + 0.46% encode
| | + 0.46% encode_raw<ceph_le<unsigned long long> >
| | + 0.46% ceph::buffer::list::append
| | + 0.46% ceph::buffer::ptr::append
| | + 0.46% ceph::buffer::ptr::unused_tail_length
| + 0.46% PrimaryLogPG::new_repop
| + 0.46% RepGather
| + 0.46% hobject_t::hobject_t
| + 0.46% object_t
| + 0.46% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| + 0.46% _M_grab
| + 0.46% _M_refcopy
| + 0.46% __atomic_add_dispatch
+ 0.46% Mutex::Unlock
+ 0.46% pthread_mutex_unlock
+ 0.46% _L_unlock_713
+ 0.46% __lll_unlock_wake
Thread: 73 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.46% __pthread_mutex_cond_lock
| + 0.46% _L_cond_lock_789
| + 0.46% __lll_lock_wait
+ 1.83% run
| + 1.83% PGOpItem::run
| + 1.83% OSD::dequeue_op
| + 1.83% PrimaryLogPG::do_request
| + 1.83% PrimaryLogPG::do_op
| + 1.83% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::issue_repop
| | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::log_operation
| | | + 0.91% PG::append_log
| | | + 0.46% ~shared_ptr
| | | | + 0.46% ~__shared_ptr
| | | | + 0.46% ~__shared_count
| | | | + 0.46% std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release
| | | + 0.46% PGLog::trim
| | | + 0.46% PGLog::IndexedLog::trim
| | | + 0.46% pop_front
| | | + 0.46% _M_erase
| | | + 0.46% destroy
| | | + 0.46% ~_List_node
| | | + 0.46% ~pg_log_entry_t
| | | + 0.46% ~list
| | | + 0.46% ~ptr
| | | + 0.46% ceph::buffer::ptr::release
| | + 0.46% PrimaryLogPG::queue_transactions
| | + 0.46% queue_transactions
| | + 0.46% BlueStore::queue_transactions
| | + 0.46% BlueStore::_txc_state_proc
| | + 0.46% BlueStore::_txc_finish_io
| | + 0.46% BlueStore::_txc_state_proc
| | + 0.46% push_back
| | + 0.46% construct<BlueStore::TransContext*, BlueStore::TransContext* const&>
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 74 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.89% WaitInterval
| + 95.89% WaitUntil
| + 95.89% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.65% run
| + 3.65% PGOpItem::run
| + 3.65% OSD::dequeue_op
| + 3.65% PrimaryLogPG::do_request
| + 3.65% PrimaryLogPG::do_op
| + 3.20% PrimaryLogPG::execute_ctx
| | + 1.83% PrimaryLogPG::issue_repop
| | | + 1.83% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 0.91% PrimaryLogPG::queue_transactions
| | | | + 0.91% queue_transactions
| | | | + 0.91% BlueStore::queue_transactions
| | | | + 0.46% BlueStore::_txc_write_nodes
| | | | | + 0.46% BlueStore::ExtentMap::update
| | | | | + 0.46% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 0.46% operator()
| | | | | + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.46% combine_strings
| | | | | + 0.46% std::string::append
| | | | | + 0.46% std::string::reserve
| | | | | + 0.46% _M_dispose
| | | | + 0.46% BlueStore::_txc_add_transaction
| | | | + 0.46% BlueStore::_setattrs
| | | | + 0.46% ceph::buffer::ptr::reassign_to_mempool
| | | | + 0.46% reassign_to_mempool
| | | + 0.91% PrimaryLogPG::log_operation
| | | + 0.91% PG::append_log
| | | + 0.91% PG::write_if_dirty
| | | + 0.46% ~map
| | | + 0.46% ~_Rb_tree
| | | + 0.46% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | + 0.46% _M_destroy_node
| | | + 0.46% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| | | + 0.46% ~_Rb_tree_node
| | | + 0.46% ~pair
| | | + 0.46% ~basic_string
| | | + 0.46% tc_delete
| | + 1.37% PrimaryLogPG::calc_trim_to
| | + 1.37% size
| | + 1.37% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.37% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% finish_decode
| + 0.46% decode
| + 0.46% decode
| + 0.46% decode
| + 0.46% ceph::buffer::list::iterator::copy
| + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| + 0.46% std::string::append
| + 0.46% std::string::reserve
| + 0.46% std::string::_Rep::_M_clone
| + 0.46% std::string::_Rep::_S_create
| + 0.46% allocate
| + 0.46% tc_new
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 75 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.89% WaitInterval
| + 95.89% WaitUntil
| + 95.89% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.65% run
| + 3.65% PGOpItem::run
| + 3.65% OSD::dequeue_op
| + 3.65% PrimaryLogPG::do_request
| + 3.65% PrimaryLogPG::do_op
| + 3.65% PrimaryLogPG::execute_ctx
| + 3.20% PrimaryLogPG::calc_trim_to
| | + 3.20% size
| | + 3.20% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 3.20% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_omap_setkeys
| + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| + 0.46% RocksDBStore::RocksDBTransactionImpl::put_bat
| + 0.46% rocksdb::WriteBatch::Put
| + 0.46% rocksdb::WriteBatchInternal::Put
| + 0.46% PutLengthPrefixedSliceParts
| + 0.46% std::string::append
| + 0.46% _M_disjunct
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 76 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.46% __pthread_mutex_cond_lock
| + 0.46% _L_cond_lock_789
| + 0.46% __lll_lock_wait
+ 1.37% PG::lock
| + 1.37% Mutex::Lock
| + 1.37% pthread_mutex_lock
| + 1.37% _L_lock_812
| + 1.37% __lll_lock_wait
+ 0.91% run
+ 0.91% PGOpItem::run
+ 0.91% OSD::dequeue_op
+ 0.91% PrimaryLogPG::do_request
+ 0.91% PrimaryLogPG::do_op
+ 0.91% PrimaryLogPG::execute_ctx
+ 0.91% PrimaryLogPG::calc_trim_to
+ 0.91% size
+ 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 77 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.63% WaitInterval
| + 98.63% WaitUntil
| + 98.63% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.37% run
+ 1.37% PGOpItem::run
+ 1.37% OSD::dequeue_op
+ 1.37% PrimaryLogPG::do_request
+ 1.37% PrimaryLogPG::do_op
+ 1.37% PrimaryLogPG::execute_ctx
+ 0.91% PrimaryLogPG::calc_trim_to
| + 0.91% size
| + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% insert<std::_Rb_tree_const_iterator<pg_shard_t> >
+ 0.46% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_insert_unique<std::_Rb_tree_const_iterator<pg_shard_t> >
+ 0.46% _M_insert_unique_<pg_shard_t const&>
+ 0.46% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_insert_<pg_shard_t const&>
+ 0.46% _M_create_node<pg_shard_t const&>
+ 0.46% _M_get_node
+ 0.46% allocate
+ 0.46% tc_new
+ 0.46% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
+ 0.46% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
+ 0.46% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
Thread: 78 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.63% WaitInterval
| + 98.63% WaitUntil
| + 98.63% pthread_cond_timedwait@@GLIBC_2.3.2
+ 0.91% run
| + 0.91% PGOpItem::run
| + 0.91% OSD::dequeue_op
| + 0.91% PrimaryLogPG::do_request
| + 0.91% PrimaryLogPG::do_op
| + 0.91% PrimaryLogPG::execute_ctx
| + 0.46% PrimaryLogPG::issue_repop
| | + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.46% PrimaryLogPG::queue_transactions
| | + 0.46% queue_transactions
| | + 0.46% BlueStore::queue_transactions
| | + 0.46% BlueStore::_txc_add_transaction
| | + 0.46% vector
| | + 0.46% _Vector_base
| | + 0.46% _M_create_storage
| | + 0.46% _M_allocate
| | + 0.46% allocate
| | + 0.46% tc_new
| + 0.46% PrimaryLogPG::calc_trim_to
| + 0.46% size
| + 0.46% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 79 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.37% run
| + 1.37% PGOpItem::run
| + 1.37% OSD::dequeue_op
| + 1.37% PrimaryLogPG::do_request
| + 1.37% PrimaryLogPG::do_op
| + 1.37% PrimaryLogPG::execute_ctx
| + 0.91% PrimaryLogPG::calc_trim_to
| | + 0.91% size
| | + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% decode_attrset
| + 0.46% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| + 0.46% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| + 0.46% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| + 0.46% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| + 0.46% decode
| + 0.46% decode<std::basic_string<char> >
| + 0.46% denc<std::basic_string<char>, denc_traits<std::basic_string<char>, void>, _denc::has_legacy_denc<std::basic_string<char>, void> >
| + 0.46% decode
| + 0.46% decode
| + 0.46% ceph::buffer::list::iterator::copy
| + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| + 0.46% std::string::append
| + 0.46% _ZNSs7reserveEm@plt
+ 0.91% PG::lock
+ 0.91% Mutex::Lock
+ 0.91% pthread_mutex_lock
+ 0.91% _L_lock_812
+ 0.91% __lll_lock_wait
Thread: 80 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.80% WaitInterval
| + 96.80% WaitUntil
| + 96.80% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.74% run
| + 2.74% PGOpItem::run
| + 2.74% OSD::dequeue_op
| + 2.74% PrimaryLogPG::do_request
| + 2.74% PrimaryLogPG::do_op
| + 2.74% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::issue_repop
| | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | | + 0.91% queue_transactions
| | | + 0.91% BlueStore::queue_transactions
| | | + 0.46% BlueStore::_txc_write_nodes
| | | | + 0.46% BlueStore::ExtentMap::update
| | | + 0.46% BlueStore::_txc_add_transaction
| | | + 0.46% ~ghobject_t
| | | + 0.46% hobject_t::~hobject_t
| | | + 0.46% ~object_t
| | | + 0.46% ~basic_string
| | | + 0.46% std::string::_Rep::_M_dispose
| | + 0.46% generate_transaction
| | + 0.46% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.46% operator()
| | + 0.46% operator=
| | + 0.46% make_shareable
| | + 0.46% ceph::buffer::ptr::make_shareable
| | + 0.46% ceph::buffer::raw::is_shareable
| + 1.37% PrimaryLogPG::calc_trim_to
| + 1.37% size
| + 1.37% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 1.37% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 81 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.26% WaitInterval
| + 97.26% WaitUntil
| + 97.26% pthread_cond_timedwait@@GLIBC_2.3.2
+ 2.28% run
| + 2.28% PGOpItem::run
| + 2.28% OSD::dequeue_op
| + 2.28% PrimaryLogPG::do_request
| + 2.28% PrimaryLogPG::do_op
| + 2.28% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::calc_trim_to
| | + 1.37% size
| | + 1.37% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.37% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% PrimaryLogPG::issue_repop
| + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| | + 0.46% queue_transactions
| | + 0.46% BlueStore::queue_transactions
| | + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.46% get_cf_handle
| | + 0.46% find
| | + 0.46% std::_Hashtable<std::string, std::pair<std::string const, void*>, std::allocator<std::pair<std::string const, void*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find
| | + 0.46% _M_find_node
| | + 0.46% std::_Hashtable<std::string, std::pair<std::string const, void*>, std::allocator<std::pair<std::string const, void*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node
| | + 0.46% _M_equals
| | + 0.46% _S_equals
| | + 0.46% operator()
| | + 0.46% operator==<char>
| | + 0.46% compare
| + 0.46% PrimaryLogPG::log_operation
| + 0.46% PG::append_log
| + 0.46% PGLog::IndexedLog::trim
| + 0.46% pop_front
| + 0.46% _M_erase
| + 0.46% _M_put_node
| + 0.46% deallocate
| + 0.46% tc_deletearray
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 82 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.89% WaitInterval
| + 95.89% WaitUntil
| + 95.89% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.20% run
| + 3.20% PGOpItem::run
| + 3.20% OSD::dequeue_op
| + 3.20% PrimaryLogPG::do_request
| + 3.20% PrimaryLogPG::do_op
| + 2.74% PrimaryLogPG::execute_ctx
| | + 1.83% PrimaryLogPG::issue_repop
| | | + 1.83% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 1.83% PrimaryLogPG::queue_transactions
| | | + 1.83% queue_transactions
| | | + 1.83% BlueStore::queue_transactions
| | | + 1.37% BlueStore::_txc_add_transaction
| | | | + 0.91% BlueStore::_write
| | | | | + 0.91% BlueStore::_do_write
| | | | | + 0.46% BlueStore::_do_write_data
| | | | | | + 0.46% BlueStore::_do_write_small
| | | | | | + 0.46% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | | | | | + 0.46% operator()
| | | | | + 0.46% BlueStore::ExtentMap::fault_range
| | | | | + 0.46% seek_shard
| | | | + 0.46% begin
| | | | + 0.46% iterator
| | | | + 0.46% ceph::buffer::list::get_contiguous
| | | | + 0.46% ceph::buffer::list::rebuild
| | | | + 0.46% ceph::buffer::create
| | | | + 0.46% ceph::buffer::create_aligned
| | | | + 0.46% ceph::buffer::create_aligned_in_mempool
| | | | + 0.46% create
| | | | + 0.46% tc_posix_memalign
| | | + 0.46% BlueStore::_txc_write_nodes
| | | + 0.46% BlueStore::ExtentMap::update
| | | + 0.46% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | + 0.46% operator()
| | | + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.46% get_cf_handle
| | | + 0.46% find
| | | + 0.46% std::_Hashtable<std::string, std::pair<std::string const, void*>, std::allocator<std::pair<std::string const, void*> >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find
| | | + 0.46% _M_bucket_index
| | | + 0.46% _M_bucket_index
| | | + 0.46% operator()
| | + 0.91% PrimaryLogPG::calc_trim_to
| | + 0.91% size
| | + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% OSDService::check_failsafe_full
| + 0.46% OSDService::_check_full
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_812
| + 0.46% __lll_lock_wait
+ 0.91% PG::lock
+ 0.91% Mutex::Lock
+ 0.91% pthread_mutex_lock
+ 0.91% _L_lock_812
+ 0.91% __lll_lock_wait
Thread: 83 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.35% WaitInterval
| + 96.35% WaitUntil
| + 96.35% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.65% run
+ 3.65% PGOpItem::run
+ 3.65% OSD::dequeue_op
+ 3.65% PrimaryLogPG::do_request
+ 3.65% PrimaryLogPG::do_op
+ 3.65% PrimaryLogPG::execute_ctx
+ 2.74% PrimaryLogPG::calc_trim_to
| + 2.74% size
| + 2.74% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 2.74% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::finish_ctx
| + 0.46% encode
| + 0.46% object_info_t::encode
| + 0.46% object_locator_t::~object_locator_t
| + 0.46% ~basic_string
| + 0.46% std::string::_Rep::_M_dispose
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% BlueStore::_txc_add_transaction
+ 0.46% decode_attrset_bl
+ 0.46% decode_str_str_map_to_bl
+ 0.46% ceph::buffer::list::iterator::copy
+ 0.46% ceph::buffer::list::iterator_impl<false>::copy
+ 0.46% ceph::buffer::list::append
+ 0.46% push_back
+ 0.46% push_back
+ 0.46% _M_insert<ceph::buffer::ptr>
+ 0.46% _M_create_node<ceph::buffer::ptr>
+ 0.46% _M_get_node
+ 0.46% allocate
+ 0.46% tc_new
Thread: 84 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.89% WaitInterval
| + 95.89% WaitUntil
| + 95.89% pthread_cond_timedwait@@GLIBC_2.3.2
+ 4.11% run
+ 4.11% PGOpItem::run
+ 4.11% OSD::dequeue_op
+ 4.11% PrimaryLogPG::do_request
+ 4.11% PrimaryLogPG::do_op
+ 4.11% PrimaryLogPG::execute_ctx
+ 2.28% PrimaryLogPG::issue_repop
| + 2.28% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 1.37% PrimaryLogPG::log_operation
| | + 1.37% PG::append_log
| | + 0.46% operator>
| | | + 0.46% cmp
| | + 0.46% PG::write_if_dirty
| | | + 0.46% PGLog::write_log_and_missing
| | | + 0.46% PGLog::_write_log_and_missing
| | | + 0.46% pg_log_entry_t::get_key_name
| | | + 0.46% eversion_t::get_key_name
| | | + 0.46% resize
| | | + 0.46% std::string::resize
| | | + 0.46% size
| | + 0.46% PG::add_log_entry
| | + 0.46% add
| | + 0.46% PGLog::IndexedLog::add
| | + 0.46% push_back
| | + 0.46% _M_insert<pg_log_entry_t const&>
| | + 0.46% _M_create_node<pg_log_entry_t const&>
| | + 0.46% construct<std::_List_node<pg_log_entry_t>, pg_log_entry_t const&>
| | + 0.46% _List_node<pg_log_entry_t const&>
| | + 0.46% pg_log_entry_t::pg_log_entry_t
| + 0.46% push_back
| | + 0.46% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::emplace_back<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| | + 0.46% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::_M_emplace_back_aux<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_setattrs
| + 0.46% write_onode
| + 0.46% insert
| + 0.46% std::_Rb_tree<boost::intrusive_ptr<BlueStore::Onode>, boost::intrusive_ptr<BlueStore::Onode>, std::_Identity<boost::intrusive_ptr<BlueStore::Onode> >, std::less<boost::intrusive_ptr<BlueStore::Onode> >, std::allocator<boost::intrusive_ptr<BlueStore::Onode> > >::_M_insert_unique<boost::intrusive_ptr<BlueStore::Onode> const&>
| + 0.46% _M_insert_<boost::intrusive_ptr<BlueStore::Onode> const&>
| + 0.46% _M_create_node<boost::intrusive_ptr<BlueStore::Onode> const&>
| + 0.46% _M_get_node
| + 0.46% allocate
+ 1.83% PrimaryLogPG::calc_trim_to
+ 1.83% size
+ 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 85 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 94.98% WaitInterval
| + 94.98% WaitUntil
| + 94.98% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.65% run
| + 3.65% PGOpItem::run
| + 3.65% OSD::dequeue_op
| + 3.65% PrimaryLogPG::do_request
| + 3.65% PrimaryLogPG::do_op
| + 3.65% PrimaryLogPG::execute_ctx
| + 2.28% PrimaryLogPG::calc_trim_to
| | + 2.28% size
| | + 2.28% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 2.28% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% PrimaryLogPG::issue_repop
| | + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | + 0.91% queue_transactions
| | + 0.91% BlueStore::queue_transactions
| | + 0.91% BlueStore::_txc_add_transaction
| | + 0.91% decode_attrset
| | + 0.91% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | + 0.91% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | + 0.91% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | + 0.46% insert<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% emplace_hint<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::string const, ceph::buffer::ptr> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >::_M_emplace_hint_unique<std::pair<std::string, ceph::buffer::ptr> >(std::_Rb_tree_const_iterator<std::pair<std::string const, ceph::buffer::ptr> >, std::pair<std::string, ceph::buffer::ptr>&&)
| | | + 0.46% _M_create_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | + 0.46% _M_get_node
| | | + 0.46% allocate
| | | + 0.46% tc_new
| | + 0.46% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | + 0.46% decode
| | + 0.46% decode<std::basic_string<char> >
| | + 0.46% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | + 0.46% decode
| | + 0.46% decode
| | + 0.46% ceph::buffer::list::iterator::copy
| | + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| + 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_870
| + 0.46% __lll_lock_wait
+ 0.91% PG::lock
| + 0.91% Mutex::Lock
| + 0.91% pthread_mutex_lock
| + 0.91% _L_lock_812
| + 0.91% __lll_lock_wait
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 86 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 98.63% WaitInterval
| + 98.63% WaitUntil
| + 98.63% pthread_cond_timedwait@@GLIBC_2.3.2
+ 1.37% run
+ 1.37% PGOpItem::run
+ 1.37% OSD::dequeue_op
+ 1.37% PrimaryLogPG::do_request
+ 1.37% PrimaryLogPG::do_op
+ 1.37% PrimaryLogPG::execute_ctx
+ 0.91% PrimaryLogPG::calc_trim_to
| + 0.91% size
| + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% operator++
+ 0.46% PrimaryLogPG::issue_repop
+ 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
+ 0.46% queue_transactions
+ 0.46% BlueStore::queue_transactions
+ 0.46% BlueStore::_txc_add_transaction
+ 0.46% BlueStore::_setattrs
+ 0.46% operator[]
+ 0.46% lower_bound
+ 0.46% lower_bound
+ 0.46% std::_Rb_tree<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> >, std::less<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > >::_M_lower_bound
+ 0.46% operator()
+ 0.46% operator< <char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4u, char> >
+ 0.46% compare
+ 0.46% size
Thread: 87 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 96.35% WaitInterval
| + 96.35% WaitUntil
| + 96.35% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.20% run
| + 3.20% PGOpItem::run
| + 3.20% OSD::dequeue_op
| + 3.20% PrimaryLogPG::do_request
| + 3.20% PrimaryLogPG::do_op
| + 3.20% PrimaryLogPG::execute_ctx
| + 1.37% PrimaryLogPG::issue_repop
| | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | | + 0.91% queue_transactions
| | | + 0.91% BlueStore::queue_transactions
| | | + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.46% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.46% rocksdb::WriteBatch::Put
| | | | + 0.46% rocksdb::WriteBatchInternal::Put
| | | + 0.46% BlueStore::_txc_add_transaction
| | | + 0.46% BlueStore::_setattrs
| | | + 0.46% operator[]
| | | + 0.46% lower_bound
| | | + 0.46% lower_bound
| | | + 0.46% std::_Rb_tree<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> >, std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> >, std::less<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > const, ceph::buffer::ptr> > >::_M_lower_bound
| | | + 0.46% operator()
| | | + 0.46% operator< <char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4u, char> >
| | | + 0.46% compare
| | | + 0.46% compare
| | + 0.46% generate_transaction
| | + 0.46% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.46% operator()
| | + 0.46% ObjectStore::Transaction::setattrs
| | + 0.46% ObjectStore::Transaction::_get_next_op
| | + 0.46% ceph::buffer::ptr::ptr
| | + 0.46% ceph::buffer::create
| | + 0.46% ceph::buffer::create_aligned
| | + 0.46% ceph::buffer::create_aligned_in_mempool
| | + 0.46% create
| | + 0.46% raw_combined
| | + 0.46% raw
| | + 0.46% mempool::pool_t::adjust_count
| | + 0.46% operator+=
| + 1.37% PrimaryLogPG::calc_trim_to
| | + 1.37% size
| | + 1.37% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.37% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.46% operator++
| + 0.46% PrimaryLogPG::prepare_transaction
| + 0.46% PrimaryLogPG::do_osd_ops
| + 0.46% get_val<bool>
| + 0.46% md_config_t::get_val_generic
| + 0.46% Locker
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
| + 0.46% _L_lock_870
| + 0.46% __lll_lock_wait
+ 0.46% PG::lock
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 88 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.89% WaitInterval
| + 95.89% WaitUntil
| + 95.89% pthread_cond_timedwait@@GLIBC_2.3.2
+ 4.11% run
+ 4.11% PGOpItem::run
+ 4.11% OSD::dequeue_op
+ 4.11% PrimaryLogPG::do_request
+ 4.11% PrimaryLogPG::do_op
+ 3.65% PrimaryLogPG::execute_ctx
| + 1.83% PrimaryLogPG::issue_repop
| | + 1.83% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::queue_transactions
| | | + 0.91% queue_transactions
| | | + 0.91% BlueStore::queue_transactions
| | | + 0.46% BlueStore::_txc_write_nodes
| | | | + 0.46% BlueStore::ExtentMap::update
| | | | + 0.46% BlueStore::ExtentMap::encode_some
| | | | + 0.46% get_contiguous_appender
| | | | + 0.46% ceph::buffer::list::contiguous_appender::contiguous_appender
| | | + 0.46% BlueStore::_txc_add_transaction
| | | + 0.46% decode_bl
| | | + 0.46% decode
| | | + 0.46% ceph::buffer::list::iterator::copy
| | | + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| | | + 0.46% ceph::buffer::list::append
| | | + 0.46% push_back
| | | + 0.46% push_back
| | | + 0.46% _M_insert<ceph::buffer::ptr>
| | | + 0.46% _M_create_node<ceph::buffer::ptr>
| | | + 0.46% construct<std::_List_node<ceph::buffer::ptr>, ceph::buffer::ptr>
| | + 0.91% PrimaryLogPG::log_operation
| | + 0.91% PG::append_log
| | + 0.46% PGLog::IndexedLog::trim
| | | + 0.46% pop_front
| | | + 0.46% _M_erase
| | | + 0.46% _M_put_node
| | | + 0.46% deallocate
| | | + 0.46% operator-=
| | + 0.46% PG::write_if_dirty
| | + 0.46% PG::prepare_write_info
| | + 0.46% PG::_prepare_write_info
| | + 0.46% encode
| | + 0.46% pg_fast_info_t::encode
| | + 0.46% encode
| | + 0.46% encode_raw<unsigned char>
| | + 0.46% ceph::buffer::list::append
| | + 0.46% create
| | + 0.46% raw_combined
| | + 0.46% raw
| | + 0.46% mempool::pool_t::adjust_count
| + 1.83% PrimaryLogPG::calc_trim_to
| + 1.83% size
| + 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.46% std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream
+ 0.46% basic_ostream
+ 0.46% std::basic_ios<char, std::char_traits<char> >::init
+ 0.46% std::basic_ios<char, std::char_traits<char> >::_M_cache_locale
+ 0.46% std::has_facet<std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > > >
Thread: 89 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 97.72% WaitInterval
| + 97.72% WaitUntil
| + 97.72% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.46% __pthread_mutex_cond_lock
| + 0.46% _L_cond_lock_789
| + 0.46% __lll_lock_wait
+ 2.28% run
+ 2.28% PGOpItem::run
+ 2.28% OSD::dequeue_op
+ 2.28% PrimaryLogPG::do_request
+ 2.28% PrimaryLogPG::do_op
+ 2.28% PrimaryLogPG::execute_ctx
+ 1.37% PrimaryLogPG::calc_trim_to
| + 1.37% size
| + 1.37% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 1.37% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.91% PrimaryLogPG::issue_repop
+ 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
+ 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_add_transaction
| + 0.46% BlueStore::_omap_setkeys
| + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| + 0.46% RocksDBStore::RocksDBTransactionImpl::put_bat
| + 0.46% rocksdb::WriteBatch::Put
| + 0.46% rocksdb::WriteBatchInternal::Put
| + 0.46% PutLengthPrefixedSlice
| + 0.46% std::string::append
| + 0.46% _M_copy
| + 0.46% copy
| + 0.46% __memcpy_ssse3
+ 0.46% PrimaryLogPG::log_operation
+ 0.46% PG::append_log
+ 0.46% PG::update_snap_map
+ 0.46% get_transaction
+ 0.46% OSTransaction
+ 0.46% ghobject_t
+ 0.46% hobject_t::hobject_t
+ 0.46% object_t
+ 0.46% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
+ 0.46% _M_grab
+ 0.46% _M_refcopy
+ 0.46% __atomic_add_dispatch
+ 0.46% __atomic_add
Thread: 90 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.43% WaitInterval
| + 95.43% WaitUntil
| + 95.43% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.20% run
| + 3.20% PGOpItem::run
| + 3.20% OSD::dequeue_op
| + 3.20% PrimaryLogPG::do_request
| + 3.20% PrimaryLogPG::do_op
| + 2.74% PrimaryLogPG::execute_ctx
| | + 1.37% PrimaryLogPG::issue_repop
| | | + 1.37% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 0.91% PrimaryLogPG::log_operation
| | | | + 0.91% PG::append_log
| | | | + 0.46% PGLog::trim
| | | | | + 0.46% PGLog::IndexedLog::trim
| | | | | + 0.46% pop_front
| | | | | + 0.46% _M_erase
| | | | | + 0.46% destroy
| | | | | + 0.46% ~_List_node
| | | | | + 0.46% ~pg_log_entry_t
| | | | | + 0.46% ~hobject_t
| | | | | + 0.46% ~object_t
| | | | | + 0.46% ~basic_string
| | | | | + 0.46% std::string::_Rep::_M_dispose
| | | | + 0.46% PG::write_if_dirty
| | | | + 0.46% PGLog::write_log_and_missing
| | | | + 0.46% PGLog::_write_log_and_missing
| | | + 0.46% PrimaryLogPG::queue_transactions
| | | + 0.46% queue_transactions
| | | + 0.46% BlueStore::queue_transactions
| | | + 0.46% BlueStore::_txc_write_nodes
| | | + 0.46% BlueStore::ExtentMap::update
| | | + 0.46% BlueStore::ExtentMap::encode_some
| | | + 0.46% denc<unsigned char, denc_traits<unsigned char, void> >
| | | + 0.46% encode
| | | + 0.46% ceph::buffer::list::contiguous_appender::append
| | | + 0.46% maybe_inline_memcpy
| | + 0.91% PrimaryLogPG::calc_trim_to
| | | + 0.91% size
| | | + 0.91% distance<std::_List_const_iterator<pg_log_entry_t> >
| | | + 0.91% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.46% PrimaryLogPG::prepare_transaction
| | + 0.46% PrimaryLogPG::do_osd_ops
| | + 0.46% get_val<bool>
| | + 0.46% md_config_t::get_val_generic
| | + 0.46% Locker
| | + 0.46% Mutex::Lock
| | + 0.46% pthread_mutex_lock
| | + 0.46% _L_lock_870
| | + 0.46% __lll_lock_wait
| + 0.46% OSDService::check_failsafe_full
| + 0.46% OSDService::_check_full
| + 0.46% ~Locker
| + 0.46% Mutex::Unlock
| + 0.46% pthread_mutex_unlock
| + 0.46% _L_unlock_713
| + 0.46% __lll_unlock_wake
+ 0.91% PG::lock
| + 0.91% Mutex::Lock
| + 0.91% pthread_mutex_lock
| + 0.91% _L_lock_812
| + 0.91% __lll_lock_wait
+ 0.46% Mutex::Lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 91 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 95.43% WaitInterval
| + 95.43% WaitUntil
| + 95.43% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.20% run
| + 3.20% PGOpItem::run
| + 3.20% OSD::dequeue_op
| + 3.20% PrimaryLogPG::do_request
| + 3.20% PrimaryLogPG::do_op
| + 2.74% PrimaryLogPG::execute_ctx
| | + 1.83% PrimaryLogPG::calc_trim_to
| | | + 1.83% size
| | | + 1.83% distance<std::_List_const_iterator<pg_log_entry_t> >
| | | + 1.83% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | | + 0.46% operator++
| | + 0.91% PrimaryLogPG::issue_repop
| | + 0.91% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 0.91% PrimaryLogPG::log_operation
| | + 0.91% PG::append_log
| | + 0.46% PGLog::IndexedLog::trim
| | | + 0.46% pop_front
| | | + 0.46% _M_erase
| | | + 0.46% std::__detail::_List_node_base::_M_unhook
| | + 0.46% PG::write_if_dirty
| | + 0.46% PGLog::write_log_and_missing
| | + 0.46% PGLog::_write_log_and_missing
| | + 0.46% insert
| | + 0.46% std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_M_insert_unique<std::string>(std::string&&)
| | + 0.46% _M_insert_<std::basic_string<char> >
| | + 0.46% _M_create_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >
| | + 0.46% _M_get_node
| | + 0.46% allocate
| | + 0.46% tc_new
| + 0.46% PrimaryLogPG::maybe_await_blocked_head
| + 0.46% SharedLRU<hobject_t, ObjectContext, std::less<hobject_t>, std::hash<hobject_t> >::lookup
| + 0.46% find
| + 0.46% std::_Rb_tree<hobject_t, std::pair<hobject_t const, std::pair<std::weak_ptr<ObjectContext>, ObjectContext*> >, std::_Select1st<std::pair<hobject_t const, std::pair<std::weak_ptr<ObjectContext>, ObjectContext*> > >, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, std::pair<std::weak_ptr<ObjectContext>, ObjectContext*> > > >::find
| + 0.46% _M_lower_bound
+ 0.91% PG::lock
| + 0.91% Mutex::Lock
| + 0.91% pthread_mutex_lock
| + 0.91% _L_lock_812
| + 0.91% __lll_lock_wait
+ 0.46% ~OpQueueItem
+ 0.46% ~unique_ptr
+ 0.46% operator()
+ 0.46% PGOpItem::~PGOpItem
+ 0.46% ~PGOpItem
+ 0.46% ~intrusive_ptr
+ 0.46% intrusive_ptr_release
+ 0.46% put
Thread: 92 (tp_osd_tp) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 94.98% WaitInterval
| + 94.98% WaitUntil
| + 94.98% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.65% run
| + 3.65% PGOpItem::run
| + 3.65% OSD::dequeue_op
| + 3.65% PrimaryLogPG::do_request
| + 3.65% PrimaryLogPG::do_op
| + 3.65% PrimaryLogPG::execute_ctx
| + 3.20% PrimaryLogPG::calc_trim_to
| | + 3.20% size
| | + 3.20% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 3.20% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.46% PrimaryLogPG::issue_repop
| + 0.46% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.46% PrimaryLogPG::queue_transactions
| + 0.46% queue_transactions
| + 0.46% BlueStore::queue_transactions
| + 0.46% BlueStore::_txc_write_nodes
| + 0.46% BlueStore::ExtentMap::update
| + 0.46% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| + 0.46% operator()
| + 0.46% RocksDBStore::RocksDBTransactionImpl::set
| + 0.46% combine_strings
| + 0.46% push_back
| + 0.46% std::string::reserve
| + 0.46% std::string::_Rep::_M_clone
| + 0.46% _M_copy
+ 0.91% PG::lock
| + 0.91% Mutex::Lock
| + 0.91% pthread_mutex_lock
| + 0.91% _L_lock_812
| + 0.91% __lll_lock_wait
+ 0.46% Mutex::Unlock
+ 0.46% pthread_mutex_unlock
+ 0.46% _L_unlock_713
+ 0.46% __lll_unlock_wake
Thread: 93 (tp_peering) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 94 (tp_peering) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 95 (safe_timer) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 96 (fn_anonymous) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% Finisher::finisher_thread_entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 97 (safe_timer) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 98 (ms_local) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
+ 100.00% DispatchQueue::run_local_delivery
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 99 (ms_dispatch) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::DispatchThread::entry
+ 100.00% DispatchQueue::entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 100 (ms_local) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
+ 100.00% DispatchQueue::run_local_delivery
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 101 (ms_dispatch) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::DispatchThread::entry
+ 100.00% DispatchQueue::entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 102 (ms_local) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
+ 100.00% DispatchQueue::run_local_delivery
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 103 (ms_dispatch) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::DispatchThread::entry
+ 100.00% DispatchQueue::entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 104 (ms_local) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
+ 100.00% DispatchQueue::run_local_delivery
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 105 (ms_dispatch) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::DispatchThread::entry
+ 100.00% DispatchQueue::entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 106 (ms_local) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
+ 100.00% DispatchQueue::run_local_delivery
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 107 (ms_dispatch) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::DispatchThread::entry
+ 100.00% DispatchQueue::entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 108 (ms_local) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
+ 100.00% DispatchQueue::run_local_delivery
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 109 (ms_dispatch) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::DispatchThread::entry
+ 100.00% DispatchQueue::entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 110 (ms_local) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::LocalDeliveryThread::entry
+ 100.00% DispatchQueue::run_local_delivery
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 111 (ms_dispatch) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% DispatchQueue::DispatchThread::entry
+ 100.00% DispatchQueue::entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 112 (bstore_mempool) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% BlueStore::MempoolThread::entry
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 113 (bstore_kv_final) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% BlueStore::KVFinalizeThread::entry
+ 100.00% BlueStore::_kv_finalize_thread
+ 89.04% std::condition_variable::wait
| + 89.04% __gthread_cond_wait
| + 89.04% pthread_cond_wait@@GLIBC_2.3.2
| + 0.46% __pthread_enable_asynccancel
+ 7.31% BlueStore::deferred_try_submit
| + 7.31% BlueStore::_deferred_submit_unlock
| + 4.57% KernelDevice::aio_submit
| | + 4.57% aio_queue_t::submit_batch
| | + 4.57% io_submit
| + 1.37% ceph::buffer::list::claim_append
| | + 1.37% make_shareable
| | + 1.37% ceph::buffer::ptr::make_shareable
| + 1.37% KernelDevice::aio_write
| + 0.91% push_back
| | + 0.91% _M_insert<aio_t>
| | + 0.91% _M_create_node<aio_t>
| | + 0.91% construct<std::_List_node<aio_t>, aio_t>
| | + 0.91% _List_node<aio_t>
| | + 0.91% aio_t
| | + 0.46% small_vector
| | | + 0.46% move_construct_impl
| | | + 0.46% assign<boost::move_iterator<iovec*> >
| | + 0.46% ceph::buffer::list::list(ceph::buffer::list&&)
| | + 0.46% clear
| | + 0.46% begin
| | + 0.46% ceph::buffer::list::iterator_impl<false>::iterator_impl
| + 0.46% pwritev
| + 0.46% io_prep_pwritev
+ 2.74% BlueStore::_txc_state_proc
| + 2.74% BlueStore::_txc_finish
| + 2.28% BlueStore::TransContext::~TransContext
| | + 2.28% ~TransContext
| | + 0.91% ~bluestore_deferred_transaction_t
| | | + 0.91% ~list
| | | + 0.91% ~_List_base
| | | + 0.91% std::_List_base<bluestore_deferred_op_t, std::allocator<bluestore_deferred_op_t> >::_M_clear
| | | + 0.91% destroy<std::_List_node<bluestore_deferred_op_t> >
| | | + 0.91% ~_List_node
| | | + 0.91% ~bluestore_deferred_op_t
| | | + 0.91% ~vector
| | | + 0.91% ~_Vector_base
| | | + 0.91% _M_deallocate
| | | + 0.91% deallocate
| | | + 0.91% tc_deletearray
| | | + 0.91% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.91% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.46% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.46% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | + 0.46% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | + 0.46% ~set
| | | + 0.46% ~_Rb_tree
| | | + 0.46% std::_Rb_tree<boost::intrusive_ptr<BlueStore::Onode>, boost::intrusive_ptr<BlueStore::Onode>, std::_Identity<boost::intrusive_ptr<BlueStore::Onode> >, std::less<boost::intrusive_ptr<BlueStore::Onode> >, std::allocator<boost::intrusive_ptr<BlueStore::Onode> > >::_M_erase
| | | + 0.46% _M_destroy_node
| | | + 0.46% _M_put_node
| | | + 0.46% deallocate
| | | + 0.46% tc_delete
| | | + 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.46% ~intrusive_ptr
| | | + 0.46% intrusive_ptr_release
| | | + 0.46% RefCountedObject::put
| | | + 0.46% operator--
| | + 0.46% tc_delete
| | + 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.46% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.46% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | + 0.46% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| + 0.46% BlueStore::BufferSpace::finish_write
| + 0.46% erase
| + 0.46% std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > >, std::less<unsigned int>, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > > >::erase
| + 0.46% erase
| + 0.46% _M_erase_aux
| + 0.46% clear
| + 0.46% std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > >, std::less<unsigned int>, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > > >::_M_erase
| + 0.46% _M_destroy_node
| + 0.46% destroy
| + 0.46% ~_Rb_tree_node
| + 0.46% ~pair
| + 0.46% ~unique_ptr
| + 0.46% operator()
| + 0.46% BlueStore::Buffer::operator delete
| + 0.46% deallocate
| + 0.46% tc_deletearray
| + 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.91% BlueStore::DeferredBatch::~DeferredBatch
+ 0.91% ~DeferredBatch
+ 0.91% ~IOContext
+ 0.91% ~list
+ 0.91% ~_List_base
+ 0.91% std::_List_base<aio_t, std::allocator<aio_t> >::_M_clear
+ 0.91% destroy<std::_List_node<aio_t> >
+ 0.91% ~_List_node
+ 0.91% ~aio_t
+ 0.46% ~small_vector
| + 0.46% ~small_vector_base
| + 0.46% ~vector
| + 0.46% ~vector_alloc_holder
+ 0.46% ~list
+ 0.46% ~list
+ 0.46% ~_List_base
+ 0.46% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
+ 0.46% destroy<std::_List_node<ceph::buffer::ptr> >
+ 0.46% ~_List_node
Thread: 114 (bstore_kv_sync) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% BlueStore::KVSyncThread::entry
+ 100.00% BlueStore::_kv_sync_thread
+ 47.49% RocksDBStore::submit_transaction_sync
| + 47.49% RocksDBStore::submit_common
| + 47.49% rocksdb::DBImpl::Write
| + 47.49% rocksdb::DBImpl::WriteImpl
| + 47.49% rocksdb::DBImpl::WriteToWAL
| + 47.49% rocksdb::WritableFileWriter::Sync
| + 47.49% rocksdb::WritableFileWriter::SyncInternal
| + 47.49% BlueRocksWritableFile::Sync
| + 47.49% fsync
| + 47.49% BlueFS::_fsync
| + 30.14% BlueFS::_flush_bdev_safely
| | + 29.68% BlueFS::wait_for_aio
| | | + 29.68% IOContext::aio_wait
| | | + 29.22% std::condition_variable::wait
| | | | + 29.22% __gthread_cond_wait
| | | | + 29.22% pthread_cond_wait@@GLIBC_2.3.2
| | | | + 0.46% __pthread_mutex_cond_lock
| | | | + 0.46% _L_cond_lock_789
| | | | + 0.46% __lll_lock_wait
| | | + 0.46% ~unique_lock
| | | + 0.46% unlock
| | | + 0.46% unlock
| | | + 0.46% __gthread_mutex_unlock
| | | + 0.46% pthread_mutex_unlock
| | + 0.46% clear
| | + 0.46% std::_List_base<aio_t, std::allocator<aio_t> >::_M_clear
| | + 0.46% destroy<std::_List_node<aio_t> >
| | + 0.46% ~_List_node
| | + 0.46% ~aio_t
| | + 0.46% ~list
| | + 0.46% ~list
| | + 0.46% ~_List_base
| | + 0.46% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.46% destroy<std::_List_node<ceph::buffer::ptr> >
| | + 0.46% ~_List_node
| | + 0.46% ~ptr
| | + 0.46% ceph::buffer::ptr::release
| | + 0.46% ceph::buffer::raw_posix_aligned::~raw_posix_aligned
| | + 0.46% ~raw_posix_aligned
| | + 0.46% tc_free
| | + 0.46% tcmalloc::PageHeap::Delete(tcmalloc::Span*)
| | + 0.46% tcmalloc::PageHeap::MergeIntoFreeList(tcmalloc::Span*)
| | + 0.46% tcmalloc::PageHeap::DecommitSpan(tcmalloc::Span*)
| | + 0.46% TCMalloc_SystemRelease(void*, unsigned long)
| | + 0.46% madvise
| + 12.79% BlueFS::_flush_and_sync_log
| | + 11.87% BlueFS::_flush_bdev_safely
| | | + 11.87% BlueFS::wait_for_aio
| | | + 11.87% IOContext::aio_wait
| | | + 11.87% std::condition_variable::wait
| | | + 11.87% __gthread_cond_wait
| | | + 11.87% pthread_cond_wait@@GLIBC_2.3.2
| | + 0.46% encode
| | | + 0.46% bluefs_transaction_t::encode
| | | + 0.46% ceph::buffer::list::crc32c
| | | + 0.46% ceph_crc32c
| | | + 0.46% ceph_crc32c_intel_fast
| | | + 0.46% ???
| | | + 0.46% ???
| | | + 0.46% crc32_iscsi_00
| | + 0.46% BlueFS::_flush
| | + 0.46% BlueFS::_flush_range
| | + 0.46% ~list
| | + 0.46% ~list
| | + 0.46% ~_List_base
| | + 0.46% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.46% destroy<std::_List_node<ceph::buffer::ptr> >
| | + 0.46% ~_List_node
| | + 0.46% ~ptr
| | + 0.46% ceph::buffer::ptr::release
| | + 0.46% tc_free
| + 4.57% BlueFS::_flush
| + 4.57% BlueFS::_flush_range
| + 2.74% KernelDevice::aio_submit
| | + 2.28% aio_queue_t::submit_batch
| | | + 2.28% io_submit
| | + 0.46% operator+=
| + 0.91% KernelDevice::aio_write
| | + 0.46% push_back
| | | + 0.46% _M_insert<aio_t>
| | | + 0.46% _M_create_node<aio_t>
| | | + 0.46% construct<std::_List_node<aio_t>, aio_t>
| | | + 0.46% _List_node<aio_t>
| | | + 0.46% aio_t
| | | + 0.46% ceph::buffer::list::list(ceph::buffer::list&&)
| | | + 0.46% list
| | | + 0.46% _List_base
| | | + 0.46% std::__detail::_List_node_base::swap
| | + 0.46% ceph::buffer::list::claim_append
| + 0.46% std::map<unsigned long, boost::intrusive::list<BlueFS::File, boost::intrusive::member_hook<BlueFS::File, boost::intrusive::list_member_hook<void, void, void>, &BlueFS::File::dirty_item>, void, void, void>, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, boost::intrusive::list<BlueFS::File, boost::intrusive::member_hook<BlueFS::File, boost::intrusive::list_member_hook<void, void, void>, &BlueFS::File::dirty_item>, void, void, void> > > >::operator[]
| | + 0.46% std::_Rb_tree<unsigned long, std::pair<unsigned long const, boost::intrusive::list<BlueFS::File, boost::intrusive::member_hook<BlueFS::File, boost::intrusive::list_member_hook<void, void, void>, &BlueFS::File::dirty_item>, void, void, void> >, std::_Select1st<std::pair<unsigned long const, boost::intrusive::list<BlueFS::File, boost::intrusive::member_hook<BlueFS::File, boost::intrusive::list_member_hook<void, void, void>, &BlueFS::File::dirty_item>, void, void, void> > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, boost::intrusive::list<BlueFS::File, boost::intrusive::member_hook<BlueFS::File, boost::intrusive::list_member_hook<void, void, void>, &BlueFS::File::dirty_item>, void, void, void> > > >::_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, boost::intrusive::list<BlueFS::File, boost::intrusive::member_hook<BlueFS::File, boost::intrusive::list_member_hook<void, void, void>, &BlueFS::File::dirty_item>, void, void, void> > >, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
| + 0.46% ceph::buffer::list::list
| + 0.46% ceph::buffer::list::iterator_impl<false>::advance
+ 31.05% RocksDBStore::submit_transaction
| + 31.05% RocksDBStore::submit_common
| + 31.05% rocksdb::DBImpl::Write
| + 31.05% rocksdb::DBImpl::WriteImpl
| + 17.81% rocksdb::WriteBatchInternal::InsertInto
| | + 17.81% rocksdb::WriteBatch::Iterate
| | + 16.44% rocksdb::MemTableInserter::PutCF
| | | + 16.44% rocksdb::MemTableInserter::PutCFImpl
| | | + 16.44% rocksdb::MemTable::Add
| | | + 13.70% rocksdb::InlineSkipList<rocksdb::MemTableRep::KeyComparator const&>::Insert<false>
| | | | + 10.96% rocksdb::InlineSkipList<rocksdb::MemTableRep::KeyComparator const&>::RecomputeSpliceLevels
| | | | | + 10.96% FindSpliceForLevel<true>
| | | | | + 5.02% KeyIsAfterNode
| | | | | | + 5.02% rocksdb::MemTable::KeyComparator::operator()
| | | | | | + 4.57% rocksdb::InternalKeyComparator::Compare
| | | | | | + 2.74% rocksdb::(anonymous namespace)::BytewiseComparatorImpl::Compare
| | | | | | + 2.28% compare
| | | | | | + 2.28% __memcmp_sse4_1
| | | | | + 1.83% Next
| | | | | + 1.83% load
| | | | | + 1.83% load
| | | | + 2.28% KeyIsAfterNode
| | | | + 2.28% rocksdb::MemTable::KeyComparator::operator()
| | | | + 1.37% rocksdb::InternalKeyComparator::Compare
| | | | | + 0.46% rocksdb::(anonymous namespace)::BytewiseComparatorImpl::Compare
| | | | | + 0.46% compare
| | | | | + 0.46% __memcmp_sse4_1
| | | | + 0.46% GetLengthPrefixedSlice
| | | | + 0.46% GetVarint32Ptr
| | | + 2.28% __memcpy_ssse3
| | | + 0.46% rocksdb::(anonymous namespace)::SkipListRep::Allocate
| | | + 0.46% AllocateKey
| | | + 0.46% rocksdb::InlineSkipList<rocksdb::MemTableRep::KeyComparator const&>::AllocateNode
| | | + 0.46% rocksdb::ConcurrentArena::AllocateAligned
| | + 1.37% rocksdb::MemTableInserter::DeleteCF
| | + 1.37% DeleteImpl
| | + 1.37% rocksdb::MemTable::Add
| | + 1.37% rocksdb::InlineSkipList<rocksdb::MemTableRep::KeyComparator const&>::Insert<false>
| | + 1.37% rocksdb::InlineSkipList<rocksdb::MemTableRep::KeyComparator const&>::RecomputeSpliceLevels
| | + 1.37% FindSpliceForLevel<true>
| | + 0.46% Next
| | | + 0.46% load
| | | + 0.46% load
| | + 0.46% KeyIsAfterNode
| | + 0.46% rocksdb::MemTable::KeyComparator::operator()
| | + 0.46% rocksdb::InternalKeyComparator::Compare
| + 11.42% rocksdb::DBImpl::WriteToWAL
| | + 10.50% rocksdb::DBImpl::WriteToWAL
| | | + 10.50% rocksdb::log::Writer::AddRecord
| | | + 10.50% rocksdb::log::Writer::EmitPhysicalRecord
| | | + 6.85% rocksdb::crc32c::ExtendImpl<rocksdb::crc32c::Slow_CRC32>
| | | | + 5.94% Slow_CRC32
| | | + 2.74% rocksdb::WritableFileWriter::Append
| | | | + 2.74% rocksdb::WritableFileWriter::WriteBuffered
| | | | + 2.74% BlueRocksWritableFile::Append
| | | | + 2.74% append
| | | | + 2.74% append
| | | | + 2.74% memcpy
| | | | + 2.74% __memcpy_ssse3
| | | + 0.91% rocksdb::WritableFileWriter::Flush
| | | + 0.91% BlueRocksWritableFile::Flush
| | | + 0.46% flush
| | | + 0.46% BlueFS::_flush
| | | + 0.46% flush
| | | + 0.46% set_offset
| | | + 0.46% ceph::buffer::ptr::raw_length
| | + 0.46% rocksdb::WriteBatchInternal::SetSequence
| | | + 0.46% operator[]
| | | + 0.46% _M_leak
| | | + 0.46% _ZNSs12_M_leak_hardEv@plt
| | + 0.46% Status
| + 0.46% rocksdb::WriteThread::ExitAsBatchGroupLeader
| | + 0.46% compare_exchange_strong
| | + 0.46% compare_exchange_strong
| + 0.46% rocksdb::WriteThread::EnterAsBatchGroupLeader
| + 0.46% rocksdb::InstrumentedMutex::Lock
| | + 0.46% rocksdb::InstrumentedMutex::LockInternal
| | + 0.46% rocksdb::port::Mutex::Lock
| | + 0.46% pthread_mutex_lock
| + 0.46% Unlock
+ 19.63% std::condition_variable::wait
| + 19.63% __gthread_cond_wait
| + 19.63% pthread_cond_wait@@GLIBC_2.3.2
+ 0.91% BlueStore::_txc_applied_kv
+ 0.46% operator--
+ 0.46% RocksDBStore::get_transaction
+ 0.46% make_shared<RocksDBStore::RocksDBTransactionImpl, RocksDBStore* const>
+ 0.46% allocate_shared<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
+ 0.46% shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
+ 0.46% __shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
+ 0.46% __shared_count<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
+ 0.46% allocate
+ 0.46% allocate
+ 0.46% tc_new
Thread: 115 (finisher) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% Finisher::finisher_thread_entry
+ 54.79% Wait
| + 54.79% pthread_cond_wait@@GLIBC_2.3.2
+ 26.94% Context::complete
| + 26.94% PrimaryLogPG::BlessedContext::finish
| + 23.29% PG::lock
| | + 23.29% Mutex::Lock
| | + 23.29% pthread_mutex_lock
| | + 23.29% _L_lock_812
| | + 23.29% __lll_lock_wait
| + 3.65% Context::complete
| + 3.65% ReplicatedBackend::op_commit
| + 3.20% Context::complete
| | + 3.20% PrimaryLogPG::repop_all_committed
| | + 3.20% PrimaryLogPG::eval_repop
| | + 3.20% PrimaryLogPG::__lambda35::operator()
| | + 2.28% send_message_osd_client
| | | + 2.28% AsyncConnection::send_message
| | | + 0.91% EventCenter::dispatch_event_external
| | | | + 0.91% EventCenter::wakeup
| | | | + 0.91% write
| | | + 0.46% ~lock_guard
| | | | + 0.46% unlock
| | | | + 0.46% __gthread_mutex_unlock
| | | | + 0.46% pthread_mutex_unlock
| | | + 0.46% now
| | | | + 0.46% clock_gettime
| | | + 0.46% PerfCounters::inc
| | + 0.46% mark_commit_sent
| | + 0.46% OpRequest::mark_flag_point
| | + 0.46% TrackedOp::mark_event
| | + 0.46% ~Locker
| | + 0.46% Mutex::Unlock
| | + 0.46% pthread_mutex_unlock
| + 0.46% C_OSD_RepopCommit::~C_OSD_RepopCommit
| + 0.46% ~C_OSD_RepopCommit
| + 0.46% ~intrusive_ptr
| + 0.46% intrusive_ptr_release
| + 0.46% PG::put
+ 18.26% C_ContextsBase<Context, Context>::complete
+ 18.26% complete
+ 18.26% finish_contexts<Context>
+ 15.53% Context::complete
| + 14.16% PrimaryLogPG::BlessedContext::finish
| | + 14.16% Context::complete
| | + 14.16% ReplicatedBackend::op_applied
| | + 6.39% erase
| | | + 6.39% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ReplicatedBackend::InProgressOp>, std::_Select1st<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> > >::erase
| | | + 6.39% erase
| | | + 6.39% _M_erase_aux
| | | + 3.65% clear
| | | | + 3.65% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ReplicatedBackend::InProgressOp>, std::_Select1st<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> > >::_M_erase
| | | | + 3.65% _M_destroy_node
| | | | + 3.65% destroy<std::_Rb_tree_node<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> > >
| | | | + 3.65% ~_Rb_tree_node
| | | | + 3.65% ~pair
| | | | + 3.65% ~InProgressOp
| | | | + 3.65% ~intrusive_ptr
| | | | + 3.65% intrusive_ptr_release
| | | | + 3.20% OpTracker::unregister_inflight_op
| | | | | + 1.37% OpHistory::insert
| | | | | | + 0.91% OpHistory::cleanup
| | | | | | | + 0.46% ~pair
| | | | | | | | + 0.46% ~intrusive_ptr
| | | | | | | | + 0.46% intrusive_ptr_release
| | | | | | | | + 0.46% TrackedOp::put
| | | | | | | + 0.46% erase
| | | | | | | + 0.46% std::_Rb_tree<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > > >::erase
| | | | | | | + 0.46% std::_Rb_tree<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > > >::equal_range
| | | | | | + 0.46% get_duration
| | | | | | + 0.46% Locker
| | | | | | + 0.46% Mutex::Lock
| | | | | | + 0.46% pthread_mutex_lock
| | | | | + 0.91% ~intrusive_ptr
| | | | | | + 0.91% intrusive_ptr_release
| | | | | | + 0.91% OpRequest::~OpRequest
| | | | | | + 0.91% ~OpRequest
| | | | | | + 0.46% ~TrackedOp
| | | | | | | + 0.46% ~vector
| | | | | | | + 0.46% _Destroy<TrackedOp::Event*, TrackedOp::Event>
| | | | | | | + 0.46% _Destroy<TrackedOp::Event*>
| | | | | | | + 0.46% __destroy<TrackedOp::Event*>
| | | | | | + 0.46% RefCountedObject::put
| | | | | | + 0.46% MOSDOp::~MOSDOp
| | | | | | + 0.46% tc_delete
| | | | | + 0.46% OpRequest::_unregistered
| | | | | + 0.46% set_connection
| | | | | + 0.46% operator=
| | | | | + 0.46% ~intrusive_ptr
| | | | | + 0.46% RefCountedObject::put
| | | | + 0.46% TrackedOp::put
| | | | + 0.46% TrackedOp::mark_event
| | | + 2.74% erase
| | | + 2.74% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ReplicatedBackend::InProgressOp>, std::_Select1st<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> > >::_M_erase_aux
| | | + 2.74% _M_destroy_node
| | | + 2.74% destroy<std::_Rb_tree_node<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> > >
| | | + 2.74% ~_Rb_tree_node
| | | + 2.74% ~pair
| | | + 2.74% ~InProgressOp
| | | + 2.74% ~intrusive_ptr
| | | + 2.74% intrusive_ptr_release
| | | + 2.74% OpTracker::unregister_inflight_op
| | | + 0.91% ~intrusive_ptr
| | | | + 0.91% intrusive_ptr_release
| | | | + 0.91% OpRequest::~OpRequest
| | | | + 0.91% ~OpRequest
| | | | + 0.91% RefCountedObject::put
| | | | + 0.91% MOSDOp::~MOSDOp
| | | | + 0.91% ~MOSDOp
| | | | + 0.91% ~vector
| | | | + 0.91% ~_Vector_base
| | | | + 0.91% _M_deallocate
| | | | + 0.91% deallocate
| | | | + 0.91% tc_delete
| | | | + 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.91% OpRequest::_unregistered
| | | | + 0.46% clear_payload
| | | | | + 0.46% Throttle::put
| | | | | + 0.46% ~unique_lock
| | | | | + 0.46% unlock
| | | | | + 0.46% unlock
| | | | | + 0.46% __gthread_mutex_unlock
| | | | | + 0.46% pthread_mutex_unlock
| | | | + 0.46% clear_data
| | | | + 0.46% Throttle::put
| | | | + 0.46% uniquely_lock<std::mutex&>
| | | | + 0.46% unique_lock
| | | | + 0.46% lock
| | | | + 0.46% lock
| | | | + 0.46% __gthread_mutex_lock
| | | | + 0.46% pthread_mutex_lock
| | | | + 0.46% _L_lock_812
| | | | + 0.46% __lll_lock_wait
| | | + 0.46% RLocker
| | | | + 0.46% get_read
| | | | + 0.46% pthread_rwlock_rdlock
| | | + 0.46% OpHistory::insert
| | | + 0.46% get_duration
| | | + 0.46% operator double
| | + 6.39% Context::complete
| | | + 6.39% PrimaryLogPG::repop_all_applied
| | | + 6.39% PrimaryLogPG::eval_repop
| | | + 2.74% PrimaryLogPG::remove_repop
| | | | + 0.91% std::_Function_handler<void(), PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda37>::_M_invoke(const std::_Any_data &)
| | | | | + 0.91% operator()
| | | | | + 0.91% PrimaryLogPG::OpContext::~OpContext
| | | | | + 0.46% ~interval_set
| | | | | | + 0.46% ~map
| | | | | | + 0.46% ~_Rb_tree
| | | | | | + 0.46% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| | | | | | + 0.46% _M_destroy_node
| | | | | | + 0.46% _M_put_node
| | | | | | + 0.46% deallocate
| | | | | | + 0.46% tc_delete
| | | | | | + 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | | + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.46% hobject_t::~hobject_t
| | | | + 0.91% PrimaryLogPG::release_object_locks
| | | | | + 0.91% put_locks
| | | | | + 0.46% ~pair
| | | | | | + 0.46% hobject_t::~hobject_t
| | | | | | + 0.46% ~object_t
| | | | | | + 0.46% ~basic_string
| | | | | | + 0.46% std::string::_Rep::_M_dispose
| | | | | + 0.46% pair
| | | | | + 0.46% hobject_t::hobject_t
| | | | | + 0.46% object_t
| | | | | + 0.46% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | + 0.46% _M_grab
| | | | | + 0.46% _M_is_leaked
| | | | + 0.46% erase
| | | | | + 0.46% _M_erase
| | | | | + 0.46% _M_put_node
| | | | | + 0.46% deallocate
| | | | | + 0.46% tc_delete
| | | | + 0.46% PerfCounters::dec
| | | + 1.83% PG::publish_stats_to_osd
| | | | + 0.91% pg_stat_t
| | | | | + 0.46% vector
| | | | | + 0.46% _Vector_base
| | | | | + 0.46% _M_create_storage
| | | | | + 0.46% _M_allocate
| | | | | + 0.46% allocate
| | | | | + 0.46% tc_new
| | | | + 0.46% pg_stat_t::operator=
| | | | + 0.46% PG::_update_calc_stats
| | | | + 0.46% get_pg_size
| | | | + 0.46% find
| | | | + 0.46% std::_Rb_tree<long, std::pair<long const, pg_pool_t>, std::_Select1st<std::pair<long const, pg_pool_t> >, std::less<long>, mempool::pool_allocator<(mempool::pool_index_t)15, std::pair<long const, pg_pool_t> > >::find
| | | + 1.37% std::_Function_handler<void(), PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>::_M_invoke(const std::_Any_data &)
| | | | + 1.37% operator()
| | | | + 0.91% PrimaryLogPG::do_osd_op_effects
| | | | | + 0.46% shared_ptr
| | | | | + 0.46% __shared_ptr
| | | | | + 0.46% __shared_count
| | | | | + 0.46% std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy
| | | | | + 0.46% __atomic_add_dispatch
| | | | | + 0.46% __atomic_add
| | | | + 0.46% intrusive_ptr
| | | | + 0.46% intrusive_ptr_add_ref
| | | | + 0.46% RefCountedObject::get
| | | + 0.46% erase
| | | + 0.46% _M_erase
| | + 0.91% C_OSD_RepopApplied::~C_OSD_RepopApplied
| | | + 0.91% ~C_OSD_RepopApplied
| | | + 0.91% ~intrusive_ptr
| | | + 0.91% intrusive_ptr_release
| | | + 0.91% put
| | | + 0.91% tc_delete
| | | + 0.91% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.91% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.46% TrackedOp::mark_event
| | + 0.46% ~Locker
| | + 0.46% Mutex::Unlock
| | + 0.46% pthread_mutex_unlock
| + 0.91% Mutex::Unlock
| | + 0.46% pthread_mutex_unlock
| | | + 0.46% _L_unlock_713
| | | + 0.46% __lll_unlock_wake
| | + 0.46% _pre_unlock
| + 0.46% PG::C_UpdateLastRollbackInfoTrimmedToApplied::finish
| + 0.46% PG::lock
| + 0.46% Mutex::Lock
| + 0.46% pthread_mutex_lock
+ 0.46% ~list
| + 0.46% ~_List_base
| + 0.46% _M_clear
| + 0.46% _M_put_node
| + 0.46% deallocate
| + 0.46% tc_delete
| + 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.46% tc_delete
| + 0.46% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.46% PG::C_UpdateLastRollbackInfoTrimmedToApplied::~C_UpdateLastRollbackInfoTrimmedToApplied
+ 0.46% ~C_UpdateLastRollbackInfoTrimmedToApplied
+ 0.46% ~intrusive_ptr
+ 0.46% intrusive_ptr_release
+ 0.46% PG::put
Thread: 116 (dfin) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% Finisher::finisher_thread_entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 117 (rocksdb:bg0) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% std::execute_native_thread_routine_compat
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThread
+ 100.00% std::condition_variable::wait
+ 100.00% __gthread_cond_wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 118 (rocksdb:bg0) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% std::execute_native_thread_routine_compat
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThread
+ 100.00% std::condition_variable::wait
+ 100.00% __gthread_cond_wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 119 (bstore_aio) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% KernelDevice::AioCompletionThread::entry
+ 100.00% KernelDevice::_aio_thread
+ 100.00% aio_queue_t::get_next_completed
+ 100.00% __io_getevents_0_4
Thread: 120 (bstore_aio) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% KernelDevice::AioCompletionThread::entry
+ 100.00% KernelDevice::_aio_thread
+ 100.00% aio_queue_t::get_next_completed
+ 100.00% __io_getevents_0_4
Thread: 121 (bstore_aio) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% KernelDevice::AioCompletionThread::entry
+ 100.00% KernelDevice::_aio_thread
+ 99.09% aio_queue_t::get_next_completed
| + 99.09% __io_getevents_0_4
+ 0.91% try_aio_wake
+ 0.46% std::condition_variable::notify_all
| + 0.46% __gthread_cond_broadcast
| + 0.46% pthread_cond_broadcast@@GLIBC_2.3.2
+ 0.46% operator std::__atomic_base<int>::__int_type
+ 0.46% load
Thread: 122 (bstore_aio) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% KernelDevice::AioCompletionThread::entry
+ 100.00% KernelDevice::_aio_thread
+ 99.09% aio_queue_t::get_next_completed
| + 99.09% __io_getevents_0_4
+ 0.91% BlueStore::_deferred_aio_finish
+ 0.46% ~lock_guard
| + 0.46% unlock
| + 0.46% __gthread_mutex_unlock
| + 0.46% pthread_mutex_unlock
+ 0.46% lock_guard
+ 0.46% lock
+ 0.46% __gthread_mutex_lock
+ 0.46% pthread_mutex_lock
+ 0.46% _L_lock_812
+ 0.46% __lll_lock_wait
Thread: 123 (safe_timer) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 124 (safe_timer) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 125 (safe_timer) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 126 (safe_timer) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 127 (ceph-osd) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% std::execute_native_thread_routine_compat
+ 100.00% ceph::timer_detail::timer<ceph::time_detail::coarse_mono_clock>::timer_thread
+ 100.00% wait_until<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >
+ 100.00% __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: 128 (admin_socket) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% AdminSocket::entry
+ 100.00% poll
+ 100.00% poll
Thread: 129 (service) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% CephContextServiceThread::entry
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 130 (msgr-worker-2) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% std::execute_native_thread_routine_compat
+ 100.00% NetworkStack::__lambda4::operator()
+ 100.00% EventCenter::process_events
+ 100.00% EpollDriver::event_wait
+ 100.00% epoll_wait
Thread: 131 (msgr-worker-1) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% std::execute_native_thread_routine_compat
+ 100.00% NetworkStack::__lambda4::operator()
+ 100.00% EventCenter::process_events
+ 100.00% EpollDriver::event_wait
+ 100.00% epoll_wait
Thread: 132 (msgr-worker-0) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% std::execute_native_thread_routine_compat
+ 100.00% NetworkStack::__lambda4::operator()
+ 100.00% EventCenter::process_events
+ 57.99% EpollDriver::event_wait
| + 57.99% epoll_wait
+ 24.66% AsyncConnection::process
| + 13.70% DispatchQueue::fast_dispatch
| | + 13.24% ms_fast_dispatch
| | | + 13.24% OSD::ms_fast_dispatch
| | | + 12.33% OSD::enqueue_op
| | | | + 11.42% queue
| | | | | + 11.42% OSD::ShardedOpWQ::_enqueue(OpQueueItem&&)
| | | | | + 5.48% Mutex::Unlock
| | | | | | + 5.48% pthread_mutex_unlock
| | | | | | + 5.48% _L_unlock_713
| | | | | | + 5.48% __lll_unlock_wake
| | | | | + 4.57% SignalOne
| | | | | | + 4.57% pthread_cond_signal@@GLIBC_2.3.2
| | | | | + 0.46% WeightedPriorityQueue<OpQueueItem, unsigned long>::enqueue(unsigned long, unsigned int, unsigned int, OpQueueItem&&)
| | | | | + 0.46% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::insert(unsigned int, unsigned long, unsigned int, OpQueueItem&&, bool)
| | | | | | + 0.46% insert
| | | | | | + 0.46% insert
| | | | | | + 0.46% tc_new
| | | | | + 0.46% Mutex::Lock
| | | | | + 0.46% pthread_mutex_lock
| | | | | + 0.46% _L_lock_812
| | | | | + 0.46% __lll_lock_wait
| | | | + 0.91% ceph_clock_now
| | | | + 0.91% clock_gettime
| | | | + 0.91% clock_gettime
| | | + 0.91% create_request<OpRequest, Message*>
| | | + 0.46% tracking_start
| | | | + 0.46% OpTracker::register_inflight_op
| | | | + 0.46% RLocker
| | | | + 0.46% get_read
| | | | + 0.46% pthread_rwlock_rdlock
| | | + 0.46% tc_new
| | + 0.46% DispatchQueue::pre_dispatch
| | + 0.46% should_gather
| + 4.11% AsyncConnection::read_until
| | + 2.74% AsyncConnection::read_bulk
| | | + 2.74% read
| | | + 2.74% PosixConnectedSocketImpl::read
| | | + 2.74% read
| | | + 2.74% read
| | + 1.37% memcpy
| | + 1.37% __memcpy_ssse3
| + 3.20% decode_message
| | + 0.91% intrusive_ptr
| | | + 0.91% intrusive_ptr_add_ref
| | | + 0.91% RefCountedObject::get
| | + 0.91% MOSDOp::decode_payload
| | | + 0.46% decode<osd_reqid_t, denc_traits<osd_reqid_t, void> >
| | | + 0.46% decode
| | | + 0.46% spg_t::decode
| | | + 0.46% decode
| | | + 0.46% decode
| | | + 0.46% decode
| | | + 0.46% decode_raw<ceph_le<unsigned int> >
| | | + 0.46% ceph::buffer::list::iterator_impl<false>::copy
| | + 0.46% tc_new
| | + 0.46% ceph::buffer::list::crc32c
| | | + 0.46% ceph_crc32c
| | | + 0.46% ceph_crc32c_intel_baseline
| | + 0.46% MOSDOp::MOSDOp
| | + 0.46% vector
| | + 0.46% _Vector_base
| | + 0.46% _Vector_impl
| + 0.91% ceph::buffer::ptr::c_str
| + 0.91% Throttle::get_or_fail
| | + 0.46% PerfCounters::inc
| + 0.46% ms_can_fast_dispatch
| | + 0.46% OSD::ms_can_fast_dispatch
| + 0.46% ceph::buffer::list::clear
| | + 0.46% ~ptr
| + 0.46% ceph::buffer::create
| | + 0.46% ceph::buffer::create_aligned
| | + 0.46% ceph::buffer::create_aligned_in_mempool
| | + 0.46% create
| | + 0.46% tc_posix_memalign
| | + 0.46% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| + 0.46% alloc_aligned_buffer
| + 0.46% push_back
| + 0.46% ceph::buffer::ptr::ptr
| + 0.46% operator++
| + 0.46% fetch_add
+ 14.61% AsyncConnection::handle_write
| + 10.05% AsyncConnection::write_message
| | + 8.68% AsyncConnection::_try_send
| | | + 8.22% send
| | | | + 8.22% PosixConnectedSocketImpl::send
| | | | + 8.22% do_sendmsg
| | | | + 8.22% sendmsg
| | | + 0.46% EventCenter::delete_file_event
| | | + 0.46% EpollDriver::del_event
| | | + 0.46% epoll_ctl
| | + 1.37% RefCountedObject::put
| | + 1.37% MOSDOpReply::~MOSDOpReply
| | + 0.91% ~MOSDOpReply
| | | + 0.46% ~vector
| | | | + 0.46% _Destroy<OSDOp*, OSDOp>
| | | | + 0.46% _Destroy<OSDOp*>
| | | | + 0.46% __destroy<OSDOp*>
| | | | + 0.46% _Destroy<OSDOp>
| | | | + 0.46% ~OSDOp
| | | | + 0.46% ~list
| | | | + 0.46% ~list
| | | | + 0.46% ~_List_base
| | | | + 0.46% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.46% destroy<std::_List_node<ceph::buffer::ptr> >
| | | | + 0.46% ~_List_node
| | | | + 0.46% ~ptr
| | | | + 0.46% ceph::buffer::ptr::release
| | | + 0.46% Message::~Message
| | | + 0.46% ~intrusive_ptr
| | | + 0.46% RefCountedObject::put
| | | + 0.46% operator--
| | + 0.46% tc_delete
| | + 0.46% tcmalloc::ThreadCache::Scavenge()
| | + 0.46% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 2.74% AsyncConnection::prepare_send_message
| | + 2.28% Message::encode
| | + 1.83% MOSDOpReply::encode_payload
| | | + 1.37% encode
| | | | + 1.37% encode
| | | | + 1.37% encode
| | | | + 0.91% encode
| | | | | + 0.91% encode_raw<ceph_le<unsigned int> >
| | | | | + 0.91% ceph::buffer::list::append
| | | | | + 0.91% create
| | | | | + 0.46% tc_posix_memalign
| | | | | | + 0.46% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | | | | + 0.46% tcmalloc::AlignmentForSize(unsigned long)
| | | | | + 0.46% raw_combined
| | | | | + 0.46% raw
| | | | | + 0.46% mempool::pool_t::adjust_count
| | | | | + 0.46% operator+=
| | | | + 0.46% operator=
| | | + 0.46% Message::encode_trace
| | | + 0.46% encode
| | | + 0.46% encode
| | | + 0.46% encode_raw<ceph_le<unsigned long long> >
| | | + 0.46% ceph::buffer::list::append
| | + 0.46% calc_front_crc
| | + 0.46% ceph::buffer::list::crc32c
| | + 0.46% ceph_crc32c
| + 0.91% unlock
| | + 0.91% __gthread_mutex_unlock
| | + 0.91% pthread_mutex_unlock
| | + 0.46% _L_unlock_713
| | + 0.46% __lll_unlock_wake
| + 0.46% _get_next_outgoing
| + 0.46% ceph::buffer::list::swap
| + 0.46% ceph::buffer::ptr::swap
+ 2.74% C_handle_notify::do_request
+ 2.74% read
+ 2.74% read
Thread: 133 (log) - 219 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ceph::logging::Log::entry
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
This file has been truncated, but you can view the full file.
Thread: 1 (ceph-osd) - 247 samples
+ 100.00% main
+ 100.00% AsyncMessenger::wait
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 2 (signal_handler) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SignalHandler::entry
+ 100.00% poll
+ 100.00% poll
Thread: 3 (osd_srv_agent) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% OSDService::AgentThread::entry
+ 100.00% OSDService::agent_entry
+ 100.00% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 4 (safe_timer) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 5 (safe_timer) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 6 (safe_timer) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 7 (safe_timer) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SafeTimerThread::entry
+ 100.00% SafeTimer::timer_thread
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 8 (finisher) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% Finisher::finisher_thread_entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 9 (fn_anonymous) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% Finisher::finisher_thread_entry
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 10 (osd_srv_heartbt) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% OSD::T_Heartbeat::entry
+ 100.00% OSD::heartbeat_entry
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 11 (tp_osd_cmd) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 12 (tp_osd_disk) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 100.00% WaitInterval
+ 100.00% WaitUntil
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 13 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 89.47% WaitInterval
| + 89.47% WaitUntil
| + 89.47% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.48% PG::lock
| + 6.48% Mutex::Lock
| + 6.48% pthread_mutex_lock
| + 6.48% _L_lock_812
| + 6.48% __lll_lock_wait
+ 4.05% run
+ 4.05% PGOpItem::run
+ 4.05% OSD::dequeue_op
+ 4.05% PrimaryLogPG::do_request
+ 4.05% PrimaryLogPG::do_op
+ 3.64% PrimaryLogPG::execute_ctx
| + 2.83% PrimaryLogPG::issue_repop
| | + 2.83% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 1.62% PrimaryLogPG::queue_transactions
| | | + 1.62% queue_transactions
| | | + 1.62% BlueStore::queue_transactions
| | | + 0.81% BlueStore::_txc_write_nodes
| | | | + 0.81% BlueStore::ExtentMap::update
| | | | + 0.40% reserve
| | | | | + 0.40% _M_allocate_and_copy<BlueStore::ExtentMap::update(KeyValueDB::Transaction, bool)::dirty_shard_t*>
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | + 0.40% operator()
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% combine_strings
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | + 0.81% BlueStore::_txc_add_transaction
| | | + 0.40% begin
| | | | + 0.40% iterator
| | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | + 0.40% ceph::buffer::list::rebuild
| | | | + 0.40% ceph::buffer::list::rebuild
| | | | + 0.40% clear
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% BlueStore::_omap_setkeys
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | | + 0.81% PG::append_log
| | | + 0.40% register_on_applied
| | | | + 0.40% push_back
| | | | + 0.40% _M_insert<Context* const&>
| | | | + 0.40% _M_create_node<Context* const&>
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.40% PGLog::IndexedLog::trim
| | | + 0.40% PGLog::IndexedLog::unindex
| | | + 0.40% erase
| | | + 0.40% erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_deallocate_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% insert<std::_Rb_tree_const_iterator<pg_shard_t> >
| | + 0.40% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_insert_unique<std::_Rb_tree_const_iterator<pg_shard_t> >
| | + 0.40% _M_insert_unique_<pg_shard_t const&>
| | + 0.40% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_insert_<pg_shard_t const&>
| | + 0.40% _M_create_node<pg_shard_t const&>
| | + 0.40% _M_get_node
| | + 0.40% allocate
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 0.81% PrimaryLogPG::calc_trim_to
| + 0.81% size
| + 0.81% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.81% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.40% PG::op_has_sufficient_caps
+ 0.40% OSDCap::is_capable
+ 0.40% ~vector
+ 0.40% ~_Bvector_base
+ 0.40% _M_deallocate
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% SpinLock::SlowLock()
+ 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 14 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 92.71% WaitInterval
| + 92.71% WaitUntil
| + 92.71% pthread_cond_timedwait@@GLIBC_2.3.2
+ 4.45% PG::lock
| + 4.45% Mutex::Lock
| + 4.45% pthread_mutex_lock
| + 4.45% _L_lock_812
| + 4.45% __lll_lock_wait
+ 2.83% run
+ 2.83% PGOpItem::run
+ 2.83% OSD::dequeue_op
+ 2.83% PrimaryLogPG::do_request
+ 2.83% PrimaryLogPG::do_op
+ 2.83% PrimaryLogPG::execute_ctx
+ 2.02% PrimaryLogPG::issue_repop
| + 2.02% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 1.21% PrimaryLogPG::queue_transactions
| | + 1.21% queue_transactions
| | + 1.21% BlueStore::queue_transactions
| | + 1.21% BlueStore::_txc_add_transaction
| | + 0.81% BlueStore::_omap_setkeys
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.81% rocksdb::WriteBatch::Put
| | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | + 0.81% PutLengthPrefixedSliceParts
| | | + 0.81% std::string::append
| | | + 0.81% std::string::reserve
| | | + 0.81% _M_dispose
| | | + 0.81% std::string::_Rep::_M_destroy
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% begin
| | + 0.40% iterator
| | + 0.40% ceph::buffer::list::get_contiguous
| | + 0.40% erase
| | + 0.40% _M_erase
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% generate_transaction
| | + 0.40% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.40% operator()
| | + 0.40% ObjectStore::Transaction::setattrs
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::log_operation
| + 0.40% PG::append_log
| + 0.40% PGLog::IndexedLog::trim
| + 0.40% PGLog::IndexedLog::unindex
| + 0.40% erase
| + 0.40% erase
| + 0.40% _M_erase
| + 0.40% _M_erase
| + 0.40% _M_deallocate_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% reset_obs
| + 0.40% operator=
| + 0.40% object_info_t::operator=(object_info_t&&)
| + 0.40% operator=
| + 0.40% operator=
| + 0.40% clear
| + 0.40% clear
| + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% PrimaryLogPG::prepare_transaction
+ 0.40% PrimaryLogPG::finish_ctx
+ 0.40% ~map
+ 0.40% ~_Rb_tree
+ 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
+ 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
+ 0.40% _M_destroy_node
+ 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
+ 0.40% ~_Rb_tree_node
+ 0.40% ~pair
+ 0.40% ~list
+ 0.40% ~list
+ 0.40% ~_List_base
+ 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
+ 0.40% _M_put_node
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% SpinLock::SlowLock()
+ 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 15 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 92.71% WaitInterval
| + 92.71% WaitUntil
| + 92.71% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.07% PG::lock
| + 6.07% Mutex::Lock
| + 6.07% pthread_mutex_lock
| + 6.07% _L_lock_812
| + 6.07% __lll_lock_wait
+ 1.21% run
+ 1.21% PGOpItem::run
+ 1.21% OSD::dequeue_op
+ 1.21% PrimaryLogPG::do_request
+ 1.21% PrimaryLogPG::do_op
+ 1.21% PrimaryLogPG::execute_ctx
+ 0.81% PrimaryLogPG::issue_repop
| + 0.81% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 0.40% PrimaryLogPG::queue_transactions
| | + 0.40% queue_transactions
| | + 0.40% BlueStore::queue_transactions
| | + 0.40% BlueStore::_txc_add_transaction
| | + 0.40% BlueStore::_omap_setkeys
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | + 0.40% rocksdb::WriteBatch::Put
| | + 0.40% rocksdb::WriteBatchInternal::Put
| | + 0.40% PutLengthPrefixedSliceParts
| | + 0.40% std::string::append
| | + 0.40% std::string::reserve
| | + 0.40% _M_dispose
| | + 0.40% std::string::_Rep::_M_destroy
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::log_operation
| + 0.40% PG::append_log
| + 0.40% PGLog::IndexedLog::trim
| + 0.40% PGLog::IndexedLog::unindex
| + 0.40% erase
| + 0.40% erase
| + 0.40% _M_erase
| + 0.40% _M_erase
| + 0.40% _M_deallocate_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% PrimaryLogPG::prepare_transaction
+ 0.40% PrimaryLogPG::finish_ctx
+ 0.40% ~map
+ 0.40% ~_Rb_tree
+ 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
+ 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
+ 0.40% _M_destroy_node
+ 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
+ 0.40% ~_Rb_tree_node
+ 0.40% ~pair
+ 0.40% ~list
+ 0.40% ~list
+ 0.40% ~_List_base
+ 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
+ 0.40% _M_put_node
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% SpinLock::SlowLock()
+ 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 16 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 86.23% WaitInterval
| + 86.23% WaitUntil
| + 86.23% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.88% run
| + 6.88% PGOpItem::run
| + 6.88% OSD::dequeue_op
| + 6.88% PrimaryLogPG::do_request
| + 6.88% PrimaryLogPG::do_op
| + 6.88% PrimaryLogPG::execute_ctx
| + 5.26% PrimaryLogPG::issue_repop
| | + 5.26% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 4.05% PrimaryLogPG::queue_transactions
| | | + 4.05% queue_transactions
| | | + 4.05% BlueStore::queue_transactions
| | | + 2.02% BlueStore::_txc_add_transaction
| | | | + 1.21% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.81% _M_dispose
| | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% operator+=
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% begin
| | | | + 0.81% iterator
| | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | + 0.81% erase
| | | | + 0.81% _M_erase
| | | | + 0.81% _M_put_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% BlueStore::_txc_write_nodes
| | | | + 0.81% BlueStore::ExtentMap::update
| | | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | + 0.81% operator()
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.81% combine_strings
| | | | + 0.81% std::string::append
| | | | + 0.81% std::string::reserve
| | | | + 0.81% _M_dispose
| | | | + 0.81% std::string::_Rep::_M_destroy
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% tcmalloc::ThreadCache::IncreaseCacheLimit()
| | | | + 0.40% tcmalloc::ThreadCache::IncreaseCacheLimitLocked()
| | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| | | | + 0.40% ~_List_node
| | | | + 0.40% ~ptr
| | | | + 0.40% ceph::buffer::ptr::release
| | | | + 0.40% tc_free
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% collect_contexts
| | | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | | + 0.40% clear
| | | | + 0.40% _M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% BlueStore::_txc_state_proc
| | | + 0.40% BlueStore::_txc_finish_io
| | | + 0.40% BlueStore::_txc_state_proc
| | | + 0.40% lock_guard
| | | + 0.40% lock
| | | + 0.40% __gthread_mutex_lock
| | | + 0.40% pthread_mutex_lock
| | | + 0.40% _L_lock_812
| | | + 0.40% __lll_lock_wait
| | + 0.81% PrimaryLogPG::log_operation
| | | + 0.81% PG::append_log
| | | + 0.81% PGLog::IndexedLog::trim
| | | + 0.81% PGLog::IndexedLog::unindex
| | | + 0.81% erase
| | | + 0.81% erase
| | | + 0.81% _M_erase
| | | + 0.81% _M_erase
| | | + 0.81% _M_deallocate_node
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% generate_transaction
| | + 0.40% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.40% operator()
| | + 0.40% ObjectStore::Transaction::setattrs
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.21% PrimaryLogPG::calc_trim_to
| | + 1.21% size
| | + 1.21% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.21% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% PrimaryLogPG::prepare_transaction
| + 0.40% PrimaryLogPG::finish_ctx
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| + 0.40% ~_Rb_tree_node
| + 0.40% ~pair
| + 0.40% ~list
| + 0.40% ~list
| + 0.40% ~_List_base
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 6.88% PG::lock
+ 6.88% Mutex::Lock
+ 6.88% pthread_mutex_lock
+ 6.88% _L_lock_812
+ 6.88% __lll_lock_wait
Thread: 17 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 93.93% WaitInterval
| + 93.93% WaitUntil
| + 93.93% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.24% PG::lock
| + 3.24% Mutex::Lock
| + 3.24% pthread_mutex_lock
| + 3.24% _L_lock_812
| + 3.24% __lll_lock_wait
+ 2.83% run
+ 2.83% PGOpItem::run
+ 2.83% OSD::dequeue_op
+ 2.83% PrimaryLogPG::do_request
+ 2.83% PrimaryLogPG::do_op
+ 2.83% PrimaryLogPG::execute_ctx
+ 2.43% PrimaryLogPG::issue_repop
| + 2.43% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 1.21% PrimaryLogPG::queue_transactions
| | + 1.21% queue_transactions
| | + 1.21% BlueStore::queue_transactions
| | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.81% rocksdb::WriteBatch::Put
| | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | + 0.81% PutLengthPrefixedSliceParts
| | | + 0.81% std::string::append
| | | + 0.81% std::string::reserve
| | | + 0.81% _M_dispose
| | | + 0.81% std::string::_Rep::_M_destroy
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% BlueStore::_txc_write_nodes
| | + 0.40% BlueStore::ExtentMap::update
| | + 0.40% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | + 0.40% operator()
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.40% combine_strings
| | + 0.40% std::string::append
| | + 0.40% std::string::reserve
| | + 0.40% _M_dispose
| | + 0.40% std::string::_Rep::_M_destroy
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.81% generate_transaction
| | + 0.81% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.81% operator()
| | + 0.81% ObjectStore::Transaction::setattrs
| | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.81% ~pair
| | + 0.81% ~list
| | + 0.81% ~list
| | + 0.81% ~_List_base
| | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.81% _M_put_node
| | + 0.81% deallocate
| | + 0.81% tc_delete
| | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.81% SpinLock::SlowLock()
| | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::log_operation
| + 0.40% PG::append_log
| + 0.40% tc_new
| + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% PrimaryLogPG::calc_trim_to
+ 0.40% size
+ 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 18 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 92.71% WaitInterval
| + 92.71% WaitUntil
| + 92.71% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.48% PG::lock
| + 6.48% Mutex::Lock
| + 6.48% pthread_mutex_lock
| + 6.48% _L_lock_812
| + 6.48% __lll_lock_wait
+ 0.81% run
+ 0.81% PGOpItem::run
+ 0.81% OSD::dequeue_op
+ 0.81% PrimaryLogPG::do_request
+ 0.81% PrimaryLogPG::do_op
+ 0.40% std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream
| + 0.40% ~basic_stringbuf
| + 0.40% ~basic_string
| + 0.40% _M_dispose
| + 0.40% std::string::_Rep::_M_destroy
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% PrimaryLogPG::execute_ctx
+ 0.40% PrimaryLogPG::calc_trim_to
+ 0.40% size
+ 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 19 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 88.66% WaitInterval
| + 88.66% WaitUntil
| + 88.66% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.48% run
| + 6.48% PGOpItem::run
| + 6.48% OSD::dequeue_op
| + 6.48% PrimaryLogPG::do_request
| + 6.48% PrimaryLogPG::do_op
| + 6.48% PrimaryLogPG::execute_ctx
| + 6.48% PrimaryLogPG::issue_repop
| + 6.48% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 3.24% PrimaryLogPG::queue_transactions
| | + 3.24% queue_transactions
| | + 3.24% BlueStore::queue_transactions
| | + 1.62% BlueStore::_txc_add_transaction
| | | + 0.40% decode_attrset
| | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | + 0.40% decode
| | | | + 0.40% decode<std::basic_string<char> >
| | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | + 0.40% decode
| | | | + 0.40% decode
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% begin
| | | | + 0.40% iterator
| | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | + 0.40% ceph::buffer::list::rebuild
| | | | + 0.40% ceph::buffer::list::rebuild
| | | | + 0.40% clear
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% BlueStore::_write
| | | | + 0.40% BlueStore::_do_write
| | | | + 0.40% BlueStore::_wctx_finish
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% BlueStore::_omap_setkeys
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 1.21% collect_contexts
| | | + 1.21% C_ContextsBase<Context, Context>::list_to_context
| | | + 1.21% clear
| | | + 1.21% _M_clear
| | | + 1.21% _M_put_node
| | | + 1.21% deallocate
| | | + 1.21% tc_delete
| | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 1.21% SpinLock::SlowLock()
| | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | + 0.40% rocksdb::WriteBatch::Put
| | + 0.40% rocksdb::WriteBatchInternal::Put
| | + 0.40% PutLengthPrefixedSliceParts
| | + 0.40% std::string::append
| | + 0.40% std::string::reserve
| | + 0.40% _M_dispose
| | + 0.40% std::string::_Rep::_M_destroy
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.62% PrimaryLogPG::log_operation
| | + 1.62% PG::append_log
| | + 0.81% PG::write_if_dirty
| | | + 0.40% PGLog::write_log_and_missing
| | | | + 0.40% PGLog::_write_log_and_missing
| | | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% ObjectStore::Transaction::omap_setkeys
| | | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | + 0.40% ~pair
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PGLog::trim
| | | + 0.40% PGLog::IndexedLog::trim
| | | + 0.40% PGLog::IndexedLog::unindex
| | | + 0.40% erase
| | | + 0.40% erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_deallocate_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PGLog::IndexedLog::trim
| | + 0.40% PGLog::IndexedLog::unindex
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase
| | + 0.40% _M_erase
| | + 0.40% _M_deallocate_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.21% generate_transaction
| | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 1.21% operator()
| | + 1.21% ObjectStore::Transaction::setattrs
| | + 1.21% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 1.21% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 1.21% ~pair
| | + 1.21% ~list
| | + 1.21% ~list
| | + 1.21% ~_List_base
| | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 1.21% _M_put_node
| | + 1.21% deallocate
| | + 1.21% tc_delete
| | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 1.21% SpinLock::SlowLock()
| | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% ~unique_ptr
| + 0.40% operator()
| + 0.40% ~PGTransaction
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<hobject_t, std::pair<hobject_t const, PGTransaction::ObjectOperation>, std::_Select1st<std::pair<hobject_t const, PGTransaction::ObjectOperation> >, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, PGTransaction::ObjectOperation> > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% destroy<std::_Rb_tree_node<std::pair<hobject_t const, PGTransaction::ObjectOperation> > >
| + 0.40% ~_Rb_tree_node
| + 0.40% ~pair
| + 0.40% ~ObjectOperation
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, boost::optional<ceph::buffer::list> >, std::_Select1st<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::optional<ceph::buffer::list> > > >::_M_erase
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, boost::optional<ceph::buffer::list> >, std::_Select1st<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::optional<ceph::buffer::list> > > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, boost::optional<ceph::buffer::list> > > >
| + 0.40% ~_Rb_tree_node
| + 0.40% ~pair
| + 0.40% ~optional
| + 0.40% ~optional_base
| + 0.40% destroy
| + 0.40% destroy_impl
| + 0.40% ~list
| + 0.40% ~list
| + 0.40% ~_List_base
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.40% ~_List_node
| + 0.40% ~ptr
| + 0.40% ceph::buffer::ptr::release
| + 0.40% tc_free
| + 0.40% tcmalloc::ThreadCache::IncreaseCacheLimit()
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 4.86% PG::lock
+ 4.86% Mutex::Lock
+ 4.86% pthread_mutex_lock
+ 4.86% _L_lock_812
+ 4.86% __lll_lock_wait
Thread: 20 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 89.07% WaitInterval
| + 89.07% WaitUntil
| + 89.07% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.07% run
| + 6.07% PGOpItem::run
| + 6.07% OSD::dequeue_op
| + 6.07% PrimaryLogPG::do_request
| + 6.07% PrimaryLogPG::do_op
| + 5.26% PrimaryLogPG::execute_ctx
| | + 4.86% PrimaryLogPG::issue_repop
| | | + 4.86% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 2.83% PrimaryLogPG::queue_transactions
| | | | + 2.83% queue_transactions
| | | | + 2.83% BlueStore::queue_transactions
| | | | + 1.21% BlueStore::_txc_write_nodes
| | | | | + 1.21% BlueStore::ExtentMap::update
| | | | | + 1.21% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 1.21% operator()
| | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.81% PutLengthPrefixedSlice
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.81% _M_dispose
| | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% combine_strings
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 1.21% BlueStore::_txc_add_transaction
| | | | | + 0.81% begin
| | | | | | + 0.81% iterator
| | | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | | + 0.40% erase
| | | | | | | + 0.40% _M_erase
| | | | | | | + 0.40% _M_put_node
| | | | | | | + 0.40% deallocate
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | + 0.40% clear
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_omap_setkeys
| | | | | + 0.40% operator+=
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% collect_contexts
| | | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | | + 0.40% clear
| | | | + 0.40% _M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% generate_transaction
| | | | + 0.81% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | | + 0.81% operator()
| | | | + 0.81% ObjectStore::Transaction::setattrs
| | | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% ~pair
| | | | + 0.81% ~list
| | | | + 0.81% ~list
| | | | + 0.81% ~_List_base
| | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.81% _M_put_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% PrimaryLogPG::log_operation
| | | | + 0.81% PG::append_log
| | | | + 0.40% PGLog::IndexedLog::trim
| | | | | + 0.40% PGLog::IndexedLog::unindex
| | | | | + 0.40% erase
| | | | | + 0.40% erase
| | | | | + 0.40% _M_erase
| | | | | + 0.40% _M_erase
| | | | | + 0.40% _M_deallocate_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% PG::write_if_dirty
| | | | + 0.40% PGLog::write_log_and_missing
| | | | + 0.40% PGLog::_write_log_and_missing
| | | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% insert<std::_Rb_tree_const_iterator<pg_shard_t> >
| | | + 0.40% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_insert_unique<std::_Rb_tree_const_iterator<pg_shard_t> >
| | | + 0.40% _M_insert_unique_<pg_shard_t const&>
| | | + 0.40% std::_Rb_tree<pg_shard_t, pg_shard_t, std::_Identity<pg_shard_t>, std::less<pg_shard_t>, std::allocator<pg_shard_t> >::_M_insert_<pg_shard_t const&>
| | | + 0.40% _M_create_node<pg_shard_t const&>
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PrimaryLogPG::calc_trim_to
| | + 0.40% size
| | + 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.81% clear_payload
| + 0.81% ceph::buffer::list::clear
| + 0.81% clear
| + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.81% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.81% ~_List_node
| + 0.81% ~ptr
| + 0.81% ceph::buffer::ptr::release
| + 0.81% ceph::buffer::raw_combined::~raw_combined
| + 0.81% ~raw_combined
| + 0.81% ~raw
| + 0.81% ~map
| + 0.81% ~_Rb_tree
| + 0.81% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
| + 0.81% _M_destroy_node
| + 0.81% _M_put_node
| + 0.81% deallocate
| + 0.81% tc_delete
| + 0.81% tcmalloc::ThreadCache::Scavenge()
| + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.81% SpinLock::SlowLock()
| + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
+ 4.86% PG::lock
+ 4.86% Mutex::Lock
+ 4.86% pthread_mutex_lock
+ 4.86% _L_lock_812
+ 4.86% __lll_lock_wait
Thread: 21 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 89.07% WaitInterval
| + 89.07% WaitUntil
| + 89.07% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.07% run
| + 6.07% PGOpItem::run
| + 6.07% OSD::dequeue_op
| + 6.07% PrimaryLogPG::do_request
| + 6.07% PrimaryLogPG::do_op
| + 6.07% PrimaryLogPG::execute_ctx
| + 6.07% PrimaryLogPG::issue_repop
| + 6.07% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 4.05% PrimaryLogPG::queue_transactions
| | + 4.05% queue_transactions
| | + 4.05% BlueStore::queue_transactions
| | + 1.62% BlueStore::_txc_write_nodes
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.81% combine_strings
| | | | + 0.81% operator=
| | | | + 0.81% std::string::assign
| | | | + 0.81% _M_dispose
| | | | + 0.81% std::string::_Rep::_M_destroy
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% BlueStore::ExtentMap::update
| | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | + 0.81% operator()
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% combine_strings
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSlice
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 1.62% BlueStore::_txc_add_transaction
| | | + 0.81% BlueStore::_omap_setkeys
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.81% rocksdb::WriteBatch::Put
| | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | + 0.81% PutLengthPrefixedSliceParts
| | | | + 0.81% std::string::append
| | | | + 0.81% std::string::reserve
| | | | + 0.81% _M_dispose
| | | | + 0.81% std::string::_Rep::_M_destroy
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% begin
| | | | + 0.40% iterator
| | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | + 0.40% erase
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% BlueStore::_write
| | | + 0.40% BlueStore::_do_write
| | | + 0.40% BlueStore::_do_write_data
| | | + 0.40% BlueStore::_do_write_small
| | | + 0.40% BlueStore::_get_deferred_op
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | + 0.81% rocksdb::WriteBatch::Put
| | + 0.81% rocksdb::WriteBatchInternal::Put
| | + 0.81% PutLengthPrefixedSliceParts
| | + 0.81% std::string::append
| | + 0.81% std::string::reserve
| | + 0.81% _M_dispose
| | + 0.81% std::string::_Rep::_M_destroy
| | + 0.81% deallocate
| | + 0.81% tc_delete
| | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.81% SpinLock::SlowLock()
| | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.21% generate_transaction
| | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 1.21% operator()
| | + 1.21% ObjectStore::Transaction::setattrs
| | + 1.21% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 1.21% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 1.21% ~pair
| | + 1.21% ~list
| | + 1.21% ~list
| | + 1.21% ~_List_base
| | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 1.21% _M_put_node
| | + 1.21% deallocate
| | + 1.21% tc_delete
| | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 1.21% SpinLock::SlowLock()
| | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.81% PrimaryLogPG::log_operation
| + 0.81% PG::append_log
| + 0.40% PGLog::IndexedLog::trim
| | + 0.40% PGLog::IndexedLog::unindex
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase
| | + 0.40% _M_erase
| | + 0.40% _M_deallocate_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% PG::write_if_dirty
| + 0.40% ObjectStore::Transaction::omap_setkeys
| + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| + 0.40% ~pair
| + 0.40% ~list
| + 0.40% ~list
| + 0.40% ~_List_base
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 4.86% PG::lock
+ 4.86% Mutex::Lock
+ 4.86% pthread_mutex_lock
+ 4.86% _L_lock_812
+ 4.86% __lll_lock_wait
Thread: 22 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 92.71% WaitInterval
| + 92.71% WaitUntil
| + 92.71% pthread_cond_timedwait@@GLIBC_2.3.2
+ 3.64% run
| + 3.64% PGOpItem::run
| + 3.64% OSD::dequeue_op
| + 3.64% PrimaryLogPG::do_request
| + 3.64% PrimaryLogPG::do_op
| + 3.64% PrimaryLogPG::execute_ctx
| + 3.24% PrimaryLogPG::issue_repop
| | + 3.24% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 2.43% PrimaryLogPG::queue_transactions
| | | + 2.43% queue_transactions
| | | + 2.43% BlueStore::queue_transactions
| | | + 1.21% BlueStore::_txc_add_transaction
| | | | + 0.81% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_write
| | | | + 0.40% BlueStore::_do_write
| | | | + 0.40% BlueStore::_do_write_data
| | | | + 0.40% BlueStore::_do_write_small
| | | | + 0.40% ~function
| | | | + 0.40% ~_Function_base
| | | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | + 0.40% _M_destroy
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% BlueStore::_txc_write_nodes
| | | | + 0.81% BlueStore::ExtentMap::update
| | | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | + 0.81% operator()
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% combine_strings
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.40% rocksdb::WriteBatch::Put
| | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | + 0.40% PutLengthPrefixedSlice
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | + 0.81% PG::append_log
| | + 0.81% PG::write_if_dirty
| | + 0.40% PGLog::write_log_and_missing
| | | + 0.40% PGLog::_write_log_and_missing
| | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% ObjectStore::Transaction::omap_setkeys
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| + 0.40% PrimaryLogPG::prepare_transaction
| + 0.40% PrimaryLogPG::finish_ctx
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| + 0.40% ~_Rb_tree_node
| + 0.40% ~pair
| + 0.40% ~list
| + 0.40% ~list
| + 0.40% ~_List_base
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 3.64% PG::lock
+ 3.64% Mutex::Lock
+ 3.64% pthread_mutex_lock
+ 3.64% _L_lock_812
+ 3.64% __lll_lock_wait
Thread: 23 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 85.43% WaitInterval
| + 85.43% WaitUntil
| + 85.43% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 8.10% PG::lock
| + 8.10% Mutex::Lock
| + 8.10% pthread_mutex_lock
| + 8.10% _L_lock_812
| + 8.10% __lll_lock_wait
+ 6.48% run
+ 6.48% PGOpItem::run
+ 6.48% OSD::dequeue_op
+ 6.48% PrimaryLogPG::do_request
+ 6.48% PrimaryLogPG::do_op
+ 6.48% PrimaryLogPG::execute_ctx
+ 5.67% PrimaryLogPG::issue_repop
| + 4.45% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 2.43% PrimaryLogPG::queue_transactions
| | | + 2.43% queue_transactions
| | | + 2.43% BlueStore::queue_transactions
| | | + 1.62% BlueStore::_txc_add_transaction
| | | | + 1.21% BlueStore::_write
| | | | | + 1.21% BlueStore::_do_write
| | | | | + 0.81% BlueStore::_do_write_data
| | | | | | + 0.81% BlueStore::_do_write_small
| | | | | | + 0.81% ~function
| | | | | | + 0.81% ~_Function_base
| | | | | | + 0.81% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | | + 0.81% _M_destroy
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_wctx_finish
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% begin
| | | | + 0.40% iterator
| | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | + 0.40% erase
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% BlueStore::_txc_write_nodes
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% combine_strings
| | | | + 0.40% operator=
| | | | + 0.40% std::string::assign
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% BlueStore::ExtentMap::update
| | | + 0.40% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | + 0.40% operator()
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% combine_strings
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 1.21% generate_transaction
| | | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 0.81% operator()
| | | | + 0.81% ObjectStore::Transaction::setattrs
| | | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.40% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 0.40% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 0.40% ~pair
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.40% ~pair
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% pop_front
| | | + 0.40% _M_erase
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | + 0.81% PG::append_log
| | + 0.40% PGLog::IndexedLog::trim
| | | + 0.40% PGLog::IndexedLog::unindex
| | | + 0.40% erase
| | | + 0.40% erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_deallocate_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PG::write_if_dirty
| | + 0.40% ObjectStore::Transaction::omap_setkeys
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.81% add
| | + 0.40% push_back
| | | + 0.40% _M_insert<pg_log_entry_t const&>
| | | + 0.40% _M_create_node<pg_log_entry_t const&>
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_newarray
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% operator[]
| | + 0.40% std::__detail::_Map_base<osd_reqid_t, std::pair<osd_reqid_t const, pg_log_entry_t*>, std::allocator<std::pair<osd_reqid_t const, pg_log_entry_t*> >, std::__detail::_Select1st, std::equal_to<osd_reqid_t>, std::hash<osd_reqid_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[]
| | + 0.40% _M_allocate_node<const std::piecewise_construct_t&, std::tuple<const osd_reqid_t&>, std::tuple<> >
| | + 0.40% allocate
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% tc_new
| + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.81% PrimaryLogPG::calc_trim_to
+ 0.81% size
+ 0.81% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.81% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 24 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 83.40% WaitInterval
| + 83.40% WaitUntil
| + 83.40% pthread_cond_timedwait@@GLIBC_2.3.2
+ 9.31% PG::lock
| + 9.31% Mutex::Lock
| + 9.31% pthread_mutex_lock
| + 9.31% _L_lock_812
| + 9.31% __lll_lock_wait
+ 7.29% run
+ 7.29% PGOpItem::run
+ 7.29% OSD::dequeue_op
+ 7.29% PrimaryLogPG::do_request
+ 7.29% PrimaryLogPG::do_op
+ 7.29% PrimaryLogPG::execute_ctx
+ 6.48% PrimaryLogPG::issue_repop
| + 6.07% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 2.83% generate_transaction
| | | + 2.83% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 1.62% operator()
| | | | + 1.62% ObjectStore::Transaction::setattrs
| | | | + 1.62% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 1.62% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 1.62% ~pair
| | | | + 1.62% ~list
| | | | + 1.62% ~list
| | | | + 1.62% ~_List_base
| | | | + 1.62% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 1.62% _M_put_node
| | | | + 1.62% deallocate
| | | | + 1.62% tc_delete
| | | | + 1.62% tcmalloc::ThreadCache::Scavenge()
| | | | + 1.62% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 1.62% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 1.62% SpinLock::SlowLock()
| | | | + 1.62% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 1.21% pop_front
| | | + 1.21% _M_erase
| | | + 1.21% _M_put_node
| | | + 1.21% deallocate
| | | + 1.21% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% tcmalloc::ThreadCache::IncreaseCacheLimit()
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 2.43% PrimaryLogPG::queue_transactions
| | | + 2.43% queue_transactions
| | | + 2.43% BlueStore::queue_transactions
| | | + 2.02% BlueStore::_txc_add_transaction
| | | | + 0.81% begin
| | | | | + 0.81% iterator
| | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | + 0.81% erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_put_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_get_collection
| | | | + 0.40% find
| | | | + 0.40% find
| | | | + 0.40% _M_hash_code
| | | | + 0.40% operator()
| | | | + 0.40% ~basic_string
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% BlueStore::_txc_write_nodes
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% combine_strings
| | | + 0.40% operator=
| | | + 0.40% std::string::assign
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | + 0.81% PG::append_log
| | + 0.81% PGLog::IndexedLog::trim
| | + 0.40% pop_front
| | | + 0.40% _M_erase
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_deletearray
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PGLog::IndexedLog::unindex
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase
| | + 0.40% _M_erase
| | + 0.40% _M_deallocate_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% add
| + 0.40% operator[]
| + 0.40% std::__detail::_Map_base<osd_reqid_t, std::pair<osd_reqid_t const, pg_log_entry_t*>, std::allocator<std::pair<osd_reqid_t const, pg_log_entry_t*> >, std::__detail::_Select1st, std::equal_to<osd_reqid_t>, std::hash<osd_reqid_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[]
| + 0.40% _M_allocate_node<const std::piecewise_construct_t&, std::tuple<const osd_reqid_t&>, std::tuple<> >
| + 0.40% allocate
| + 0.40% tc_new
| + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
+ 0.40% reset_obs
| + 0.40% operator=
| + 0.40% object_info_t::operator=(object_info_t&&)
| + 0.40% operator=
| + 0.40% operator=
| + 0.40% clear
| + 0.40% clear
| + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% PrimaryLogPG::prepare_transaction
+ 0.40% PrimaryLogPG::finish_ctx
+ 0.40% ~map
+ 0.40% ~_Rb_tree
+ 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
+ 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
+ 0.40% _M_destroy_node
+ 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
+ 0.40% ~_Rb_tree_node
+ 0.40% ~pair
+ 0.40% ~list
+ 0.40% ~list
+ 0.40% ~_List_base
+ 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
+ 0.40% _M_put_node
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% SpinLock::SlowLock()
+ 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 25 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 90.28% WaitInterval
| + 90.28% WaitUntil
| + 90.28% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.88% run
| + 6.88% PGOpItem::run
| + 6.88% OSD::dequeue_op
| + 6.88% PrimaryLogPG::do_request
| + 6.88% PrimaryLogPG::do_op
| + 6.88% PrimaryLogPG::execute_ctx
| + 3.64% PrimaryLogPG::issue_repop
| | + 3.64% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 2.43% PrimaryLogPG::queue_transactions
| | | + 2.43% queue_transactions
| | | + 2.43% BlueStore::queue_transactions
| | | + 2.02% BlueStore::_txc_add_transaction
| | | | + 0.81% begin
| | | | | + 0.81% iterator
| | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | + 0.81% erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_put_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_write
| | | | | + 0.81% BlueStore::_do_write
| | | | | + 0.81% BlueStore::_do_write_data
| | | | | + 0.81% BlueStore::_do_write_small
| | | | | + 0.81% ~function
| | | | | + 0.81% ~_Function_base
| | | | | + 0.81% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | + 0.81% _M_destroy
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_get_collection
| | | | + 0.40% find
| | | | + 0.40% find
| | | | + 0.40% _M_hash_code
| | | | + 0.40% operator()
| | | | + 0.40% ~basic_string
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | | + 0.81% PG::append_log
| | | + 0.81% PGLog::IndexedLog::trim
| | | + 0.81% PGLog::IndexedLog::unindex
| | | + 0.81% erase
| | | + 0.81% erase
| | | + 0.81% _M_erase
| | | + 0.81% _M_erase
| | | + 0.81% _M_deallocate_node
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% generate_transaction
| | + 0.40% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.40% operator()
| | + 0.40% ObjectStore::Transaction::setattrs
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.62% PrimaryLogPG::prepare_transaction
| | + 1.21% PrimaryLogPG::do_osd_ops
| | | + 0.81% PrimaryLogPG::write_update_size_and_usage
| | | | + 0.81% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | | | + 0.81% union_of
| | | | + 0.40% operator=
| | | | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator=
| | | | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_copy
| | | | | + 0.40% _M_clone_node
| | | | | + 0.40% _M_create_node<std::pair<unsigned long const, unsigned long> const&>
| | | | | + 0.40% _M_get_node
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% insert
| | | | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | | | + 0.40% erase
| | | | + 0.40% erase
| | | | + 0.40% _M_erase_aux
| | | | + 0.40% _M_destroy_node
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% get_val<bool>
| | | + 0.40% md_config_t::get_val_generic
| | | + 0.40% md_config_t::_get_val_generic
| | | + 0.40% ~basic_string
| | | + 0.40% std::string::_Rep::_M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PrimaryLogPG::finish_ctx
| | + 0.40% ~map
| | + 0.40% ~_Rb_tree
| | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | + 0.40% _M_destroy_node
| | + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| | + 0.40% ~_Rb_tree_node
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.62% PrimaryLogPG::calc_trim_to
| + 1.62% size
| + 1.62% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 1.62% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 2.83% PG::lock
+ 2.83% Mutex::Lock
+ 2.83% pthread_mutex_lock
+ 2.83% _L_lock_812
+ 2.83% __lll_lock_wait
Thread: 26 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 87.45% WaitInterval
| + 87.45% WaitUntil
| + 87.45% pthread_cond_timedwait@@GLIBC_2.3.2
+ 8.91% run
| + 8.91% PGOpItem::run
| + 8.91% OSD::dequeue_op
| + 8.91% PrimaryLogPG::do_request
| + 8.91% PrimaryLogPG::do_op
| + 8.91% PrimaryLogPG::execute_ctx
| + 7.69% PrimaryLogPG::issue_repop
| | + 7.69% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 4.86% PrimaryLogPG::queue_transactions
| | | + 4.86% queue_transactions
| | | + 4.86% BlueStore::queue_transactions
| | | + 2.83% BlueStore::_txc_add_transaction
| | | | + 1.21% begin
| | | | | + 1.21% iterator
| | | | | + 0.81% vector
| | | | | | + 0.81% _Vector_base
| | | | | | + 0.81% _M_create_storage
| | | | | | + 0.81% _M_allocate
| | | | | | + 0.81% allocate
| | | | | | + 0.81% tc_new
| | | | | | + 0.81% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.81% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | | + 0.40% erase
| | | | | + 0.40% _M_erase
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | + 1.21% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.81% _M_dispose
| | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% operator+=
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% decode_attrset
| | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | + 0.40% decode
| | | | + 0.40% decode<std::basic_string<char> >
| | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | + 0.40% decode
| | | | + 0.40% decode
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 1.62% BlueStore::_txc_write_nodes
| | | | + 1.62% BlueStore::ExtentMap::update
| | | | + 1.21% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 1.21% operator()
| | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 1.21% combine_strings
| | | | | + 1.21% std::string::append
| | | | | + 1.21% std::string::reserve
| | | | | + 1.21% _M_dispose
| | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | + 1.21% deallocate
| | | | | + 1.21% tc_delete
| | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.21% SpinLock::SlowLock()
| | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% ~basic_string
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 2.02% PrimaryLogPG::log_operation
| | | + 2.02% PG::append_log
| | | + 1.21% PGLog::IndexedLog::trim
| | | | + 0.81% PGLog::IndexedLog::unindex
| | | | | + 0.81% erase
| | | | | + 0.81% erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_deallocate_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% pop_front
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_deletearray
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% PG::write_if_dirty
| | | + 0.81% ObjectStore::Transaction::omap_setkeys
| | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | + 0.40% ~pair
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% pair<std::basic_string<char> const, ceph::buffer::list, void>
| | | + 0.40% ceph::buffer::list::list
| | | + 0.40% list
| | | + 0.40% _M_initialize_dispatch<std::_List_const_iterator<ceph::buffer::ptr> >
| | | + 0.40% emplace_back<ceph::buffer::ptr const&>
| | | + 0.40% _M_insert<ceph::buffer::ptr const&>
| | | + 0.40% _M_create_node<ceph::buffer::ptr const&>
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% generate_transaction
| | + 0.81% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.81% operator()
| | + 0.81% ObjectStore::Transaction::setattrs
| | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.81% ~pair
| | + 0.81% ~list
| | + 0.81% ~list
| | + 0.81% ~_List_base
| | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.81% _M_put_node
| | + 0.81% deallocate
| | + 0.81% tc_delete
| | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.81% reset_obs
| | + 0.81% operator=
| | + 0.81% object_info_t::operator=(object_info_t&&)
| | + 0.81% operator=
| | + 0.81% operator=
| | + 0.81% clear
| | + 0.81% clear
| | + 0.81% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| | + 0.81% _M_destroy_node
| | + 0.81% _M_put_node
| | + 0.81% deallocate
| | + 0.81% tc_delete
| | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.81% SpinLock::SlowLock()
| | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::calc_trim_to
| + 0.40% size
| + 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 3.64% PG::lock
+ 3.64% Mutex::Lock
+ 3.64% pthread_mutex_lock
+ 3.64% _L_lock_812
+ 3.64% __lll_lock_wait
Thread: 27 (tp_osd_tp) - 247 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 86.64% WaitInterval
| + 86.64% WaitUntil
| + 86.64% pthread_cond_timedwait@@GLIBC_2.3.2
+ 8.91% run
| + 8.91% PGOpItem::run
| + 8.91% OSD::dequeue_op
| + 8.91% PrimaryLogPG::do_request
| + 8.91% PrimaryLogPG::do_op
| + 8.91% PrimaryLogPG::execute_ctx
| + 7.29% PrimaryLogPG::issue_repop
| | + 6.88% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 4.45% PrimaryLogPG::queue_transactions
| | | | + 4.45% queue_transactions
| | | | + 4.45% BlueStore::queue_transactions
| | | | + 2.43% BlueStore::_txc_add_transaction
| | | | | + 1.21% BlueStore::_write
| | | | | | + 1.21% BlueStore::_do_write
| | | | | | + 1.21% BlueStore::_do_write_data
| | | | | | + 1.21% BlueStore::_do_write_small
| | | | | | + 0.81% function<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22, void>
| | | | | | | + 0.81% _M_init_functor
| | | | | | | + 0.81% _M_init_functor
| | | | | | | + 0.81% tc_new
| | | | | | | + 0.81% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**)
| | | | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | | | | | + 0.40% operator()
| | | | | | + 0.40% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_invoke(const std::_Any_data &, unsigned long, unsigned long)
| | | | | | + 0.40% operator()
| | | | | | + 0.40% std::vector<bluestore_pextent_t, mempool::pool_allocator<(mempool::pool_index_t)4, bluestore_pextent_t> >::emplace_back<bluestore_pextent_t>(bluestore_pextent_t&&)
| | | | | | + 0.40% std::vector<bluestore_pextent_t, mempool::pool_allocator<(mempool::pool_index_t)4, bluestore_pextent_t> >::_M_emplace_back_aux<bluestore_pextent_t>(bluestore_pextent_t&&)
| | | | | | + 0.40% _M_allocate
| | | | | | + 0.40% allocate
| | | | | | + 0.40% tc_newarray
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% decode_attrset
| | | | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | | + 0.40% decode
| | | | | | + 0.40% decode<std::basic_string<char> >
| | | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | | + 0.40% decode
| | | | | | + 0.40% decode
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~_List_base
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% begin
| | | | | | + 0.40% iterator
| | | | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | | | + 0.40% erase
| | | | | | + 0.40% _M_erase
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | + 0.40% BlueStore::_omap_setkeys
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | + 0.40% PutLengthPrefixedSliceParts
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 1.62% BlueStore::_txc_write_nodes
| | | | | + 1.21% BlueStore::ExtentMap::update
| | | | | | + 1.21% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | | + 1.21% operator()
| | | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 1.21% rocksdb::WriteBatch::Put
| | | | | | + 1.21% rocksdb::WriteBatchInternal::Put
| | | | | | + 1.21% PutLengthPrefixedSlice
| | | | | | + 1.21% std::string::append
| | | | | | + 1.21% std::string::reserve
| | | | | | + 1.21% _M_dispose
| | | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | | + 1.21% deallocate
| | | | | | + 1.21% tc_delete
| | | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 1.21% SpinLock::SlowLock()
| | | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% combine_strings
| | | | | + 0.40% operator=
| | | | | + 0.40% std::string::assign
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% collect_contexts
| | | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | | + 0.40% clear
| | | | + 0.40% _M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 1.21% generate_transaction
| | | | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | | + 1.21% operator()
| | | | + 1.21% ObjectStore::Transaction::setattrs
| | | | + 1.21% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 1.21% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 1.21% ~pair
| | | | + 1.21% ~list
| | | | + 1.21% ~list
| | | | + 1.21% ~_List_base
| | | | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 1.21% _M_put_node
| | | | + 1.21% deallocate
| | | | + 1.21% tc_delete
| | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 1.21% SpinLock::SlowLock()
| | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 1.21% PrimaryLogPG::log_operation
| | | + 1.21% PG::append_log
| | | + 0.81% PG::write_if_dirty
| | | | + 0.40% PGLog::write_log_and_missing
| | | | | + 0.40% PGLog::_write_log_and_missing
| | | | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% ObjectStore::Transaction::omap_setkeys
| | | | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.40% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.40% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.40% ~pair
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% PGLog::IndexedLog::trim
| | | + 0.40% PGLog::IndexedLog::unindex
| | | + 0.40% erase
| | | + 0.40% erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_erase
| | | + 0.40% _M_deallocate_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% add
| | + 0.40% push_back
| | + 0.40% _M_insert<pg_log_entry_t const&>
| | + 0.40% _M_create_node<pg_log_entry_t const&>
| | + 0.40% _M_get_node
| | + 0.40% allocate
| | + 0.40% tc_newarray
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.21% PrimaryLogPG::calc_trim_to
| | + 1.21% size
| | + 1.21% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.21% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% register_on_success<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% emplace_back<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% _M_insert<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% _M_create_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% construct<std::_List_node<std::function<void()> >, PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% _List_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% function<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36, void>
| + 0.40% _M_init_functor
| + 0.40% _M_init_functor
| + 0.40% tc_new
| + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 4.45% PG::lock
+ 4.45% Mutex::Lock
+ 4.45% pthread_mutex_lock
+ 4.45% _L_lock_812
+ 4.45% __lll_lock_wait
Thread: 28 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 87.10% WaitInterval
| + 87.10% WaitUntil
| + 87.10% pthread_cond_timedwait@@GLIBC_2.3.2
+ 7.66% PG::lock
| + 7.66% Mutex::Lock
| + 7.66% pthread_mutex_lock
| + 7.66% _L_lock_812
| + 7.66% __lll_lock_wait
+ 5.24% run
+ 5.24% PGOpItem::run
+ 5.24% OSD::dequeue_op
+ 5.24% PrimaryLogPG::do_request
+ 5.24% PrimaryLogPG::do_op
+ 4.84% PrimaryLogPG::execute_ctx
| + 4.44% PrimaryLogPG::issue_repop
| | + 4.44% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 3.63% PrimaryLogPG::queue_transactions
| | | + 3.63% queue_transactions
| | | + 3.63% BlueStore::queue_transactions
| | | + 2.82% BlueStore::_txc_add_transaction
| | | | + 0.81% begin
| | | | | + 0.81% iterator
| | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | + 0.40% erase
| | | | | | + 0.40% _M_erase
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% clear
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_write
| | | | | + 0.81% BlueStore::_do_write
| | | | | + 0.40% BlueStore::_wctx_finish
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_do_write_data
| | | | | + 0.40% BlueStore::_do_write_small
| | | | | + 0.40% ~function
| | | | | + 0.40% ~_Function_base
| | | | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | + 0.40% _M_destroy
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_omap_setkeys
| | | | | + 0.40% std::string::push_back
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | + 0.40% PutLengthPrefixedSliceParts
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_get_collection
| | | | + 0.40% find
| | | | + 0.40% find
| | | | + 0.40% _M_hash_code
| | | | + 0.40% operator()
| | | | + 0.40% ~basic_string
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% BlueStore::_txc_write_nodes
| | | + 0.81% BlueStore::ExtentMap::update
| | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | + 0.81% operator()
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.81% combine_strings
| | | + 0.81% std::string::append
| | | + 0.81% std::string::reserve
| | | + 0.81% _M_dispose
| | | + 0.81% std::string::_Rep::_M_destroy
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | + 0.81% PG::append_log
| | + 0.81% PG::write_if_dirty
| | + 0.40% PGLog::write_log_and_missing
| | | + 0.40% PGLog::_write_log_and_missing
| | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% ObjectStore::Transaction::omap_setkeys
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::calc_trim_to
| + 0.40% size
| + 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.40% clear_payload
+ 0.40% ceph::buffer::list::clear
+ 0.40% clear
+ 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
+ 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
+ 0.40% ~_List_node
+ 0.40% ~ptr
+ 0.40% ceph::buffer::ptr::release
+ 0.40% ceph::buffer::raw_combined::~raw_combined
+ 0.40% ~raw_combined
+ 0.40% ~raw
+ 0.40% ~map
+ 0.40% ~_Rb_tree
+ 0.40% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
+ 0.40% _M_destroy_node
+ 0.40% _M_put_node
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% SpinLock::SlowLock()
+ 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 29 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 83.47% WaitInterval
| + 83.47% WaitUntil
| + 83.47% pthread_cond_timedwait@@GLIBC_2.3.2
+ 8.87% PG::lock
| + 8.87% Mutex::Lock
| + 8.87% pthread_mutex_lock
| + 8.87% _L_lock_812
| + 8.87% __lll_lock_wait
+ 7.66% run
+ 7.66% PGOpItem::run
+ 7.66% OSD::dequeue_op
+ 7.66% PrimaryLogPG::do_request
+ 7.66% PrimaryLogPG::do_op
+ 7.26% PrimaryLogPG::execute_ctx
| + 5.65% PrimaryLogPG::issue_repop
| | + 5.65% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 3.23% PrimaryLogPG::queue_transactions
| | | + 3.23% queue_transactions
| | | + 3.23% BlueStore::queue_transactions
| | | + 1.61% BlueStore::_txc_add_transaction
| | | | + 0.40% vector
| | | | | + 0.40% _Vector_base
| | | | | + 0.40% _M_create_storage
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% decode_attrset
| | | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode<std::basic_string<char> >
| | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_write
| | | | | + 0.40% BlueStore::_do_write
| | | | | + 0.40% BlueStore::_do_write_data
| | | | | + 0.40% BlueStore::_do_write_small
| | | | | + 0.40% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | | | | + 0.40% operator()
| | | | | + 0.40% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_invoke(const std::_Any_data &, unsigned long, unsigned long)
| | | | | + 0.40% operator()
| | | | | + 0.40% std::vector<bluestore_pextent_t, mempool::pool_allocator<(mempool::pool_index_t)4, bluestore_pextent_t> >::emplace_back<bluestore_pextent_t>(bluestore_pextent_t&&)
| | | | | + 0.40% std::vector<bluestore_pextent_t, mempool::pool_allocator<(mempool::pool_index_t)4, bluestore_pextent_t> >::_M_emplace_back_aux<bluestore_pextent_t>(bluestore_pextent_t&&)
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_newarray
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% BlueStore::_omap_setkeys
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.40% rocksdb::WriteBatch::Put
| | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | + 0.40% PutLengthPrefixedSliceParts
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% std::string::_Rep::_M_clone
| | | | + 0.40% std::string::_Rep::_S_create
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 1.21% BlueStore::_txc_write_nodes
| | | | + 0.81% BlueStore::ExtentMap::update
| | | | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 0.81% operator()
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% combine_strings
| | | | | | + 0.40% std::string::append
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | + 0.40% PutLengthPrefixedSlice
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% combine_strings
| | | | + 0.40% operator=
| | | | + 0.40% std::string::assign
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 2.02% generate_transaction
| | | + 2.02% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 2.02% operator()
| | | + 2.02% ObjectStore::Transaction::setattrs
| | | + 2.02% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | + 1.61% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 1.61% ~pair
| | | | + 1.61% ~list
| | | | + 1.61% ~list
| | | | + 1.61% ~_List_base
| | | | + 1.61% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 1.61% _M_put_node
| | | | + 1.61% deallocate
| | | | + 1.61% tc_delete
| | | | + 1.61% tcmalloc::ThreadCache::Scavenge()
| | | | + 1.61% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 1.61% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 1.61% SpinLock::SlowLock()
| | | | + 1.61% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | + 0.40% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | + 0.40% ~pair
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PrimaryLogPG::log_operation
| | + 0.40% PG::append_log
| | + 0.40% PGLog::IndexedLog::trim
| | + 0.40% PGLog::IndexedLog::unindex
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase
| | + 0.40% _M_erase
| | + 0.40% _M_deallocate_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.81% reset_obs
| | + 0.81% operator=
| | + 0.81% object_info_t::operator=(object_info_t&&)
| | + 0.81% operator=
| | + 0.81% operator=
| | + 0.81% clear
| | + 0.81% clear
| | + 0.81% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| | + 0.81% _M_destroy_node
| | + 0.81% _M_put_node
| | + 0.81% deallocate
| | + 0.81% tc_delete
| | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.81% SpinLock::SlowLock()
| | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% register_on_success<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% emplace_back<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _M_insert<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _M_create_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% construct<std::_List_node<std::function<void()> >, PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _List_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% function<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36, void>
| | + 0.40% _M_init_functor
| | + 0.40% _M_init_functor
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 0.40% PrimaryLogPG::prepare_transaction
| + 0.40% PrimaryLogPG::finish_ctx
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| + 0.40% ~_Rb_tree_node
| + 0.40% ~pair
| + 0.40% ~list
| + 0.40% ~list
| + 0.40% ~_List_base
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% PG::op_has_sufficient_caps
+ 0.40% OSDCap::is_capable
+ 0.40% ~vector
+ 0.40% ~_Bvector_base
+ 0.40% _M_deallocate
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
+ 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
Thread: 30 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 90.32% WaitInterval
| + 90.32% WaitUntil
| + 90.32% pthread_cond_timedwait@@GLIBC_2.3.2
+ 5.24% PG::lock
| + 5.24% Mutex::Lock
| + 5.24% pthread_mutex_lock
| + 5.24% _L_lock_812
| + 5.24% __lll_lock_wait
+ 4.44% run
+ 4.44% PGOpItem::run
+ 4.44% OSD::dequeue_op
+ 4.44% PrimaryLogPG::do_request
+ 4.44% PrimaryLogPG::do_op
+ 4.44% PrimaryLogPG::execute_ctx
+ 3.63% PrimaryLogPG::issue_repop
| + 3.63% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 2.02% PrimaryLogPG::queue_transactions
| | + 2.02% queue_transactions
| | + 2.02% BlueStore::queue_transactions
| | + 1.21% BlueStore::_txc_add_transaction
| | | + 0.40% decode_attrset
| | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | + 0.40% decode
| | | | + 0.40% decode<std::basic_string<char> >
| | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | + 0.40% decode
| | | | + 0.40% decode
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% begin
| | | | + 0.40% iterator
| | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | + 0.40% ceph::buffer::list::rebuild
| | | | + 0.40% ceph::buffer::create
| | | | + 0.40% ceph::buffer::create_aligned
| | | | + 0.40% ceph::buffer::create_aligned_in_mempool
| | | | + 0.40% create
| | | | + 0.40% tc_posix_memalign
| | | | + 0.40% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.40% BlueStore::_omap_setkeys
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% BlueStore::_txc_write_nodes
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% combine_strings
| | | + 0.40% operator=
| | | + 0.40% std::string::assign
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% BlueStore::ExtentMap::update
| | + 0.40% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | + 0.40% operator()
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | + 0.40% rocksdb::WriteBatch::Put
| | + 0.40% rocksdb::WriteBatchInternal::Put
| | + 0.40% PutLengthPrefixedSlice
| | + 0.40% std::string::append
| | + 0.40% std::string::reserve
| | + 0.40% _M_dispose
| | + 0.40% std::string::_Rep::_M_destroy
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.61% PrimaryLogPG::log_operation
| + 1.61% PG::append_log
| + 1.21% PG::write_if_dirty
| | + 0.81% PGLog::write_log_and_missing
| | | + 0.81% PGLog::_write_log_and_missing
| | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% ObjectStore::Transaction::omap_rmkeys
| | | + 0.40% ObjectStore::Transaction::_get_object_id
| | | + 0.40% operator[]
| | | + 0.40% std::_Rb_tree<ghobject_t, std::pair<ghobject_t const, unsigned int>, std::_Select1st<std::pair<ghobject_t const, unsigned int> >, std::less<ghobject_t>, std::allocator<std::pair<ghobject_t const, unsigned int> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<ghobject_t const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<ghobject_t const, unsigned int> >, std::piecewise_construct_t const&, std::tuple<ghobject_t const&>&&, std::tuple<>&&)
| | | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<const ghobject_t&>, std::tuple<> >
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% ObjectStore::Transaction::omap_setkeys
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PGLog::IndexedLog::trim
| + 0.40% PGLog::IndexedLog::unindex
| + 0.40% erase
| + 0.40% erase
| + 0.40% _M_erase
| + 0.40% _M_erase
| + 0.40% _M_deallocate_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% register_on_success<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% emplace_back<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% _M_insert<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% _M_create_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% construct<std::_List_node<std::function<void()> >, PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% _List_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| + 0.40% function<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36, void>
| + 0.40% _M_init_functor
| + 0.40% _M_init_functor
| + 0.40% tc_new
| + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
+ 0.40% PrimaryLogPG::prepare_transaction
+ 0.40% PrimaryLogPG::do_osd_ops
+ 0.40% PrimaryLogPG::write_update_size_and_usage
+ 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
+ 0.40% union_of
+ 0.40% insert
+ 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
+ 0.40% erase
+ 0.40% erase
+ 0.40% _M_erase_aux
+ 0.40% _M_destroy_node
+ 0.40% _M_put_node
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% SpinLock::SlowLock()
+ 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 31 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 82.66% WaitInterval
| + 82.66% WaitUntil
| + 82.66% pthread_cond_timedwait@@GLIBC_2.3.2
+ 10.48% run
| + 10.48% PGOpItem::run
| + 10.48% OSD::dequeue_op
| + 10.48% PrimaryLogPG::do_request
| + 10.48% PrimaryLogPG::do_op
| + 9.68% PrimaryLogPG::execute_ctx
| | + 6.85% PrimaryLogPG::issue_repop
| | | + 6.45% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | | + 2.02% PrimaryLogPG::queue_transactions
| | | | | + 2.02% queue_transactions
| | | | | + 2.02% BlueStore::queue_transactions
| | | | | + 1.61% BlueStore::_txc_add_transaction
| | | | | | + 0.81% BlueStore::_omap_setkeys
| | | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | | | + 0.81% std::string::append
| | | | | | | + 0.81% std::string::reserve
| | | | | | | + 0.81% _M_dispose
| | | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | | + 0.81% deallocate
| | | | | | | + 0.81% tc_delete
| | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% BlueStore::_write
| | | | | | | + 0.40% BlueStore::_do_write
| | | | | | | + 0.40% BlueStore::_wctx_finish
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% BlueStore::_omap_rmkeys
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::rmkey
| | | | | | + 0.40% rocksdb::WriteBatch::Delete
| | | | | | + 0.40% rocksdb::WriteBatchInternal::Delete
| | | | | | + 0.40% PutLengthPrefixedSlice
| | | | | | + 0.40% std::string::append
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | + 0.40% BlueStore::_txc_write_nodes
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% combine_strings
| | | | | + 0.40% operator=
| | | | | + 0.40% std::string::assign
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 2.02% PrimaryLogPG::log_operation
| | | | | + 2.02% PG::append_log
| | | | | + 1.61% PG::write_if_dirty
| | | | | | + 1.21% PGLog::write_log_and_missing
| | | | | | | + 1.21% PGLog::_write_log_and_missing
| | | | | | | + 1.21% pg_log_entry_t::encode_with_checksum
| | | | | | | + 1.21% ~list
| | | | | | | + 1.21% ~list
| | | | | | | + 1.21% ~_List_base
| | | | | | | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | | + 1.21% _M_put_node
| | | | | | | + 1.21% deallocate
| | | | | | | + 1.21% tc_delete
| | | | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | | + 0.40% ObjectStore::Transaction::omap_setkeys
| | | | | | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | | + 0.40% ~pair
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~_List_base
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% PGLog::IndexedLog::trim
| | | | | + 0.40% PGLog::IndexedLog::unindex
| | | | | + 0.40% erase
| | | | | + 0.40% erase
| | | | | + 0.40% _M_erase
| | | | | + 0.40% _M_erase
| | | | | + 0.40% _M_deallocate_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 1.61% generate_transaction
| | | | | + 1.61% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | | | + 1.61% operator()
| | | | | + 1.61% ObjectStore::Transaction::setattrs
| | | | | + 1.61% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | + 1.61% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 1.61% ~pair
| | | | | + 1.61% ~list
| | | | | + 1.61% ~list
| | | | | + 1.61% ~_List_base
| | | | | + 1.61% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 1.61% _M_put_node
| | | | | + 1.61% deallocate
| | | | | + 1.61% tc_delete
| | | | | + 1.61% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.61% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.61% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.61% SpinLock::SlowLock()
| | | | | + 1.61% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% ~vector
| | | | + 0.81% _Destroy<ObjectStore::Transaction*, ObjectStore::Transaction>
| | | | + 0.81% _Destroy<ObjectStore::Transaction*>
| | | | + 0.81% __destroy<ObjectStore::Transaction*>
| | | | + 0.81% _Destroy<ObjectStore::Transaction>
| | | | + 0.81% ObjectStore::Transaction::~Transaction
| | | | + 0.81% ~list
| | | | + 0.81% ~list
| | | | + 0.81% ~_List_base
| | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.81% destroy<std::_List_node<ceph::buffer::ptr> >
| | | | + 0.81% ~_List_node
| | | | + 0.81% ~ptr
| | | | + 0.81% ceph::buffer::ptr::release
| | | | + 0.81% tc_free
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% add
| | | + 0.40% push_back
| | | + 0.40% _M_insert<pg_log_entry_t const&>
| | | + 0.40% _M_create_node<pg_log_entry_t const&>
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_newarray
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 1.61% PrimaryLogPG::prepare_transaction
| | | + 1.21% PrimaryLogPG::finish_ctx
| | | | + 0.81% ~map
| | | | | + 0.81% ~_Rb_tree
| | | | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | | | + 0.81% _M_destroy_node
| | | | | + 0.81% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| | | | | + 0.81% ~_Rb_tree_node
| | | | | + 0.81% ~pair
| | | | | + 0.81% ~list
| | | | | + 0.81% ~list
| | | | | + 0.81% ~_List_base
| | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.81% _M_put_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% operator=
| | | | + 0.40% object_info_t::operator=
| | | | + 0.40% operator=
| | | | + 0.40% operator=
| | | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator=
| | | | + 0.40% clear
| | | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| | | | + 0.40% _M_destroy_node
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% PrimaryLogPG::do_osd_ops
| | | + 0.40% PrimaryLogPG::write_update_size_and_usage
| | | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | | + 0.40% union_of
| | | + 0.40% insert
| | | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | | + 0.40% erase
| | | + 0.40% erase
| | | + 0.40% _M_erase_aux
| | | + 0.40% _M_destroy_node
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::calc_trim_to
| | | + 0.81% size
| | | + 0.81% distance<std::_List_const_iterator<pg_log_entry_t> >
| | | + 0.81% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.40% register_on_success<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% emplace_back<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _M_insert<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _M_create_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% construct<std::_List_node<std::function<void()> >, PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _List_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% function<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36, void>
| | + 0.40% _M_init_functor
| | + 0.40% _M_init_functor
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpansSafe(int, void**, void**)
| | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 0.81% clear_payload
| + 0.81% ceph::buffer::list::clear
| + 0.81% clear
| + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.81% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.81% ~_List_node
| + 0.81% ~ptr
| + 0.81% ceph::buffer::ptr::release
| + 0.81% ceph::buffer::raw_combined::~raw_combined
| + 0.81% ~raw_combined
| + 0.81% ~raw
| + 0.81% ~map
| + 0.81% ~_Rb_tree
| + 0.81% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
| + 0.81% _M_destroy_node
| + 0.81% _M_put_node
| + 0.81% deallocate
| + 0.81% tc_delete
| + 0.81% tcmalloc::ThreadCache::Scavenge()
| + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.81% SpinLock::SlowLock()
| + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
+ 6.85% PG::lock
+ 6.85% Mutex::Lock
+ 6.85% pthread_mutex_lock
+ 6.85% _L_lock_812
+ 6.85% __lll_lock_wait
Thread: 32 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 86.69% WaitInterval
| + 86.69% WaitUntil
| + 86.69% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 8.87% run
| + 8.87% PGOpItem::run
| + 8.87% OSD::dequeue_op
| + 8.87% PrimaryLogPG::do_request
| + 8.87% PrimaryLogPG::do_op
| + 8.87% PrimaryLogPG::execute_ctx
| + 8.06% PrimaryLogPG::issue_repop
| | + 8.06% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 5.24% PrimaryLogPG::queue_transactions
| | | + 5.24% queue_transactions
| | | + 5.24% BlueStore::queue_transactions
| | | + 2.82% BlueStore::_txc_add_transaction
| | | | + 0.81% begin
| | | | | + 0.81% iterator
| | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | + 0.81% erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_put_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_write
| | | | | + 0.81% BlueStore::_do_write
| | | | | + 0.81% BlueStore::_do_write_data
| | | | | + 0.81% BlueStore::_do_write_small
| | | | | + 0.40% ~function
| | | | | | + 0.40% ~_Function_base
| | | | | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | | + 0.40% _M_destroy
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_buffer_cache_write
| | | | | + 0.40% insert
| | | | | + 0.40% std::_Rb_tree<boost::intrusive_ptr<BlueStore::SharedBlob>, boost::intrusive_ptr<BlueStore::SharedBlob>, std::_Identity<boost::intrusive_ptr<BlueStore::SharedBlob> >, std::less<boost::intrusive_ptr<BlueStore::SharedBlob> >, std::allocator<boost::intrusive_ptr<BlueStore::SharedBlob> > >::_M_insert_unique<boost::intrusive_ptr<BlueStore::SharedBlob> const&>
| | | | | + 0.40% _M_insert_<boost::intrusive_ptr<BlueStore::SharedBlob> const&>
| | | | | + 0.40% _M_create_node<boost::intrusive_ptr<BlueStore::SharedBlob> const&>
| | | | | + 0.40% _M_get_node
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.81% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_setattrs
| | | | + 0.40% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | | + 0.40% ceph::buffer::ptr::release
| | | | + 0.40% tc_free
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 2.02% BlueStore::_txc_write_nodes
| | | | + 1.61% BlueStore::ExtentMap::update
| | | | | + 1.61% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 1.61% operator()
| | | | | + 1.61% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% combine_strings
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.81% _M_dispose
| | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | + 0.81% PutLengthPrefixedSlice
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% get_contiguous_appender
| | | | + 0.40% ceph::buffer::list::contiguous_appender::contiguous_appender
| | | | + 0.40% ceph::buffer::create
| | | | + 0.40% ceph::buffer::create_aligned
| | | | + 0.40% ceph::buffer::create_aligned_in_mempool
| | | | + 0.40% create
| | | | + 0.40% tc_posix_memalign
| | | | + 0.40% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.40% collect_contexts
| | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | + 0.40% clear
| | | + 0.40% _M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 2.42% PrimaryLogPG::log_operation
| | | + 2.42% PG::append_log
| | | + 1.61% PG::write_if_dirty
| | | | + 1.61% PGLog::write_log_and_missing
| | | | + 1.61% PGLog::_write_log_and_missing
| | | | + 1.61% pg_log_entry_t::encode_with_checksum
| | | | + 1.21% ~list
| | | | | + 1.21% ~list
| | | | | + 1.21% ~_List_base
| | | | | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 1.21% _M_put_node
| | | | | + 1.21% deallocate
| | | | | + 1.21% tc_delete
| | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.21% SpinLock::SlowLock()
| | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% ceph::buffer::list::crc32c
| | | | + 0.40% ceph_crc32c
| | | | + 0.40% ceph_crc32c_intel_fast
| | | + 0.81% PGLog::IndexedLog::trim
| | | + 0.81% PGLog::IndexedLog::unindex
| | | + 0.81% erase
| | | + 0.81% erase
| | | + 0.81% _M_erase
| | | + 0.81% _M_erase
| | | + 0.81% _M_deallocate_node
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% generate_transaction
| | + 0.40% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.40% operator()
| | + 0.40% ObjectStore::Transaction::setattrs
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| + 0.40% register_on_success<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% emplace_back<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _M_insert<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _M_create_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% construct<std::_List_node<std::function<void()> >, PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% _List_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | + 0.40% function<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36, void>
| | + 0.40% _M_init_functor
| | + 0.40% _M_init_functor
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::calc_trim_to
| + 0.40% size
| + 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 4.44% PG::lock
+ 4.44% Mutex::Lock
+ 4.44% pthread_mutex_lock
+ 4.44% _L_lock_812
+ 4.44% __lll_lock_wait
Thread: 33 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 84.68% WaitInterval
| + 84.68% WaitUntil
| + 84.68% pthread_cond_timedwait@@GLIBC_2.3.2
+ 8.47% run
| + 8.47% PGOpItem::run
| + 8.47% OSD::dequeue_op
| + 8.47% PrimaryLogPG::do_request
| + 8.47% PrimaryLogPG::do_op
| + 8.47% PrimaryLogPG::execute_ctx
| + 6.85% PrimaryLogPG::issue_repop
| | + 6.85% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 4.44% PrimaryLogPG::queue_transactions
| | | + 4.44% queue_transactions
| | | + 4.44% BlueStore::queue_transactions
| | | + 3.23% BlueStore::_txc_add_transaction
| | | | + 2.42% begin
| | | | | + 2.42% iterator
| | | | | + 2.42% ceph::buffer::list::get_contiguous
| | | | | + 2.02% erase
| | | | | | + 2.02% _M_erase
| | | | | | + 2.02% _M_put_node
| | | | | | + 2.02% deallocate
| | | | | | + 2.02% tc_delete
| | | | | | + 2.02% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 2.02% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 2.02% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 1.61% SpinLock::SlowLock()
| | | | | | | + 1.61% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% clear
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% vector
| | | | | + 0.40% _Vector_base
| | | | | + 0.40% _M_create_storage
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_omap_setkeys
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.40% rocksdb::WriteBatch::Put
| | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | + 0.40% PutLengthPrefixedSliceParts
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% std::string::_Rep::_M_clone
| | | | + 0.40% std::string::_Rep::_S_create
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 1.21% BlueStore::_txc_write_nodes
| | | + 1.21% BlueStore::ExtentMap::update
| | | + 1.21% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | + 1.21% operator()
| | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | + 1.21% combine_strings
| | | + 1.21% std::string::append
| | | + 1.21% std::string::reserve
| | | + 1.21% _M_dispose
| | | + 1.21% std::string::_Rep::_M_destroy
| | | + 1.21% deallocate
| | | + 1.21% tc_delete
| | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 1.21% SpinLock::SlowLock()
| | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 2.02% generate_transaction
| | | + 2.02% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 2.02% operator()
| | | + 2.02% ObjectStore::Transaction::setattrs
| | | + 2.02% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | + 2.02% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | + 1.61% ~pair
| | | | + 1.61% ~list
| | | | + 1.61% ~list
| | | | + 1.61% ~_List_base
| | | | + 1.61% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 1.61% _M_put_node
| | | | + 1.61% deallocate
| | | | + 1.61% tc_delete
| | | | + 1.61% tcmalloc::ThreadCache::Scavenge()
| | | | + 1.61% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 1.61% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 1.61% SpinLock::SlowLock()
| | | | + 1.61% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% pair<std::basic_string<char> const, ceph::buffer::list, void>
| | | + 0.40% ceph::buffer::list::list
| | | + 0.40% list
| | | + 0.40% _M_initialize_dispatch<std::_List_const_iterator<ceph::buffer::ptr> >
| | | + 0.40% emplace_back<ceph::buffer::ptr const&>
| | | + 0.40% _M_insert<ceph::buffer::ptr const&>
| | | + 0.40% _M_create_node<ceph::buffer::ptr const&>
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.40% PrimaryLogPG::log_operation
| | + 0.40% PG::append_log
| | + 0.40% PG::write_if_dirty
| | + 0.40% PGLog::write_log_and_missing
| | + 0.40% PGLog::_write_log_and_missing
| | + 0.40% pg_log_entry_t::encode_with_checksum
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.21% PrimaryLogPG::prepare_transaction
| | + 0.81% PrimaryLogPG::finish_ctx
| | | + 0.81% ~map
| | | + 0.81% ~_Rb_tree
| | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | + 0.81% _M_destroy_node
| | | + 0.81% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| | | + 0.81% ~_Rb_tree_node
| | | + 0.81% ~pair
| | | + 0.81% ~list
| | | + 0.81% ~list
| | | + 0.81% ~_List_base
| | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.81% _M_put_node
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PrimaryLogPG::do_osd_ops
| | + 0.40% PrimaryLogPG::write_update_size_and_usage
| | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | + 0.40% union_of
| | + 0.40% insert
| | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase_aux
| | + 0.40% _M_destroy_node
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::calc_trim_to
| + 0.40% size
| + 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 6.85% PG::lock
+ 6.85% Mutex::Lock
+ 6.85% pthread_mutex_lock
+ 6.85% _L_lock_812
+ 6.85% __lll_lock_wait
Thread: 34 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 92.34% WaitInterval
| + 92.34% WaitUntil
| + 92.34% pthread_cond_timedwait@@GLIBC_2.3.2
+ 6.05% PG::lock
| + 6.05% Mutex::Lock
| + 6.05% pthread_mutex_lock
| + 6.05% _L_lock_812
| + 6.05% __lll_lock_wait
+ 1.61% run
+ 1.61% PGOpItem::run
+ 1.61% OSD::dequeue_op
+ 1.61% PrimaryLogPG::do_request
+ 1.61% PrimaryLogPG::do_op
+ 1.61% PrimaryLogPG::execute_ctx
+ 1.21% PrimaryLogPG::issue_repop
| + 1.21% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 1.21% PrimaryLogPG::queue_transactions
| + 1.21% queue_transactions
| + 1.21% BlueStore::queue_transactions
| + 0.81% BlueStore::_txc_write_nodes
| | + 0.81% BlueStore::ExtentMap::update
| | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | + 0.81% operator()
| | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | + 0.40% combine_strings
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% std::string::_Rep::_M_clone
| | | + 0.40% std::string::_Rep::_S_create
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | + 0.40% rocksdb::WriteBatch::Put
| | + 0.40% rocksdb::WriteBatchInternal::Put
| | + 0.40% PutLengthPrefixedSlice
| | + 0.40% std::string::append
| | + 0.40% std::string::reserve
| | + 0.40% _M_dispose
| | + 0.40% std::string::_Rep::_M_destroy
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% BlueStore::_txc_add_transaction
| + 0.40% BlueStore::_get_collection
| + 0.40% find
| + 0.40% find
| + 0.40% _M_hash_code
| + 0.40% operator()
| + 0.40% to_str
| + 0.40% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| + 0.40% _S_construct<char const*>
| + 0.40% _S_construct_aux<char const*>
| + 0.40% char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag)
| + 0.40% std::string::_Rep::_S_create
| + 0.40% allocate
| + 0.40% tc_new
+ 0.40% PrimaryLogPG::calc_trim_to
+ 0.40% size
+ 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
+ 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
Thread: 35 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 84.68% WaitInterval
| + 84.68% WaitUntil
| + 84.68% pthread_cond_timedwait@@GLIBC_2.3.2
+ 11.69% run
| + 11.69% PGOpItem::run
| + 11.69% OSD::dequeue_op
| + 11.69% PrimaryLogPG::do_request
| + 11.69% PrimaryLogPG::do_op
| + 11.69% PrimaryLogPG::execute_ctx
| + 9.27% PrimaryLogPG::issue_repop
| | + 9.27% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 8.06% PrimaryLogPG::queue_transactions
| | | + 8.06% queue_transactions
| | | + 8.06% BlueStore::queue_transactions
| | | + 4.03% BlueStore::_txc_add_transaction
| | | | + 1.61% begin
| | | | | + 1.61% iterator
| | | | | + 1.61% ceph::buffer::list::get_contiguous
| | | | | + 1.21% erase
| | | | | | + 1.21% _M_erase
| | | | | | + 1.21% _M_put_node
| | | | | | + 1.21% deallocate
| | | | | | + 1.21% tc_delete
| | | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 1.21% SpinLock::SlowLock()
| | | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% clear
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 1.21% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.40% std::string::_Rep::_M_clone
| | | | | | | + 0.40% std::string::_Rep::_S_create
| | | | | | | + 0.40% allocate
| | | | | | | + 0.40% tc_new
| | | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% std::string::push_back
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% std::string::_Rep::_M_clone
| | | | | + 0.40% std::string::_Rep::_S_create
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_write
| | | | | + 0.81% BlueStore::_do_write
| | | | | + 0.81% BlueStore::_do_write_data
| | | | | + 0.81% BlueStore::_do_write_small
| | | | | + 0.81% ~function
| | | | | + 0.81% ~_Function_base
| | | | | + 0.81% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | + 0.81% _M_destroy
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_omap_rmkeys
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::rmkey
| | | | + 0.40% rocksdb::WriteBatch::Delete
| | | | + 0.40% rocksdb::WriteBatchInternal::Delete
| | | | + 0.40% PutLengthPrefixedSlice
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 2.42% BlueStore::_txc_write_nodes
| | | | + 1.61% BlueStore::ExtentMap::update
| | | | | + 1.61% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 1.61% operator()
| | | | | + 1.61% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 1.21% combine_strings
| | | | | | + 1.21% std::string::append
| | | | | | + 1.21% std::string::reserve
| | | | | | + 1.21% _M_dispose
| | | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | | + 1.21% deallocate
| | | | | | + 1.21% tc_delete
| | | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 1.21% SpinLock::SlowLock()
| | | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | + 0.40% PutLengthPrefixedSlice
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.81% combine_strings
| | | | + 0.81% operator=
| | | | + 0.81% std::string::assign
| | | | + 0.81% _M_dispose
| | | | + 0.81% std::string::_Rep::_M_destroy
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% collect_contexts
| | | | + 0.81% C_ContextsBase<Context, Context>::list_to_context
| | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% clear
| | | | + 0.40% _M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.81% rocksdb::WriteBatch::Put
| | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | + 0.81% PutLengthPrefixedSliceParts
| | | + 0.81% std::string::append
| | | + 0.81% std::string::reserve
| | | + 0.81% _M_dispose
| | | + 0.81% std::string::_Rep::_M_destroy
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | | + 0.81% PG::append_log
| | | + 0.40% PGLog::IndexedLog::trim
| | | | + 0.40% PGLog::IndexedLog::unindex
| | | | + 0.40% erase
| | | | + 0.40% erase
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_deallocate_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% PG::write_if_dirty
| | | + 0.40% PGLog::write_log_and_missing
| | | + 0.40% PGLog::_write_log_and_missing
| | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% generate_transaction
| | + 0.40% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | + 0.40% operator()
| | + 0.40% ObjectStore::Transaction::setattrs
| | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.21% PrimaryLogPG::calc_trim_to
| | + 1.21% size
| | + 1.21% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.21% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.81% PrimaryLogPG::prepare_transaction
| | + 0.81% PrimaryLogPG::do_osd_ops
| | + 0.81% PrimaryLogPG::write_update_size_and_usage
| | + 0.81% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | + 0.81% union_of
| | + 0.81% insert
| | + 0.81% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | + 0.81% erase
| | + 0.81% erase
| | + 0.81% _M_erase_aux
| | + 0.81% _M_destroy_node
| | + 0.81% _M_put_node
| | + 0.81% deallocate
| | + 0.81% tc_delete
| | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.81% SpinLock::SlowLock()
| | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% MOSDOpReply::MOSDOpReply
| + 0.40% object_t
| + 0.40% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| + 0.40% _M_grab
| + 0.40% _M_is_leaked
+ 3.63% PG::lock
+ 3.63% Mutex::Lock
+ 3.63% pthread_mutex_lock
+ 3.63% _L_lock_812
+ 3.63% __lll_lock_wait
Thread: 36 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 80.65% WaitInterval
| + 80.65% WaitUntil
| + 80.65% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 16.13% run
| + 16.13% PGOpItem::run
| + 16.13% OSD::dequeue_op
| + 16.13% PrimaryLogPG::do_request
| + 16.13% PrimaryLogPG::do_op
| + 16.13% PrimaryLogPG::execute_ctx
| + 12.50% PrimaryLogPG::issue_repop
| | + 11.69% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 7.26% PrimaryLogPG::queue_transactions
| | | | + 7.26% queue_transactions
| | | | + 7.26% BlueStore::queue_transactions
| | | | + 4.84% BlueStore::_txc_add_transaction
| | | | | + 2.42% begin
| | | | | | + 2.42% iterator
| | | | | | + 2.42% ceph::buffer::list::get_contiguous
| | | | | | + 1.61% erase
| | | | | | | + 1.61% _M_erase
| | | | | | | + 1.61% _M_put_node
| | | | | | | + 1.61% deallocate
| | | | | | | + 1.61% tc_delete
| | | | | | | + 1.61% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 1.61% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | + 0.81% ceph::buffer::list::rebuild
| | | | | | + 0.81% ceph::buffer::list::rebuild
| | | | | | + 0.81% clear
| | | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.81% _M_put_node
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 1.21% BlueStore::_omap_setkeys
| | | | | | + 0.81% operator+=
| | | | | | | + 0.81% std::string::append
| | | | | | | + 0.81% std::string::reserve
| | | | | | | + 0.40% std::string::_Rep::_M_clone
| | | | | | | | + 0.40% std::string::_Rep::_S_create
| | | | | | | | + 0.40% allocate
| | | | | | | | + 0.40% tc_new
| | | | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | | + 0.40% _M_dispose
| | | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | | + 0.40% deallocate
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.40% PutLengthPrefixedSliceParts
| | | | | | + 0.40% std::string::append
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.81% BlueStore::_write
| | | | | | + 0.81% BlueStore::_do_write
| | | | | | + 0.81% BlueStore::_do_write_data
| | | | | | + 0.81% BlueStore::_do_write_small
| | | | | | + 0.40% ~function
| | | | | | | + 0.40% ~_Function_base
| | | | | | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | | | + 0.40% _M_destroy
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% BlueStore::_get_deferred_op
| | | | | | + 0.40% tc_new
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.40% decode_attrset
| | | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode<std::basic_string<char> >
| | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 2.02% BlueStore::_txc_write_nodes
| | | | | + 2.02% BlueStore::ExtentMap::update
| | | | | + 1.61% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | | + 1.61% operator()
| | | | | | + 1.61% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 1.21% combine_strings
| | | | | | | + 1.21% std::string::append
| | | | | | | + 1.21% std::string::reserve
| | | | | | | + 1.21% _M_dispose
| | | | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | | | + 1.21% deallocate
| | | | | | | + 1.21% tc_delete
| | | | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 1.21% SpinLock::SlowLock()
| | | | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.40% PutLengthPrefixedSlice
| | | | | | + 0.40% std::string::append
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% reserve
| | | | | + 0.40% _M_allocate_and_copy<BlueStore::ExtentMap::update(KeyValueDB::Transaction, bool)::dirty_shard_t*>
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.40% rocksdb::WriteBatch::Put
| | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | + 0.40% PutLengthPrefixedSliceParts
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 3.23% PrimaryLogPG::log_operation
| | | | + 3.23% PG::append_log
| | | | + 2.42% PGLog::IndexedLog::trim
| | | | | + 2.42% PGLog::IndexedLog::unindex
| | | | | + 2.42% erase
| | | | | + 2.42% erase
| | | | | + 2.42% _M_erase
| | | | | + 2.42% _M_erase
| | | | | + 2.42% _M_deallocate_node
| | | | | + 2.42% deallocate
| | | | | + 2.42% tc_delete
| | | | | + 2.42% tcmalloc::ThreadCache::Scavenge()
| | | | | + 2.42% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 2.42% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 2.42% SpinLock::SlowLock()
| | | | | + 2.42% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% PG::write_if_dirty
| | | | + 0.81% ObjectStore::Transaction::omap_setkeys
| | | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% ~pair
| | | | + 0.81% ~list
| | | | + 0.81% ~list
| | | | + 0.81% ~_List_base
| | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.81% _M_put_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 1.21% generate_transaction
| | | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 1.21% operator()
| | | + 1.21% ObjectStore::Transaction::setattrs
| | | + 1.21% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | + 0.81% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% ~pair
| | | | + 0.81% ~list
| | | | + 0.81% ~list
| | | | + 0.81% ~_List_base
| | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.81% _M_put_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | + 0.40% ~pair
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.40% add
| | + 0.40% push_back
| | + 0.40% _M_insert<pg_log_entry_t const&>
| | + 0.40% _M_create_node<pg_log_entry_t const&>
| | + 0.40% _M_get_node
| | + 0.40% allocate
| | + 0.40% tc_newarray
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 2.42% PrimaryLogPG::calc_trim_to
| | + 2.42% size
| | + 2.42% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 2.42% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 1.21% PrimaryLogPG::prepare_transaction
| + 0.81% PrimaryLogPG::do_osd_ops
| | + 0.81% PrimaryLogPG::write_update_size_and_usage
| | + 0.81% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | + 0.81% union_of
| | + 0.40% operator=
| | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator=
| | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_copy
| | | + 0.40% _M_clone_node
| | | + 0.40% _M_create_node<std::pair<unsigned long const, unsigned long> const&>
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.40% insert
| | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase_aux
| | + 0.40% _M_destroy_node
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PrimaryLogPG::finish_ctx
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| + 0.40% ~_Rb_tree_node
| + 0.40% ~pair
| + 0.40% ~list
| + 0.40% ~list
| + 0.40% ~_List_base
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| + 0.40% tcmalloc::PageHeap::Delete(tcmalloc::Span*)
| + 0.40% tcmalloc::PageHeap::MergeIntoFreeList(tcmalloc::Span*)
| + 0.40% tcmalloc::PageHeap::DecommitSpan(tcmalloc::Span*)
| + 0.40% TCMalloc_SystemRelease(void*, unsigned long)
| + 0.40% madvise
+ 3.23% PG::lock
+ 3.23% Mutex::Lock
+ 3.23% pthread_mutex_lock
+ 3.23% _L_lock_812
+ 3.23% __lll_lock_wait
Thread: 37 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 80.24% WaitInterval
| + 80.24% WaitUntil
| + 80.24% pthread_cond_timedwait@@GLIBC_2.3.2
+ 13.31% run
| + 13.31% PGOpItem::run
| + 13.31% OSD::dequeue_op
| + 13.31% PrimaryLogPG::do_request
| + 13.31% PrimaryLogPG::do_op
| + 12.50% PrimaryLogPG::execute_ctx
| | + 10.08% PrimaryLogPG::issue_repop
| | | + 10.08% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 4.44% PrimaryLogPG::queue_transactions
| | | | + 4.44% queue_transactions
| | | | + 4.44% BlueStore::queue_transactions
| | | | + 2.02% BlueStore::_txc_add_transaction
| | | | | + 1.21% begin
| | | | | | + 1.21% iterator
| | | | | | + 1.21% ceph::buffer::list::get_contiguous
| | | | | | + 0.81% erase
| | | | | | | + 0.81% _M_erase
| | | | | | | + 0.81% _M_put_node
| | | | | | | + 0.81% deallocate
| | | | | | | + 0.81% tc_delete
| | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | + 0.40% clear
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% vector
| | | | | | + 0.40% _Vector_base
| | | | | | + 0.40% _M_create_storage
| | | | | | + 0.40% _M_allocate
| | | | | | + 0.40% allocate
| | | | | | + 0.40% tc_new
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.40% decode_attrset
| | | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode<std::basic_string<char> >
| | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_txc_write_nodes
| | | | | + 0.81% BlueStore::ExtentMap::update
| | | | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 0.81% operator()
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% combine_strings
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% collect_contexts
| | | | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | | | + 0.40% clear
| | | | | + 0.40% _M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_txc_create
| | | | + 0.40% RocksDBStore::get_transaction
| | | | + 0.40% make_shared<RocksDBStore::RocksDBTransactionImpl, RocksDBStore* const>
| | | | + 0.40% allocate_shared<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% __shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% __shared_count<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% allocate
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 2.82% generate_transaction
| | | | + 2.82% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | | + 2.82% operator()
| | | | + 2.82% ObjectStore::Transaction::setattrs
| | | | + 2.42% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | + 2.02% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | | + 2.02% ~pair
| | | | | | + 2.02% ~list
| | | | | | + 2.02% ~list
| | | | | | + 2.02% ~_List_base
| | | | | | + 2.02% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 2.02% _M_put_node
| | | | | | + 2.02% deallocate
| | | | | | + 2.02% tc_delete
| | | | | | + 2.02% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 2.02% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 1.61% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 1.21% SpinLock::SlowLock()
| | | | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | + 0.40% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 0.40% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | + 0.40% encode<std::basic_string<char> >
| | | | | + 0.40% denc<ceph::buffer::list, denc_traits<ceph::buffer::list> >
| | | | | + 0.40% encode
| | | | | + 0.40% append
| | | | | + 0.40% ceph::buffer::list::append
| | | | | + 0.40% push_back
| | | | | + 0.40% _M_insert<ceph::buffer::ptr const&>
| | | | | + 0.40% _M_create_node<ceph::buffer::ptr const&>
| | | | | + 0.40% _M_get_node
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% ObjectStore::Transaction::_get_object_id
| | | | + 0.40% operator[]
| | | | + 0.40% std::_Rb_tree<ghobject_t, std::pair<ghobject_t const, unsigned int>, std::_Select1st<std::pair<ghobject_t const, unsigned int> >, std::less<ghobject_t>, std::allocator<std::pair<ghobject_t const, unsigned int> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<ghobject_t const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<ghobject_t const, unsigned int> >, std::piecewise_construct_t const&, std::tuple<ghobject_t const&>&&, std::tuple<>&&)
| | | | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<const ghobject_t&>, std::tuple<> >
| | | | + 0.40% construct<std::_Rb_tree_node<std::pair<const ghobject_t, unsigned int> >, const std::piecewise_construct_t&, std::tuple<const ghobject_t&>, std::tuple<> >
| | | | + 0.40% _S_construct<std::_Rb_tree_node<std::pair<const ghobject_t, unsigned int> >, const std::piecewise_construct_t&, std::tuple<const ghobject_t&>, std::tuple<> >
| | | | + 0.40% construct<std::_Rb_tree_node<std::pair<const ghobject_t, unsigned int> >, const std::piecewise_construct_t&, std::tuple<const ghobject_t&>, std::tuple<> >
| | | | + 0.40% _Rb_tree_node<const std::piecewise_construct_t&, std::tuple<const ghobject_t&>, std::tuple<> >
| | | | + 0.40% pair<ghobject_t const&>
| | | | + 0.40% pair<ghobject_t const&, 0ul>
| | | | + 0.40% ghobject_t
| | | | + 0.40% hobject_t::hobject_t
| | | + 2.82% PrimaryLogPG::log_operation
| | | + 2.82% PG::append_log
| | | + 2.02% PG::write_if_dirty
| | | | + 1.61% PGLog::write_log_and_missing
| | | | | + 1.61% PGLog::_write_log_and_missing
| | | | | + 1.21% pg_log_entry_t::encode_with_checksum
| | | | | | + 1.21% ~list
| | | | | | + 1.21% ~list
| | | | | | + 1.21% ~_List_base
| | | | | | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 1.21% _M_put_node
| | | | | | + 1.21% deallocate
| | | | | | + 1.21% tc_delete
| | | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% pg_log_entry_t::get_key_name
| | | | | + 0.40% eversion_t::get_key_name
| | | | | + 0.40% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | + 0.40% std::string::_S_construct
| | | | | + 0.40% std::string::_Rep::_S_create
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% ObjectStore::Transaction::omap_setkeys
| | | | + 0.40% ObjectStore::Transaction::_get_object_id
| | | | + 0.40% operator[]
| | | | + 0.40% std::_Rb_tree<ghobject_t, std::pair<ghobject_t const, unsigned int>, std::_Select1st<std::pair<ghobject_t const, unsigned int> >, std::less<ghobject_t>, std::allocator<std::pair<ghobject_t const, unsigned int> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<ghobject_t const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<ghobject_t const, unsigned int> >, std::piecewise_construct_t const&, std::tuple<ghobject_t const&>&&, std::tuple<>&&)
| | | | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<const ghobject_t&>, std::tuple<> >
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% PGLog::IndexedLog::trim
| | | | + 0.40% pop_front
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_deletearray
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% PG::update_snap_map
| | | + 0.40% get_transaction
| | | + 0.40% OSTransaction
| | | + 0.40% ghobject_t
| | | + 0.40% hobject_t::hobject_t
| | + 1.21% PrimaryLogPG::prepare_transaction
| | | + 0.81% PrimaryLogPG::finish_ctx
| | | | + 0.81% ~map
| | | | + 0.81% ~_Rb_tree
| | | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | | + 0.81% _M_destroy_node
| | | | + 0.81% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| | | | + 0.81% ~_Rb_tree_node
| | | | + 0.81% ~pair
| | | | + 0.81% ~list
| | | | + 0.81% ~list
| | | | + 0.81% ~_List_base
| | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.81% _M_put_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% PrimaryLogPG::do_osd_ops
| | | + 0.40% PrimaryLogPG::write_update_size_and_usage
| | | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | | + 0.40% union_of
| | | + 0.40% insert
| | | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | | + 0.40% erase
| | | + 0.40% erase
| | | + 0.40% _M_erase_aux
| | | + 0.40% _M_destroy_node
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% reset_obs
| | | + 0.81% operator=
| | | + 0.81% object_info_t::operator=(object_info_t&&)
| | | + 0.81% operator=
| | | + 0.81% operator=
| | | + 0.81% clear
| | | + 0.81% clear
| | | + 0.81% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| | | + 0.81% _M_destroy_node
| | | + 0.81% _M_put_node
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PrimaryLogPG::calc_trim_to
| | + 0.40% size
| | + 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% clear_payload
| | + 0.40% ceph::buffer::list::clear
| | + 0.40% clear
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| | + 0.40% ~_List_node
| | + 0.40% ~ptr
| | + 0.40% ceph::buffer::ptr::release
| | + 0.40% ceph::buffer::raw_combined::~raw_combined
| | + 0.40% ~raw_combined
| | + 0.40% ~raw
| | + 0.40% ~map
| | + 0.40% ~_Rb_tree
| | + 0.40% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
| | + 0.40% _M_destroy_node
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% PG::op_has_sufficient_caps
| + 0.40% OSDCap::is_capable
| + 0.40% ~vector
| + 0.40% ~_Bvector_base
| + 0.40% _M_deallocate
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 6.45% PG::lock
+ 6.45% Mutex::Lock
+ 6.45% pthread_mutex_lock
+ 6.45% _L_lock_812
+ 6.45% __lll_lock_wait
Thread: 38 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 89.52% WaitInterval
| + 89.52% WaitUntil
| + 89.52% pthread_cond_timedwait@@GLIBC_2.3.2
+ 8.06% run
| + 8.06% PGOpItem::run
| + 8.06% OSD::dequeue_op
| + 8.06% PrimaryLogPG::do_request
| + 8.06% PrimaryLogPG::do_op
| + 7.66% PrimaryLogPG::execute_ctx
| | + 6.05% PrimaryLogPG::issue_repop
| | | + 6.05% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 4.44% PrimaryLogPG::queue_transactions
| | | | + 4.44% queue_transactions
| | | | + 4.44% BlueStore::queue_transactions
| | | | + 2.42% BlueStore::_txc_add_transaction
| | | | | + 0.81% begin
| | | | | | + 0.81% iterator
| | | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | | + 0.40% erase
| | | | | | | + 0.40% _M_erase
| | | | | | | + 0.40% _M_put_node
| | | | | | | + 0.40% deallocate
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | + 0.40% clear
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.81% BlueStore::_omap_setkeys
| | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.81% _M_dispose
| | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% decode_attrset
| | | | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | | + 0.40% decode
| | | | | | + 0.40% decode<std::basic_string<char> >
| | | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | | + 0.40% decode
| | | | | | + 0.40% decode
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~_List_base
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_write
| | | | | + 0.40% BlueStore::_do_write
| | | | | + 0.40% BlueStore::_do_write_data
| | | | | + 0.40% BlueStore::_do_write_small
| | | | | + 0.40% BlueStore::ExtentMap::set_lextent
| | | | | + 0.40% BlueStore::ExtentMap::punch_hole
| | | | | + 0.40% BlueStore::ExtentMap::rm
| | | | | + 0.40% erase_and_dispose<BlueStore::ExtentMap::DeleteDisposer>
| | | | | + 0.40% operator()
| | | | | + 0.40% BlueStore::Extent::operator delete
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_deletearray
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_txc_create
| | | | | + 0.40% RocksDBStore::get_transaction
| | | | | | + 0.40% make_shared<RocksDBStore::RocksDBTransactionImpl, RocksDBStore* const>
| | | | | | + 0.40% allocate_shared<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | | + 0.40% shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | | + 0.40% __shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | | + 0.40% __shared_count<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | | + 0.40% allocate
| | | | | | + 0.40% allocate
| | | | | | + 0.40% tc_new
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.40% BlueStore::TransContext::operator new
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_newarray
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% collect_contexts
| | | | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | | | + 0.40% clear
| | | | | + 0.40% _M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | + 0.40% PutLengthPrefixedSliceParts
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_txc_write_nodes
| | | | + 0.40% BlueStore::ExtentMap::update
| | | | + 0.40% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | + 0.40% operator()
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% combine_strings
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 1.21% PrimaryLogPG::log_operation
| | | | + 1.21% PG::append_log
| | | | + 1.21% PG::write_if_dirty
| | | | + 1.21% PGLog::write_log_and_missing
| | | | + 1.21% PGLog::_write_log_and_missing
| | | | + 1.21% pg_log_entry_t::encode_with_checksum
| | | | + 1.21% ~list
| | | | + 1.21% ~list
| | | | + 1.21% ~_List_base
| | | | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 1.21% _M_put_node
| | | | + 1.21% deallocate
| | | | + 1.21% tc_delete
| | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 1.21% SpinLock::SlowLock()
| | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% generate_transaction
| | | + 0.40% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 0.40% pop_front
| | | + 0.40% _M_erase
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.81% PrimaryLogPG::prepare_transaction
| | | + 0.40% PrimaryLogPG::finish_ctx
| | | | + 0.40% PGTransaction::setattrs
| | | | + 0.40% operator[]
| | | | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, boost::optional<ceph::buffer::list> >, std::_Select1st<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::optional<ceph::buffer::list> > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::string const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::piecewise_construct_t const&, std::tuple<std::string const&>&&, std::tuple<>&&)
| | | | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&>, std::tuple<> >
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.40% PrimaryLogPG::do_osd_ops
| | | + 0.40% PrimaryLogPG::write_update_size_and_usage
| | | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | | + 0.40% union_of
| | | + 0.40% insert
| | | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | | + 0.40% erase
| | | + 0.40% erase
| | | + 0.40% _M_erase_aux
| | | + 0.40% _M_destroy_node
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% register_on_success<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% emplace_back<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% _M_insert<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% _M_create_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% construct<std::_List_node<std::function<void()> >, PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% _List_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% function<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36, void>
| | | + 0.40% _M_init_functor
| | | + 0.40% _M_init_functor
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.40% PrimaryLogPG::calc_trim_to
| | + 0.40% size
| | + 0.40% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.40% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% clear_payload
| + 0.40% ceph::buffer::list::clear
| + 0.40% clear
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.40% ~_List_node
| + 0.40% ~ptr
| + 0.40% ceph::buffer::ptr::release
| + 0.40% ceph::buffer::raw_combined::~raw_combined
| + 0.40% ~raw_combined
| + 0.40% ~raw
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 2.42% PG::lock
+ 2.42% Mutex::Lock
+ 2.42% pthread_mutex_lock
+ 2.42% _L_lock_812
+ 2.42% __lll_lock_wait
Thread: 39 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 79.44% WaitInterval
| + 79.44% WaitUntil
| + 79.44% pthread_cond_timedwait@@GLIBC_2.3.2
+ 11.29% run
| + 11.29% PGOpItem::run
| + 11.29% OSD::dequeue_op
| + 11.29% PrimaryLogPG::do_request
| + 11.29% PrimaryLogPG::do_op
| + 11.29% PrimaryLogPG::execute_ctx
| + 9.27% PrimaryLogPG::issue_repop
| | + 9.27% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 5.24% PrimaryLogPG::queue_transactions
| | | + 5.24% queue_transactions
| | | + 5.24% BlueStore::queue_transactions
| | | + 3.23% BlueStore::_txc_add_transaction
| | | | + 1.21% BlueStore::_omap_setkeys
| | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 1.21% rocksdb::WriteBatch::Put
| | | | | + 1.21% rocksdb::WriteBatchInternal::Put
| | | | | + 1.21% PutLengthPrefixedSliceParts
| | | | | + 1.21% std::string::append
| | | | | + 1.21% std::string::reserve
| | | | | + 1.21% _M_dispose
| | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | + 1.21% deallocate
| | | | | + 1.21% tc_delete
| | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.21% SpinLock::SlowLock()
| | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% begin
| | | | | + 0.81% iterator
| | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | + 0.40% erase
| | | | | | + 0.40% _M_erase
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% clear
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% vector
| | | | | + 0.40% _Vector_base
| | | | | + 0.40% _M_create_storage
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% BlueStore::_write
| | | | | + 0.40% BlueStore::_do_write
| | | | | + 0.40% BlueStore::_do_write_data
| | | | | + 0.40% BlueStore::_do_write_small
| | | | | + 0.40% ~function
| | | | | + 0.40% ~_Function_base
| | | | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | + 0.40% _M_destroy
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_get_collection
| | | | + 0.40% find
| | | | + 0.40% find
| | | | + 0.40% _M_hash_code
| | | | + 0.40% operator()
| | | | + 0.40% ~basic_string
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.40% vector
| | | | | + 0.40% _Vector_base
| | | | | + 0.40% _M_create_storage
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% rocksdb::WriteBatch::Put
| | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | + 0.40% PutLengthPrefixedSliceParts
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% BlueStore::_txc_write_nodes
| | | | + 0.81% BlueStore::ExtentMap::update
| | | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | + 0.81% operator()
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.81% rocksdb::WriteBatch::Put
| | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | + 0.81% PutLengthPrefixedSlice
| | | | + 0.81% std::string::append
| | | | + 0.81% std::string::reserve
| | | | + 0.81% _M_dispose
| | | | + 0.81% std::string::_Rep::_M_destroy
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% collect_contexts
| | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | + 0.40% clear
| | | + 0.40% _M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 2.42% generate_transaction
| | | + 2.42% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 2.02% operator()
| | | | + 2.02% ObjectStore::Transaction::setattrs
| | | | + 2.02% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 1.21% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 0.81% ~pair
| | | | | | + 0.81% ~list
| | | | | | + 0.81% ~list
| | | | | | + 0.81% ~_List_base
| | | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.81% _M_put_node
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% pair<std::basic_string<char> const, ceph::buffer::list, void>
| | | | | + 0.40% ceph::buffer::list::list
| | | | | + 0.40% list
| | | | | + 0.40% _M_initialize_dispatch<std::_List_const_iterator<ceph::buffer::ptr> >
| | | | | + 0.40% emplace_back<ceph::buffer::ptr const&>
| | | | | + 0.40% _M_insert<ceph::buffer::ptr const&>
| | | | | + 0.40% _M_create_node<ceph::buffer::ptr const&>
| | | | | + 0.40% _M_get_node
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% denc<std::pair<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.81% encode<std::basic_string<char> >
| | | | + 0.81% denc<ceph::buffer::list, denc_traits<ceph::buffer::list> >
| | | | + 0.81% encode
| | | | + 0.81% append
| | | | + 0.40% flush_and_continue
| | | | | + 0.40% ceph::buffer::list::append(ceph::buffer::ptr&&)
| | | | | + 0.40% push_back
| | | | | + 0.40% push_back
| | | | | + 0.40% _M_insert<ceph::buffer::ptr>
| | | | | + 0.40% _M_create_node<ceph::buffer::ptr>
| | | | | + 0.40% _M_get_node
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | + 0.40% ceph::buffer::list::append
| | | | + 0.40% push_back
| | | | + 0.40% _M_insert<ceph::buffer::ptr const&>
| | | | + 0.40% _M_create_node<ceph::buffer::ptr const&>
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% pop_front
| | | + 0.40% _M_erase
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::log_operation
| | | + 0.81% PG::append_log
| | | + 0.40% PGLog::IndexedLog::trim
| | | | + 0.40% PGLog::IndexedLog::unindex
| | | | + 0.40% erase
| | | | + 0.40% erase
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_deallocate_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% PG::write_if_dirty
| | | + 0.40% PGLog::write_log_and_missing
| | | + 0.40% PGLog::_write_log_and_missing
| | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% ~vector
| | | + 0.40% _Destroy<ObjectStore::Transaction*, ObjectStore::Transaction>
| | | + 0.40% _Destroy<ObjectStore::Transaction*>
| | | + 0.40% __destroy<ObjectStore::Transaction*>
| | | + 0.40% _Destroy<ObjectStore::Transaction>
| | | + 0.40% ObjectStore::Transaction::~Transaction
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| | | + 0.40% ~_List_node
| | | + 0.40% ~ptr
| | | + 0.40% ceph::buffer::ptr::release
| | | + 0.40% tc_free
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% ~unique_ptr
| | + 0.40% operator()
| | + 0.40% ~PGTransaction
| | + 0.40% ~map
| | + 0.40% ~_Rb_tree
| | + 0.40% std::_Rb_tree<hobject_t, std::pair<hobject_t const, PGTransaction::ObjectOperation>, std::_Select1st<std::pair<hobject_t const, PGTransaction::ObjectOperation> >, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, PGTransaction::ObjectOperation> > >::_M_erase
| | + 0.40% _M_destroy_node
| | + 0.40% destroy<std::_Rb_tree_node<std::pair<hobject_t const, PGTransaction::ObjectOperation> > >
| | + 0.40% ~_Rb_tree_node
| | + 0.40% ~pair
| | + 0.40% ~ObjectOperation
| | + 0.40% ~map
| | + 0.40% ~_Rb_tree
| | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, boost::optional<ceph::buffer::list> >, std::_Select1st<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::optional<ceph::buffer::list> > > >::_M_erase
| | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, boost::optional<ceph::buffer::list> >, std::_Select1st<std::pair<std::string const, boost::optional<ceph::buffer::list> > >, std::less<std::string>, std::allocator<std::pair<std::string const, boost::optional<ceph::buffer::list> > > >::_M_erase
| | + 0.40% _M_destroy_node
| | + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, boost::optional<ceph::buffer::list> > > >
| | + 0.40% ~_Rb_tree_node
| | + 0.40% ~pair
| | + 0.40% ~optional
| | + 0.40% ~optional_base
| | + 0.40% destroy
| | + 0.40% destroy_impl
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| | + 0.40% ~_List_node
| | + 0.40% ~ptr
| | + 0.40% ceph::buffer::ptr::release
| | + 0.40% tc_free
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 1.21% PrimaryLogPG::prepare_transaction
| | + 0.81% PrimaryLogPG::finish_ctx
| | | + 0.81% ~map
| | | + 0.81% ~_Rb_tree
| | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | | + 0.81% _M_destroy_node
| | | + 0.81% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| | | + 0.81% ~_Rb_tree_node
| | | + 0.81% ~pair
| | | + 0.81% ~list
| | | + 0.81% ~list
| | | + 0.81% ~_List_base
| | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.81% _M_put_node
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PrimaryLogPG::do_osd_ops
| | + 0.40% PrimaryLogPG::write_update_size_and_usage
| | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | + 0.40% union_of
| | + 0.40% insert
| | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::insert
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase_aux
| | + 0.40% _M_destroy_node
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.81% PrimaryLogPG::calc_trim_to
| + 0.81% size
| + 0.81% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.81% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 9.27% PG::lock
+ 9.27% Mutex::Lock
+ 9.27% pthread_mutex_lock
+ 9.27% _L_lock_812
+ 9.27% __lll_lock_wait
Thread: 40 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 79.84% WaitInterval
| + 79.84% WaitUntil
| + 79.84% pthread_cond_timedwait@@GLIBC_2.3.2
+ 14.11% run
| + 14.11% PGOpItem::run
| + 14.11% OSD::dequeue_op
| + 14.11% PrimaryLogPG::do_request
| + 14.11% PrimaryLogPG::do_op
| + 13.71% PrimaryLogPG::execute_ctx
| | + 12.50% PrimaryLogPG::issue_repop
| | | + 12.50% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 5.65% PrimaryLogPG::queue_transactions
| | | | + 5.65% queue_transactions
| | | | + 5.65% BlueStore::queue_transactions
| | | | + 3.23% BlueStore::_txc_add_transaction
| | | | | + 1.61% BlueStore::_omap_setkeys
| | | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | | + 1.21% rocksdb::WriteBatch::Put
| | | | | | | + 1.21% rocksdb::WriteBatchInternal::Put
| | | | | | | + 1.21% PutLengthPrefixedSliceParts
| | | | | | | + 0.81% std::string::append
| | | | | | | | + 0.81% std::string::reserve
| | | | | | | | + 0.81% _M_dispose
| | | | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | | | + 0.81% deallocate
| | | | | | | | + 0.81% tc_delete
| | | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | | + 0.40% PutVarint32
| | | | | | | + 0.40% std::string::append
| | | | | | | + 0.40% std::string::reserve
| | | | | | | + 0.40% _M_dispose
| | | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | | + 0.40% deallocate
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% decode
| | | | | | + 0.40% ceph::buffer::list::iterator::copy
| | | | | | + 0.40% ceph::buffer::list::iterator_impl<false>::copy
| | | | | | + 0.40% ceph::buffer::list::append
| | | | | | + 0.40% push_back
| | | | | | + 0.40% push_back
| | | | | | + 0.40% _M_insert<ceph::buffer::ptr>
| | | | | | + 0.40% _M_create_node<ceph::buffer::ptr>
| | | | | | + 0.40% _M_get_node
| | | | | | + 0.40% allocate
| | | | | | + 0.40% tc_new
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.81% decode_attrset
| | | | | | + 0.81% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | | + 0.81% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 0.81% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 0.81% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | | + 0.81% decode
| | | | | | + 0.81% decode<std::basic_string<char> >
| | | | | | + 0.81% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | | + 0.81% decode
| | | | | | + 0.81% decode
| | | | | | + 0.81% ~list
| | | | | | + 0.81% ~list
| | | | | | + 0.81% ~_List_base
| | | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.81% _M_put_node
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% tcmalloc::ThreadCache::IncreaseCacheLimit()
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.81% BlueStore::_write
| | | | | + 0.81% BlueStore::_do_write
| | | | | + 0.81% BlueStore::_do_write_data
| | | | | + 0.81% BlueStore::_do_write_small
| | | | | + 0.81% ~function
| | | | | + 0.81% ~_Function_base
| | | | | + 0.81% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | + 0.81% _M_destroy
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 2.02% BlueStore::_txc_write_nodes
| | | | | + 1.61% BlueStore::ExtentMap::update
| | | | | | + 1.61% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | | + 1.61% operator()
| | | | | | + 1.61% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.81% combine_strings
| | | | | | | + 0.81% std::string::append
| | | | | | | + 0.81% std::string::reserve
| | | | | | | + 0.81% _M_dispose
| | | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | | + 0.81% deallocate
| | | | | | | + 0.81% tc_delete
| | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.81% PutLengthPrefixedSlice
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.81% _M_dispose
| | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% combine_strings
| | | | | + 0.40% operator=
| | | | | + 0.40% std::string::assign
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | + 0.40% rocksdb::WriteBatch::Put
| | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | + 0.40% PutLengthPrefixedSliceParts
| | | | + 0.40% std::string::append
| | | | + 0.40% std::string::reserve
| | | | + 0.40% _M_dispose
| | | | + 0.40% std::string::_Rep::_M_destroy
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 3.63% PrimaryLogPG::log_operation
| | | | + 3.63% PG::append_log
| | | | + 1.61% PGLog::IndexedLog::trim
| | | | | + 1.61% PGLog::IndexedLog::unindex
| | | | | + 1.61% erase
| | | | | + 1.61% erase
| | | | | + 1.61% _M_erase
| | | | | + 1.61% _M_erase
| | | | | + 1.61% _M_deallocate_node
| | | | | + 1.61% deallocate
| | | | | + 1.61% tc_delete
| | | | | + 1.61% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.61% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.61% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.21% SpinLock::SlowLock()
| | | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | + 1.61% PG::write_if_dirty
| | | | | + 0.81% PGLog::write_log_and_missing
| | | | | | + 0.81% PGLog::_write_log_and_missing
| | | | | | + 0.81% pg_log_entry_t::encode_with_checksum
| | | | | | + 0.81% ~list
| | | | | | + 0.81% ~list
| | | | | | + 0.81% ~_List_base
| | | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.81% _M_put_node
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.81% ObjectStore::Transaction::omap_setkeys
| | | | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 0.81% ~pair
| | | | | + 0.81% ~list
| | | | | + 0.81% ~list
| | | | | + 0.81% ~_List_base
| | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.81% _M_put_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% register_on_applied
| | | | + 0.40% push_back
| | | | + 0.40% _M_insert<Context* const&>
| | | | + 0.40% _M_create_node<Context* const&>
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 2.02% generate_transaction
| | | | + 2.02% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | | + 2.02% operator()
| | | | + 1.61% ObjectStore::Transaction::setattrs
| | | | | + 1.61% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | + 1.61% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 1.61% ~pair
| | | | | + 1.61% ~list
| | | | | + 1.61% ~list
| | | | | + 1.61% ~_List_base
| | | | | + 1.61% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 1.61% _M_put_node
| | | | | + 1.61% deallocate
| | | | | + 1.61% tc_delete
| | | | | + 1.61% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.61% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.61% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.61% SpinLock::SlowLock()
| | | | | + 1.61% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% operator[]
| | | | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::string const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::string const, ceph::buffer::list> >, std::piecewise_construct_t const&, std::tuple<std::string const&>&&, std::tuple<>&&)
| | | | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&>, std::tuple<> >
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | + 0.81% push_back
| | | | + 0.81% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::emplace_back<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| | | | + 0.81% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::_M_emplace_back_aux<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| | | | + 0.81% _M_allocate
| | | | + 0.81% allocate
| | | | + 0.81% tc_new
| | | | + 0.81% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.81% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% ~vector
| | | + 0.40% _Destroy<ObjectStore::Transaction*, ObjectStore::Transaction>
| | | + 0.40% _Destroy<ObjectStore::Transaction*>
| | | + 0.40% __destroy<ObjectStore::Transaction*>
| | | + 0.40% _Destroy<ObjectStore::Transaction>
| | | + 0.40% ObjectStore::Transaction::~Transaction
| | | + 0.40% ~ptr
| | | + 0.40% ceph::buffer::ptr::release
| | | + 0.40% tc_free
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 1.21% PrimaryLogPG::calc_trim_to
| | + 1.21% size
| | + 1.21% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.21% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% clear_payload
| + 0.40% ceph::buffer::list::clear
| + 0.40% clear
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.40% ~_List_node
| + 0.40% ~ptr
| + 0.40% ceph::buffer::ptr::release
| + 0.40% ceph::buffer::raw_combined::~raw_combined
| + 0.40% ~raw_combined
| + 0.40% ~raw
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 6.05% PG::lock
+ 6.05% Mutex::Lock
+ 6.05% pthread_mutex_lock
+ 6.05% _L_lock_812
+ 6.05% __lll_lock_wait
Thread: 41 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 88.31% WaitInterval
| + 88.31% WaitUntil
| + 88.31% pthread_cond_timedwait@@GLIBC_2.3.2
+ 8.06% PG::lock
| + 8.06% Mutex::Lock
| + 8.06% pthread_mutex_lock
| + 8.06% _L_lock_812
| + 8.06% __lll_lock_wait
+ 3.63% run
+ 3.63% PGOpItem::run
+ 3.63% OSD::dequeue_op
+ 3.63% PrimaryLogPG::do_request
+ 3.63% PrimaryLogPG::do_op
+ 3.63% PrimaryLogPG::execute_ctx
+ 3.23% PrimaryLogPG::issue_repop
| + 3.23% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| + 1.21% PrimaryLogPG::queue_transactions
| | + 1.21% queue_transactions
| | + 1.21% BlueStore::queue_transactions
| | + 1.21% BlueStore::_txc_add_transaction
| | + 0.40% BlueStore::_write
| | | + 0.40% BlueStore::_do_write
| | | + 0.40% BlueStore::_do_write_data
| | | + 0.40% BlueStore::_do_write_small
| | | + 0.40% ~function
| | | + 0.40% ~_Function_base
| | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | + 0.40% _M_destroy
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% BlueStore::_omap_setkeys
| | | + 0.40% std::string::push_back
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% BlueStore::_get_collection
| | + 0.40% find
| | + 0.40% find
| | + 0.40% _M_hash_code
| | + 0.40% operator()
| | + 0.40% ~basic_string
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 1.21% PrimaryLogPG::log_operation
| | + 1.21% PG::append_log
| | + 0.81% PG::write_if_dirty
| | | + 0.81% PGLog::write_log_and_missing
| | | + 0.81% PGLog::_write_log_and_missing
| | | + 0.40% pg_log_entry_t::get_key_name
| | | | + 0.40% eversion_t::get_key_name
| | | | + 0.40% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | + 0.40% std::string::_S_construct
| | | | + 0.40% std::string::_Rep::_S_create
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% PGLog::IndexedLog::trim
| | + 0.40% PGLog::IndexedLog::unindex
| | + 0.40% erase
| | + 0.40% erase
| | + 0.40% _M_erase
| | + 0.40% _M_erase
| | + 0.40% _M_deallocate_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.81% generate_transaction
| + 0.81% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| + 0.81% operator()
| + 0.81% ObjectStore::Transaction::setattrs
| + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| + 0.40% get_contiguous_appender
| | + 0.40% ceph::buffer::list::contiguous_appender::contiguous_appender
| | + 0.40% ceph::buffer::create
| | + 0.40% ceph::buffer::create_aligned
| | + 0.40% ceph::buffer::create_aligned_in_mempool
| | + 0.40% create
| | + 0.40% tc_posix_memalign
| | + 0.40% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | + 0.40% tcmalloc::AlignmentForSize(unsigned long)
| + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| + 0.40% ~pair
| + 0.40% ~list
| + 0.40% ~list
| + 0.40% ~_List_base
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 0.40% reset_obs
+ 0.40% operator=
+ 0.40% object_info_t::operator=(object_info_t&&)
+ 0.40% operator=
+ 0.40% operator=
+ 0.40% clear
+ 0.40% clear
+ 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
+ 0.40% _M_destroy_node
+ 0.40% _M_put_node
+ 0.40% deallocate
+ 0.40% tc_delete
+ 0.40% tcmalloc::ThreadCache::Scavenge()
+ 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.40% SpinLock::SlowLock()
+ 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 42 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 86.29% WaitInterval
| + 86.29% WaitUntil
| + 86.29% pthread_cond_timedwait@@GLIBC_2.3.2
+ 10.89% run
| + 10.89% PGOpItem::run
| + 10.89% OSD::dequeue_op
| + 10.89% PrimaryLogPG::do_request
| + 10.89% PrimaryLogPG::do_op
| + 10.48% PrimaryLogPG::execute_ctx
| | + 9.68% PrimaryLogPG::issue_repop
| | | + 8.87% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | | + 4.84% PrimaryLogPG::queue_transactions
| | | | | + 4.84% queue_transactions
| | | | | + 4.84% BlueStore::queue_transactions
| | | | | + 3.23% BlueStore::_txc_add_transaction
| | | | | | + 0.81% begin
| | | | | | | + 0.81% iterator
| | | | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | | | + 0.40% erase
| | | | | | | | + 0.40% _M_erase
| | | | | | | | + 0.40% _M_put_node
| | | | | | | | + 0.40% deallocate
| | | | | | | | + 0.40% tc_delete
| | | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | | | + 0.40% clear
| | | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | | + 0.40% _M_put_node
| | | | | | | + 0.40% deallocate
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.81% BlueStore::_omap_setkeys
| | | | | | | + 0.40% std::string::push_back
| | | | | | | | + 0.40% std::string::reserve
| | | | | | | | + 0.40% _M_dispose
| | | | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | | | + 0.40% deallocate
| | | | | | | | + 0.40% tc_delete
| | | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | | | + 0.40% PutLengthPrefixedSliceParts
| | | | | | | + 0.40% std::string::append
| | | | | | | + 0.40% std::string::reserve
| | | | | | | + 0.40% _M_dispose
| | | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | | + 0.40% deallocate
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% decode_attrset
| | | | | | | + 0.40% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | | | + 0.40% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | | + 0.40% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | | | + 0.40% decode
| | | | | | | + 0.40% decode<std::basic_string<char> >
| | | | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | | | + 0.40% decode
| | | | | | | + 0.40% decode
| | | | | | | + 0.40% ~list
| | | | | | | + 0.40% ~list
| | | | | | | + 0.40% ~_List_base
| | | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | | + 0.40% _M_put_node
| | | | | | | + 0.40% deallocate
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% BlueStore::_write
| | | | | | | + 0.40% BlueStore::_do_write
| | | | | | | + 0.40% BlueStore::_do_write_data
| | | | | | | + 0.40% BlueStore::_do_write_small
| | | | | | | + 0.40% ~function
| | | | | | | + 0.40% ~_Function_base
| | | | | | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | | | + 0.40% _M_destroy
| | | | | | | + 0.40% tc_delete
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% BlueStore::_setattrs
| | | | | | | + 0.40% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | | | | | + 0.40% ceph::buffer::ptr::release
| | | | | | | + 0.40% tc_free
| | | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% BlueStore::_omap_rmkeys
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::rmkey
| | | | | | + 0.40% rocksdb::WriteBatch::Delete
| | | | | | + 0.40% rocksdb::WriteBatchInternal::Delete
| | | | | | + 0.40% PutLengthPrefixedSlice
| | | | | | + 0.40% std::string::append
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% std::string::_Rep::_M_clone
| | | | | | + 0.40% std::string::_Rep::_S_create
| | | | | | + 0.40% allocate
| | | | | | + 0.40% tc_new
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.40% collect_contexts
| | | | | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | | | | + 0.40% clear
| | | | | | + 0.40% _M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% SpinLock::SpinLoop(long, int*)
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.40% PutLengthPrefixedSliceParts
| | | | | | + 0.40% std::string::append
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_txc_write_nodes
| | | | | | + 0.40% BlueStore::ExtentMap::update
| | | | | | + 0.40% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | | + 0.40% operator()
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.40% PutLengthPrefixedSlice
| | | | | | + 0.40% std::string::append
| | | | | | + 0.40% std::string::reserve
| | | | | | + 0.40% _M_dispose
| | | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_txc_create
| | | | | + 0.40% RocksDBStore::get_transaction
| | | | | + 0.40% make_shared<RocksDBStore::RocksDBTransactionImpl, RocksDBStore* const>
| | | | | + 0.40% allocate_shared<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | + 0.40% shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | + 0.40% __shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | + 0.40% __shared_count<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | | + 0.40% allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 2.02% PrimaryLogPG::log_operation
| | | | | + 2.02% PG::append_log
| | | | | + 1.21% PG::write_if_dirty
| | | | | | + 0.81% ObjectStore::Transaction::omap_setkeys
| | | | | | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | | | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | | | + 0.81% ~pair
| | | | | | | + 0.81% ~list
| | | | | | | + 0.81% ~list
| | | | | | | + 0.81% ~_List_base
| | | | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | | + 0.81% _M_put_node
| | | | | | | + 0.81% deallocate
| | | | | | | + 0.81% tc_delete
| | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% PGLog::write_log_and_missing
| | | | | | + 0.40% PGLog::_write_log_and_missing
| | | | | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~_List_base
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.81% PGLog::IndexedLog::trim
| | | | | + 0.81% PGLog::IndexedLog::unindex
| | | | | + 0.81% erase
| | | | | + 0.81% erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_deallocate_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 1.21% generate_transaction
| | | | | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | | | + 1.21% operator()
| | | | | + 1.21% ObjectStore::Transaction::setattrs
| | | | | + 1.21% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | + 1.21% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 1.21% ~pair
| | | | | + 1.21% ~list
| | | | | + 1.21% ~list
| | | | | + 1.21% ~_List_base
| | | | | + 1.21% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 1.21% _M_put_node
| | | | | + 1.21% deallocate
| | | | | + 1.21% tc_delete
| | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.21% SpinLock::SlowLock()
| | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% ~vector
| | | | | + 0.40% _Destroy<ObjectStore::Transaction*, ObjectStore::Transaction>
| | | | | + 0.40% _Destroy<ObjectStore::Transaction*>
| | | | | + 0.40% __destroy<ObjectStore::Transaction*>
| | | | | + 0.40% _Destroy<ObjectStore::Transaction>
| | | | | + 0.40% ObjectStore::Transaction::~Transaction
| | | | | + 0.40% ~ptr
| | | | | + 0.40% ceph::buffer::ptr::release
| | | | | + 0.40% tc_free
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% insert<std::pair<unsigned long, ReplicatedBackend::InProgressOp>, void>
| | | | + 0.40% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ReplicatedBackend::InProgressOp>, std::_Select1st<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ReplicatedBackend::InProgressOp> > >::_M_insert_unique<std::pair<unsigned long, ReplicatedBackend::InProgressOp> >(std::pair<unsigned long, ReplicatedBackend::InProgressOp>&&)
| | | | + 0.40% _M_insert_<std::pair<unsigned long, ReplicatedBackend::InProgressOp> >
| | | | + 0.40% _M_create_node<std::pair<unsigned long, ReplicatedBackend::InProgressOp> >
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% add
| | | + 0.81% push_back
| | | + 0.81% _M_insert<pg_log_entry_t const&>
| | | + 0.81% _M_create_node<pg_log_entry_t const&>
| | | + 0.81% _M_get_node
| | | + 0.81% allocate
| | | + 0.81% tc_newarray
| | | + 0.81% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.81% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% _ZN8tcmalloc10DLL_RemoveEPNS_4SpanE@plt
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% register_on_success<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% emplace_back<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% _M_insert<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% _M_create_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% construct<std::_List_node<std::function<void()> >, PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% _List_node<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36>
| | | + 0.40% function<PrimaryLogPG::execute_ctx(PrimaryLogPG::OpContext*)::__lambda36, void>
| | | + 0.40% _M_init_functor
| | | + 0.40% _M_init_functor
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.40% PrimaryLogPG::prepare_transaction
| | + 0.40% PrimaryLogPG::do_osd_ops
| | + 0.40% PrimaryLogPG::write_update_size_and_usage
| | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::union_of
| | + 0.40% union_of
| | + 0.40% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::subtract
| | + 0.40% erase
| | + 0.40% operator[]
| | + 0.40% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<long unsigned int&&>, std::tuple<> >
| | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<long unsigned int&&>, std::tuple<> >
| | + 0.40% _M_get_node
| | + 0.40% allocate
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 0.40% clear_payload
| + 0.40% ceph::buffer::list::clear
| + 0.40% clear
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.40% ~_List_node
| + 0.40% ~ptr
| + 0.40% ceph::buffer::ptr::release
| + 0.40% ceph::buffer::raw_combined::~raw_combined
| + 0.40% ~raw_combined
| + 0.40% ~raw
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 2.82% PG::lock
+ 2.82% Mutex::Lock
+ 2.82% pthread_mutex_lock
+ 2.82% _L_lock_812
+ 2.82% __lll_lock_wait
Thread: 43 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 83.06% WaitInterval
| + 83.06% WaitUntil
| + 83.06% pthread_cond_timedwait@@GLIBC_2.3.2
+ 12.90% run
| + 12.90% PGOpItem::run
| + 12.90% OSD::dequeue_op
| + 12.90% PrimaryLogPG::do_request
| + 12.90% PrimaryLogPG::do_op
| + 12.50% PrimaryLogPG::execute_ctx
| | + 10.48% PrimaryLogPG::issue_repop
| | | + 10.48% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | | + 7.26% PrimaryLogPG::queue_transactions
| | | | + 7.26% queue_transactions
| | | | + 7.26% BlueStore::queue_transactions
| | | | + 4.03% BlueStore::_txc_add_transaction
| | | | | + 1.21% decode_attrset
| | | | | | + 1.21% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | | + 1.21% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 1.21% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | | + 0.81% insert<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | | | | | + 0.81% emplace_hint<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | | | | | + 0.81% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::string const, ceph::buffer::ptr> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >::_M_emplace_hint_unique<std::pair<std::string, ceph::buffer::ptr> >(std::_Rb_tree_const_iterator<std::pair<std::string const, ceph::buffer::ptr> >, std::pair<std::string, ceph::buffer::ptr>&&)
| | | | | | | + 0.81% _M_create_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | | | | | + 0.81% _M_get_node
| | | | | | | + 0.81% allocate
| | | | | | | + 0.81% tc_new
| | | | | | | + 0.81% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | | + 0.40% decode
| | | | | | + 0.40% decode<std::basic_string<char> >
| | | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | | + 0.40% decode
| | | | | | + 0.40% decode
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~_List_base
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 1.21% BlueStore::_write
| | | | | | + 1.21% BlueStore::_do_write
| | | | | | + 1.21% BlueStore::_do_write_data
| | | | | | + 1.21% BlueStore::_do_write_small
| | | | | | + 0.81% ~function
| | | | | | | + 0.81% ~_Function_base
| | | | | | | + 0.81% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | | | + 0.81% _M_destroy
| | | | | | | + 0.81% tc_delete
| | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% BlueStore::ExtentMap::set_lextent
| | | | | | + 0.40% BlueStore::Blob::get_ref
| | | | | | + 0.40% is_empty
| | | | | | + 0.40% is_not_empty
| | | | | + 0.81% begin
| | | | | | + 0.81% iterator
| | | | | | + 0.81% ceph::buffer::list::get_contiguous
| | | | | | + 0.81% erase
| | | | | | + 0.81% _M_erase
| | | | | | + 0.81% _M_put_node
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.81% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 2.02% BlueStore::_txc_write_nodes
| | | | | + 1.61% BlueStore::ExtentMap::update
| | | | | | + 1.61% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | | + 1.61% operator()
| | | | | | + 1.61% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 0.81% combine_strings
| | | | | | | + 0.81% std::string::append
| | | | | | | + 0.81% std::string::reserve
| | | | | | | + 0.81% _M_dispose
| | | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | | + 0.81% deallocate
| | | | | | | + 0.81% tc_delete
| | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | | + 0.81% PutLengthPrefixedSlice
| | | | | | + 0.81% std::string::append
| | | | | | + 0.81% std::string::reserve
| | | | | | + 0.81% _M_dispose
| | | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | | + 0.81% deallocate
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% combine_strings
| | | | | + 0.40% operator=
| | | | | + 0.40% std::string::assign
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% collect_contexts
| | | | | + 0.40% C_ContextsBase<Context, Context>::list_to_context
| | | | | + 0.40% clear
| | | | | + 0.40% _M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.40% rocksdb::WriteBatch::Put
| | | | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | | | + 0.40% PutLengthPrefixedSliceParts
| | | | | + 0.40% std::string::append
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_txc_create
| | | | + 0.40% RocksDBStore::get_transaction
| | | | + 0.40% make_shared<RocksDBStore::RocksDBTransactionImpl, RocksDBStore* const>
| | | | + 0.40% allocate_shared<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% __shared_ptr<std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% __shared_count<RocksDBStore::RocksDBTransactionImpl, std::allocator<RocksDBStore::RocksDBTransactionImpl>, RocksDBStore* const>
| | | | + 0.40% allocate
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% SpinLock::SlowUnlock(unsigned long)
| | | | + 0.40% base::internal::SpinLockWake(int volatile*, bool)
| | | + 2.02% PrimaryLogPG::log_operation
| | | | + 2.02% PG::append_log
| | | | + 0.81% PGLog::IndexedLog::trim
| | | | | + 0.81% PGLog::IndexedLog::unindex
| | | | | + 0.81% erase
| | | | | + 0.81% erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_erase
| | | | | + 0.81% _M_deallocate_node
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% PG::write_if_dirty
| | | | | + 0.40% PGLog::write_log_and_missing
| | | | | | + 0.40% PGLog::_write_log_and_missing
| | | | | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~list
| | | | | | + 0.40% ~_List_base
| | | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.40% _M_put_node
| | | | | | + 0.40% deallocate
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% ObjectStore::Transaction::omap_setkeys
| | | | | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | + 0.40% ~pair
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | + 0.40% PG::add_log_entry
| | | | + 0.40% add
| | | | + 0.40% PGLog::IndexedLog::add
| | | | + 0.40% operator[]
| | | | + 0.40% std::__detail::_Map_base<osd_reqid_t, std::pair<osd_reqid_t const, pg_log_entry_t*>, std::allocator<std::pair<osd_reqid_t const, pg_log_entry_t*> >, std::__detail::_Select1st, std::equal_to<osd_reqid_t>, std::hash<osd_reqid_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[]
| | | | + 0.40% _M_allocate_node<const std::piecewise_construct_t&, std::tuple<const osd_reqid_t&>, std::tuple<> >
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 1.21% generate_transaction
| | | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 1.21% operator()
| | | + 1.21% ObjectStore::Transaction::setattrs
| | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% ~pair
| | | | + 0.81% ~list
| | | | + 0.81% ~list
| | | | + 0.81% ~_List_base
| | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.81% _M_put_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% ObjectStore::Transaction::_get_coll_id
| | | + 0.40% operator[]
| | | + 0.40% std::_Rb_tree<coll_t, std::pair<coll_t const, unsigned int>, std::_Select1st<std::pair<coll_t const, unsigned int> >, std::less<coll_t>, std::allocator<std::pair<coll_t const, unsigned int> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<coll_t const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<coll_t const, unsigned int> >, std::piecewise_construct_t const&, std::tuple<coll_t const&>&&, std::tuple<>&&)
| | | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<const coll_t&>, std::tuple<> >
| | | + 0.40% _M_get_node
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.81% reset_obs
| | | + 0.81% operator=
| | | + 0.81% object_info_t::operator=(object_info_t&&)
| | | + 0.81% operator=
| | | + 0.81% operator=
| | | + 0.81% clear
| | | + 0.81% clear
| | | + 0.81% std::_Rb_tree<unsigned long, std::pair<unsigned long const, unsigned long>, std::_Select1st<std::pair<unsigned long const, unsigned long> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::_M_erase
| | | + 0.81% _M_destroy_node
| | | + 0.81% _M_put_node
| | | + 0.81% deallocate
| | | + 0.81% tc_delete
| | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.81% SpinLock::SlowLock()
| | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.81% PrimaryLogPG::calc_trim_to
| | | + 0.81% size
| | | + 0.81% distance<std::_List_const_iterator<pg_log_entry_t> >
| | | + 0.81% __distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 0.40% PrimaryLogPG::prepare_transaction
| | + 0.40% PrimaryLogPG::finish_ctx
| | + 0.40% ~map
| | + 0.40% ~_Rb_tree
| | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::list>, std::_Select1st<std::pair<std::string const, ceph::buffer::list> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >::_M_erase
| | + 0.40% _M_destroy_node
| | + 0.40% destroy<std::_Rb_tree_node<std::pair<std::basic_string<char> const, ceph::buffer::list> > >
| | + 0.40% ~_Rb_tree_node
| | + 0.40% ~pair
| | + 0.40% ~list
| | + 0.40% ~list
| | + 0.40% ~_List_base
| | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.40% _M_put_node
| | + 0.40% deallocate
| | + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.40% SpinLock::SlowLock()
| | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| + 0.40% clear_payload
| + 0.40% ceph::buffer::list::clear
| + 0.40% clear
| + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| + 0.40% destroy<std::_List_node<ceph::buffer::ptr> >
| + 0.40% ~_List_node
| + 0.40% ~ptr
| + 0.40% ceph::buffer::ptr::release
| + 0.40% ceph::buffer::raw_combined::~raw_combined
| + 0.40% ~raw_combined
| + 0.40% ~raw
| + 0.40% ~map
| + 0.40% ~_Rb_tree
| + 0.40% std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> >, std::_Select1st<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > >, std::less<std::pair<unsigned long, unsigned long> >, std::allocator<std::pair<std::pair<unsigned long, unsigned long> const, std::pair<unsigned int, unsigned int> > > >::_M_erase
| + 0.40% _M_destroy_node
| + 0.40% _M_put_node
| + 0.40% deallocate
| + 0.40% tc_delete
| + 0.40% tcmalloc::ThreadCache::Scavenge()
| + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| + 0.40% SpinLock::SlowLock()
| + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
+ 4.03% PG::lock
+ 4.03% Mutex::Lock
+ 4.03% pthread_mutex_lock
+ 4.03% _L_lock_812
+ 4.03% __lll_lock_wait
Thread: 44 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 83.06% WaitInterval
| + 83.06% WaitUntil
| + 83.06% pthread_cond_timedwait@@GLIBC_2.3.2
+ 12.90% run
| + 12.90% PGOpItem::run
| + 12.90% OSD::dequeue_op
| + 12.90% PrimaryLogPG::do_request
| + 12.90% PrimaryLogPG::do_op
| + 12.90% PrimaryLogPG::execute_ctx
| + 10.48% PrimaryLogPG::issue_repop
| | + 10.48% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 6.85% PrimaryLogPG::queue_transactions
| | | + 6.85% queue_transactions
| | | + 6.85% BlueStore::queue_transactions
| | | + 5.24% BlueStore::_txc_add_transaction
| | | | + 1.61% BlueStore::_write
| | | | | + 1.61% BlueStore::_do_write
| | | | | + 1.21% BlueStore::_do_write_data
| | | | | | + 1.21% BlueStore::_do_write_small
| | | | | | + 0.81% BlueStore::ExtentMap::set_lextent
| | | | | | | + 0.81% BlueStore::ExtentMap::punch_hole
| | | | | | | + 0.81% BlueStore::OldExtent::create
| | | | | | | + 0.81% tc_new
| | | | | | | + 0.81% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | | + 0.40% ~function
| | | | | | + 0.40% ~_Function_base
| | | | | | + 0.40% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | | + 0.40% _M_destroy
| | | | | | + 0.40% tc_delete
| | | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% BlueStore::_wctx_finish
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 1.61% BlueStore::_omap_setkeys
| | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | | + 1.21% rocksdb::WriteBatch::Put
| | | | | | + 1.21% rocksdb::WriteBatchInternal::Put
| | | | | | + 1.21% PutLengthPrefixedSliceParts
| | | | | | + 1.21% std::string::append
| | | | | | + 1.21% std::string::reserve
| | | | | | + 1.21% _M_dispose
| | | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | | + 1.21% deallocate
| | | | | | + 1.21% tc_delete
| | | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | + 0.40% std::string::push_back
| | | | | + 0.40% std::string::reserve
| | | | | + 0.40% _M_dispose
| | | | | + 0.40% std::string::_Rep::_M_destroy
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% decode_attrset
| | | | | + 0.81% decode<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, denc_traits<std::map<std::string, ceph::buffer::ptr, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >, void> >
| | | | | + 0.81% decode<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.81% decode_nohead<std::pair<std::basic_string<char>, ceph::buffer::ptr> >
| | | | | + 0.40% insert<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | | | | + 0.40% emplace_hint<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | | | | + 0.40% std::_Rb_tree<std::string, std::pair<std::string const, ceph::buffer::ptr>, std::_Select1st<std::pair<std::string const, ceph::buffer::ptr> >, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::ptr> > >::_M_emplace_hint_unique<std::pair<std::string, ceph::buffer::ptr> >(std::_Rb_tree_const_iterator<std::pair<std::string const, ceph::buffer::ptr> >, std::pair<std::string, ceph::buffer::ptr>&&)
| | | | | | + 0.40% _M_create_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, ceph::buffer::ptr> >
| | | | | | + 0.40% _M_get_node
| | | | | | + 0.40% allocate
| | | | | | + 0.40% tc_new
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void>, _denc::has_legacy_denc<std::pair<std::basic_string<char>, ceph::buffer::ptr>, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode<std::basic_string<char> >
| | | | | + 0.40% denc<ceph::buffer::ptr, denc_traits<ceph::buffer::ptr>, _denc::has_legacy_denc<ceph::buffer::ptr, void> >
| | | | | + 0.40% decode
| | | | | + 0.40% decode
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% begin
| | | | | + 0.40% iterator
| | | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% ceph::buffer::list::rebuild
| | | | | + 0.40% clear
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_setattrs
| | | | | + 0.40% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | | | + 0.40% ceph::buffer::ptr::release
| | | | | + 0.40% tc_free
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::_get_collection
| | | | + 0.40% find
| | | | + 0.40% find
| | | | + 0.40% _M_hash_code
| | | | + 0.40% operator()
| | | | + 0.40% to_str
| | | | + 0.40% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | + 0.40% _S_construct<char const*>
| | | | + 0.40% _S_construct_aux<char const*>
| | | | + 0.40% char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag)
| | | | + 0.40% std::string::_Rep::_S_create
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 1.61% BlueStore::_txc_write_nodes
| | | + 1.21% BlueStore::ExtentMap::update
| | | | + 0.81% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 0.81% operator()
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% combine_strings
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.40% SpinLock::SlowLock()
| | | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% tcmalloc::ThreadCache::IncreaseCacheLimit()
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% BlueStore::ExtentMap::encode_some
| | | | + 0.40% get_contiguous_appender
| | | | + 0.40% ceph::buffer::list::contiguous_appender::contiguous_appender
| | | | + 0.40% ceph::buffer::create
| | | | + 0.40% ceph::buffer::create_aligned
| | | | + 0.40% ceph::buffer::create_aligned_in_mempool
| | | | + 0.40% create
| | | | + 0.40% tc_posix_memalign
| | | | + 0.40% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSlice
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 1.61% PrimaryLogPG::log_operation
| | | + 1.61% PG::append_log
| | | + 0.81% PGLog::IndexedLog::trim
| | | | + 0.81% PGLog::IndexedLog::unindex
| | | | + 0.81% erase
| | | | + 0.81% erase
| | | | + 0.81% _M_erase
| | | | + 0.81% _M_erase
| | | | + 0.81% _M_deallocate_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% PG::write_if_dirty
| | | + 0.81% ObjectStore::Transaction::omap_setkeys
| | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | + 0.40% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.40% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.40% encode<std::basic_string<char> >
| | | | + 0.40% denc<ceph::buffer::list, denc_traits<ceph::buffer::list> >
| | | | + 0.40% encode
| | | | + 0.40% append
| | | | + 0.40% flush_and_continue
| | | | + 0.40% ceph::buffer::list::append
| | | | + 0.40% push_back
| | | | + 0.40% push_back
| | | | + 0.40% _M_insert<ceph::buffer::ptr>
| | | | + 0.40% _M_create_node<ceph::buffer::ptr>
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | + 0.40% ~pair
| | | + 0.40% ~list
| | | + 0.40% ~list
| | | + 0.40% ~_List_base
| | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 1.21% generate_transaction
| | | + 1.21% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 0.81% operator()
| | | | + 0.81% ObjectStore::Transaction::setattrs
| | | | + 0.81% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.81% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.81% ~pair
| | | | + 0.81% ~list
| | | | + 0.81% ~list
| | | | + 0.81% ~_List_base
| | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.81% _M_put_node
| | | | + 0.81% deallocate
| | | | + 0.81% tc_delete
| | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.81% SpinLock::SlowLock()
| | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% pop_front
| | | + 0.40% _M_erase
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% ~vector
| | | + 0.40% _Destroy<ObjectStore::Transaction*, ObjectStore::Transaction>
| | | + 0.40% _Destroy<ObjectStore::Transaction*>
| | | + 0.40% __destroy<ObjectStore::Transaction*>
| | | + 0.40% _Destroy<ObjectStore::Transaction>
| | | + 0.40% ObjectStore::Transaction::~Transaction
| | | + 0.40% ~ptr
| | | + 0.40% ceph::buffer::ptr::release
| | | + 0.40% tc_free
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% push_back
| | + 0.40% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::emplace_back<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| | + 0.40% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::_M_emplace_back_aux<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| | + 0.40% _M_allocate
| | + 0.40% allocate
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 2.42% PrimaryLogPG::calc_trim_to
| + 2.42% size
| + 2.42% distance<std::_List_const_iterator<pg_log_entry_t> >
| + 2.42% __distance<std::_List_const_iterator<pg_log_entry_t> >
+ 4.03% PG::lock
+ 4.03% Mutex::Lock
+ 4.03% pthread_mutex_lock
+ 4.03% _L_lock_812
+ 4.03% __lll_lock_wait
Thread: 45 (tp_osd_tp) - 248 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 79.84% WaitInterval
| + 79.84% WaitUntil
| + 79.84% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 14.52% run
| + 14.52% PGOpItem::run
| + 14.52% OSD::dequeue_op
| + 14.52% PrimaryLogPG::do_request
| + 14.52% PrimaryLogPG::do_op
| + 14.52% PrimaryLogPG::execute_ctx
| + 12.50% PrimaryLogPG::issue_repop
| | + 12.50% ReplicatedBackend::submit_transaction(hobject_t const&, object_stat_sum_t const&, eversion_t const&, std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >&&, eversion_t const&, eversion_t const&, std::vector<pg_log_entry_t, std::allocator<pg_log_entry_t> > const&, boost::optional<pg_hit_set_history_t>&, Context*, Context*, Context*, unsigned long, osd_reqid_t, boost::intrusive_ptr<OpRequest>)
| | + 6.05% PrimaryLogPG::queue_transactions
| | | + 6.05% queue_transactions
| | | + 6.05% BlueStore::queue_transactions
| | | + 2.82% BlueStore::_txc_write_nodes
| | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 1.21% combine_strings
| | | | | + 1.21% operator=
| | | | | + 1.21% std::string::assign
| | | | | + 1.21% _M_dispose
| | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | + 1.21% deallocate
| | | | | + 1.21% tc_delete
| | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.81% SpinLock::SlowLock()
| | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 1.21% BlueStore::ExtentMap::update
| | | | | + 1.21% generate_extent_shard_key_and_apply<std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > >(const std::basic_string<char, std::char_traits<char>, mempool::pool_allocator<(mempool::pool_index_t)4, char> > &, uint32_t, std::string *, std::function<void(const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)>)
| | | | | + 1.21% operator()
| | | | | + 1.21% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 1.21% combine_strings
| | | | | + 1.21% std::string::append
| | | | | + 1.21% std::string::reserve
| | | | | + 1.21% _M_dispose
| | | | | + 1.21% std::string::_Rep::_M_destroy
| | | | | + 1.21% deallocate
| | | | | + 1.21% tc_delete
| | | | | + 1.21% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.21% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.21% SpinLock::SlowLock()
| | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% denc<bluestore_onode_t, denc_traits<bluestore_onode_t> >
| | | | + 0.40% encode
| | | | + 0.40% encode
| | | | + 0.40% _denc_friend<bluestore_onode_t const, ceph::buffer::list::contiguous_appender>
| | | | + 0.40% denc<std::vector<bluestore_onode_t::shard_info>, denc_traits<std::vector<bluestore_onode_t::shard_info>, void> >
| | | | + 0.40% encode<bluestore_onode_t::shard_info>
| | | | + 0.40% encode_nohead<bluestore_onode_t::shard_info>
| | | | + 0.40% denc<bluestore_onode_t::shard_info, denc_traits<bluestore_onode_t::shard_info> >
| | | | + 0.40% encode
| | | | + 0.40% encode
| | | | + 0.40% _denc_friend<bluestore_onode_t::shard_info const, ceph::buffer::list::contiguous_appender>
| | | | + 0.40% denc_varint<unsigned int>
| | | + 2.82% BlueStore::_txc_add_transaction
| | | | + 1.21% BlueStore::_write
| | | | | + 1.21% BlueStore::_do_write
| | | | | + 1.21% BlueStore::_do_write_data
| | | | | + 1.21% BlueStore::_do_write_small
| | | | | + 0.81% ~function
| | | | | | + 0.81% ~_Function_base
| | | | | | + 0.81% std::_Function_base::_Base_manager<BlueStore::_do_write_small(BlueStore::TransContext*, BlueStore::CollectionRef&, BlueStore::OnodeRef, uint64_t, uint64_t, ceph::buffer::list::iterator&, BlueStore::WriteContext*)::__lambda22>::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)
| | | | | | + 0.81% _M_destroy
| | | | | | + 0.81% tc_delete
| | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | + 0.40% BlueStore::_get_deferred_op
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.81% BlueStore::_omap_setkeys
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::set
| | | | | + 0.81% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | | | + 0.81% rocksdb::WriteBatch::Put
| | | | | + 0.81% rocksdb::WriteBatchInternal::Put
| | | | | + 0.81% PutLengthPrefixedSliceParts
| | | | | + 0.81% std::string::append
| | | | | + 0.81% std::string::reserve
| | | | | + 0.81% _M_dispose
| | | | | + 0.81% std::string::_Rep::_M_destroy
| | | | | + 0.81% deallocate
| | | | | + 0.81% tc_delete
| | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% vector
| | | | | + 0.40% _Vector_base
| | | | | + 0.40% _M_create_storage
| | | | | + 0.40% _M_allocate
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% begin
| | | | + 0.40% iterator
| | | | + 0.40% ceph::buffer::list::get_contiguous
| | | | + 0.40% erase
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::set
| | | + 0.40% RocksDBStore::RocksDBTransactionImpl::put_bat
| | | + 0.40% rocksdb::WriteBatch::Put
| | | + 0.40% rocksdb::WriteBatchInternal::Put
| | | + 0.40% PutLengthPrefixedSliceParts
| | | + 0.40% std::string::append
| | | + 0.40% std::string::reserve
| | | + 0.40% _M_dispose
| | | + 0.40% std::string::_Rep::_M_destroy
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 3.63% PrimaryLogPG::log_operation
| | | + 3.63% PG::append_log
| | | + 2.42% PGLog::IndexedLog::trim
| | | | + 1.61% PGLog::IndexedLog::unindex
| | | | | + 1.61% erase
| | | | | + 1.61% erase
| | | | | + 1.61% _M_erase
| | | | | + 1.61% _M_erase
| | | | | + 1.61% _M_deallocate_node
| | | | | + 1.61% deallocate
| | | | | + 1.61% tc_delete
| | | | | + 1.61% tcmalloc::ThreadCache::Scavenge()
| | | | | + 1.61% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 1.21% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 1.21% SpinLock::SlowLock()
| | | | | + 1.21% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% push_back
| | | | | + 0.40% _M_insert<pg_log_dup_t>
| | | | | + 0.40% _M_create_node<pg_log_dup_t>
| | | | | + 0.40% _M_get_node
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_newarray
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.40% pop_front
| | | | + 0.40% _M_erase
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_deletearray
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.81% PG::write_if_dirty
| | | | + 0.40% PGLog::write_log_and_missing
| | | | | + 0.40% PGLog::_write_log_and_missing
| | | | | + 0.40% pg_log_entry_t::encode_with_checksum
| | | | | + 0.40% ~list
| | | | | + 0.40% ~list
| | | | | + 0.40% ~_List_base
| | | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% ObjectStore::Transaction::omap_setkeys
| | | | + 0.40% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | + 0.40% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | + 0.40% ~pair
| | | | + 0.40% ~list
| | | | + 0.40% ~list
| | | | + 0.40% ~_List_base
| | | | + 0.40% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% tc_delete
| | | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.40% SpinLock::SlowLock()
| | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.40% PG::add_log_entry
| | | + 0.40% add
| | | + 0.40% PGLog::IndexedLog::add
| | | + 0.40% operator[]
| | | + 0.40% std::__detail::_Map_base<osd_reqid_t, std::pair<osd_reqid_t const, pg_log_entry_t*>, std::allocator<std::pair<osd_reqid_t const, pg_log_entry_t*> >, std::__detail::_Select1st, std::equal_to<osd_reqid_t>, std::hash<osd_reqid_t>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[]
| | | + 0.40% _M_allocate_node<const std::piecewise_construct_t&, std::tuple<const osd_reqid_t&>, std::tuple<> >
| | | + 0.40% allocate
| | | + 0.40% tc_new
| | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 2.42% generate_transaction
| | | + 2.42% safe_create_traverse<generate_transaction(PGTransactionUPtr&, const coll_t&, std::vector<pg_log_entry_t>&, ObjectStore::Transaction*, std::set<hobject_t>*, std::set<hobject_t>*)::__lambda35>
| | | + 2.02% operator()
| | | | + 1.61% ObjectStore::Transaction::setattrs
| | | | | + 1.21% encode<std::map<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::map<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | | + 0.81% bound_encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | | | + 0.81% ~pair
| | | | | | | + 0.81% ~list
| | | | | | | + 0.81% ~list
| | | | | | | + 0.81% ~_List_base
| | | | | | | + 0.81% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | | + 0.81% _M_put_node
| | | | | | | + 0.81% deallocate
| | | | | | | + 0.81% tc_delete
| | | | | | | + 0.81% tcmalloc::ThreadCache::Scavenge()
| | | | | | | + 0.81% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.81% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | + 0.81% SpinLock::SlowLock()
| | | | | | | + 0.81% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | | | + 0.40% encode<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | | + 0.40% encode_nohead<std::pair<std::basic_string<char>, ceph::buffer::list> >
| | | | | | + 0.40% denc<std::pair<std::basic_string<char>, ceph::buffer::list>, denc_traits<std::pair<std::basic_string<char>, ceph::buffer::list>, void> >
| | | | | | + 0.40% encode<std::basic_string<char> >
| | | | | | + 0.40% denc<ceph::buffer::list, denc_traits<ceph::buffer::list> >
| | | | | | + 0.40% encode
| | | | | | + 0.40% append
| | | | | | + 0.40% flush_and_continue
| | | | | | + 0.40% ceph::buffer::list::append(ceph::buffer::ptr&&)
| | | | | | + 0.40% push_back
| | | | | | + 0.40% push_back
| | | | | | + 0.40% _M_insert<ceph::buffer::ptr>
| | | | | | + 0.40% _M_create_node<ceph::buffer::ptr>
| | | | | | + 0.40% _M_get_node
| | | | | | + 0.40% allocate
| | | | | | + 0.40% tc_new
| | | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.40% ObjectStore::Transaction::_get_next_op
| | | | | + 0.40% ceph::buffer::list::append
| | | | | + 0.40% push_back
| | | | | + 0.40% push_back
| | | | | + 0.40% _M_insert<ceph::buffer::ptr const&>
| | | | | + 0.40% _M_create_node<ceph::buffer::ptr const&>
| | | | | + 0.40% _M_get_node
| | | | | + 0.40% allocate
| | | | | + 0.40% tc_new
| | | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | + 0.40% SpinLock::SlowLock()
| | | | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | | | + 0.40% operator=
| | | | + 0.40% std::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::operator=
| | | | + 0.40% insert<std::_List_const_iterator<ceph::buffer::ptr>, void>
| | | | + 0.40% list<std::_List_const_iterator<ceph::buffer::ptr>, void>
| | | | + 0.40% _M_initialize_dispatch<std::_List_const_iterator<ceph::buffer::ptr> >
| | | | + 0.40% emplace_back<ceph::buffer::ptr const&>
| | | | + 0.40% _M_insert<ceph::buffer::ptr const&>
| | | | + 0.40% _M_create_node<ceph::buffer::ptr const&>
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.40% pop_front
| | | + 0.40% _M_erase
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.40% tcmalloc::ThreadCache::Scavenge()
| | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.40% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.40% SpinLock::SlowLock()
| | | + 0.40% base::internal::SpinLockDelay(int volatile*, int, int)
| | + 0.40% push_back
| | + 0.40% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::emplace_back<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| | + 0.40% std::vector<ObjectStore::Transaction, std::allocator<ObjectStore::Transaction> >::_M_emplace_back_aux<ObjectStore::Transaction>(ObjectStore::Transaction&&)
| | + 0.40% _M_allocate
| | + 0.40% allocate
| | + 0.40% tc_new
| | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 1.21% PrimaryLogPG::calc_trim_to
| | + 1.21% size
| | + 1.21% distance<std::_List_const_iterator<pg_log_entry_t> >
| | + 1.21% __distance<std::_List_const_iterator<pg_log_entry_t> >
| + 0.40% reset_obs
| | + 0.40% operator=
| | + 0.40% obj
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment