Skip to content

Instantly share code, notes, and snippets.

@rzarzynski
Last active January 9, 2018 15:27
Show Gist options
  • Save rzarzynski/fb7eb4bf995a69156082330c5ab1ed2d to your computer and use it in GitHub Desktop.
Save rzarzynski/fb7eb4bf995a69156082330c5ab1ed2d to your computer and use it in GitHub Desktop.
Profiling unbuffered 4 KiB randreads on incerta
Gathering Samples........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Profiling complete with 1000 samples.
Thread: 1 (ceph-osd) - 1000 samples
+ 100.00% main
+ 100.00% AsyncMessenger::wait
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 2 (signal_handler) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SignalHandler::entry
+ 100.00% poll
+ 100.00% poll
Thread: 3 (osd_srv_agent) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 14 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% md_config_t::get_val<bool>
+ 0.10% md_config_t::get_val_generic
+ 0.10% Locker
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_870
+ 0.10% __lll_lock_wait
Thread: 15 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| | + 0.10% PrimaryLogPG::do_osd_ops
| | + 0.10% PrimaryLogPG::do_read
| | + 0.10% ReplicatedBackend::objects_read_sync
| | + 0.10% BlueStore::read
| | + 0.10% BlueStore::_do_read
| | + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 16 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.40% Cond::Wait
| + 99.40% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.30% Mutex::Lock
| + 0.30% pthread_mutex_lock
| + 0.30% _L_lock_812
| + 0.30% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| | + 0.10% md_config_t::get_val_generic
| | + 0.10% Locker
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_870
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 17 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.50% Cond::Wait
| + 99.50% pthread_cond_wait@@GLIBC_2.3.2
+ 0.30% run
| + 0.30% PGOpItem::run
| + 0.30% OSD::dequeue_op
| + 0.30% PrimaryLogPG::do_request
| + 0.30% PrimaryLogPG::do_op
| + 0.30% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| | + 0.20% PrimaryLogPG::do_osd_ops
| | + 0.20% PrimaryLogPG::do_read
| | + 0.20% ReplicatedBackend::objects_read_sync
| | + 0.20% BlueStore::read
| | + 0.20% BlueStore::_do_read
| | + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.20% operator()
| | + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.20% operator()
| | + 0.20% KernelDevice::read
| | + 0.20% pread
| | + 0.20% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% PG::publish_stats_to_osd
| + 0.10% md_config_t::get_val<unsigned long>
| + 0.10% md_config_t::get_val_generic
| + 0.10% md_config_t::_get_val_generic
| + 0.10% ConfFile::normalize_key_name
| + 0.10% ConfFile::trim_whitespace
| + 0.10% isspace
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 18 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% md_config_t::get_val<bool>
+ 0.10% md_config_t::get_val_generic
+ 0.10% Locker
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_870
+ 0.10% __lll_lock_wait
Thread: 19 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% send_message_osd_client
+ 0.10% AsyncConnection::send_message
+ 0.10% lock_guard
+ 0.10% std::mutex::lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 20 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% send_message_osd_client
+ 0.10% AsyncConnection::send_message
+ 0.10% lock_guard
+ 0.10% std::mutex::lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 21 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 22 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 23 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 24 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.30% run
+ 0.30% PGOpItem::run
+ 0.30% OSD::dequeue_op
+ 0.30% PrimaryLogPG::do_request
+ 0.30% PrimaryLogPG::do_op
+ 0.30% PrimaryLogPG::execute_ctx
+ 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| + 0.20% ReplicatedBackend::objects_read_sync
| + 0.20% BlueStore::read
| + 0.20% BlueStore::_do_read
| + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.20% operator()
| + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.20% operator()
| + 0.20% KernelDevice::read
| + 0.20% pread
| + 0.20% pread64
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% PG::publish_stats_to_osd
+ 0.10% md_config_t::get_val<unsigned long>
+ 0.10% md_config_t::get_val_generic
+ 0.10% Locker
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_870
+ 0.10% __lll_lock_wait
Thread: 25 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 26 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.30% run
| + 0.30% PGOpItem::run
| + 0.30% OSD::dequeue_op
| + 0.30% PrimaryLogPG::do_request
| + 0.30% PrimaryLogPG::do_op
| + 0.30% PrimaryLogPG::execute_ctx
| + 0.30% PrimaryLogPG::prepare_transaction
| + 0.30% PrimaryLogPG::do_osd_ops
| + 0.30% PrimaryLogPG::do_read
| + 0.30% ReplicatedBackend::objects_read_sync
| + 0.30% BlueStore::read
| + 0.30% BlueStore::_do_read
| + 0.30% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.30% operator()
| + 0.30% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.30% operator()
| + 0.30% KernelDevice::read
| + 0.30% pread
| + 0.30% pread64
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 27 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.40% Cond::Wait
| + 99.40% pthread_cond_wait@@GLIBC_2.3.2
+ 0.40% run
| + 0.40% PGOpItem::run
| + 0.40% OSD::dequeue_op
| + 0.40% PrimaryLogPG::do_request
| + 0.40% PrimaryLogPG::do_op
| + 0.40% PrimaryLogPG::execute_ctx
| + 0.30% PrimaryLogPG::complete_read_ctx
| | + 0.20% send_message_osd_client
| | | + 0.20% AsyncConnection::send_message
| | | + 0.20% lock_guard
| | | + 0.20% std::mutex::lock
| | | + 0.20% __gthread_mutex_lock
| | | + 0.20% pthread_mutex_lock
| | | + 0.20% _L_lock_812
| | | + 0.20% __lll_lock_wait
| | + 0.10% PG::publish_stats_to_osd
| | + 0.10% md_config_t::get_val<unsigned long>
| | + 0.10% md_config_t::get_val_generic
| | + 0.10% Locker
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_870
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 28 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| | + 0.10% PrimaryLogPG::do_osd_ops
| | + 0.10% PrimaryLogPG::do_read
| | + 0.10% ReplicatedBackend::objects_read_sync
| | + 0.10% BlueStore::read
| | + 0.10% BlueStore::_do_read
| | + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 29 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% run
+ 0.20% PGOpItem::run
+ 0.20% OSD::dequeue_op
+ 0.20% PrimaryLogPG::do_request
+ 0.20% PrimaryLogPG::do_op
+ 0.20% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| + 0.10% md_config_t::get_val_generic
| + 0.10% Locker
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_870
| + 0.10% __lll_lock_wait
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% send_message_osd_client
+ 0.10% AsyncConnection::send_message
+ 0.10% lock_guard
+ 0.10% std::mutex::lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 30 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::complete_read_ctx
| + 0.20% send_message_osd_client
| + 0.20% AsyncConnection::send_message
| + 0.20% lock_guard
| + 0.20% std::mutex::lock
| + 0.20% __gthread_mutex_lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 31 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.40% Cond::Wait
| + 99.40% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.30% run
| + 0.30% PGOpItem::run
| + 0.30% OSD::dequeue_op
| + 0.30% PrimaryLogPG::do_request
| + 0.30% PrimaryLogPG::do_op
| + 0.30% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| | + 0.20% PrimaryLogPG::do_osd_ops
| | + 0.20% PrimaryLogPG::do_read
| | + 0.20% ReplicatedBackend::objects_read_sync
| | + 0.20% BlueStore::read
| | + 0.20% BlueStore::_do_read
| | + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.20% operator()
| | + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.20% operator()
| | + 0.20% KernelDevice::read
| | + 0.20% pread
| | + 0.20% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 32 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 33 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 34 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% md_config_t::get_val<bool>
+ 0.10% md_config_t::get_val_generic
+ 0.10% Locker
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_870
+ 0.10% __lll_lock_wait
Thread: 35 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| | + 0.10% md_config_t::get_val_generic
| | + 0.10% Locker
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_870
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 36 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% ~shared_ptr
| + 0.10% ~__shared_ptr
| + 0.10% ~__shared_count
| + 0.10% std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 37 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 38 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.30% Mutex::Lock
| + 0.30% pthread_mutex_lock
| + 0.30% _L_lock_812
| + 0.30% __lll_lock_wait
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% OpRequest::_unregistered
+ 0.10% clear_data
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 39 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| | + 0.10% PrimaryLogPG::do_osd_ops
| | + 0.10% PrimaryLogPG::do_read
| | + 0.10% ReplicatedBackend::objects_read_sync
| | + 0.10% BlueStore::read
| | + 0.10% BlueStore::_do_read
| | + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 40 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.50% Cond::Wait
| + 99.50% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% ~OpQueueItem
| + 0.20% ~unique_ptr
| + 0.20% operator()
| + 0.20% PGOpItem::~PGOpItem
| + 0.20% ~PGOpItem
| + 0.20% ~intrusive_ptr
| + 0.20% intrusive_ptr_release
| + 0.20% TrackedOp::put
| + 0.20% OpTracker::unregister_inflight_op
| + 0.20% OpRequest::_unregistered
| + 0.20% clear_data
| + 0.20% Throttle::put
| + 0.20% uniquely_lock<std::mutex&>
| + 0.20% unique_lock
| + 0.20% lock
| + 0.20% lock
| + 0.20% __gthread_mutex_lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% PG::publish_stats_to_osd
| + 0.10% md_config_t::get_val<unsigned long>
| + 0.10% md_config_t::get_val_generic
| + 0.10% Locker
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_870
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 41 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% run
+ 0.20% PGOpItem::run
+ 0.20% OSD::dequeue_op
+ 0.20% PrimaryLogPG::do_request
+ 0.20% PrimaryLogPG::do_op
+ 0.20% PrimaryLogPG::execute_ctx
+ 0.20% PrimaryLogPG::complete_read_ctx
+ 0.20% send_message_osd_client
+ 0.20% AsyncConnection::send_message
+ 0.20% lock_guard
+ 0.20% std::mutex::lock
+ 0.20% __gthread_mutex_lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 42 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% PG::publish_stats_to_osd
+ 0.10% md_config_t::get_val<unsigned long>
+ 0.10% md_config_t::get_val_generic
+ 0.10% Locker
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_870
+ 0.10% __lll_lock_wait
Thread: 43 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% OpRequest::_unregistered
+ 0.10% clear_data
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 44 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 45 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| + 0.20% ReplicatedBackend::objects_read_sync
| + 0.20% BlueStore::read
| + 0.20% BlueStore::_do_read
| + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.20% operator()
| + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.20% operator()
| + 0.20% KernelDevice::read
| + 0.20% pread
| + 0.20% pread64
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% OpRequest::_unregistered
+ 0.10% clear_data
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 46 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% run
+ 0.20% PGOpItem::run
+ 0.20% OSD::dequeue_op
+ 0.20% PrimaryLogPG::do_request
+ 0.20% PrimaryLogPG::do_op
+ 0.20% PrimaryLogPG::execute_ctx
+ 0.20% PrimaryLogPG::complete_read_ctx
+ 0.20% send_message_osd_client
+ 0.20% AsyncConnection::send_message
+ 0.20% lock_guard
+ 0.20% std::mutex::lock
+ 0.20% __gthread_mutex_lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 47 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| + 0.10% md_config_t::get_val_generic
| + 0.10% Locker
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_870
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 48 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% PrimaryLogPG::do_read
+ 0.10% ReplicatedBackend::objects_read_sync
+ 0.10% BlueStore::read
+ 0.10% BlueStore::_do_read
+ 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
+ 0.10% operator()
+ 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
+ 0.10% operator()
+ 0.10% KernelDevice::read
+ 0.10% pread
+ 0.10% pread64
Thread: 49 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.30% __pthread_mutex_cond_lock
| + 0.30% _L_cond_lock_789
| + 0.30% __lll_lock_wait
+ 0.30% run
+ 0.30% PGOpItem::run
+ 0.30% OSD::dequeue_op
+ 0.30% PrimaryLogPG::do_request
+ 0.30% PrimaryLogPG::do_op
+ 0.30% PrimaryLogPG::execute_ctx
+ 0.20% PrimaryLogPG::complete_read_ctx
| + 0.20% send_message_osd_client
| + 0.20% AsyncConnection::send_message
| + 0.20% lock_guard
| + 0.20% std::mutex::lock
| + 0.20% __gthread_mutex_lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% PrimaryLogPG::do_read
+ 0.10% ReplicatedBackend::objects_read_sync
+ 0.10% BlueStore::read
+ 0.10% BlueStore::_do_read
+ 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
+ 0.10% operator()
+ 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
+ 0.10% operator()
+ 0.10% KernelDevice::read
+ 0.10% pread
+ 0.10% pread64
Thread: 50 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| + 0.20% ReplicatedBackend::objects_read_sync
| + 0.20% BlueStore::read
| + 0.20% BlueStore::_do_read
| + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.20% operator()
| + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.20% operator()
| + 0.20% KernelDevice::read
| + 0.20% pread
| + 0.20% pread64
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 51 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| | + 0.10% PrimaryLogPG::do_osd_ops
| | + 0.10% PrimaryLogPG::do_read
| | + 0.10% ReplicatedBackend::objects_read_sync
| | + 0.10% BlueStore::read
| | + 0.10% BlueStore::_do_read
| | + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 52 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 0.20% run
+ 0.20% PGOpItem::run
+ 0.20% OSD::dequeue_op
+ 0.20% PrimaryLogPG::do_request
+ 0.20% PrimaryLogPG::do_op
+ 0.20% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% send_message_osd_client
+ 0.10% AsyncConnection::send_message
+ 0.10% lock_guard
+ 0.10% std::mutex::lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 53 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| | + 0.10% PrimaryLogPG::do_osd_ops
| | + 0.10% PrimaryLogPG::do_read
| | + 0.10% ReplicatedBackend::objects_read_sync
| | + 0.10% BlueStore::read
| | + 0.10% BlueStore::_do_read
| | + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 54 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% PrimaryLogPG::do_read
+ 0.10% ReplicatedBackend::objects_read_sync
+ 0.10% BlueStore::read
+ 0.10% BlueStore::_do_read
+ 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
+ 0.10% operator()
+ 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
+ 0.10% operator()
+ 0.10% KernelDevice::read
+ 0.10% pread
+ 0.10% pread64
Thread: 55 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.50% Cond::Wait
| + 99.50% pthread_cond_wait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::complete_read_ctx
| + 0.20% send_message_osd_client
| + 0.20% AsyncConnection::send_message
| + 0.20% lock_guard
| + 0.20% std::mutex::lock
| + 0.20% __gthread_mutex_lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.20% PG::lock
| + 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% tc_delete
+ 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
+ 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
Thread: 56 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.30% Cond::Wait
| + 99.30% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| | + 0.10% PrimaryLogPG::do_osd_ops
| | + 0.10% PrimaryLogPG::do_read
| | + 0.10% ReplicatedBackend::objects_read_sync
| | + 0.10% BlueStore::read
| | + 0.10% BlueStore::_do_read
| | + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% PrimaryLogPG::complete_read_ctx
| + 0.10% send_message_osd_client
| + 0.10% AsyncConnection::send_message
| + 0.10% lock_guard
| + 0.10% std::mutex::lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.20% PG::lock
| + 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% OpRequest::_unregistered
+ 0.10% clear_data
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 57 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 58 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% send_message_osd_client
+ 0.10% AsyncConnection::send_message
+ 0.10% lock_guard
+ 0.10% std::mutex::lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 59 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
+ 0.20% PGOpItem::run
+ 0.20% OSD::dequeue_op
+ 0.20% PrimaryLogPG::do_request
+ 0.20% PrimaryLogPG::do_op
+ 0.20% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% send_message_osd_client
+ 0.10% AsyncConnection::send_message
+ 0.10% lock_guard
+ 0.10% std::mutex::lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 60 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.30% __pthread_mutex_cond_lock
| + 0.30% _L_cond_lock_789
| + 0.30% __lll_lock_wait
+ 0.30% run
| + 0.30% PGOpItem::run
| + 0.30% OSD::dequeue_op
| + 0.30% PrimaryLogPG::do_request
| + 0.30% PrimaryLogPG::do_op
| + 0.30% PrimaryLogPG::execute_ctx
| + 0.30% PrimaryLogPG::prepare_transaction
| + 0.30% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| | + 0.20% ReplicatedBackend::objects_read_sync
| | + 0.20% BlueStore::read
| | + 0.20% BlueStore::_do_read
| | + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.20% operator()
| | + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.20% operator()
| | + 0.20% KernelDevice::read
| | + 0.20% pread
| | + 0.20% pread64
| + 0.10% md_config_t::get_val<bool>
| + 0.10% md_config_t::get_val_generic
| + 0.10% Locker
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_870
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 61 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 62 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.30% Mutex::Lock
| + 0.30% pthread_mutex_lock
| + 0.30% _L_lock_812
| + 0.30% __lll_lock_wait
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% OpRequest::_unregistered
+ 0.10% clear_data
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 63 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% md_config_t::get_val<bool>
+ 0.10% md_config_t::get_val_generic
+ 0.10% Locker
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_870
+ 0.10% __lll_lock_wait
Thread: 64 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.50% Cond::Wait
| + 99.50% pthread_cond_wait@@GLIBC_2.3.2
| + 0.30% __pthread_mutex_cond_lock
| + 0.30% _L_cond_lock_789
| + 0.30% __lll_lock_wait
+ 0.30% run
| + 0.30% PGOpItem::run
| + 0.30% OSD::dequeue_op
| + 0.30% PrimaryLogPG::do_request
| + 0.30% PrimaryLogPG::do_op
| + 0.30% PrimaryLogPG::execute_ctx
| + 0.30% PrimaryLogPG::prepare_transaction
| + 0.30% PrimaryLogPG::do_osd_ops
| + 0.30% PrimaryLogPG::do_read
| + 0.30% ReplicatedBackend::objects_read_sync
| + 0.30% BlueStore::read
| + 0.30% BlueStore::_do_read
| + 0.30% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.30% operator()
| + 0.30% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.30% operator()
| + 0.30% KernelDevice::read
| + 0.30% pread
| + 0.30% pread64
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 65 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.10% clear_payload
| | + 0.10% Throttle::put
| | + 0.10% uniquely_lock<std::mutex&>
| | + 0.10% unique_lock
| | + 0.10% lock
| | + 0.10% lock
| | + 0.10% __gthread_mutex_lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_812
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| + 0.10% md_config_t::get_val_generic
| + 0.10% Locker
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_870
| + 0.10% __lll_lock_wait
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% OpRequest::_unregistered
+ 0.10% clear_data
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 66 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% PrimaryLogPG::do_read
+ 0.10% ReplicatedBackend::objects_read_sync
+ 0.10% BlueStore::read
+ 0.10% BlueStore::_do_read
+ 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
+ 0.10% operator()
+ 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
+ 0.10% operator()
+ 0.10% KernelDevice::read
+ 0.10% pread
+ 0.10% pread64
Thread: 67 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% RLocker
| + 0.10% get_read
| + 0.10% pthread_rwlock_rdlock
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| + 0.10% md_config_t::get_val_generic
| + 0.10% md_config_t::_get_val_generic
| + 0.10% ConfFile::normalize_key_name
| + 0.10% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 68 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::maybe_await_blocked_head
| | + 0.10% SharedLRU<hobject_t, ObjectContext, std::less<hobject_t>, std::hash<hobject_t> >::lookup
| | + 0.10% find
| | + 0.10% 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.10% _M_lower_bound
| | + 0.10% operator()
| | + 0.10% operator<
| | + 0.10% cmp
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 69 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% PrimaryLogPG::do_read
+ 0.10% ReplicatedBackend::objects_read_sync
+ 0.10% BlueStore::read
+ 0.10% BlueStore::_do_read
+ 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
+ 0.10% operator()
+ 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
+ 0.10% operator()
+ 0.10% KernelDevice::read
+ 0.10% pread
+ 0.10% pread64
Thread: 70 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.30% run
+ 0.30% PGOpItem::run
+ 0.30% OSD::dequeue_op
+ 0.30% PrimaryLogPG::do_request
+ 0.30% PrimaryLogPG::do_op
+ 0.30% PrimaryLogPG::execute_ctx
+ 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| | + 0.10% md_config_t::get_val_generic
| | + 0.10% Locker
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_870
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% PG::publish_stats_to_osd
+ 0.10% md_config_t::get_val<unsigned long>
+ 0.10% md_config_t::get_val_generic
+ 0.10% md_config_t::_get_val_generic
+ 0.10% ConfFile::normalize_key_name
+ 0.10% ConfFile::trim_whitespace
+ 0.10% isspace
Thread: 71 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.50% Cond::Wait
| + 99.50% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| + 0.20% ReplicatedBackend::objects_read_sync
| + 0.20% BlueStore::read
| + 0.20% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% BlueStore::_verify_csum
| + 0.10% bluestore_blob_t::verify_csum
| + 0.10% verify<Checksummer::crc32c>
| + 0.10% calc
| + 0.10% ceph::buffer::list::iterator_impl<true>::crc32c
| + 0.10% ceph_crc32c
| + 0.10% ceph_crc32c_intel_fast
| + 0.10% ???
| + 0.10% ???
| + 0.10% crc32_iscsi_00
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 72 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| + 0.20% ReplicatedBackend::objects_read_sync
| + 0.20% BlueStore::read
| + 0.20% BlueStore::_do_read
| + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.20% operator()
| + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.20% operator()
| + 0.20% KernelDevice::read
| + 0.20% pread
| + 0.20% pread64
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 73 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| | + 0.10% md_config_t::get_val_generic
| | + 0.10% Locker
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_870
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% OpRequest::_unregistered
+ 0.10% clear_data
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 74 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.40% Cond::Wait
| + 99.40% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.30% run
| + 0.30% PGOpItem::run
| + 0.20% OSD::dequeue_op
| | + 0.20% PrimaryLogPG::do_request
| | + 0.20% PrimaryLogPG::do_op
| | + 0.20% PrimaryLogPG::execute_ctx
| | + 0.20% PrimaryLogPG::prepare_transaction
| | + 0.20% PrimaryLogPG::do_osd_ops
| | + 0.20% PrimaryLogPG::do_read
| | + 0.20% ReplicatedBackend::objects_read_sync
| | + 0.20% BlueStore::read
| | + 0.20% BlueStore::_do_read
| | + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.20% operator()
| | + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.20% operator()
| | + 0.20% KernelDevice::read
| | + 0.20% pread
| | + 0.20% pread64
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% PG::put
+ 0.30% Mutex::Lock
+ 0.30% pthread_mutex_lock
+ 0.30% _L_lock_812
+ 0.30% __lll_lock_wait
Thread: 75 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% put
| + 0.10% OpRequest::~OpRequest
| + 0.10% ~OpRequest
| + 0.10% ~TrackedOp
| + 0.10% Mutex::~Mutex
| + 0.10% ~basic_string
| + 0.10% _M_dispose
| + 0.10% tc_delete
| + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 76 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| | + 0.10% md_config_t::get_val_generic
| | + 0.10% Locker
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_870
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 77 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% md_config_t::get_val<bool>
| + 0.10% md_config_t::get_val_generic
| + 0.10% Locker
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_870
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 78 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 79 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% PrimaryLogPG::execute_ctx
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::dequeue
+ 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::pop
+ 0.10% pop
+ 0.10% erase_and_dispose<DelItem<WeightedPriorityQueue<OpQueueItem, unsigned long>::Klass> >
+ 0.10% operator()
+ 0.10% tc_delete
+ 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
+ 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
Thread: 80 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% OpTracker::unregister_inflight_op
| + 0.10% OpRequest::_unregistered
| + 0.10% clear_data
| + 0.10% MOSDOp::clear_buffers
| + 0.10% OSDOp::clear_data
| + 0.10% clear
| + 0.10% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| + 0.10% ceph::buffer::ptr::release
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 81 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% run
| + 0.20% PGOpItem::run
| + 0.20% OSD::dequeue_op
| + 0.20% PrimaryLogPG::do_request
| + 0.20% PrimaryLogPG::do_op
| + 0.20% PrimaryLogPG::execute_ctx
| + 0.20% PrimaryLogPG::prepare_transaction
| + 0.20% PrimaryLogPG::do_osd_ops
| + 0.20% PrimaryLogPG::do_read
| + 0.20% ReplicatedBackend::objects_read_sync
| + 0.20% BlueStore::read
| + 0.20% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.10% operator()
| | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.10% operator()
| | + 0.10% KernelDevice::read
| | + 0.10% pread
| | + 0.10% pread64
| + 0.10% BlueStore::_verify_csum
| + 0.10% bluestore_blob_t::verify_csum
| + 0.10% verify<Checksummer::crc32c>
| + 0.10% ceph::buffer::ptr::c_str
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 82 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% run
+ 0.20% PGOpItem::run
+ 0.20% OSD::dequeue_op
+ 0.20% PrimaryLogPG::do_request
+ 0.20% PrimaryLogPG::do_op
+ 0.20% PrimaryLogPG::execute_ctx
+ 0.20% PrimaryLogPG::prepare_transaction
+ 0.20% PrimaryLogPG::do_osd_ops
+ 0.10% md_config_t::get_val<bool>
| + 0.10% md_config_t::get_val_generic
| + 0.10% Locker
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_870
| + 0.10% __lll_lock_wait
+ 0.10% PrimaryLogPG::do_read
+ 0.10% ReplicatedBackend::objects_read_sync
+ 0.10% BlueStore::read
+ 0.10% BlueStore::_do_read
+ 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
+ 0.10% operator()
+ 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
+ 0.10% operator()
+ 0.10% KernelDevice::read
+ 0.10% pread
+ 0.10% pread64
Thread: 83 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.30% Cond::Wait
| + 99.30% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.40% run
| + 0.40% PGOpItem::run
| + 0.40% OSD::dequeue_op
| + 0.40% PrimaryLogPG::do_request
| + 0.40% PrimaryLogPG::do_op
| + 0.30% PrimaryLogPG::execute_ctx
| | + 0.20% PrimaryLogPG::prepare_transaction
| | | + 0.20% PrimaryLogPG::do_osd_ops
| | | + 0.10% md_config_t::get_val<bool>
| | | | + 0.10% md_config_t::get_val_generic
| | | | + 0.10% Locker
| | | | + 0.10% Mutex::Lock
| | | | + 0.10% pthread_mutex_lock
| | | | + 0.10% _L_lock_870
| | | | + 0.10% __lll_lock_wait
| | | + 0.10% PrimaryLogPG::do_read
| | | + 0.10% ReplicatedBackend::objects_read_sync
| | | + 0.10% BlueStore::read
| | | + 0.10% BlueStore::_do_read
| | | + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | | + 0.10% operator()
| | | + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | | + 0.10% operator()
| | | + 0.10% KernelDevice::read
| | | + 0.10% pread
| | | + 0.10% pread64
| | + 0.10% PrimaryLogPG::complete_read_ctx
| | + 0.10% send_message_osd_client
| | + 0.10% AsyncConnection::send_message
| | + 0.10% lock_guard
| | + 0.10% std::mutex::lock
| | + 0.10% __gthread_mutex_lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_812
| | + 0.10% __lll_lock_wait
| + 0.10% PrimaryLogPG::maybe_await_blocked_head
| + 0.10% SharedLRU<hobject_t, ObjectContext, std::less<hobject_t>, std::hash<hobject_t> >::lookup
| + 0.10% find
| + 0.10% 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.10% _M_lower_bound
| + 0.10% operator()
| + 0.10% operator<
| + 0.10% cmp
+ 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 84 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PerfCounters::tinc
+ 0.10% operator+=
Thread: 85 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.30% run
+ 0.30% PGOpItem::run
+ 0.30% OSD::dequeue_op
+ 0.30% PrimaryLogPG::do_request
+ 0.30% PrimaryLogPG::do_op
+ 0.30% PrimaryLogPG::execute_ctx
+ 0.30% PrimaryLogPG::prepare_transaction
+ 0.30% PrimaryLogPG::do_osd_ops
+ 0.30% PrimaryLogPG::do_read
+ 0.30% ReplicatedBackend::objects_read_sync
+ 0.30% BlueStore::read
+ 0.30% BlueStore::_do_read
+ 0.30% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
+ 0.30% operator()
+ 0.30% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
+ 0.30% operator()
+ 0.30% KernelDevice::read
+ 0.30% pread
+ 0.30% pread64
Thread: 86 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.10% Cond::Wait
| + 99.10% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.50% run
| + 0.50% PGOpItem::run
| + 0.50% OSD::dequeue_op
| + 0.50% PrimaryLogPG::do_request
| + 0.50% PrimaryLogPG::do_op
| + 0.40% PrimaryLogPG::execute_ctx
| | + 0.20% PrimaryLogPG::prepare_transaction
| | | + 0.20% PrimaryLogPG::do_osd_ops
| | | + 0.20% PrimaryLogPG::do_read
| | | + 0.20% ReplicatedBackend::objects_read_sync
| | | + 0.20% BlueStore::read
| | | + 0.20% BlueStore::_do_read
| | | + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | | + 0.20% operator()
| | | + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | | + 0.20% operator()
| | | + 0.20% KernelDevice::read
| | | + 0.20% pread
| | | + 0.20% pread64
| | + 0.20% PrimaryLogPG::complete_read_ctx
| | + 0.10% send_message_osd_client
| | | + 0.10% AsyncConnection::send_message
| | | + 0.10% lock_guard
| | | + 0.10% std::mutex::lock
| | | + 0.10% __gthread_mutex_lock
| | | + 0.10% pthread_mutex_lock
| | | + 0.10% _L_lock_812
| | | + 0.10% __lll_lock_wait
| | + 0.10% PG::publish_stats_to_osd
| | + 0.10% md_config_t::get_val<unsigned long>
| | + 0.10% md_config_t::get_val_generic
| + 0.10% std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()
| + 0.10% std::ios_base::~ios_base()
+ 0.20% ~OpQueueItem
| + 0.20% ~unique_ptr
| + 0.20% operator()
| + 0.20% PGOpItem::~PGOpItem
| + 0.20% ~PGOpItem
| + 0.20% ~intrusive_ptr
| + 0.20% intrusive_ptr_release
| + 0.20% TrackedOp::put
| + 0.20% OpTracker::unregister_inflight_op
| + 0.20% OpRequest::_unregistered
| + 0.20% clear_data
| + 0.20% Throttle::put
| + 0.20% uniquely_lock<std::mutex&>
| + 0.20% unique_lock
| + 0.20% lock
| + 0.20% lock
| + 0.20% __gthread_mutex_lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 87 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.60% Cond::Wait
| + 99.60% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% PG::lock
| + 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% ~OpQueueItem
| + 0.10% ~unique_ptr
| + 0.10% operator()
| + 0.10% PGOpItem::~PGOpItem
| + 0.10% ~PGOpItem
| + 0.10% ~intrusive_ptr
| + 0.10% intrusive_ptr_release
| + 0.10% TrackedOp::put
| + 0.10% TrackedOp::mark_event
| + 0.10% ~Locker
| + 0.10% Mutex::Unlock
| + 0.10% pthread_mutex_unlock
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::complete_read_ctx
+ 0.10% PG::publish_stats_to_osd
+ 0.10% md_config_t::get_val<unsigned long>
+ 0.10% get<unsigned long, boost::blank, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>
+ 0.10% strict_get<unsigned long, boost::blank, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>
+ 0.10% relaxed_get<unsigned long, boost::blank, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>
+ 0.10% relaxed_get<unsigned long const, boost::blank, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>
+ 0.10% apply_visitor<boost::detail::variant::get_visitor<unsigned long const> >
+ 0.10% internal_apply_visitor<boost::detail::variant::invoke_visitor<boost::detail::variant::get_visitor<unsigned long const> > >
+ 0.10% internal_apply_visitor_impl<boost::detail::variant::invoke_visitor<boost::detail::variant::get_visitor<unsigned long const> >, void const*>
+ 0.10% visitation_impl<mpl_::int_<0>, boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<8>, boost::blank, boost::mpl::l_item<mpl_::long_<7>, std::basic_string<char>, boost::mpl::l_item<mpl_::long_<6>, unsigned long, boost::mpl::l_item<mpl_::long_<5>, long, boost::mpl::l_item<mpl_::long_<4>, double, boost::mpl::l_item<mpl_::long_<3>, bool, boost::mpl::l_item<mpl_::long_<2>, entity_addr_t, boost::mpl::l_item<mpl_::long_<1>, uuid_d, boost::mpl::l_end> > > > > > > > >, boost::mpl::l_iter<boost::mpl::l_end> >, boost::detail::variant::invoke_visitor<boost::detail::variant::get_visitor<unsigned long const> >, void const*, boost::variant<boost::blank, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>::has_fallback_type_>
Thread: 88 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.20% Cond::Wait
| + 99.20% pthread_cond_wait@@GLIBC_2.3.2
| + 0.30% __pthread_mutex_cond_lock
| + 0.30% _L_cond_lock_789
| + 0.30% __lll_lock_wait
+ 0.50% run
| + 0.50% PGOpItem::run
| + 0.50% OSD::dequeue_op
| + 0.50% PrimaryLogPG::do_request
| + 0.50% PrimaryLogPG::do_op
| + 0.50% PrimaryLogPG::execute_ctx
| + 0.30% PrimaryLogPG::prepare_transaction
| | + 0.30% PrimaryLogPG::do_osd_ops
| | + 0.30% PrimaryLogPG::do_read
| | + 0.30% ReplicatedBackend::objects_read_sync
| | + 0.30% BlueStore::read
| | + 0.30% BlueStore::_do_read
| | + 0.30% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.30% operator()
| | + 0.30% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.30% operator()
| | + 0.30% KernelDevice::read
| | + 0.30% pread
| | + 0.30% pread64
| + 0.20% PrimaryLogPG::complete_read_ctx
| + 0.20% send_message_osd_client
| + 0.20% AsyncConnection::send_message
| + 0.20% lock_guard
| + 0.20% std::mutex::lock
| + 0.20% __gthread_mutex_lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.20% Mutex::Lock
| + 0.20% pthread_mutex_lock
| + 0.20% _L_lock_812
| + 0.20% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 89 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% ~OpQueueItem
+ 0.10% ~unique_ptr
+ 0.10% operator()
+ 0.10% PGOpItem::~PGOpItem
+ 0.10% ~PGOpItem
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% TrackedOp::put
+ 0.10% OpTracker::unregister_inflight_op
+ 0.10% ~intrusive_ptr
+ 0.10% intrusive_ptr_release
+ 0.10% put
+ 0.10% OpRequest::~OpRequest
+ 0.10% ~OpRequest
+ 0.10% ~TrackedOp
+ 0.10% ~vector
+ 0.10% ~_Vector_base
+ 0.10% _M_deallocate
+ 0.10% deallocate
+ 0.10% deallocate
+ 0.10% tc_delete
+ 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
+ 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
Thread: 90 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 99.90% OSD::ShardedOpWQ::_process
| + 98.90% Cond::Wait
| | + 98.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.70% run
| | + 0.70% PGOpItem::run
| | + 0.70% OSD::dequeue_op
| | + 0.70% PrimaryLogPG::do_request
| | + 0.70% PrimaryLogPG::do_op
| | + 0.70% PrimaryLogPG::execute_ctx
| | + 0.40% PrimaryLogPG::prepare_transaction
| | | + 0.40% PrimaryLogPG::do_osd_ops
| | | + 0.40% PrimaryLogPG::do_read
| | | + 0.40% ReplicatedBackend::objects_read_sync
| | | + 0.40% BlueStore::read
| | | + 0.40% BlueStore::_do_read
| | | + 0.20% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | | | + 0.20% operator()
| | | | + 0.20% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | | | + 0.20% operator()
| | | | + 0.20% KernelDevice::read
| | | | + 0.20% pread
| | | | + 0.20% pread64
| | | + 0.10% operator[]
| | | | + 0.10% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ceph::buffer::list>, std::_Select1st<std::pair<unsigned long const, ceph::buffer::list> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ceph::buffer::list> > >::_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, ceph::buffer::list> >, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
| | | | + 0.10% _M_create_node<const std::piecewise_construct_t&, std::tuple<long unsigned int const&>, std::tuple<> >
| | | | + 0.10% _M_get_node
| | | | + 0.10% allocate
| | | | + 0.10% allocate
| | | | + 0.10% tc_new
| | | + 0.10% intrusive_ptr
| | | + 0.10% intrusive_ptr_add_ref
| | | + 0.10% get
| | | + 0.10% operator++
| | + 0.30% PrimaryLogPG::complete_read_ctx
| | + 0.20% send_message_osd_client
| | | + 0.20% AsyncConnection::send_message
| | | + 0.10% now
| | | | + 0.10% clock_gettime
| | | | + 0.10% clock_gettime
| | | + 0.10% lock_guard
| | | + 0.10% std::mutex::lock
| | | + 0.10% __gthread_mutex_lock
| | | + 0.10% pthread_mutex_lock
| | | + 0.10% _L_lock_812
| | | + 0.10% __lll_lock_wait
| | + 0.10% PrimaryLogPG::close_op_ctx
| | + 0.10% PrimaryLogPG::release_object_locks
| | + 0.10% put_locks
| | + 0.10% put_lock_type
| | + 0.10% put_excl
| | + 0.10% dec
| | + 0.10% splice
| | + 0.10% splice
| + 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::dequeue
| | + 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::pop
| | + 0.10% pop
| | + 0.10% erase_and_dispose<DelItem<WeightedPriorityQueue<OpQueueItem, unsigned long>::Klass> >
| | + 0.10% operator()
| | + 0.10% tc_delete
| | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| + 0.10% PG::lock
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_812
| | + 0.10% __lll_lock_wait
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% ceph::HeartbeatMap::reset_timeout
+ 0.10% ceph::HeartbeatMap::_check
Thread: 91 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.50% Cond::Wait
| + 99.50% pthread_cond_wait@@GLIBC_2.3.2
+ 0.40% run
| + 0.40% PGOpItem::run
| + 0.40% OSD::dequeue_op
| + 0.40% PrimaryLogPG::do_request
| + 0.40% PrimaryLogPG::do_op
| + 0.40% PrimaryLogPG::execute_ctx
| + 0.30% PrimaryLogPG::complete_read_ctx
| | + 0.20% send_message_osd_client
| | | + 0.20% AsyncConnection::send_message
| | | + 0.20% lock_guard
| | | + 0.20% std::mutex::lock
| | | + 0.20% __gthread_mutex_lock
| | | + 0.20% pthread_mutex_lock
| | | + 0.20% _L_lock_812
| | | + 0.20% __lll_lock_wait
| | + 0.10% PG::publish_stats_to_osd
| + 0.10% PrimaryLogPG::prepare_transaction
| + 0.10% PrimaryLogPG::do_osd_ops
| + 0.10% PrimaryLogPG::do_read
| + 0.10% ReplicatedBackend::objects_read_sync
| + 0.10% BlueStore::read
| + 0.10% BlueStore::_do_read
| + 0.10% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| + 0.10% operator()
| + 0.10% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| + 0.10% operator()
| + 0.10% KernelDevice::read
| + 0.10% pread
| + 0.10% pread64
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 92 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.50% Cond::Wait
| + 99.50% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.40% run
| + 0.40% PGOpItem::run
| + 0.40% OSD::dequeue_op
| + 0.40% PrimaryLogPG::do_request
| + 0.40% PrimaryLogPG::do_op
| + 0.30% PrimaryLogPG::execute_ctx
| | + 0.30% PrimaryLogPG::prepare_transaction
| | + 0.30% PrimaryLogPG::do_osd_ops
| | + 0.30% PrimaryLogPG::do_read
| | + 0.30% ReplicatedBackend::objects_read_sync
| | + 0.30% BlueStore::read
| | + 0.30% BlueStore::_do_read
| | + 0.30% bluestore_blob_t::map(unsigned long, unsigned long, std::function<int (unsigned long, unsigned long)>) const
| | + 0.30% operator()
| | + 0.30% std::_Function_handler<int(long unsigned int, long unsigned int), BlueStore::_do_read(BlueStore::Collection*, BlueStore::OnodeRef, uint64_t, size_t, ceph::bufferlist&, uint32_t)::<lambda(uint64_t, uint64_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550178>, <unknown type in /usr/local/bin/ceph-osd, CU 0x4380b6f, DIE 0x4550188>)
| | + 0.30% operator()
| | + 0.30% KernelDevice::read
| | + 0.30% pread
| | + 0.30% pread64
| + 0.10% PrimaryLogPG::find_object_context
| + 0.10% PrimaryLogPG::get_object_context
| + 0.10% decode
| + 0.10% object_info_t::decode
| + 0.10% decode<interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >, denc_traits<interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >, void> >
| + 0.10% decode
| + 0.10% decode
| + 0.10% denc<std::map<unsigned long, unsigned long> >
| + 0.10% decode
| + 0.10% decode_nohead
| + 0.10% insert<std::pair<unsigned long, unsigned long> >
| + 0.10% emplace_hint<std::pair<unsigned long, unsigned long> >
| + 0.10% _M_emplace_hint_unique<std::pair<unsigned long, unsigned long> >
| + 0.10% 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_insert_node
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 93 (safe_timer) - 1000 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: 94 (fn_anonymous) - 1000 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: 95 (safe_timer) - 1000 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 (ms_local) - 1000 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: 97 (ms_dispatch) - 1000 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: 98 (ms_local) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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 (bstore_mempool) - 1000 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: 111 (bstore_kv_final) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% BlueStore::KVFinalizeThread::entry
+ 100.00% BlueStore::_kv_finalize_thread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 112 (bstore_kv_sync) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% BlueStore::KVSyncThread::entry
+ 100.00% BlueStore::_kv_sync_thread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 113 (finisher) - 1000 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: 114 (dfin) - 1000 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: 115 (rocksdb:bg0) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 116 (rocksdb:bg0) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 117 (bstore_aio) - 1000 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: 118 (bstore_aio) - 1000 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: 119 (bstore_aio) - 1000 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) - 1000 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 (safe_timer) - 1000 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: 122 (safe_timer) - 1000 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: 123 (safe_timer) - 1000 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: 124 (safe_timer) - 1000 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: 125 (ceph-osd) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% ceph::timer_detail::timer<ceph::time_detail::coarse_mono_clock>::timer_thread
+ 100.00% wait_until<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1, 1000000000> > >
+ 100.00% __wait_until_impl<std::chrono::duration<unsigned long, std::ratio<1, 1000000000> > >
+ 100.00% __gthread_cond_timedwait
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 126 (admin_socket) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% AdminSocket::entry
+ 100.00% poll
+ 100.00% poll
Thread: 127 (service) - 1000 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: 128 (msgr-worker-2) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
+ 100.00% operator()
+ 100.00% EventCenter::process_events
+ 100.00% EpollDriver::event_wait
+ 100.00% epoll_wait
Thread: 129 (msgr-worker-1) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
+ 100.00% operator()
+ 100.00% EventCenter::process_events
+ 100.00% EpollDriver::event_wait
+ 100.00% epoll_wait
Thread: 130 (msgr-worker-0) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
+ 100.00% operator()
+ 99.90% EventCenter::process_events
+ 36.90% AsyncConnection::process
| + 16.70% DispatchQueue::fast_dispatch
| | + 16.60% ms_fast_dispatch
| | | + 16.30% OSD::ms_fast_dispatch
| | | | + 12.40% OSD::enqueue_op
| | | | | + 11.50% queue
| | | | | | + 11.50% OSD::ShardedOpWQ::_enqueue(OpQueueItem&&)
| | | | | | + 8.50% SignalOne
| | | | | | | + 8.50% pthread_cond_signal@@GLIBC_2.3.2
| | | | | | + 1.20% Mutex::Unlock
| | | | | | | + 1.10% pthread_mutex_unlock
| | | | | | | | + 0.90% _L_unlock_713
| | | | | | | | + 0.90% __lll_unlock_wake
| | | | | | | + 0.10% _pre_unlock
| | | | | | | + 0.10% pthread_self
| | | | | | + 1.10% Mutex::Lock
| | | | | | | + 0.90% pthread_mutex_lock
| | | | | | | + 0.90% _L_lock_812
| | | | | | | + 0.90% __lll_lock_wait
| | | | | | + 0.50% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::insert(unsigned int, unsigned long, unsigned int, OpQueueItem&&, bool)
| | | | | | | + 0.40% insert
| | | | | | | + 0.30% insert
| | | | | | | | + 0.30% tc_new
| | | | | | | | + 0.20% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | | | + 0.20% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | | | + 0.20% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | | | + 0.10% tc_new
| | | | | | + 0.10% hash_to_shard
| | | | | | + 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::enqueue(unsigned long, unsigned int, unsigned int, OpQueueItem&&)
| | | | | + 0.30% unique_ptr<>
| | | | | | + 0.30% __uniq_ptr_impl
| | | | | + 0.30% mark_queued_for_pg
| | | | | | + 0.30% OpRequest::mark_flag_point
| | | | | | + 0.20% TrackedOp::mark_event
| | | | | | + 0.10% ~Locker
| | | | | | | + 0.10% Mutex::Unlock
| | | | | | + 0.10% push_back
| | | | | | + 0.10% std::vector<TrackedOp::Event, std::allocator<TrackedOp::Event> >::emplace_back<TrackedOp::Event>(TrackedOp::Event&&)
| | | | | + 0.20% tc_new
| | | | | + 0.10% PGOpItem
| | | | | + 0.10% PGOpQueueable
| | | | + 3.90% OpTracker::create_request<OpRequest, Message*>
| | | | + 2.10% OpRequest::OpRequest
| | | | | + 2.00% TrackedOp
| | | | | | + 0.90% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)
| | | | | | | + 0.70% std::string::_S_construct<char const*>
| | | | | | | | + 0.70% std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)
| | | | | | | | + 0.70% tc_new
| | | | | | | + 0.10% __strlen_sse42
| | | | | | + 0.50% reserve
| | | | | | | + 0.50% _M_allocate_and_copy<std::move_iterator<TrackedOp::Event*> >
| | | | | | | + 0.50% _M_allocate
| | | | | | | + 0.50% allocate
| | | | | | | + 0.50% allocate
| | | | | | | + 0.50% tc_new
| | | | | | + 0.40% Mutex::Mutex
| | | | | | | + 0.10% pthread_mutexattr_settype
| | | | | | | + 0.10% pthread_mutexattr_init
| | | | | | | + 0.10% pthread_mutexattr_destroy
| | | | | | | + 0.10% pthread_mutex_init
| | | | | | + 0.20% ~basic_string
| | | | | | + 0.20% _M_dispose
| | | | | + 0.10% TrackedOp::mark_event
| | | | + 0.90% tracking_start
| | | | | + 0.90% OpTracker::register_inflight_op
| | | | | + 0.30% RLocker
| | | | | | + 0.30% get_read
| | | | | | + 0.20% pthread_rwlock_rdlock
| | | | | | + 0.10% pthread_rwlock_rdlock@plt
| | | | | + 0.20% Locker
| | | | | | + 0.20% Mutex::Lock
| | | | | | + 0.10% pthread_mutex_lock
| | | | | + 0.10% ~RLocker
| | | | | | + 0.10% unlock
| | | | | | + 0.10% pthread_rwlock_unlock@plt
| | | | | + 0.10% ~Locker
| | | | | | + 0.10% Mutex::Unlock
| | | | | | + 0.10% pthread_mutex_unlock
| | | | | + 0.10% push_back
| | | | | + 0.10% get_root_node
| | | | | + 0.10% get_node
| | | | + 0.60% tc_new
| | | | + 0.20% operator->
| | | + 0.20% ceph_clock_now
| | | + 0.20% clock_gettime
| | | + 0.20% clock_gettime
| | + 0.10% DispatchQueue::pre_dispatch
| + 8.40% AsyncConnection::read_until
| | + 7.50% AsyncConnection::read_bulk
| | | + 7.50% read
| | | + 7.50% PosixConnectedSocketImpl::read
| | | + 7.50% read
| | | + 7.50% read
| | | + 0.10% __pthread_enable_asynccancel
| | + 0.50% memcpy
| | + 0.50% __memcpy_ssse3
| + 5.50% decode_message
| | + 1.10% MOSDOp::decode_payload
| | | + 0.50% decode
| | | | + 0.40% spg_t::decode
| | | | | + 0.30% decode
| | | | | + 0.30% decode_raw<unsigned char>
| | | | | + 0.30% ceph::buffer::list::iterator_impl<false>::copy
| | | | | + 0.10% ceph::buffer::ptr::copy_out
| | | | + 0.10% decode_raw<crimson::dmclock::ReqParams>
| | | | + 0.10% ceph::buffer::list::iterator_impl<false>::copy
| | | | + 0.10% ceph::buffer::list::iterator_impl<false>::advance
| | | + 0.40% decode<osd_reqid_t, denc_traits<osd_reqid_t, void> >
| | | | + 0.30% ~ptr
| | | | | + 0.20% ceph::buffer::ptr::release
| | | | + 0.10% ceph::buffer::list::iterator_impl<false>::advance
| | | + 0.10% Message::decode_trace
| | + 0.90% ceph::buffer::list::crc32c
| | | + 0.40% set_crc
| | | | + 0.30% operator[]
| | | | | + 0.30% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | | | + 0.20% _M_create_node<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | | | | + 0.20% _M_get_node
| | | | | | + 0.20% allocate
| | | | | | + 0.20% allocate
| | | | | | + 0.20% tc_new
| | | | | + 0.10% _M_insert_node
| | | | | + 0.10% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
| | | | + 0.10% lock_guard
| | | | + 0.10% lock
| | | | + 0.10% spin_lock
| | | + 0.30% ceph_crc32c
| | | | + 0.20% ceph_crc32c_intel_baseline
| | | | + 0.10% ceph_crc32c_intel_fast
| | | | + 0.10% ???
| | | | + 0.10% ???
| | | | + 0.10% crc32_iscsi_00
| | | + 0.10% get_crc
| | | + 0.10% lock_guard
| | | + 0.10% lock
| | | + 0.10% spin_lock
| | + 0.70% MOSDFastDispatchOp
| | | + 0.70% Message::Message
| | | + 0.30% utime_t
| | | + 0.30% ceph::buffer::list::list
| | | + 0.10% memset
| | + 0.60% tc_new
| | + 0.60% intrusive_ptr
| | | + 0.60% intrusive_ptr_add_ref
| | | + 0.60% get
| | + 0.20% set_middle
| | | + 0.20% ceph::buffer::list::claim
| | | + 0.10% clear
| | | + 0.10% ceph::buffer::list::claim_append
| | | + 0.10% begin
| | | + 0.10% ceph::buffer::list::iterator_impl<false>::iterator_impl
| | + 0.10% ~intrusive_ptr
| | | + 0.10% intrusive_ptr_release
| | | + 0.10% put
| | | + 0.10% operator--
| | + 0.10% vector
| | | + 0.10% _Vector_base
| | | + 0.10% _Vector_impl
| | + 0.10% spg_t
| | + 0.10% set_payload
| | | + 0.10% ceph::buffer::list::claim
| | | + 0.10% ceph::buffer::list::claim_append
| | | + 0.10% splice
| | | + 0.10% splice
| | | + 0.10% _M_transfer
| | | + 0.10% std::__detail::_List_node_base::_M_transfer(std::__detail::_List_node_base*, std::__detail::_List_node_base*)
| | + 0.10% set_data
| | | + 0.10% share
| | | + 0.10% ceph::buffer::list::clear
| | + 0.10% osd_reqid_t
| | | + 0.10% entity_name_t
| | + 0.10% iterator
| | | + 0.10% iterator_impl
| | | + 0.10% _List_iterator
| | + 0.10% hobject_t::hobject_t
| + 1.30% ceph::buffer::create
| | + 1.30% ceph::buffer::create_aligned
| | + 1.10% ceph::buffer::create_aligned_in_mempool
| | + 1.10% create
| | + 1.10% tc_posix_memalign
| | + 0.90% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | + 0.20% tcmalloc::AlignmentForSize(unsigned long)
| + 1.30% Throttle::get_or_fail
| | + 0.40% PerfCounters::set
| | | + 0.10% operator=
| | | + 0.10% store
| | + 0.40% PerfCounters::inc
| | | + 0.10% operator[]
| | + 0.10% ~unique_lock
| | | + 0.10% unlock
| | | + 0.10% unlock
| | | + 0.10% __gthread_mutex_unlock
| | | + 0.10% pthread_mutex_unlock
| | + 0.10% _should_wait
| + 0.40% ceph_crc32c
| | + 0.20% ceph_crc32c_intel_fast
| | | + 0.20% ???
| | | + 0.10% crc32_iscsi_00
| | | + 0.10% ???
| | | + 0.10% crc32_iscsi_00
| | + 0.20% ceph_crc32c_intel_baseline
| + 0.40% ceph::buffer::list::clear
| | + 0.40% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | + 0.20% ceph::buffer::ptr::release
| + 0.30% ceph::buffer::list::push_back
| | + 0.30% push_back
| | + 0.30% push_back
| | + 0.30% _M_insert<ceph::buffer::ptr>
| | + 0.20% _M_create_node<ceph::buffer::ptr>
| | | + 0.20% _M_get_node
| | | + 0.20% allocate
| | | + 0.20% allocate
| | | + 0.20% tc_new
| | + 0.10% std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)
| + 0.20% set_connection
| | + 0.20% operator=
| | + 0.20% intrusive_ptr
| | + 0.20% intrusive_ptr_add_ref
| | + 0.20% get
| | + 0.10% should_gather
| + 0.20% ms_fast_preprocess
| | + 0.20% OSD::ms_fast_preprocess
| + 0.20% intrusive_ptr
| | + 0.20% intrusive_ptr_add_ref
| + 0.20% ceph::logging::SubsystemMap::should_gather
| + 0.20% ceph::buffer::ptr::c_str
| | + 0.20% ceph::buffer::raw::get_data
| + 0.10% ~intrusive_ptr
| | + 0.10% intrusive_ptr_release
| | + 0.10% put
| | + 0.10% operator--
| + 0.10% now
| | + 0.10% clock_gettime
| | + 0.10% clock_gettime
| + 0.10% lock_guard
| | + 0.10% std::mutex::lock
| | + 0.10% __gthread_mutex_lock
| | + 0.10% pthread_mutex_lock
| + 0.10% ceph_clock_now
| | + 0.10% clock_gettime
| | + 0.10% clock_gettime
| + 0.10% PerfCounters::tinc
| + 0.10% DispatchQueue::post_dispatch
+ 35.50% AsyncConnection::handle_write
| + 26.90% AsyncConnection::write_message
| | + 21.90% AsyncConnection::_try_send
| | | + 19.70% send
| | | | + 19.60% PosixConnectedSocketImpl::send
| | | | + 19.10% do_sendmsg
| | | | | + 19.10% sendmsg
| | | | | + 0.10% __pthread_enable_asynccancel
| | | | + 0.30% clear
| | | | | + 0.30% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | | | + 0.30% ceph::buffer::ptr::release
| | | | | + 0.20% ceph::buffer::raw_combined::~raw_combined
| | | | | + 0.20% ~raw_combined
| | | | | + 0.20% ~raw
| | | | | + 0.20% mempool::pool_t::adjust_count
| | | | | + 0.20% pick_a_shard
| | | | | + 0.20% pthread_self
| | | | + 0.10% ~list
| | | | + 0.10% ~ptr
| | | | + 0.10% ceph::buffer::ptr::release
| | | + 1.50% EventCenter::create_file_event
| | | | + 1.40% EpollDriver::add_event
| | | | + 1.40% epoll_ctl
| | | + 0.50% EventCenter::delete_file_event
| | | + 0.50% EpollDriver::del_event
| | | + 0.20% epoll_ctl
| | + 3.20% RefCountedObject::put
| | | + 3.20% MOSDOpReply::~MOSDOpReply
| | | + 2.80% ~MOSDOpReply
| | | | + 2.20% Message::~Message
| | | | | + 1.60% ~list
| | | | | | + 1.50% ~list
| | | | | | | + 1.50% ~_List_base
| | | | | | | + 1.50% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | | + 1.30% destroy<ceph::buffer::ptr>
| | | | | | | | + 1.30% destroy<ceph::buffer::ptr>
| | | | | | | | + 1.30% ~ptr
| | | | | | | | + 1.30% ceph::buffer::ptr::release
| | | | | | | | + 0.50% tc_free
| | | | | | | | | + 0.40% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | | | + 0.20% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | | | + 0.10% tcmalloc::CentralFreeList::MakeCacheSpace()
| | | | | | | | + 0.40% ceph::buffer::raw_posix_aligned::operator delete
| | | | | | | | | + 0.40% deallocate
| | | | | | | | | + 0.20% operator-=
| | | | | | | | | + 0.10% pick_a_shard
| | | | | | | | + 0.30% ceph::buffer::raw_posix_aligned::~raw_posix_aligned
| | | | | | | | | + 0.30% ~raw_posix_aligned
| | | | | | | | | + 0.30% ~raw
| | | | | | | | | + 0.20% mempool::pool_t::adjust_count
| | | | | | | | | | + 0.10% operator+=
| | | | | | | | | + 0.10% ~map
| | | | | | | | + 0.10% tc_deletearray
| | | | | | | + 0.10% _M_valptr
| | | | | | | | + 0.10% _M_ptr
| | | | | | | | + 0.10% _M_addr
| | | | | | | + 0.10% _M_put_node
| | | | | | | + 0.10% deallocate
| | | | | | | + 0.10% deallocate
| | | | | | | + 0.10% tc_delete
| | | | | | + 0.10% ~ptr
| | | | | | + 0.10% ceph::buffer::ptr::release
| | | | | + 0.50% ~intrusive_ptr
| | | | | | + 0.50% intrusive_ptr_release
| | | | | | + 0.20% put
| | | | | | + 0.20% operator--
| | | | | + 0.10% ~list_member_hook
| | | | | + 0.10% ~generic_hook
| | | | | + 0.10% boost::intrusive::detail::destructor_impl<boost::intrusive::generic_hook<(boost::intrusive::algo_types)0, boost::intrusive::list_node_traits<void*>, boost::intrusive::member_tag, (boost::intrusive::link_mode_type)1, (boost::intrusive::base_hook_type)0> >
| | | | | + 0.10% is_linked
| | | | | + 0.10% unique
| | | | | + 0.10% get_next
| | | | + 0.30% ~vector
| | | | | + 0.30% ~_Vector_base
| | | | | + 0.30% _M_deallocate
| | | | | + 0.30% deallocate
| | | | | + 0.30% deallocate
| | | | | + 0.30% tc_delete
| | | | | + 0.30% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | + 0.30% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.10% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.10% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | + 0.10% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | + 0.30% ~object_t
| | | | + 0.30% ~basic_string
| | | | + 0.30% _M_dispose
| | | | + 0.20% std::string::_Rep::_M_dispose
| | | | + 0.10% tc_delete
| | | + 0.40% tc_delete
| | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 1.20% ceph::buffer::list::append
| | | + 0.40% create
| | | | + 0.20% tc_posix_memalign
| | | | + 0.10% raw_combined
| | | | | + 0.10% raw
| | | | | + 0.10% mempool::pool_t::adjust_count
| | | | | + 0.10% operator+=
| | | | + 0.10% posix_memalign@plt
| | | + 0.40% ceph::buffer::list::append
| | | | + 0.10% ~ptr
| | | | | + 0.10% ceph::buffer::ptr::release
| | | | + 0.10% push_back
| | | | | + 0.10% push_back
| | | | | + 0.10% _M_insert<ceph::buffer::ptr>
| | | | | + 0.10% _M_create_node<ceph::buffer::ptr>
| | | | | + 0.10% _M_get_node
| | | | | + 0.10% allocate
| | | | | + 0.10% allocate
| | | | | + 0.10% tc_new
| | | | + 0.10% ceph::buffer::ptr::ptr
| | | + 0.20% ceph::buffer::ptr::append
| | | | + 0.10% maybe_inline_memcpy
| | | | + 0.10% memcpy
| | | | + 0.10% __memcpy_ssse3
| | | + 0.10% ceph::buffer::ptr::ptr
| | + 0.40% ceph::buffer::list::claim_append
| | + 0.30% make_shareable
| | | + 0.30% ceph::buffer::ptr::make_shareable
| | | + 0.10% ceph::buffer::raw::is_shareable
| | + 0.10% begin
| | + 0.10% ceph::buffer::list::iterator_impl<false>::iterator_impl
| + 6.30% AsyncConnection::prepare_send_message
| | + 5.70% Message::encode
| | | + 3.80% MOSDOpReply::encode_payload
| | | | + 2.20% encode
| | | | | + 1.80% encode
| | | | | | + 1.50% encode
| | | | | | | + 1.00% encode
| | | | | | | | + 1.00% encode_raw<ceph_le<unsigned int> >
| | | | | | | | + 1.00% ceph::buffer::list::append
| | | | | | | | + 0.50% create
| | | | | | | | | + 0.40% tc_posix_memalign
| | | | | | | | | | + 0.40% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | | | | | | | | + 0.30% tcmalloc::AlignmentForSize(unsigned long)
| | | | | | | | | + 0.10% raw_combined
| | | | | | | | | + 0.10% raw
| | | | | | | | | + 0.10% mempool::pool_t::adjust_count
| | | | | | | | | + 0.10% operator+=
| | | | | | | | + 0.30% ceph::buffer::list::append
| | | | | | | | | + 0.20% push_back
| | | | | | | | | | + 0.20% push_back
| | | | | | | | | | + 0.20% _M_insert<ceph::buffer::ptr>
| | | | | | | | | | + 0.20% _M_create_node<ceph::buffer::ptr>
| | | | | | | | | | + 0.20% _M_get_node
| | | | | | | | | | + 0.20% allocate
| | | | | | | | | | + 0.20% allocate
| | | | | | | | | | + 0.20% tc_new
| | | | | | | | | + 0.10% ~ptr
| | | | | | | | | + 0.10% ceph::buffer::ptr::release
| | | | | | | | + 0.10% ceph::buffer::ptr::ptr
| | | | | | | | + 0.10% ceph::buffer::ptr::append
| | | | | | | + 0.30% ceph::buffer::list::append
| | | | | | | | + 0.20% ceph::buffer::ptr::append
| | | | | | | | + 0.20% maybe_inline_memcpy
| | | | | | | | + 0.20% memcpy
| | | | | | | | + 0.20% __memcpy_ssse3
| | | | | | | + 0.20% encode_raw<ceph_le<unsigned int> >
| | | | | | | + 0.20% ceph::buffer::list::append
| | | | | | | + 0.10% ceph::buffer::ptr::unused_tail_length
| | | | | | + 0.20% encode_raw<unsigned char>
| | | | | | + 0.10% ceph::buffer::list::append
| | | | | + 0.20% pg_t::encode
| | | | | | + 0.20% encode
| | | | | | + 0.20% encode_raw<ceph_le<unsigned int> >
| | | | | | + 0.20% ceph::buffer::list::append
| | | | | | + 0.20% ceph::buffer::list::append
| | | | | + 0.10% operator=
| | | | | + 0.10% encode_raw<ceph_le<unsigned int> >
| | | | | + 0.10% ceph::buffer::list::append
| | | | | + 0.10% ceph::buffer::ptr::unused_tail_length
| | | | + 1.20% OSDOp::merge_osd_op_vector_out_data
| | | | | + 0.80% ceph::buffer::list::append
| | | | | + 0.70% push_back
| | | | | + 0.70% _M_insert<ceph::buffer::ptr const&>
| | | | | + 0.70% _M_create_node<ceph::buffer::ptr const&>
| | | | | + 0.70% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | | + 0.70% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | | + 0.70% ceph::buffer::ptr::ptr
| | | | + 0.10% size
| | | | + 0.10% Message::encode_trace
| | | | + 0.10% encode
| | | | + 0.10% encode
| | | | + 0.10% encode_raw<ceph_le<unsigned long long> >
| | | | + 0.10% ceph::buffer::list::append
| | | | + 0.10% ceph::buffer::ptr::unused_tail_length
| | | + 1.70% calc_data_crc
| | | | + 1.70% ceph::buffer::list::crc32c
| | | | + 1.30% ceph_crc32c
| | | | | + 1.30% ceph_crc32c_intel_fast
| | | | | + 1.30% ???
| | | | | + 1.30% ???
| | | | | + 1.30% crc32_iscsi_00
| | | | + 0.20% set_crc
| | | | | + 0.20% operator[]
| | | | | + 0.20% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | | | + 0.20% _M_create_node<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | | | + 0.20% _M_get_node
| | | | | + 0.20% allocate
| | | | | + 0.20% allocate
| | | | | + 0.20% tc_new
| | | | + 0.20% get_crc
| | | | + 0.10% lock_guard
| | | | | + 0.10% lock
| | | | | + 0.10% spin_lock
| | | | + 0.10% find
| | | | + 0.10% find
| | | | + 0.10% _M_lower_bound
| | | + 0.20% calc_front_crc
| | | + 0.20% ceph::buffer::list::crc32c
| | | + 0.20% ceph_crc32c
| | | + 0.20% ceph_crc32c_intel_baseline
| | + 0.20% ceph::buffer::list::append
| | | + 0.20% push_back
| | | + 0.20% _M_insert<ceph::buffer::ptr const&>
| | | + 0.20% _M_create_node<ceph::buffer::ptr const&>
| | | + 0.10% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | + 0.10% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | + 0.10% ceph::buffer::ptr::ptr
| | | + 0.10% _M_get_node
| | | + 0.10% allocate
| | | + 0.10% allocate
| | | + 0.10% tc_new
| | + 0.10% ceph::logging::SubsystemMap::should_gather
| + 0.80% lock
| | + 0.80% __gthread_mutex_lock
| | + 0.80% pthread_mutex_lock
| | + 0.70% _L_lock_812
| | + 0.70% __lll_lock_wait
| + 0.80% _get_next_outgoing
| | + 0.40% erase
| | | + 0.30% _M_erase
| | | | + 0.30% _M_put_node
| | | | + 0.30% deallocate
| | | | + 0.30% deallocate
| | | | + 0.30% tc_delete
| | | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > >, std::_Select1st<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > >, std::less<int>, std::allocator<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::erase
| | + 0.10% operator->
| | + 0.10% operator*
| | + 0.10% operator--
| | + 0.10% ???
| + 0.20% unlock
| | + 0.20% __gthread_mutex_unlock
| | + 0.20% pthread_mutex_unlock
| + 0.20% now
| | + 0.20% clock_gettime
| | + 0.20% clock_gettime
| + 0.10% ~list
| + 0.10% ~ptr
| + 0.10% ceph::buffer::ptr::release
+ 24.90% EpollDriver::event_wait
| + 24.60% epoll_wait
| | + 0.10% __libc_enable_asynccancel
| + 0.20% resize
| + 0.20% _M_default_append
| + 0.20% _M_allocate
| + 0.20% allocate
| + 0.20% allocate
| + 0.20% tc_new
+ 1.70% do_request
| + 1.70% read
| + 1.70% read
+ 0.10% ~vector
| + 0.10% ~_Vector_base
| + 0.10% _M_deallocate
| + 0.10% deallocate
| + 0.10% deallocate
| + 0.10% tc_delete
+ 0.10% pop_front
+ 0.10% now
+ 0.10% clock_gettime
+ 0.10% clock_gettime
Thread: 131 (log) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ceph::logging::Log::entry
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Gathering Samples........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Profiling complete with 1000 samples.
Thread: 1 (ceph-osd) - 1000 samples
+ 100.00% main
+ 100.00% AsyncMessenger::wait
+ 100.00% Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 2 (signal_handler) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% SignalHandler::entry
+ 100.00% poll
+ 100.00% poll
Thread: 3 (osd_srv_agent) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 96.90% WaitInterval
| + 96.90% WaitUntil
| + 96.90% pthread_cond_timedwait@@GLIBC_2.3.2
| + 1.40% __pthread_mutex_cond_lock
| + 1.40% _L_cond_lock_789
| + 1.40% __lll_lock_wait
+ 3.00% ThreadPool::WorkQueueVal<GenContext<ThreadPool::TPHandle&>*, GenContext<ThreadPool::TPHandle&>*>::_void_process
| + 3.00% _process
| + 3.00% complete<ThreadPool::TPHandle&>
| + 3.00% PrimaryLogPG::BlessedGenContext<ThreadPool::TPHandle&>::finish
| + 2.70% complete<ThreadPool::TPHandle&>
| | + 2.70% Context::complete
| | + 2.70% PrimaryLogPG::execute_ctx
| | + 1.90% PrimaryLogPG::complete_read_ctx
| | | + 1.90% send_message_osd_client
| | | + 1.90% AsyncConnection::send_message
| | | + 1.70% lock_guard
| | | | + 1.70% std::mutex::lock
| | | | + 1.70% __gthread_mutex_lock
| | | | + 1.70% pthread_mutex_lock
| | | | + 1.70% _L_lock_812
| | | | + 1.70% __lll_lock_wait
| | | + 0.20% EventCenter::dispatch_event_external
| | | + 0.20% lock
| | | + 0.20% __gthread_mutex_lock
| | | + 0.20% pthread_mutex_lock
| | | + 0.20% _L_lock_812
| | | + 0.20% __lll_lock_wait
| | + 0.70% intrusive_ptr_release
| | | + 0.70% TrackedOp::put
| | | + 0.70% OpTracker::unregister_inflight_op
| | | + 0.50% OpRequest::_unregistered
| | | | + 0.50% clear_data
| | | | + 0.50% Throttle::put
| | | | + 0.50% uniquely_lock<std::mutex&>
| | | | + 0.50% unique_lock
| | | | + 0.50% lock
| | | | + 0.50% lock
| | | | + 0.50% __gthread_mutex_lock
| | | | + 0.50% pthread_mutex_lock
| | | | + 0.50% _L_lock_812
| | | | + 0.50% __lll_lock_wait
| | | + 0.10% ~RLocker
| | | | + 0.10% unlock
| | | | + 0.10% pthread_rwlock_unlock
| | | | + 0.10% __lll_lock_wait
| | | + 0.10% RLocker
| | | + 0.10% get_read
| | | + 0.10% pthread_rwlock_rdlock
| | | + 0.10% __lll_lock_wait
| | + 0.10% PrimaryLogPG::prepare_transaction
| | + 0.10% PrimaryLogPG::do_osd_ops
| | + 0.10% md_config_t::get_val<bool>
| | + 0.10% md_config_t::get_val_generic
| | + 0.10% Locker
| | + 0.10% Mutex::Lock
| | + 0.10% pthread_mutex_lock
| | + 0.10% _L_lock_870
| | + 0.10% __lll_lock_wait
| + 0.30% PG::lock
| + 0.30% Mutex::Lock
| + 0.30% pthread_mutex_lock
| + 0.30% _L_lock_812
| + 0.30% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 13 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 14 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 15 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 16 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 17 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 18 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::OpContext::start_async_reads
+ 0.10% ReplicatedBackend::objects_read_async
+ 0.10% BlueStore::async_read
+ 0.10% BlueStore::_do_async_read
+ 0.10% KernelDevice::aio_submit
+ 0.10% aio_queue_t::submit_batch
+ 0.10% io_submit
Thread: 19 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.30% __pthread_mutex_cond_lock
+ 0.30% _L_cond_lock_789
+ 0.30% __lll_lock_wait
Thread: 20 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 21 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 22 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.30% __pthread_mutex_cond_lock
| + 0.30% _L_cond_lock_789
| + 0.30% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 23 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% clear_payload
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 24 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 25 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 26 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.50% __pthread_mutex_cond_lock
| + 0.50% _L_cond_lock_789
| + 0.50% __lll_lock_wait
+ 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::dequeue
+ 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::pop
+ 0.10% pop
+ 0.10% pop
+ 0.10% erase_and_dispose<DelItem<WeightedPriorityQueue<OpQueueItem, unsigned long>::ListPair> >
+ 0.10% erase_and_dispose<DelItem<WeightedPriorityQueue<OpQueueItem, unsigned long>::ListPair> >
+ 0.10% operator()
+ 0.10% tc_delete
+ 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
+ 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.10% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.10% SpinLock::SlowLock()
+ 0.10% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 27 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 28 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 29 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 30 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 31 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 32 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 33 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 34 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.70% Cond::Wait
| + 99.70% pthread_cond_wait@@GLIBC_2.3.2
+ 0.30% Mutex::Lock
+ 0.30% pthread_mutex_lock
+ 0.30% _L_lock_812
+ 0.30% __lll_lock_wait
Thread: 35 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 36 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% PG::lock
| + 0.10% Mutex::Lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 37 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 38 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 39 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 40 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 41 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 42 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.20% PG::lock
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 43 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 44 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 45 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 46 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 47 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 48 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 49 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 50 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 51 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 52 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 53 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 54 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::OpContext::start_async_reads
+ 0.10% ReplicatedBackend::objects_read_async
+ 0.10% BlueStore::async_read
+ 0.10% BlueStore::_do_async_read
+ 0.10% BlueStore::_consult_cache
+ 0.10% operator[]
+ 0.10% std::_Rb_tree<boost::intrusive_ptr<BlueStore::Blob>, std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > >, std::_Select1st<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > >, std::less<boost::intrusive_ptr<BlueStore::Blob> >, std::allocator<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<boost::intrusive_ptr<BlueStore::Blob> const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > >, std::piecewise_construct_t const&, std::tuple<boost::intrusive_ptr<BlueStore::Blob> const&>&&, std::tuple<>&&)
+ 0.10% _M_create_node<const std::piecewise_construct_t&, std::tuple<const boost::intrusive_ptr<BlueStore::Blob>&>, std::tuple<> >
+ 0.10% _M_get_node
+ 0.10% allocate
+ 0.10% allocate
+ 0.10% tc_new
+ 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
+ 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
+ 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
Thread: 55 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 56 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% clear_payload
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 57 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::find_object_context
+ 0.10% PrimaryLogPG::get_object_context
+ 0.10% SharedLRU<hobject_t, ObjectContext, std::less<hobject_t>, std::hash<hobject_t> >::lookup_or_create
+ 0.10% ~list
+ 0.10% ~_List_base
+ 0.10% std::_List_base<std::shared_ptr<ObjectContext>, std::allocator<std::shared_ptr<ObjectContext> > >::_M_clear
+ 0.10% destroy<std::shared_ptr<ObjectContext> >
+ 0.10% destroy<std::shared_ptr<ObjectContext> >
+ 0.10% ~shared_ptr
+ 0.10% ~__shared_ptr
+ 0.10% ~__shared_count
+ 0.10% _M_release
+ 0.10% std::_Sp_counted_deleter<ObjectContext*, SharedLRU<hobject_t, ObjectContext, std::less<hobject_t>, std::hash<hobject_t> >::Cleanup, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_destroy
+ 0.10% ~_Sp_counted_deleter
+ 0.10% ~_Impl
+ 0.10% ~_Sp_ebo_helper
+ 0.10% ~Cleanup
+ 0.10% ~hobject_t
+ 0.10% ~object_t
+ 0.10% ~basic_string
+ 0.10% _M_dispose
+ 0.10% tc_delete
+ 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
+ 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
+ 0.10% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
+ 0.10% SpinLock::SlowLock()
+ 0.10% base::internal::SpinLockDelay(int volatile*, int, int)
Thread: 58 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 59 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% clear_payload
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 60 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 61 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 62 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 63 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.40% __pthread_mutex_cond_lock
| + 0.40% _L_cond_lock_789
| + 0.40% __lll_lock_wait
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% clear_payload
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 64 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 65 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 66 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 67 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 68 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::get_rw_locks
+ 0.10% shared_ptr
Thread: 69 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 70 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% PG::lock
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 71 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 72 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 73 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 74 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% clear_payload
+ 0.10% Throttle::put
+ 0.10% uniquely_lock<std::mutex&>
+ 0.10% unique_lock
+ 0.10% lock
+ 0.10% lock
+ 0.10% __gthread_mutex_lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 75 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 76 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 77 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.30% __pthread_mutex_cond_lock
+ 0.30% _L_cond_lock_789
+ 0.30% __lll_lock_wait
Thread: 78 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 79 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 80 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 81 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 82 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% Mutex::Lock
+ 0.20% pthread_mutex_lock
+ 0.20% _L_lock_812
+ 0.20% __lll_lock_wait
Thread: 83 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.30% __pthread_mutex_cond_lock
+ 0.30% _L_cond_lock_789
+ 0.30% __lll_lock_wait
Thread: 84 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::prepare_transaction
+ 0.10% PrimaryLogPG::do_osd_ops
+ 0.10% md_config_t::get_val<bool>
+ 0.10% md_config_t::get_val_generic
+ 0.10% md_config_t::_get_val_generic
+ 0.10% ConfFile::normalize_key_name
+ 0.10% ConfFile::trim_whitespace
+ 0.10% assign
+ 0.10% std::string::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long)
+ 0.10% std::string::_M_mutate(unsigned long, unsigned long, unsigned long)
+ 0.10% std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)
+ 0.10% tc_new
Thread: 85 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 86 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.80% Cond::Wait
| + 99.80% pthread_cond_wait@@GLIBC_2.3.2
| + 0.20% __pthread_mutex_cond_lock
| + 0.20% _L_cond_lock_789
| + 0.20% __lll_lock_wait
+ 0.10% run
| + 0.10% PGOpItem::run
| + 0.10% OSD::dequeue_op
| + 0.10% PrimaryLogPG::do_request
| + 0.10% PrimaryLogPG::do_op
| + 0.10% clear_payload
| + 0.10% Throttle::put
| + 0.10% uniquely_lock<std::mutex&>
| + 0.10% unique_lock
| + 0.10% lock
| + 0.10% lock
| + 0.10% __gthread_mutex_lock
| + 0.10% pthread_mutex_lock
| + 0.10% _L_lock_812
| + 0.10% __lll_lock_wait
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 87 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% Mutex::Lock
+ 0.10% pthread_mutex_lock
+ 0.10% _L_lock_812
+ 0.10% __lll_lock_wait
Thread: 88 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 89 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 90 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.20% __pthread_mutex_cond_lock
+ 0.20% _L_cond_lock_789
+ 0.20% __lll_lock_wait
Thread: 91 (tp_osd_tp) - 1000 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% Cond::Wait
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
+ 0.10% __pthread_mutex_cond_lock
+ 0.10% _L_cond_lock_789
+ 0.10% __lll_lock_wait
Thread: 92 (tp_osd_tp) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ShardedThreadPool::WorkThreadSharded::entry
+ 100.00% ShardedThreadPool::shardedthreadpool_worker
+ 100.00% OSD::ShardedOpWQ::_process
+ 99.90% Cond::Wait
| + 99.90% pthread_cond_wait@@GLIBC_2.3.2
| + 0.10% __pthread_mutex_cond_lock
| + 0.10% _L_cond_lock_789
| + 0.10% __lll_lock_wait
+ 0.10% run
+ 0.10% PGOpItem::run
+ 0.10% OSD::dequeue_op
+ 0.10% PrimaryLogPG::do_request
+ 0.10% PrimaryLogPG::do_op
+ 0.10% PrimaryLogPG::execute_ctx
+ 0.10% PrimaryLogPG::OpContext::start_async_reads
+ 0.10% ReplicatedBackend::objects_read_async
+ 0.10% BlueStore::async_read
+ 0.10% BlueStore::_do_async_read
+ 0.10% BlueStore::PlainRegionReader::issue_io(std::function<int (unsigned long, unsigned long, ceph::buffer::list*, unsigned long)>)
+ 0.10% map
+ 0.10% operator()
+ 0.10% std::_Function_handler<int (unsigned long, unsigned long), std::_Bind<std::function<int (unsigned long, unsigned long, ceph::buffer::list*, unsigned long)> (std::_Placeholder<1>, std::_Placeholder<2>, ceph::buffer::list*, int)> >::_M_invoke(std::_Any_data const&, unsigned long&&, unsigned long&&)
+ 0.10% operator()<long unsigned int, long unsigned int>
+ 0.10% __call<int, long unsigned int&&, long unsigned int&&, 0, 1, 2, 3>
+ 0.10% __invoke<std::function<int(long unsigned int, long unsigned int, ceph::buffer::list*, long unsigned int)>&, long unsigned int, long unsigned int, ceph::buffer::list*&, int&>
+ 0.10% __invoke_impl<int, std::function<int(long unsigned int, long unsigned int, ceph::buffer::list*, long unsigned int)>&, long unsigned int, long unsigned int, ceph::buffer::list*&, int&>
+ 0.10% operator()
+ 0.10% std::_Function_handler<int(long unsigned int, long unsigned int, ceph::buffer::list*, long unsigned int), BlueStore::_do_async_read(BlueStore::Collection*, BlueStore::OnodeRef, ceph::continous_batch<ObjectStore::async_read_params_t>, Context*)::<lambda(uint64_t, uint64_t, ceph::bufferlist*, size_t)> >::_M_invoke(const std::_Any_data &, <unknown type in /usr/local/bin/ceph-osd, CU 0x43877be, DIE 0x456ae08>, <unknown type in /usr/local/bin/ceph-osd, CU 0x43877be, DIE 0x456ae18>, <unknown type in /usr/local/bin/ceph-osd, CU 0x43877be, DIE 0x456ae28>, <unknown type in /usr/local/bin/ceph-osd, CU 0x43877be, DIE 0x456ae38>)
+ 0.10% operator()
+ 0.10% KernelDevice::aio_read
+ 0.10% pread
+ 0.10% ceph::buffer::create_page_aligned
+ 0.10% ceph::buffer::create_aligned
+ 0.10% ceph::buffer::create_aligned_in_mempool
+ 0.10% raw_posix_aligned
+ 0.10% raw
+ 0.10% mempool::pool_t::adjust_count
+ 0.10% operator+=
Thread: 93 (safe_timer) - 1000 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: 94 (fn_anonymous) - 1000 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: 95 (safe_timer) - 1000 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 (ms_local) - 1000 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: 97 (ms_dispatch) - 1000 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: 98 (ms_local) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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) - 1000 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 (bstore_mempool) - 1000 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: 111 (bstore_kv_final) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% BlueStore::KVFinalizeThread::entry
+ 100.00% BlueStore::_kv_finalize_thread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 112 (bstore_kv_sync) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% BlueStore::KVSyncThread::entry
+ 100.00% BlueStore::_kv_sync_thread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 113 (finisher) - 1000 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: 114 (dfin) - 1000 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: 115 (rocksdb:bg0) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 116 (rocksdb:bg0) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper
+ 100.00% rocksdb::ThreadPoolImpl::Impl::BGThread
+ 100.00% std::condition_variable::wait(std::unique_lock<std::mutex>&)
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Thread: 117 (bstore_aio) - 1000 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: 118 (bstore_aio) - 1000 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: 119 (bstore_aio) - 1000 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) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% KernelDevice::AioCompletionThread::entry
+ 100.00% KernelDevice::_aio_thread
+ 81.40% aio_queue_t::get_next_completed
| + 81.20% __io_getevents_0_4
| + 0.20% io_getevents
+ 18.20% BlueStore::AioReadBatch::aio_finish
| + 8.40% BlueStore::PlainRegionReader::postprocess
| | + 6.90% BlueStore::RegionReader::_verify_csum
| | | + 6.10% bluestore_blob_t::verify_csum
| | | | + 5.50% verify<Checksummer::crc32c>
| | | | + 4.00% ceph::buffer::ptr::c_str
| | | | | + 0.10% ceph::buffer::raw::get_data
| | | | + 1.00% calc
| | | | + 1.00% ceph::buffer::list::iterator_impl<true>::crc32c
| | | | + 0.90% ceph_crc32c
| | | | | + 0.90% ceph_crc32c_intel_fast
| | | | | + 0.90% ???
| | | | | + 0.90% ???
| | | | | + 0.90% crc32_iscsi_00
| | | | + 0.10% ceph::buffer::list::iterator_impl<true>::get_ptr_and_advance
| | | | + 0.10% ceph::buffer::ptr::c_str
| | | + 0.50% ~PerfGuard
| | | | + 0.30% PerfCounters::tinc
| | | | + 0.20% now
| | | | + 0.20% clock_gettime
| | | | + 0.20% clock_gettime
| | | + 0.20% PerfGuard
| | | + 0.20% now
| | | + 0.20% clock_gettime
| | | + 0.10% clock_gettime
| | + 0.70% operator[]
| | | + 0.70% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ceph::buffer::list>, std::_Select1st<std::pair<unsigned long const, ceph::buffer::list> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ceph::buffer::list> > >::_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, ceph::buffer::list> >, std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
| | | + 0.40% _M_create_node<const std::piecewise_construct_t&, std::tuple<long unsigned int const&>, std::tuple<> >
| | | | + 0.40% _M_get_node
| | | | + 0.40% allocate
| | | | + 0.40% allocate
| | | | + 0.40% tc_new
| | | + 0.20% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ceph::buffer::list>, std::_Select1st<std::pair<unsigned long const, ceph::buffer::list> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ceph::buffer::list> > >::_M_insert_node
| | | + 0.10% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
| | + 0.40% ceph::buffer::list::substr_of
| | | + 0.40% push_back
| | | + 0.40% _M_insert<ceph::buffer::ptr>
| | | + 0.30% _M_create_node<ceph::buffer::ptr>
| | | | + 0.30% _M_get_node
| | | | + 0.30% allocate
| | | | + 0.30% allocate
| | | | + 0.30% tc_new
| | | + 0.10% std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)
| | + 0.10% did_read
| | + 0.10% ~lock_guard
| | + 0.10% unlock
| | + 0.10% __gthread_recursive_mutex_unlock
| | + 0.10% __gthread_mutex_unlock
| + 3.70% BlueStore::AioReadBatch::~AioReadBatch
| | + 3.70% ~AioReadBatch
| | + 2.70% ~vector
| | | + 2.40% _Destroy<BlueStore::AioReadBatch::read_ctx_t*, BlueStore::AioReadBatch::read_ctx_t>
| | | | + 2.40% _Destroy<BlueStore::AioReadBatch::read_ctx_t*>
| | | | + 2.40% __destroy<BlueStore::AioReadBatch::read_ctx_t*>
| | | | + 2.40% _Destroy<BlueStore::AioReadBatch::read_ctx_t>
| | | | + 2.40% ~read_ctx_t
| | | | + 2.40% ~map
| | | | + 2.40% ~_Rb_tree
| | | | + 1.90% std::_Rb_tree<boost::intrusive_ptr<BlueStore::Blob>, std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > >, std::_Select1st<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > >, std::less<boost::intrusive_ptr<BlueStore::Blob> >, std::allocator<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > >::_M_erase
| | | | | + 1.70% _M_drop_node
| | | | | + 1.00% _M_destroy_node
| | | | | | + 1.00% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > >
| | | | | | + 1.00% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > >
| | | | | | + 1.00% ~pair
| | | | | | + 0.90% ~unique_ptr
| | | | | | | + 0.90% operator()
| | | | | | | + 0.90% BlueStore::PlainRegionReader::~PlainRegionReader
| | | | | | | + 0.50% ~PlainRegionReader
| | | | | | | | + 0.50% ~vector
| | | | | | | | + 0.30% _Destroy<BlueStore::PlainRegionReader::plain_region_t*, BlueStore::PlainRegionReader::plain_region_t>
| | | | | | | | | + 0.30% _Destroy<BlueStore::PlainRegionReader::plain_region_t*>
| | | | | | | | | + 0.30% __destroy<BlueStore::PlainRegionReader::plain_region_t*>
| | | | | | | | | + 0.30% _Destroy<BlueStore::PlainRegionReader::plain_region_t>
| | | | | | | | | + 0.30% ~plain_region_t
| | | | | | | | | + 0.30% ~list
| | | | | | | | | + 0.30% ~list
| | | | | | | | | + 0.30% ~_List_base
| | | | | | | | | + 0.30% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | | | | + 0.30% _M_put_node
| | | | | | | | | + 0.30% deallocate
| | | | | | | | | + 0.30% deallocate
| | | | | | | | | + 0.30% tc_delete
| | | | | | | | | + 0.30% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | | | | | + 0.30% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | | | + 0.30% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | | | | | + 0.30% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | | | | | + 0.20% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | | | | + 0.20% ~_Vector_base
| | | | | | | | + 0.20% _M_deallocate
| | | | | | | | + 0.20% deallocate
| | | | | | | | + 0.20% deallocate
| | | | | | | | + 0.20% tc_delete
| | | | | | | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | | | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | + 0.30% tc_delete
| | | | | | | + 0.30% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | | | + 0.30% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | + 0.10% ~intrusive_ptr
| | | | | | + 0.10% intrusive_ptr_release
| | | | | | + 0.10% put
| | | | | + 0.70% _M_put_node
| | | | | + 0.70% deallocate
| | | | | + 0.70% deallocate
| | | | | + 0.70% tc_delete
| | | | | + 0.70% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | + 0.70% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.50% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ceph::buffer::list>, std::_Select1st<std::pair<unsigned long const, ceph::buffer::list> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ceph::buffer::list> > >::_M_erase
| | | | + 0.50% _M_drop_node
| | | | + 0.40% _M_put_node
| | | | | + 0.40% deallocate
| | | | | + 0.40% deallocate
| | | | | + 0.40% tc_delete
| | | | | + 0.40% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.10% _M_destroy_node
| | | | + 0.10% destroy<std::pair<unsigned long const, ceph::buffer::list> >
| | | | + 0.10% destroy<std::pair<unsigned long const, ceph::buffer::list> >
| | | | + 0.10% ~pair
| | | | + 0.10% ~list
| | | | + 0.10% ~ptr
| | | | + 0.10% ceph::buffer::ptr::release
| | | + 0.30% ~_Vector_base
| | | + 0.30% _M_deallocate
| | | + 0.30% deallocate
| | | + 0.30% deallocate
| | | + 0.30% tc_delete
| | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.20% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.20% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | + 0.10% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | + 1.00% ~IOContext
| | + 0.60% ~list
| | | + 0.60% ~_List_base
| | | + 0.60% std::_List_base<aio_t, std::allocator<aio_t> >::_M_clear
| | | + 0.30% destroy<aio_t>
| | | | + 0.30% destroy<aio_t>
| | | | + 0.30% ~aio_t
| | | | + 0.30% ~list
| | | | + 0.30% ~list
| | | | + 0.30% ~_List_base
| | | | + 0.30% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | + 0.20% _M_put_node
| | | | | + 0.20% deallocate
| | | | | + 0.20% deallocate
| | | | | + 0.20% tc_delete
| | | | + 0.10% _M_valptr
| | | | + 0.10% _M_ptr
| | | | + 0.10% _M_addr
| | | + 0.20% _M_put_node
| | | + 0.20% deallocate
| | | + 0.20% deallocate
| | | + 0.20% tc_delete
| | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.40% pthread_cond_destroy@@GLIBC_2.3.2
| + 3.50% Context::complete
| | + 2.90% PrimaryLogPG::schedule_recovery_work
| | | + 2.90% queue
| | | + 1.40% SignalOne
| | | | + 1.40% pthread_cond_signal@@GLIBC_2.3.2
| | | + 1.20% Locker
| | | + 1.20% Mutex::Lock
| | | + 1.00% pthread_mutex_lock
| | | + 0.90% _L_lock_812
| | | + 0.90% __lll_lock_wait
| | + 0.30% AsyncReadEnqueuer::finish
| | + 0.10% Mutex::Unlock
| | | + 0.10% pthread_mutex_unlock
| | + 0.10% FillInVerifyExtent::finish
| + 0.80% FillInVerifyExtent::~FillInVerifyExtent
| | + 0.40% ~FillInVerifyExtent
| | | + 0.40% ~hobject_t
| | | + 0.40% ~object_t
| | | + 0.40% ~basic_string
| | | + 0.40% _M_dispose
| | | + 0.30% std::string::_Rep::_M_dispose
| | + 0.30% tc_delete
| + 0.50% BlueStore::_do_read_compose_result
| | + 0.30% ceph::buffer::list::claim_append
| | | + 0.10% make_shareable
| | | + 0.10% ceph::buffer::ptr::make_shareable
| | | + 0.10% ceph::buffer::raw::is_shareable
| | + 0.10% should_gather
| + 0.40% tc_delete
| | + 0.40% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | + 0.40% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.20% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | + 0.20% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | + 0.10% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| + 0.10% operator++
| | + 0.10% std::_Rb_tree_increment(std::_Rb_tree_node_base*)
| + 0.10% BlueStore::_do_read_is_buffered
+ 0.10% KernelDevice::_aio_log_finish
Thread: 121 (safe_timer) - 1000 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: 122 (safe_timer) - 1000 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: 123 (safe_timer) - 1000 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: 124 (safe_timer) - 1000 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: 125 (ceph-osd) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% ceph::timer_detail::timer<ceph::time_detail::coarse_mono_clock>::timer_thread
+ 100.00% wait_until<ceph::time_detail::coarse_mono_clock, std::chrono::duration<unsigned long, std::ratio<1, 1000000000> > >
+ 100.00% __wait_until_impl<std::chrono::duration<unsigned long, std::ratio<1, 1000000000> > >
+ 100.00% __gthread_cond_timedwait
+ 100.00% pthread_cond_timedwait@@GLIBC_2.3.2
Thread: 126 (admin_socket) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% AdminSocket::entry
+ 100.00% poll
+ 100.00% poll
Thread: 127 (service) - 1000 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: 128 (msgr-worker-2) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
+ 100.00% operator()
+ 100.00% EventCenter::process_events
+ 100.00% EpollDriver::event_wait
+ 100.00% epoll_wait
Thread: 129 (msgr-worker-1) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
+ 100.00% operator()
+ 99.80% EventCenter::process_events
+ 56.10% EpollDriver::event_wait
| + 55.90% epoll_wait
| + 0.20% resize
| + 0.20% _M_default_append
| + 0.20% _M_allocate
| + 0.20% allocate
| + 0.20% allocate
| + 0.20% tc_new
+ 23.70% AsyncConnection::process
| + 12.60% DispatchQueue::fast_dispatch
| | + 12.60% ms_fast_dispatch
| | + 12.60% OSD::ms_fast_dispatch
| | + 10.50% OSD::enqueue_op
| | | + 9.00% queue
| | | | + 9.00% OSD::ShardedOpWQ::_enqueue(OpQueueItem&&)
| | | | + 4.40% SignalOne
| | | | | + 4.40% pthread_cond_signal@@GLIBC_2.3.2
| | | | + 3.30% Mutex::Unlock
| | | | | + 3.30% pthread_mutex_unlock
| | | | | + 3.30% _L_unlock_713
| | | | | + 3.30% __lll_unlock_wake
| | | | + 0.90% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::insert(unsigned int, unsigned long, unsigned int, OpQueueItem&&, bool)
| | | | | + 0.70% insert
| | | | | + 0.60% insert
| | | | | | + 0.60% tc_new
| | | | | | + 0.30% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.30% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.30% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.10% tc_new
| | | | + 0.30% Mutex::Lock
| | | | + 0.30% pthread_mutex_lock
| | | | + 0.30% _L_lock_812
| | | | + 0.30% __lll_lock_wait
| | | + 0.40% mark_queued_for_pg
| | | | + 0.40% OpRequest::mark_flag_point
| | | | + 0.30% TrackedOp::mark_event
| | | | | + 0.10% push_back
| | | | | | + 0.10% std::vector<TrackedOp::Event, std::allocator<TrackedOp::Event> >::emplace_back<TrackedOp::Event>(TrackedOp::Event&&)
| | | | | | + 0.10% construct<TrackedOp::Event, TrackedOp::Event>
| | | | | | + 0.10% construct<TrackedOp::Event, TrackedOp::Event>
| | | | | | + 0.10% Event
| | | | | + 0.10% Locker
| | | | | + 0.10% Mutex::Lock
| | | | | + 0.10% pthread_mutex_lock
| | | | + 0.10% ceph_clock_now
| | | | + 0.10% clock_gettime
| | | | + 0.10% clock_gettime
| | | + 0.30% tc_new
| | | + 0.30% PerfCounters::tinc
| | | | + 0.10% operator+=
| | | + 0.20% unique_ptr<>
| | | | + 0.20% __uniq_ptr_impl
| | | + 0.10% ceph_clock_now
| | | + 0.10% clock_gettime
| | + 2.00% OpTracker::create_request<OpRequest, Message*>
| | | + 1.10% OpRequest::OpRequest
| | | | + 0.80% TrackedOp
| | | | + 0.50% Mutex::Mutex
| | | | | + 0.20% pthread_mutexattr_init
| | | | | + 0.20% pthread_mutex_init
| | | | | + 0.10% pthread_mutexattr_settype
| | | | + 0.20% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)
| | | | | + 0.20% std::string::_S_construct<char const*>
| | | | | + 0.20% std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)
| | | | | + 0.20% tc_new
| | | | + 0.10% reserve
| | | | + 0.10% _M_allocate_and_copy<std::move_iterator<TrackedOp::Event*> >
| | | | + 0.10% _M_allocate
| | | | + 0.10% allocate
| | | | + 0.10% allocate
| | | | + 0.10% tc_new
| | | + 0.60% tracking_start
| | | | + 0.60% OpTracker::register_inflight_op
| | | | + 0.20% Locker
| | | | | + 0.20% Mutex::Lock
| | | | + 0.10% RLocker
| | | | + 0.10% get_read
| | | | + 0.10% pthread_rwlock_rdlock
| | | + 0.30% tc_new
| | + 0.10% maybe_inject_dispatch_delay
| + 4.50% AsyncConnection::read_until
| | + 4.00% AsyncConnection::read_bulk
| | | + 4.00% read
| | | + 4.00% PosixConnectedSocketImpl::read
| | | + 4.00% read
| | | + 4.00% read
| | + 0.40% memcpy
| | | + 0.40% __memcpy_ssse3
| | + 0.10% ceph::logging::SubsystemMap::should_gather
| + 3.60% decode_message
| | + 1.40% MOSDOp::decode_payload
| | | + 0.80% decode
| | | | + 0.40% spg_t::decode
| | | | | + 0.20% decode
| | | | | + 0.10% pg_t::decode
| | | | | | + 0.10% decode
| | | | | | + 0.10% decode_raw<ceph_le<unsigned int> >
| | | | | | + 0.10% ceph::buffer::list::iterator_impl<false>::copy
| | | | | | + 0.10% operator->
| | | | | | + 0.10% _M_valptr
| | | | | | + 0.10% _M_ptr
| | | | | | + 0.10% _M_addr
| | | | | + 0.10% decode_raw<unsigned char>
| | | | | + 0.10% ceph::buffer::list::iterator_impl<false>::copy
| | | | | + 0.10% ceph::buffer::ptr::copy_out
| | | | + 0.30% decode_raw<ceph_le<unsigned int> >
| | | | + 0.30% ceph::buffer::list::iterator_impl<false>::copy
| | | | + 0.20% ceph::buffer::ptr::copy_out
| | | | + 0.20% maybe_inline_memcpy
| | | + 0.50% decode<osd_reqid_t, denc_traits<osd_reqid_t, void> >
| | | | + 0.40% ceph::buffer::list::iterator::copy_shallow
| | | | | + 0.40% ceph::buffer::list::iterator_impl<false>::copy_shallow
| | | | + 0.10% ~ptr
| | | | + 0.10% ceph::buffer::ptr::release
| | | + 0.10% Message::decode_trace
| | | + 0.10% decode
| | | + 0.10% decode
| | | + 0.10% decode_raw<ceph_le<unsigned long long> >
| | | + 0.10% ceph::buffer::list::iterator::copy
| | + 0.90% ceph::buffer::list::crc32c
| | | + 0.40% ceph_crc32c
| | | | + 0.20% ceph_crc32c_intel_fast
| | | | | + 0.20% ???
| | | | | + 0.20% ???
| | | | | + 0.20% crc32_iscsi_00
| | | | + 0.20% ceph_crc32c_intel_baseline
| | | + 0.30% set_crc
| | | | + 0.30% operator[]
| | | | + 0.30% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | | + 0.20% _M_insert_node
| | | | | + 0.10% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
| | | | | + 0.10% _ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@plt
| | | | + 0.10% _M_create_node<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | | + 0.10% _M_get_node
| | | | + 0.10% allocate
| | | | + 0.10% allocate
| | | | + 0.10% tc_new
| | | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.10% ceph::buffer::ptr::c_str
| | + 0.40% intrusive_ptr
| | | + 0.40% intrusive_ptr_add_ref
| | | + 0.40% get
| | + 0.30% tc_new
| | + 0.30% MOSDFastDispatchOp
| | | + 0.30% Message::Message
| | | + 0.20% ceph::buffer::list::list
| | | | + 0.10% ceph::buffer::list::iterator::iterator
| | | + 0.10% memset
| | + 0.10% spg_t
| + 0.80% ceph::buffer::create
| | + 0.80% ceph::buffer::create_aligned
| | + 0.80% ceph::buffer::create_aligned_in_mempool
| | + 0.80% create
| | + 0.70% tc_posix_memalign
| | | + 0.60% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.10% tcmalloc::AlignmentForSize(unsigned long)
| | + 0.10% raw_combined
| | + 0.10% raw
| | + 0.10% mempool::pool_t::adjust_count
| + 0.70% Throttle::get_or_fail
| | + 0.20% uniquely_lock<std::mutex&>
| | | + 0.20% unique_lock
| | | + 0.20% lock
| | | + 0.20% lock
| | | + 0.20% __gthread_mutex_lock
| | | + 0.20% pthread_mutex_lock
| | | + 0.10% _L_lock_812
| | | + 0.10% __lll_lock_wait
| | + 0.20% PerfCounters::set
| | + 0.10% ~unique_lock
| | | + 0.10% unlock
| | | + 0.10% unlock
| | | + 0.10% __gthread_mutex_unlock
| | | + 0.10% pthread_mutex_unlock
| | + 0.10% PerfCounters::inc
| + 0.30% now
| | + 0.30% clock_gettime
| | + 0.10% clock_gettime
| + 0.20% ms_can_fast_dispatch
| | + 0.20% OSD::ms_can_fast_dispatch
| + 0.20% ceph_clock_now
| | + 0.20% clock_gettime
| + 0.20% PerfCounters::inc
| + 0.10% lock_guard
| | + 0.10% std::mutex::lock
| | + 0.10% __gthread_mutex_lock
| | + 0.10% pthread_mutex_lock
| + 0.10% ceph::buffer::ptr::c_str
| + 0.10% ceph::buffer::list::push_back
| | + 0.10% push_back
| | + 0.10% push_back
| | + 0.10% _M_insert<ceph::buffer::ptr>
| | + 0.10% std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)
| + 0.10% DispatchQueue::post_dispatch
| + 0.10% DispatchQueue::dispatch_throttle_release
+ 17.50% AsyncConnection::handle_write
| + 12.50% AsyncConnection::write_message
| | + 11.20% AsyncConnection::_try_send
| | | + 10.20% send
| | | | + 10.20% PosixConnectedSocketImpl::send
| | | | + 9.80% do_sendmsg
| | | | | + 9.80% sendmsg
| | | | + 0.10% clear
| | | | + 0.10% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | | + 0.10% ceph::buffer::ptr::release
| | | | + 0.10% tc_free
| | | + 0.60% EventCenter::create_file_event
| | | | + 0.60% EpollDriver::add_event
| | | | + 0.50% epoll_ctl
| | | + 0.10% EventCenter::delete_file_event
| | | + 0.10% EpollDriver::del_event
| | | + 0.10% epoll_ctl@plt
| | + 0.80% RefCountedObject::put
| | | + 0.80% MOSDOpReply::~MOSDOpReply
| | | + 0.80% ~MOSDOpReply
| | | + 0.40% ~vector
| | | | + 0.30% ~_Vector_base
| | | | | + 0.30% _M_deallocate
| | | | | + 0.30% deallocate
| | | | | + 0.30% deallocate
| | | | | + 0.30% tc_delete
| | | | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.10% _Destroy<OSDOp*, OSDOp>
| | | | + 0.10% _Destroy<OSDOp*>
| | | | + 0.10% __destroy<OSDOp*>
| | | | + 0.10% _Destroy<OSDOp>
| | | | + 0.10% ~OSDOp
| | | | + 0.10% ~list
| | | | + 0.10% ~ptr
| | | | + 0.10% ceph::buffer::ptr::release
| | | + 0.40% Message::~Message
| | | + 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.20% destroy<ceph::buffer::ptr>
| | | | + 0.20% destroy<ceph::buffer::ptr>
| | | | + 0.20% ~ptr
| | | | + 0.20% ceph::buffer::ptr::release
| | | | + 0.10% tc_free
| | | | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.10% ceph::buffer::raw_posix_aligned::~raw_posix_aligned
| | | | + 0.10% ~raw_posix_aligned
| | | + 0.10% _M_put_node
| | | + 0.10% deallocate
| | | + 0.10% deallocate
| | | + 0.10% tc_delete
| | + 0.30% ceph::buffer::list::append
| | | + 0.20% create
| | | | + 0.20% raw_combined
| | | | + 0.20% raw
| | | | + 0.10% mempool::pool_t::adjust_count
| | | | + 0.10% mempool::get_pool
| | | + 0.10% ceph::buffer::list::append
| | | + 0.10% push_back
| | | + 0.10% push_back
| | | + 0.10% _M_insert<ceph::buffer::ptr>
| | | + 0.10% _M_create_node<ceph::buffer::ptr>
| | | + 0.10% construct<ceph::buffer::ptr, ceph::buffer::ptr>
| | | + 0.10% construct<ceph::buffer::ptr, ceph::buffer::ptr>
| | | + 0.10% ceph::buffer::ptr::ptr(ceph::buffer::ptr&&)
| | + 0.10% operator++
| | + 0.10% calc_header_crc
| | + 0.10% ceph_crc32c
| | + 0.10% ceph_crc32c_intel_fast
| | + 0.10% ???
| | + 0.10% ???
| | + 0.10% crc32_iscsi_00
| + 3.20% AsyncConnection::prepare_send_message
| | + 3.20% Message::encode
| | + 2.10% MOSDOpReply::encode_payload
| | | + 1.40% encode
| | | | + 1.00% encode
| | | | | + 1.00% encode
| | | | | + 0.90% encode
| | | | | | + 0.90% encode_raw<ceph_le<unsigned int> >
| | | | | | + 0.90% ceph::buffer::list::append
| | | | | | + 0.30% create
| | | | | | | + 0.30% tc_posix_memalign
| | | | | | | + 0.30% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | | | | | + 0.10% tcmalloc::AlignmentForSize(unsigned long)
| | | | | | + 0.30% ceph::buffer::list::append
| | | | | | | + 0.30% push_back
| | | | | | | + 0.30% push_back
| | | | | | | + 0.30% _M_insert<ceph::buffer::ptr>
| | | | | | | + 0.30% _M_create_node<ceph::buffer::ptr>
| | | | | | | + 0.30% _M_get_node
| | | | | | | + 0.30% allocate
| | | | | | | + 0.30% allocate
| | | | | | | + 0.30% tc_new
| | | | | | + 0.10% ceph::buffer::ptr::ptr
| | | | | + 0.10% ceph::buffer::list::append
| | | | | + 0.10% ceph::buffer::ptr::unused_tail_length
| | | | + 0.30% pg_t::encode
| | | | | + 0.30% encode
| | | | | + 0.30% encode_raw<ceph_le<unsigned long long> >
| | | | | + 0.30% ceph::buffer::list::append
| | | | | + 0.10% ceph::buffer::ptr::unused_tail_length
| | | | | + 0.10% ceph::buffer::ptr::append
| | | | | + 0.10% maybe_inline_memcpy
| | | | + 0.10% encode_raw<ceph_le<unsigned int> >
| | | | + 0.10% ceph::buffer::list::append
| | | + 0.50% OSDOp::merge_osd_op_vector_out_data
| | | | + 0.20% ceph::buffer::list::append
| | | | + 0.20% push_back
| | | | + 0.20% _M_insert<ceph::buffer::ptr const&>
| | | | + 0.20% _M_create_node<ceph::buffer::ptr const&>
| | | | + 0.20% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | + 0.20% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | + 0.20% ceph::buffer::ptr::ptr
| | | + 0.10% empty
| | + 0.50% calc_data_crc
| | | + 0.50% ceph::buffer::list::crc32c
| | | + 0.50% ceph_crc32c
| | | + 0.50% ceph_crc32c_intel_fast
| | | + 0.50% ???
| | | + 0.50% ???
| | | + 0.50% crc32_iscsi_00
| | + 0.40% calc_front_crc
| | | + 0.40% ceph::buffer::list::crc32c
| | | + 0.20% ceph_crc32c
| | | | + 0.20% ceph_crc32c_intel_baseline
| | | + 0.10% set_crc
| | | + 0.10% operator[]
| | | + 0.10% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | + 0.10% _M_insert_node
| | | + 0.10% std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
| | + 0.10% calc_header_crc
| | + 0.10% ceph_crc32c
| | + 0.10% ceph_crc32c_intel_fast
| + 0.90% _get_next_outgoing
| | + 0.60% erase
| | | + 0.40% _M_erase
| | | | + 0.40% _M_put_node
| | | | + 0.40% deallocate
| | | | + 0.40% deallocate
| | | | + 0.30% tc_delete
| | | | | + 0.30% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | + 0.30% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | + 0.10% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | | + 0.10% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | | + 0.10% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | | + 0.10% tcmalloc::DLL_Remove(tcmalloc::Span*)
| | | | + 0.10% _ZdlPv@plt
| | | + 0.20% std::_Rb_tree<int, std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > >, std::_Select1st<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > >, std::less<int>, std::allocator<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::erase
| | | + 0.20% _M_erase_aux
| | | + 0.20% clear
| | | + 0.20% std::_Rb_tree<int, std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > >, std::_Select1st<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > >, std::less<int>, std::allocator<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::_M_erase
| | | + 0.20% _M_drop_node
| | | + 0.20% _M_put_node
| | | + 0.20% deallocate
| | | + 0.20% deallocate
| | | + 0.20% tc_delete
| | + 0.30% operator->
| | + 0.30% operator*
| | + 0.30% operator--
| | + 0.20% ???
| | + 0.10% std::_Rb_tree_decrement(std::_Rb_tree_node_base*)
| + 0.40% lock
| | + 0.40% __gthread_mutex_lock
| | + 0.40% pthread_mutex_lock
| | + 0.30% _L_lock_812
| | + 0.30% __lll_lock_wait
| + 0.30% unlock
| + 0.30% __gthread_mutex_unlock
| + 0.30% pthread_mutex_unlock
| + 0.10% _L_unlock_713
| + 0.10% __lll_unlock_wake
+ 1.50% do_request
| + 1.50% read
| + 1.50% read
+ 0.20% now
| + 0.20% clock_gettime
| + 0.10% clock_gettime
+ 0.20% deque
| + 0.20% _Deque_base
| + 0.10% _M_initialize_map
| | + 0.10% _M_allocate_map
| | + 0.10% allocate
| | + 0.10% allocate
| | + 0.10% tc_new
| | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| + 0.10% _Deque_impl
+ 0.10% ~vector
| + 0.10% ~_Vector_base
| + 0.10% _M_deallocate
| + 0.10% deallocate
| + 0.10% deallocate
| + 0.10% tc_delete
+ 0.10% ~deque
| + 0.10% std::_Deque_base<EventCallback*, std::allocator<EventCallback*> >::~_Deque_base
| + 0.10% _M_deallocate_map
| + 0.10% deallocate
| + 0.10% deallocate
| + 0.10% tc_delete
+ 0.10% C_handle_read::do_request
+ 0.10% operator->
Thread: 130 (msgr-worker-0) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% execute_native_thread_routine
+ 100.00% std::_Function_handler<void(), NetworkStack::add_thread(unsigned int)::<lambda()> >::_M_invoke(const std::_Any_data &)
+ 100.00% operator()
+ 99.90% EventCenter::process_events
+ 59.20% EpollDriver::event_wait
| + 59.10% epoll_wait
| | + 0.10% __libc_enable_asynccancel
| + 0.10% resize
| + 0.10% _M_default_append
| + 0.10% _M_allocate
| + 0.10% allocate
| + 0.10% allocate
| + 0.10% tc_new
+ 22.20% AsyncConnection::process
| + 11.70% DispatchQueue::fast_dispatch
| | + 11.70% ms_fast_dispatch
| | + 11.70% OSD::ms_fast_dispatch
| | + 9.70% OSD::enqueue_op
| | | + 9.10% queue
| | | | + 9.10% OSD::ShardedOpWQ::_enqueue(OpQueueItem&&)
| | | | + 4.40% SignalOne
| | | | | + 4.40% pthread_cond_signal@@GLIBC_2.3.2
| | | | + 3.20% Mutex::Unlock
| | | | | + 3.20% pthread_mutex_unlock
| | | | | + 3.20% _L_unlock_713
| | | | | + 3.20% __lll_unlock_wake
| | | | + 0.80% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::insert(unsigned int, unsigned long, unsigned int, OpQueueItem&&, bool)
| | | | | + 0.40% insert
| | | | | | + 0.30% insert
| | | | | | | + 0.30% tc_new
| | | | | | | + 0.20% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | | + 0.20% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | | + 0.20% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | | + 0.10% tc_new
| | | | | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | | + 0.30% tc_new
| | | | + 0.70% Mutex::Lock
| | | | + 0.50% pthread_mutex_lock
| | | | + 0.40% _L_lock_812
| | | | + 0.40% __lll_lock_wait
| | | + 0.20% mark_queued_for_pg
| | | | + 0.20% OpRequest::mark_flag_point
| | | | + 0.20% TrackedOp::mark_event
| | | | + 0.10% push_back
| | | | + 0.10% Locker
| | | | + 0.10% Mutex::Lock
| | | | + 0.10% pthread_mutex_lock
| | | + 0.10% unique_ptr<>
| | | | + 0.10% __uniq_ptr_impl
| | | + 0.10% tc_new
| | | + 0.10% PerfCounters::tinc
| | | | + 0.10% operator++
| | | | + 0.10% fetch_add
| | | + 0.10% OpQueueItem::OpQueueItem(std::unique_ptr<OpQueueItem::OpQueueable, std::default_delete<OpQueueItem::OpQueueable> >&&, int, unsigned int, utime_t, unsigned long, unsigned int)
| | | + 0.10% maybe_get_op
| | | + 0.10% PGOpItem::maybe_get_op
| | | + 0.10% optional
| | | + 0.10% optional_base
| | | + 0.10% construct
| | + 2.00% OpTracker::create_request<OpRequest, Message*>
| | + 1.10% OpRequest::OpRequest
| | | + 0.80% TrackedOp
| | | + 0.50% Mutex::Mutex
| | | | + 0.20% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)
| | | | + 0.10% pthread_mutexattr_init
| | | + 0.20% std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)
| | | | + 0.20% std::string::_S_construct<char const*>
| | | | + 0.20% std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&)
| | | | + 0.20% tc_new
| | | + 0.10% reserve
| | | + 0.10% _M_allocate_and_copy<std::move_iterator<TrackedOp::Event*> >
| | | + 0.10% _M_allocate
| | | + 0.10% allocate
| | | + 0.10% allocate
| | | + 0.10% tc_new
| | + 0.70% tracking_start
| | | + 0.50% OpTracker::register_inflight_op
| | | | + 0.30% RLocker
| | | | | + 0.30% get_read
| | | | | + 0.30% pthread_rwlock_rdlock
| | | | + 0.10% operator bool
| | | | | + 0.10% load
| | | | + 0.10% Locker
| | | | + 0.10% Mutex::Lock
| | | | + 0.10% pthread_mutex_lock
| | | + 0.10% push_back
| | | | + 0.10% emplace_back<TrackedOp::Event>
| | | | + 0.10% construct<TrackedOp::Event, TrackedOp::Event>
| | | | + 0.10% construct<TrackedOp::Event, TrackedOp::Event>
| | | | + 0.10% Event
| | | + 0.10% Event
| | | + 0.10% basic_string
| | | + 0.10% _Alloc_hider
| | + 0.20% tc_new
| + 5.90% AsyncConnection::read_until
| | + 5.30% AsyncConnection::read_bulk
| | | + 5.30% read
| | | + 5.20% PosixConnectedSocketImpl::read
| | | + 5.20% read
| | | + 5.20% read
| | + 0.20% memcpy
| | | + 0.20% __memcpy_ssse3
| | + 0.10% ceph::logging::SubsystemMap::should_gather
| + 1.80% decode_message
| | + 0.50% intrusive_ptr
| | | + 0.50% intrusive_ptr_add_ref
| | | + 0.50% get
| | + 0.30% MOSDOp::decode_payload
| | | + 0.10% decode<osd_reqid_t, denc_traits<osd_reqid_t, void> >
| | | | + 0.10% ~ptr
| | | | + 0.10% ceph::buffer::ptr::release
| | | + 0.10% decode
| | | | + 0.10% decode_raw<crimson::dmclock::ReqParams>
| | | | + 0.10% ceph::buffer::list::iterator_impl<false>::copy
| | | | + 0.10% ceph::buffer::ptr::copy_out
| | | | + 0.10% maybe_inline_memcpy
| | | + 0.10% Message::decode_trace
| | | + 0.10% decode
| | | + 0.10% decode
| | | + 0.10% decode_raw<ceph_le<unsigned long long> >
| | | + 0.10% ceph::buffer::list::iterator_impl<false>::copy
| | | + 0.10% ceph::buffer::list::iterator_impl<false>::advance
| | + 0.20% set_middle
| | | + 0.20% ceph::buffer::list::claim
| | | + 0.10% ceph::buffer::list::claim_append
| | | + 0.10% begin
| | + 0.10% vector
| | | + 0.10% _Vector_base
| | | + 0.10% _Vector_impl
| | + 0.10% tc_new
| | + 0.10% set_data
| | | + 0.10% share
| | | + 0.10% ceph::buffer::list::clear
| | + 0.10% iterator
| | | + 0.10% iterator_impl
| | | + 0.10% _List_iterator
| | + 0.10% ceph::buffer::list::crc32c
| | | + 0.10% set_crc
| | | + 0.10% operator[]
| | | + 0.10% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | + 0.10% _M_create_node<const std::piecewise_construct_t&, std::tuple<const std::pair<long unsigned int, long unsigned int>&>, std::tuple<> >
| | | + 0.10% _M_get_node
| | | + 0.10% allocate
| | | + 0.10% allocate
| | | + 0.10% tc_new
| | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | + 0.10% MOSDFastDispatchOp
| | + 0.10% Message::Message
| | + 0.10% memset
| + 0.80% Throttle::get_or_fail
| | + 0.20% PerfCounters::set
| | | + 0.10% operator=
| | | + 0.10% store
| | + 0.10% ~unique_lock
| | | + 0.10% unlock
| | | + 0.10% unlock
| | | + 0.10% __gthread_mutex_unlock
| | | + 0.10% pthread_mutex_unlock
| | + 0.10% PerfCounters::inc
| + 0.40% ceph::buffer::create
| | + 0.40% ceph::buffer::create_aligned
| | + 0.40% ceph::buffer::create_aligned_in_mempool
| | + 0.40% create
| | + 0.30% tc_posix_memalign
| | | + 0.30% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | | + 0.20% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.20% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.20% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.10% tcmalloc::AlignmentForSize(unsigned long)
| | + 0.10% raw_combined
| | + 0.10% raw
| | + 0.10% mempool::pool_t::adjust_count
| | + 0.10% operator+=
| + 0.30% ceph::buffer::list::clear
| | + 0.10% clear
| | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | + 0.10% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | + 0.10% ceph::buffer::ptr::release
| | + 0.10% begin
| | + 0.10% ceph::buffer::list::iterator::iterator
| + 0.20% ceph_clock_now
| | + 0.10% clock_gettime
| | + 0.10% clock_gettime
| + 0.20% ceph::buffer::list::push_back
| | + 0.20% push_back
| | + 0.20% push_back
| | + 0.20% _M_insert<ceph::buffer::ptr>
| | + 0.20% _M_create_node<ceph::buffer::ptr>
| | + 0.20% _M_get_node
| | + 0.20% allocate
| | + 0.20% allocate
| | + 0.20% tc_new
| + 0.10% ~intrusive_ptr
| | + 0.10% intrusive_ptr_release
| | + 0.10% put
| | + 0.10% operator--
| + 0.10% ms_can_fast_dispatch
| + 0.10% ceph_crc32c
| | + 0.10% ceph_crc32c_intel_fast
| + 0.10% ceph::buffer::ptr::c_str
| + 0.10% ceph::buffer::create_aligned_in_mempool
+ 16.30% AsyncConnection::handle_write
| + 11.90% AsyncConnection::write_message
| | + 10.30% AsyncConnection::_try_send
| | | + 9.10% send
| | | | + 8.90% PosixConnectedSocketImpl::send
| | | | + 8.70% do_sendmsg
| | | | | + 8.70% sendmsg
| | | | + 0.20% clear
| | | | + 0.20% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | | + 0.20% ceph::buffer::ptr::release
| | | | + 0.10% tc_free
| | | | + 0.10% ceph::buffer::raw_combined::~raw_combined
| | | | + 0.10% ~raw_combined
| | | + 0.70% EventCenter::create_file_event
| | | | + 0.60% EpollDriver::add_event
| | | | | + 0.60% epoll_ctl
| | | | + 0.10% should_gather
| | | | + 0.10% size
| | | + 0.40% EventCenter::delete_file_event
| | | + 0.40% EpollDriver::del_event
| | | + 0.30% epoll_ctl
| | + 1.30% RefCountedObject::put
| | | + 1.30% MOSDOpReply::~MOSDOpReply
| | | + 1.10% ~MOSDOpReply
| | | | + 0.70% Message::~Message
| | | | | + 0.60% ~list
| | | | | | + 0.60% ~list
| | | | | | + 0.60% ~_List_base
| | | | | | + 0.60% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.50% destroy<ceph::buffer::ptr>
| | | | | | | + 0.50% destroy<ceph::buffer::ptr>
| | | | | | | + 0.50% ~ptr
| | | | | | | + 0.50% ceph::buffer::ptr::release
| | | | | | | + 0.40% ceph::buffer::raw_posix_aligned::~raw_posix_aligned
| | | | | | | | + 0.40% ~raw_posix_aligned
| | | | | | | | + 0.30% tc_free
| | | | | | | | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | | | | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | | | | | + 0.10% ~raw
| | | | | | | | + 0.10% ~map
| | | | | | | | + 0.10% ~_Rb_tree
| | | | | | | | + 0.10% 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.10% ceph::buffer::raw_combined::~raw_combined
| | | | | | | + 0.10% ~raw_combined
| | | | | | | + 0.10% ~raw
| | | | | | | + 0.10% mempool::pool_t::adjust_count
| | | | | | | + 0.10% operator+=
| | | | | | + 0.10% _M_put_node
| | | | | | + 0.10% deallocate
| | | | | | + 0.10% deallocate
| | | | | | + 0.10% tc_delete
| | | | | + 0.10% ~intrusive_ptr
| | | | | + 0.10% intrusive_ptr_release
| | | | | + 0.10% put
| | | | | + 0.10% operator--
| | | | + 0.30% ~vector
| | | | | + 0.30% ~_Vector_base
| | | | | + 0.30% _M_deallocate
| | | | | + 0.30% deallocate
| | | | | + 0.30% deallocate
| | | | | + 0.30% tc_delete
| | | | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | | + 0.10% ~request_redirect_t
| | | | + 0.10% ~list
| | | | + 0.10% ~list
| | | | + 0.10% ~_List_base
| | | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.20% tc_delete
| | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | + 0.10% ceph::buffer::list::append
| | | + 0.10% create
| | | + 0.10% tc_posix_memalign
| | | + 0.10% (anonymous namespace)::do_memalign(unsigned long, unsigned long)
| | + 0.10% PerfCounters::inc
| + 2.90% AsyncConnection::prepare_send_message
| | + 2.70% Message::encode
| | + 1.60% MOSDOpReply::encode_payload
| | | + 0.80% encode
| | | | + 0.30% pg_t::encode
| | | | | + 0.30% encode
| | | | | + 0.20% encode_raw<ceph_le<unsigned int> >
| | | | | | + 0.20% ceph::buffer::list::append
| | | | | | + 0.10% ceph::buffer::ptr::append
| | | | | | + 0.10% maybe_inline_memcpy
| | | | | + 0.10% encode_raw<ceph_le<unsigned long long> >
| | | | | + 0.10% ceph::buffer::list::append
| | | | | + 0.10% ceph::buffer::ptr::append
| | | | | + 0.10% maybe_inline_memcpy
| | | | + 0.30% encode
| | | | | + 0.20% encode
| | | | | | + 0.10% encode_raw<ceph_le<unsigned int> >
| | | | | | + 0.10% encode
| | | | | | + 0.10% encode_raw<ceph_le<unsigned int> >
| | | | | | + 0.10% ceph::buffer::list::append
| | | | | | + 0.10% ceph::buffer::ptr::ptr
| | | | | + 0.10% encode_raw<unsigned char>
| | | | + 0.10% encode_raw<ceph_le<unsigned long long> >
| | | | | + 0.10% ceph::buffer::list::append
| | | | | + 0.10% ceph::buffer::ptr::append
| | | | | + 0.10% maybe_inline_memcpy
| | | | + 0.10% encode_raw<ceph_le<unsigned int> >
| | | | + 0.10% ceph::buffer::list::append
| | | | + 0.10% ceph::buffer::ptr::append
| | | + 0.50% OSDOp::merge_osd_op_vector_out_data
| | | | + 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.30% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | | + 0.30% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | | + 0.30% ceph::buffer::ptr::ptr
| | | | + 0.10% _M_get_node
| | | | + 0.10% allocate
| | | | + 0.10% allocate
| | | | + 0.10% tc_new
| | | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.20% Message::encode_trace
| | | | + 0.20% encode
| | | | + 0.20% encode
| | | | + 0.20% encode_raw<ceph_le<unsigned long long> >
| | | | + 0.20% ceph::buffer::list::append
| | | + 0.10% empty
| | + 0.80% calc_data_crc
| | | + 0.80% ceph::buffer::list::crc32c
| | | + 0.80% ceph_crc32c
| | | + 0.80% ceph_crc32c_intel_fast
| | | + 0.80% ???
| | | + 0.80% ???
| | | + 0.80% crc32_iscsi_00
| | + 0.30% calc_front_crc
| | + 0.30% ceph::buffer::list::crc32c
| | + 0.30% ceph_crc32c
| | + 0.30% ceph_crc32c_intel_baseline
| + 0.50% _get_next_outgoing
| | + 0.50% erase
| | + 0.40% _M_erase
| | | + 0.40% _M_put_node
| | | + 0.40% deallocate
| | | + 0.40% deallocate
| | | + 0.40% tc_delete
| | | + 0.30% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.30% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.10% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.10% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | + 0.10% std::_Rb_tree<int, std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > >, std::_Select1st<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > >, std::less<int>, std::allocator<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::erase
| | + 0.10% _M_erase_aux
| | + 0.10% clear
| | + 0.10% std::_Rb_tree<int, std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > >, std::_Select1st<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > >, std::less<int>, std::allocator<std::pair<int const, std::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::_M_erase
| + 0.40% lock
| | + 0.40% __gthread_mutex_lock
| | + 0.30% pthread_mutex_lock
| | | + 0.30% _L_lock_812
| | | + 0.30% __lll_lock_wait
| | + 0.10% pthread_mutex_lock@plt
| + 0.30% list
| | + 0.20% ceph::buffer::list::iterator_impl<false>::advance
| | + 0.10% ceph::buffer::list::iterator_impl<false>::iterator_impl
| + 0.10% ~ptr
| + 0.10% unlock
| | + 0.10% __gthread_mutex_unlock
| | + 0.10% pthread_mutex_unlock
| + 0.10% now
| + 0.10% clock_gettime
| + 0.10% clock_gettime
+ 1.40% do_request
| + 1.40% read
| + 1.40% read
+ 0.30% now
| + 0.20% clock_gettime
| + 0.10% clock_gettime
+ 0.10% ~vector
| + 0.10% ~_Vector_base
| + 0.10% _M_deallocate
| + 0.10% deallocate
| + 0.10% deallocate
| + 0.10% tc_delete
+ 0.10% deque
+ 0.10% _Deque_base
+ 0.10% _M_initialize_map
+ 0.10% _M_allocate_map
+ 0.10% allocate
+ 0.10% allocate
+ 0.10% tc_new
Thread: 131 (log) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ceph::logging::Log::entry
+ 100.00% pthread_cond_wait@@GLIBC_2.3.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment