Skip to content

Instantly share code, notes, and snippets.

@rzarzynski
Last active January 18, 2018 15:27
Show Gist options
  • Save rzarzynski/482fbe74bd9684cc517dc57b8ec057ba to your computer and use it in GitHub Desktop.
Save rzarzynski/482fbe74bd9684cc517dc57b8ec057ba to your computer and use it in GitHub Desktop.
Hot spots:
* Locking in OSD::schedule_recovery_work() in bstore_aio:
The underlying recovery_gen_wq does extensive mutex dance around multiple
std::lists (_queue, to_process, to_finish). This includes memallocs under
coarse-grained lock. See:
+ https://github.com/ceph/ceph/blob/2a87e2cbe5438afa2410e866fccb12978c4c8092/src/common/WorkQueue.h#L236-L240
+ https://github.com/ceph/ceph/blob/2a87e2cbe5438afa2410e866fccb12978c4c8092/src/common/WorkQueue.h#L543-L545
+ https://github.com/ceph/ceph/blob/2a87e2cbe5438afa2410e866fccb12978c4c8092/src/common/WorkQueue.cc#L112-L130
+ https://github.com/ceph/ceph/blob/2a87e2cbe5438afa2410e866fccb12978c4c8092/src/common/WorkQueue.h#L192-L224
* The osd_tp_disk thread.
By default there is single osd_tp_disk per OSD. The disk_tp pool lacks sharding.
* PG::locking in tp_osd_disk
tp_osd_tp spent around 9% of the recorded time just waiting on the PG::lock.
* The second run of execute_ctx. The whole function takes 31% while its callees,
complete_read_ctx and OpTracker::unregister_inflight_op, are responsible for
just for ~20%.
rbd_iodepth32: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=rbd, iodepth=32
fio-3.0-32-g83070-dirty
Starting 1 process
rbd_iodepth32: (groupid=0, jobs=1): err= 0: pid=4071: Wed Jan 17 10:56:31 2018
read: IOPS=25.1k, BW=98.0MiB/s (103MB/s)(5882MiB/60001msec)
slat (nsec): min=999, max=1370.8k, avg=7638.31, stdev=20668.87
clat (usec): min=156, max=10010, avg=1266.41, stdev=422.78
lat (usec): min=265, max=10028, avg=1274.04, stdev=421.89
clat percentiles (usec):
| 1.00th=[ 523], 5.00th=[ 685], 10.00th=[ 791], 20.00th=[ 930],
| 30.00th=[ 1045], 40.00th=[ 1139], 50.00th=[ 1237], 60.00th=[ 1319],
| 70.00th=[ 1434], 80.00th=[ 1565], 90.00th=[ 1762], 95.00th=[ 1942],
| 99.00th=[ 2376], 99.50th=[ 2671], 99.90th=[ 4817], 99.95th=[ 5407],
| 99.99th=[ 6718]
bw ( KiB/s): min=92408, max=102480, per=100.00%, avg=100390.51, stdev=1516.69, samples=120
iops : min=23102, max=25620, avg=25097.62, stdev=379.16, samples=120
lat (usec) : 250=0.01%, 500=0.76%, 750=7.06%, 1000=18.18%
lat (msec) : 2=70.02%, 4=3.81%, 10=0.18%, 20=0.01%
cpu : usr=39.97%, sys=26.98%, ctx=1755038, majf=0, minf=7
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
issued rwt: total=1505889,0,0, short=0,0,0, dropped=0,0,0
latency : target=0, window=0, percentile=100.00%, depth=32
Run status group 0 (all jobs):
READ: bw=98.0MiB/s (103MB/s), 98.0MiB/s-98.0MiB/s (103MB/s-103MB/s), io=5882MiB (6168MB), run=60001-60001msec
Disk stats (read/write):
dm-1: ios=1502160/1071, merge=0/0, ticks=136336/660, in_queue=138028, util=83.17%, aggrios=1505889/1253, aggrmerge=0/0, aggrticks=135140/676, aggrin_queue=136736, aggrutil=82.97%
dm-0: ios=1505889/1253, merge=0/0, ticks=135140/676, in_queue=136736, util=82.97%, aggrios=1505889/907, aggrmerge=0/346, aggrticks=105416/580, aggrin_queue=105832, aggrutil=78.31%
nvme0n1: ios=1505889/907, merge=0/346, ticks=105416/580, in_queue=105832, util=78.31%
Thread: 15 (bstore_aio) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% KernelDevice::AioCompletionThread::entry
+ 100.00% KernelDevice::_aio_thread
+ 90.90% aio_queue_t::get_next_completed
| + 90.80% ???
| + 0.10% io_getevents
+ 8.40% BlueStore::AioReadBatch::aio_finish
| + 4.10% PrimaryLogPG::schedule_recovery_work
| | + 4.10% ThreadPool::WorkQueueVal<GenContext<ThreadPool::TPHandle&>*, GenContext<ThreadPool::TPHandle&>*>::queue
| | + 3.70% Mutex::Locker::Locker
| | | + 3.70% Mutex::Lock
| | | + 2.00% Mutex::_will_lock
| | | | + 2.00% lockdep_will_lock
| | | | + 1.80% __GI___pthread_mutex_lock
| | | | | + 1.60% __lll_lock_wait
| | | | + 0.20% __GI___pthread_mutex_unlock
| | | | + 0.20% __pthread_mutex_unlock_usercnt
| | | | + 0.10% __lll_unlock_wake
| | | + 1.30% __GI___pthread_mutex_lock
| | | | + 1.30% __lll_lock_wait
| | | + 0.40% Mutex::TryLock
| | | + 0.40% Mutex::_locked
| | | + 0.40% lockdep_locked
| | | + 0.20% __GI___pthread_mutex_unlock
| | | | + 0.20% __pthread_mutex_unlock_usercnt
| | | | + 0.20% __lll_unlock_wake
| | | + 0.10% __pthread_self
| | | + 0.10% __GI___pthread_mutex_lock
| | | + 0.10% __lll_lock_wait
| | + 0.30% Cond::SignalOne
| | | + 0.30% pthread_cond_signal@@GLIBC_2.3.2
| | + 0.10% GenContextWQ::_enqueue
| | + 0.10% std::__cxx11::list<GenContext<ThreadPool::TPHandle&>*, std::allocator<GenContext<ThreadPool::TPHandle&>*> >::push_back
| | + 0.10% std::__cxx11::list<GenContext<ThreadPool::TPHandle&>*, std::allocator<GenContext<ThreadPool::TPHandle&>*> >::_M_insert<GenContext<ThreadPool::TPHandle&>* const&>
| | + 0.10% std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)
| + 2.40% BlueStore::PlainRegionReader::postprocess
| | + 1.80% BlueStore::RegionReader::_verify_csum
| | | + 1.30% bluestore_blob_t::verify_csum
| | | | + 1.30% Checksummer::verify<Checksummer::crc32c>
| | | | + 0.70% Checksummer::crc32c::calc
| | | | | + 0.70% ceph::buffer::list::iterator_impl<true>::crc32c
| | | | | + 0.60% ceph_crc32c
| | | | | | + 0.60% ceph_crc32c_intel_fast
| | | | | | + 0.60% ???
| | | | | | + 0.60% ???
| | | | | | + 0.60% crc32_iscsi_00
| | | | | + 0.10% ceph::buffer::list::iterator_impl<true>::get_ptr_and_advance
| | | | | + 0.10% ceph::buffer::ptr::c_str
| | | | + 0.30% ceph::buffer::ptr::c_str
| | | | | + 0.10% ceph::buffer::raw::get_data
| | | | + 0.20% ceph::buffer::list::begin
| | | | + 0.20% ceph::buffer::list::iterator_impl<true>::advance
| | | + 0.20% PerfGuard::~PerfGuard
| | | | + 0.10% PerfCounters::tinc
| | | + 0.20% PerfGuard::PerfGuard
| | | + 0.20% ceph::time_detail::real_clock::now
| | | + 0.10% __GI___clock_gettime
| | | + 0.10% clock_gettime
| | + 0.30% ceph::buffer::list::substr_of
| | | + 0.10% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::push_back(ceph::buffer::ptr&&)
| | | | + 0.10% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_insert<ceph::buffer::ptr>(std::_List_iterator<ceph::buffer::ptr>, ceph::buffer::ptr&&)
| | | | + 0.10% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_create_node<ceph::buffer::ptr>(ceph::buffer::ptr&&)
| | | | + 0.10% std::__cxx11::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_get_node
| | | | + 0.10% std::allocator_traits<std::allocator<std::_List_node<ceph::buffer::ptr> > >::allocate
| | | | + 0.10% __gnu_cxx::new_allocator<std::_List_node<ceph::buffer::ptr> >::allocate
| | | | + 0.10% operator new(unsigned long)
| | | | + 0.10% malloc
| | | + 0.10% ceph::buffer::ptr::ptr
| | | + 0.10% ceph::buffer::list::clear
| | | + 0.10% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | + 0.20% std::map<unsigned long, ceph::buffer::list, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ceph::buffer::list> > >::operator[]
| | + 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_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% 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<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_create_node<std::piecewise_construct_t const&, std::tuple<unsigned long const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<unsigned long const&>&&, std::tuple<>&&)
| | + 0.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_get_node
| | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, ceph::buffer::list> > > >::allocate
| | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, ceph::buffer::list> > >::allocate
| | + 0.10% operator new(unsigned long)
| | + 0.10% malloc
| + 0.60% BlueStore::AioReadBatch::~AioReadBatch
| | + 0.60% BlueStore::AioReadBatch::~AioReadBatch
| | + 0.40% boost::container::small_vector<BlueStore::AioReadBatch::read_ctx_t, 1ul, boost::container::new_allocator<BlueStore::AioReadBatch::read_ctx_t> >::~small_vector
| | | + 0.40% boost::container::small_vector_base<BlueStore::AioReadBatch::read_ctx_t, boost::container::new_allocator<BlueStore::AioReadBatch::read_ctx_t> >::~small_vector_base
| | | + 0.40% boost::container::vector<BlueStore::AioReadBatch::read_ctx_t, boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::AioReadBatch::read_ctx_t> > >::~vector
| | | + 0.40% boost::container::destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::AioReadBatch::read_ctx_t> >, BlueStore::AioReadBatch::read_ctx_t*, unsigned long>
| | | + 0.40% boost::container::allocator_traits<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::AioReadBatch::read_ctx_t> > >::destroy<BlueStore::AioReadBatch::read_ctx_t>
| | | + 0.40% boost::container::allocator_traits<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::AioReadBatch::read_ctx_t> > >::priv_destroy<BlueStore::AioReadBatch::read_ctx_t>
| | | + 0.40% BlueStore::AioReadBatch::read_ctx_t::~read_ctx_t
| | | + 0.40% BlueStore::cache_response_t::~cache_response_t
| | | + 0.40% std::map<boost::intrusive_ptr<BlueStore::Blob>, 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> > > > >::~map
| | | + 0.40% 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> > > > >::~_Rb_tree
| | | + 0.40% 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
| | | + 0.40% 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_drop_node
| | | + 0.30% 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_destroy_node
| | | | + 0.30% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > > >::destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > >
| | | | + 0.30% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > >::destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > >
| | | | + 0.30% std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > >::~pair
| | | | + 0.30% std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> >::~unique_ptr
| | | | + 0.30% std::default_delete<BlueStore::RegionReader>::operator()
| | | | + 0.20% free
| | | | | + 0.10% ???
| | | | | + 0.10% ???
| | | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader
| | | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader
| | | | + 0.10% BlueStore::RegionReader::~RegionReader
| | | | + 0.10% boost::intrusive_ptr<BlueStore::Blob>::~intrusive_ptr
| | | | + 0.10% intrusive_ptr_release
| | | | + 0.10% BlueStore::Blob::put
| | | + 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_put_node
| | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > > >::deallocate
| | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > >::deallocate
| | | + 0.10% free
| | | + 0.10% ???
| | + 0.20% IOContext::~IOContext
| | + 0.10% pthread_cond_destroy@plt
| | + 0.10% __pthread_cond_destroy
| + 0.30% free
| | + 0.20% ???
| | + 0.10% ???
| + 0.20% PrimaryLogPG::OpContext::BlessedReadCompleter::complete
| | + 0.10% PrimaryLogPG::OpContext::BlessedReadCompleter::finish
| | + 0.10% boost::intrusive_ptr<PrimaryLogPG>::operator->
| + 0.20% Mutex::Unlock
| | + 0.20% Mutex::_will_unlock
| | + 0.20% lockdep_will_unlock
| | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::clear
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | + 0.10% free
| | + 0.10% __GI___pthread_mutex_unlock
| | + 0.10% __pthread_mutex_unlock_usercnt
| | + 0.10% __lll_unlock_wake
| + 0.20% BlueStore::_do_read_compose_result
| | + 0.20% ceph::buffer::list::claim_append
| | + 0.10% ceph::buffer::list::begin
| | + 0.10% ceph::buffer::list::iterator::iterator
| + 0.10% FillInVerifyExtent::~FillInVerifyExtent
| | + 0.10% FillInVerifyExtent::~FillInVerifyExtent
| | + 0.10% hobject_t::~hobject_t
| | + 0.10% object_t::~object_t
| | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
| | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose
| | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy
| | + 0.10% std::allocator_traits<std::allocator<char> >::deallocate
| | + 0.10% __gnu_cxx::new_allocator<char>::deallocate
| | + 0.10% free
| | + 0.10% ???
| | + 0.10% ???
| | + 0.10% ???
| + 0.10% BlueStore::_do_read_compose_sparse_result
| + 0.10% ceph::buffer::list::claim_append
| + 0.10% ceph::buffer::list::make_shareable
| + 0.10% ceph::buffer::ptr::make_shareable
| + 0.10% ceph::buffer::raw::is_shareable
+ 0.20% aio_cb
+ 0.10% ceph::logging::SubsystemMap::should_gather
+ 0.10% std::vector<ceph::logging::Subsystem, std::allocator<ceph::logging::Subsystem> >::size
...
Thread: 58 (tp_osd_disk) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% ThreadPool::WorkThread::entry
+ 100.00% ThreadPool::worker
+ 51.90% Cond::WaitInterval
| + 51.90% Cond::WaitUntil
| + 51.90% pthread_cond_timedwait@@GLIBC_2.3.2
| + 0.30% __pthread_mutex_cond_lock
| + 0.30% __lll_lock_wait
+ 43.10% ThreadPool::WorkQueueVal<GenContext<ThreadPool::TPHandle&>*, GenContext<ThreadPool::TPHandle&>*>::_void_process
| + 41.90% GenContextWQ::_process
| | + 41.90% GenContext<ThreadPool::TPHandle&>::complete<ThreadPool::TPHandle&>
| | + 40.70% non-virtual thunk to PrimaryLogPG::OpContext::start_async_reads(PrimaryLogPG*)::BlessedReadCompleter::finish(ThreadPool::TPHandle&)
| | | + 31.50% PrimaryLogPG::execute_ctx
| | | | + 11.90% PrimaryLogPG::complete_read_ctx
| | | | | + 4.70% PG::publish_stats_to_osd
| | | | | | + 2.50% md_config_t::get_val<unsigned long>
| | | | | | | + 2.50% md_config_t::get_val_generic
| | | | | | | + 2.30% md_config_t::_get_val_generic
| | | | | | | | + 0.80% std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::at
| | | | | | | | | + 0.80% std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::lower_bound
| | | | | | | | | + 0.80% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::lower_bound
| | | | | | | | | + 0.80% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::_M_lower_bound
| | | | | | | | | + 0.80% std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator()
| | | | | | | | | + 0.80% std::operator< <char, std::char_traits<char>, std::allocator<char> >
| | | | | | | | | + 0.80% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare
| | | | | | | | | + 0.70% std::char_traits<char>::compare
| | | | | | | | | + 0.70% __memcmp_sse4_1
| | | | | | | | + 0.80% std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Option const&, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> > >::find
| | | | | | | | | + 0.80% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> > >::find
| | | | | | | | | + 0.70% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> > >::_M_lower_bound
| | | | | | | | | + 0.70% std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator()
| | | | | | | | | + 0.70% std::operator< <char, std::char_traits<char>, std::allocator<char> >
| | | | | | | | | + 0.70% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare
| | | | | | | | | + 0.70% std::char_traits<char>::compare
| | | | | | | | | + 0.70% __memcmp_sse4_1
| | | | | | | | + 0.60% ConfFile::normalize_key_name
| | | | | | | | + 0.50% ConfFile::trim_whitespace
| | | | | | | | + 0.20% isspace@plt
| | | | | | | | + 0.10% strlen
| | | | | | | | + 0.10% isspace
| | | | | | | + 0.10% Mutex::Locker::Locker
| | | | | | | + 0.10% Mutex::Lock
| | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | + 0.50% Mutex::Unlock
| | | | | | | + 0.50% Mutex::_will_unlock
| | | | | | | + 0.50% lockdep_will_unlock
| | | | | | | + 0.20% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | + 0.10% std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >::operator++
| | | | | | | | | + 0.10% std::_Rb_tree_increment(std::_Rb_tree_node_base const*)@plt
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | | | | + 0.10% free
| | | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_bucket_index
| | | | | | | | + 0.10% std::__detail::_Hash_code_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::__detail::_Select1st, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false>::_M_bucket_index
| | | | | | | | + 0.10% std::__detail::_Mod_range_hashing::operator()
| | | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | + 0.10% __lll_lock_wait
| | | | | | + 0.40% PG::_update_calc_stats
| | | | | | | + 0.30% std::shared_ptr<OSDMap const>::~shared_ptr
| | | | | | | | + 0.30% std::__shared_ptr<OSDMap const, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr
| | | | | | | | + 0.30% std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count
| | | | | | | | + 0.30% std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release
| | | | | | | + 0.10% PG::get_osdmap
| | | | | | + 0.30% pg_stat_t::operator=
| | | | | | | + 0.10% std::vector<int, std::allocator<int> >::operator=
| | | | | | + 0.20% Mutex::Lock
| | | | | | | + 0.10% Mutex::_will_lock
| | | | | | | | + 0.10% lockdep_will_lock
| | | | | | | | + 0.10% __pthread_self
| | | | | | | + 0.10% Mutex::TryLock
| | | | | | | + 0.10% Mutex::_locked
| | | | | | | + 0.10% lockdep_locked
| | | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_bucket_index
| | | | | | | + 0.10% std::__detail::_Hash_code_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::__detail::_Select1st, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false>::_M_bucket_index
| | | | | | | + 0.10% std::__detail::_Mod_range_hashing::operator()
| | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy
| | | | | | | + 0.10% std::allocator_traits<std::allocator<char> >::deallocate
| | | | | | | + 0.10% __gnu_cxx::new_allocator<char>::deallocate
| | | | | | | + 0.10% free
| | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*>
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy_chars
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy
| | | | | | | + 0.10% std::char_traits<char>::copy
| | | | | | | + 0.10% __memcpy_avx_unaligned
| | | | | | + 0.10% pg_stat_t::~pg_stat_t
| | | | | | | + 0.10% std::vector<int, std::allocator<int> >::~vector
| | | | | | | + 0.10% std::_Vector_base<int, std::allocator<int> >::~_Vector_base
| | | | | | | + 0.10% std::_Vector_base<int, std::allocator<int> >::_M_deallocate
| | | | | | | + 0.10% std::allocator_traits<std::allocator<int> >::deallocate
| | | | | | | + 0.10% __gnu_cxx::new_allocator<int>::deallocate
| | | | | | | + 0.10% free
| | | | | | + 0.10% pg_stat_t::pg_stat_t
| | | | | | + 0.10% operator==
| | | | | | + 0.10% free
| | | | | | + 0.10% PG::_update_blocked_by
| | | | | | + 0.10% ???
| | | | | | + 0.10% ???
| | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | + 3.50% PrimaryLogPG::close_op_ctx
| | | | | | + 1.70% PrimaryLogPG::release_object_locks
| | | | | | | + 0.80% ObcLockManager::put_locks
| | | | | | | | + 0.40% std::pair<hobject_t const, ObcLockManager::ObjectLockState>::pair
| | | | | | | | | + 0.40% hobject_t::hobject_t
| | | | | | | | | + 0.20% object_t::object_t
| | | | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>
| | | | | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>
| | | | | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | | | + 0.20% std::map<hobject_t, ObcLockManager::ObjectLockState, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, ObcLockManager::ObjectLockState> > >::clear
| | | | | | | | | + 0.20% std::_Rb_tree<hobject_t, std::pair<hobject_t const, ObcLockManager::ObjectLockState>, std::_Select1st<std::pair<hobject_t const, ObcLockManager::ObjectLockState> >, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, ObcLockManager::ObjectLockState> > >::clear
| | | | | | | | | + 0.20% std::_Rb_tree<hobject_t, std::pair<hobject_t const, ObcLockManager::ObjectLockState>, std::_Select1st<std::pair<hobject_t const, ObcLockManager::ObjectLockState> >, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, ObcLockManager::ObjectLockState> > >::_M_erase
| | | | | | | | | + 0.20% std::_Rb_tree<hobject_t, std::pair<hobject_t const, ObcLockManager::ObjectLockState>, std::_Select1st<std::pair<hobject_t const, ObcLockManager::ObjectLockState> >, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, ObcLockManager::ObjectLockState> > >::_M_drop_node
| | | | | | | | | + 0.20% std::_Rb_tree<hobject_t, std::pair<hobject_t const, ObcLockManager::ObjectLockState>, std::_Select1st<std::pair<hobject_t const, ObcLockManager::ObjectLockState> >, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, ObcLockManager::ObjectLockState> > >::_M_put_node
| | | | | | | | | + 0.20% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<hobject_t const, ObcLockManager::ObjectLockState> > > >::deallocate
| | | | | | | | | + 0.20% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<hobject_t const, ObcLockManager::ObjectLockState> > >::deallocate
| | | | | | | | | + 0.10% free
| | | | | | | | + 0.20% std::make_pair<hobject_t&, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > >(hobject_t&, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > >&&)
| | | | | | | | + 0.20% std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > >::pair<hobject_t&, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > >, true>(hobject_t&, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > >&&)
| | | | | | | | + 0.20% hobject_t::hobject_t
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | | + 0.50% std::__cxx11::list<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > >, std::allocator<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > >::~list
| | | | | | | | + 0.50% std::__cxx11::_List_base<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > >, std::allocator<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > >::~_List_base
| | | | | | | | + 0.50% std::__cxx11::_List_base<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > >, std::allocator<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > >::_M_clear
| | | | | | | | + 0.30% std::allocator_traits<std::allocator<std::_List_node<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > > >::destroy<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > >
| | | | | | | | | + 0.30% __gnu_cxx::new_allocator<std::_List_node<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > >::destroy<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > >
| | | | | | | | | + 0.30% std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > >::~pair
| | | | | | | | | + 0.30% hobject_t::~hobject_t
| | | | | | | | | + 0.30% object_t::~object_t
| | | | | | | | | + 0.30% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
| | | | | | | | | + 0.30% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose
| | | | | | | | | + 0.30% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy
| | | | | | | | | + 0.30% std::allocator_traits<std::allocator<char> >::deallocate
| | | | | | | | | + 0.30% __gnu_cxx::new_allocator<char>::deallocate
| | | | | | | | | + 0.20% free
| | | | | | | | | + 0.10% operator delete(void*)
| | | | | | | | + 0.20% std::__cxx11::_List_base<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > >, std::allocator<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > >::_M_put_node
| | | | | | | | + 0.20% std::allocator_traits<std::allocator<std::_List_node<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > > >::deallocate
| | | | | | | | + 0.20% __gnu_cxx::new_allocator<std::_List_node<std::pair<hobject_t, std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > > > > >::deallocate
| | | | | | | | + 0.20% free
| | | | | | | | + 0.10% ???
| | | | | | | + 0.20% hobject_t::get_head
| | | | | | | | + 0.20% hobject_t::hobject_t
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>
| | | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | | + 0.10% hobject_t::~hobject_t
| | | | | | | | + 0.10% object_t::~object_t
| | | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
| | | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose
| | | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy
| | | | | | | | + 0.10% std::allocator_traits<std::allocator<char> >::deallocate
| | | | | | | | + 0.10% __gnu_cxx::new_allocator<char>::deallocate
| | | | | | | | + 0.10% free
| | | | | | | + 0.10% PG::requeue_ops
| | | | | | | + 0.10% std::__cxx11::list<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > >::clear
| | | | | | | + 0.10% std::__cxx11::_List_base<boost::intrusive_ptr<OpRequest>, std::allocator<boost::intrusive_ptr<OpRequest> > >::_M_clear
| | | | | | + 1.50% PrimaryLogPG::OpContext::~OpContext
| | | | | | | + 0.60% std::unique_ptr<ObjectStore::ReadTransaction, std::default_delete<ObjectStore::ReadTransaction> >::~unique_ptr
| | | | | | | | + 0.60% std::default_delete<ObjectStore::ReadTransaction>::operator()
| | | | | | | | + 0.50% BlueStore::BlueReadTrans::~BlueReadTrans
| | | | | | | | | + 0.50% BlueStore::BlueReadTrans::~BlueReadTrans
| | | | | | | | | + 0.20% boost::intrusive_ptr<ObjectStore::CollectionImpl>::~intrusive_ptr
| | | | | | | | | | + 0.20% intrusive_ptr_release
| | | | | | | | | | + 0.20% RefCountedObject::put
| | | | | | | | | | + 0.20% std::__atomic_base<unsigned long>::operator--
| | | | | | | | | + 0.20% boost::intrusive_ptr<BlueStore::Onode>::~intrusive_ptr
| | | | | | | | | + 0.20% intrusive_ptr_release
| | | | | | | | | + 0.20% BlueStore::Onode::put
| | | | | | | | + 0.10% free
| | | | | | | | + 0.10% ???
| | | | | | | + 0.40% ObjectState::~ObjectState
| | | | | | | | + 0.30% free
| | | | | | | | | + 0.20% ???
| | | | | | | | | + 0.20% ???
| | | | | | | | | + 0.10% ???
| | | | | | | | | + 0.10% ???
| | | | | | | | + 0.10% object_info_t::~object_info_t
| | | | | | | | + 0.10% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::~interval_set
| | | | | | | | + 0.10% std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::~map
| | | | | | | | + 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> > >::~_Rb_tree
| | | | | | | | + 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_erase
| | | | | | | | + 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_drop_node
| | | | | | | | + 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_put_node
| | | | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > > >::deallocate
| | | | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > >::deallocate
| | | | | | | | + 0.10% free
| | | | | | | + 0.20% std::map<int, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::~map
| | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >, std::_Select1st<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::~_Rb_tree
| | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >, std::_Select1st<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::_M_erase
| | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >, std::_Select1st<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::_M_drop_node
| | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >, std::_Select1st<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::_M_destroy_node
| | | | | | | | + 0.20% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > > >::destroy<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >
| | | | | | | | + 0.20% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::destroy<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >
| | | | | | | | + 0.20% std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >::~pair
| | | | | | | | + 0.20% std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> >::~unique_ptr
| | | | | | | | + 0.20% std::default_delete<PrimaryLogPG::OpFinisher>::operator()
| | | | | | | | + 0.10% free
| | | | | | | | + 0.10% PrimaryLogPG::OpContext::ReadFinisher::~ReadFinisher
| | | | | | | + 0.10% std::vector<std::pair<osd_reqid_t, unsigned long>, mempool::pool_allocator<(mempool::pool_index_t)14, std::pair<osd_reqid_t, unsigned long> > >::~vector
| | | | | | | + 0.10% std::__cxx11::list<std::function<void ()>, std::allocator<std::function<void ()> > >::~list()
| | | | | | | | + 0.10% std::__cxx11::_List_base<std::function<void ()>, std::allocator<std::function<void ()> > >::~_List_base()
| | | | | | | | + 0.10% std::__cxx11::_List_base<std::function<void ()>, std::allocator<std::function<void ()> > >::_M_clear()
| | | | | | | + 0.10% hobject_t::~hobject_t
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_is_local
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_local_data
| | | | | | + 0.20% TrackedOp::put
| | | | | | + 0.10% std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >::reset
| | | | | | + 0.10% std::default_delete<PGTransaction>::operator()
| | | | | | + 0.10% free
| | | | | + 2.10% OSDService::send_message_osd_client
| | | | | | + 2.10% AsyncConnection::send_message
| | | | | | + 0.80% std::lock_guard<std::mutex>::lock_guard
| | | | | | | + 0.80% std::mutex::lock
| | | | | | | + 0.80% __gthread_mutex_lock
| | | | | | | + 0.70% __GI___pthread_mutex_lock
| | | | | | | + 0.60% __lll_lock_wait
| | | | | | + 0.60% std::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > >::emplace_back<ceph::buffer::list, Message*&>(ceph::buffer::list&&, Message*&)
| | | | | | | + 0.60% std::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > >::_M_insert<ceph::buffer::list, Message*&>(std::_List_iterator<std::pair<ceph::buffer::list, Message*> >, ceph::buffer::list&&, Message*&)
| | | | | | | + 0.60% std::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > >::_M_create_node<ceph::buffer::list, Message*&>(ceph::buffer::list&&, Message*&)
| | | | | | | + 0.30% std::allocator_traits<std::allocator<std::_List_node<std::pair<ceph::buffer::list, Message*> > > >::construct<std::pair<ceph::buffer::list, Message*>, ceph::buffer::list, Message*&>(std::allocator<std::_List_node<std::pair<ceph::buffer::list, Message*> > >&, std::pair<ceph::buffer::list, Message*>*, ceph::buffer::list&&, Message*&)
| | | | | | | | + 0.30% __gnu_cxx::new_allocator<std::_List_node<std::pair<ceph::buffer::list, Message*> > >::construct<std::pair<ceph::buffer::list, Message*>, ceph::buffer::list, Message*&>(std::pair<ceph::buffer::list, Message*>*, ceph::buffer::list&&, Message*&)
| | | | | | | | + 0.30% std::pair<ceph::buffer::list, Message*>::pair<ceph::buffer::list, Message*&, true>(ceph::buffer::list&&, Message*&)
| | | | | | | | + 0.30% ceph::buffer::list::list(ceph::buffer::list&&)
| | | | | | | | + 0.10% ceph::buffer::ptr::swap
| | | | | | | | + 0.10% ceph::buffer::list::clear
| | | | | | | | + 0.10% ceph::buffer::list::begin
| | | | | | | | + 0.10% ceph::buffer::list::iterator_impl<false>::iterator_impl
| | | | | | | + 0.30% std::__cxx11::_List_base<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > >::_M_get_node
| | | | | | | + 0.30% std::allocator_traits<std::allocator<std::_List_node<std::pair<ceph::buffer::list, Message*> > > >::allocate
| | | | | | | + 0.30% __gnu_cxx::new_allocator<std::_List_node<std::pair<ceph::buffer::list, Message*> > >::allocate
| | | | | | | + 0.30% operator new(unsigned long)
| | | | | | | + 0.30% malloc
| | | | | | | + 0.10% ???
| | | | | | | + 0.10% ???
| | | | | | + 0.30% EventCenter::dispatch_event_external
| | | | | | | + 0.20% std::mutex::lock
| | | | | | | | + 0.20% __gthread_mutex_lock
| | | | | | | | + 0.20% __GI___pthread_mutex_lock
| | | | | | | | + 0.10% __lll_lock_wait
| | | | | | | + 0.10% std::deque<EventCallback*, std::allocator<EventCallback*> >::push_back
| | | | | | | + 0.10% std::allocator_traits<std::allocator<EventCallback*> >::construct<EventCallback*, EventCallback* const&>
| | | | | | | + 0.10% __gnu_cxx::new_allocator<EventCallback*>::construct<EventCallback*, EventCallback* const&>
| | | | | | + 0.20% PerfCounters::inc
| | | | | | + 0.10% std::map<int, std::__cxx11::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::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::operator[](int&&)
| | | | | | | + 0.10% std::map<int, std::__cxx11::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::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::lower_bound
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, std::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > >, std::_Select1st<std::pair<int const, std::__cxx11::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::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::lower_bound
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, std::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > >, std::_Select1st<std::pair<int const, std::__cxx11::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::__cxx11::list<std::pair<ceph::buffer::list, Message*>, std::allocator<std::pair<ceph::buffer::list, Message*> > > > > >::_M_lower_bound
| | | | | | + 0.10% std::lock_guard<std::mutex>::~lock_guard
| | | | | | + 0.10% std::mutex::unlock
| | | | | | + 0.10% __gthread_mutex_unlock
| | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | + 1.00% PrimaryLogPG::log_op_stats
| | | | | | + 0.30% PerfCounters::hinc
| | | | | | | + 0.10% PerfHistogram<2>::inc<long, long>
| | | | | | | + 0.10% PerfHistogram<2>::get_raw_index_for_value<long, long>
| | | | | | | + 0.10% PerfHistogram<2>::get_raw_index_internal<0, long (*)(long, PerfHistogramCommon::axis_config_d const&), long>
| | | | | | | + 0.10% PerfHistogramCommon::get_bucket_for_axis
| | | | | | | + 0.10% get_quants
| | | | | | + 0.20% operator-=
| | | | | | + 0.20% PerfCounters::inc
| | | | | | | + 0.10% std::__atomic_base<unsigned long>::operator+=
| | | | | | + 0.10% ceph_clock_now
| | | | | | | + 0.10% __GI___clock_gettime
| | | | | | | + 0.10% clock_gettime
| | | | | | | + 0.10% ???
| | | | | | + 0.10% PerfCounters::tinc
| | | | | | | + 0.10% std::__atomic_base<unsigned long>::operator+=
| | | | | | + 0.10% OpRequest::may_read
| | | | | | + 0.10% OpRequest::need_read_cap
| | | | | + 0.60% MOSDOpReply::claim_op_out_data
| | | | | + 0.60% ceph::buffer::list::claim
| | | | | + 0.60% ceph::buffer::list::clear
| | | | | + 0.30% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::clear
| | | | | | + 0.30% std::__cxx11::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | | | | + 0.20% std::allocator_traits<std::allocator<std::_List_node<ceph::buffer::ptr> > >::destroy<ceph::buffer::ptr>
| | | | | | | + 0.20% __gnu_cxx::new_allocator<std::_List_node<ceph::buffer::ptr> >::destroy<ceph::buffer::ptr>
| | | | | | | + 0.20% ceph::buffer::ptr::~ptr
| | | | | | | + 0.20% ceph::buffer::ptr::release
| | | | | | + 0.10% std::__cxx11::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_put_node
| | | | | | + 0.10% std::allocator_traits<std::allocator<std::_List_node<ceph::buffer::ptr> > >::deallocate
| | | | | | + 0.10% __gnu_cxx::new_allocator<std::_List_node<ceph::buffer::ptr> >::deallocate
| | | | | | + 0.10% free
| | | | | + 0.10% ceph::buffer::ptr::~ptr
| | | | | | + 0.10% ceph::buffer::ptr::release
| | | | | + 0.10% ceph::buffer::ptr::operator=(ceph::buffer::ptr&&)
| | | | + 10.40% intrusive_ptr_release
| | | | | + 9.40% OpTracker::unregister_inflight_op
| | | | | | + 4.20% OpHistory::insert
| | | | | | | + 2.40% TrackedOp::get_duration
| | | | | | | | + 1.00% Mutex::Locker::Locker
| | | | | | | | | + 1.00% Mutex::Lock
| | | | | | | | | + 0.60% Mutex::_will_lock
| | | | | | | | | | + 0.60% lockdep_will_lock
| | | | | | | | | | + 0.20% __GI___pthread_mutex_unlock
| | | | | | | | | | | + 0.20% __pthread_mutex_unlock_usercnt
| | | | | | | | | | + 0.10% std::_Rb_tree_iterator<std::pair<int const, ceph::BackTrace*> >::operator++
| | | | | | | | | + 0.30% Mutex::TryLock
| | | | | | | | | | + 0.30% Mutex::_locked
| | | | | | | | | | + 0.30% lockdep_locked
| | | | | | | | | | + 0.20% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | | | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >, std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | | | | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_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% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_get_insert_hint_unique_pos
| | | | | | | | | | | + 0.10% std::_Rb_tree_iterator<std::pair<int const, ceph::BackTrace*> >::operator--
| | | | | | | | | | | + 0.10% ???
| | | | | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | | + 0.90% Mutex::Locker::~Locker
| | | | | | | | | + 0.90% Mutex::Unlock
| | | | | | | | | + 0.90% Mutex::_will_unlock
| | | | | | | | | + 0.90% lockdep_will_unlock
| | | | | | | | | + 0.30% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | | | | | | + 0.30% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | | | | | | + 0.30% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | | | | | | + 0.30% free
| | | | | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | | | | | | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::lower_bound
| | | | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::lower_bound
| | | | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_lower_bound
| | | | | | | | | + 0.10% ceph::logging::SubsystemMap::should_gather
| | | | | | | | | | + 0.10% std::vector<ceph::logging::Subsystem, std::allocator<ceph::logging::Subsystem> >::size
| | | | | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | | + 0.30% TrackedOp::Event::compare
| | | | | | | | + 0.10% operator-
| | | | | | | + 0.70% Mutex::Locker::~Locker
| | | | | | | | + 0.70% Mutex::Unlock
| | | | | | | | + 0.60% Mutex::_will_unlock
| | | | | | | | + 0.60% lockdep_will_unlock
| | | | | | | | + 0.20% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | | | + 0.20% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | | + 0.10% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
| | | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | | | | | + 0.10% free
| | | | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | | | + 0.40% Mutex::Locker::Locker
| | | | | | | | + 0.40% Mutex::Lock
| | | | | | | | + 0.30% Mutex::_will_lock
| | | | | | | | | + 0.30% lockdep_will_lock
| | | | | | | | | + 0.20% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | | | + 0.20% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | | | + 0.10% Mutex::TryLock
| | | | | | | | + 0.10% Mutex::_locked
| | | | | | | | + 0.10% lockdep_locked
| | | | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | | | + 0.30% std::set<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::less<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > > >::insert(std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >&&)
| | | | | | | | + 0.20% std::_Rb_tree<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > > >::_M_insert_unique<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >(std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >&&)
| | | | | | | | + 0.20% std::_Rb_tree<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > > >::_M_get_insert_unique_pos
| | | | | | | | + 0.20% std::less<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >::operator()
| | | | | | | | + 0.20% std::operator< <utime_t, boost::intrusive_ptr<TrackedOp> >
| | | | | | | | + 0.20% operator<
| | | | | | | + 0.20% std::set<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::insert(std::pair<double, boost::intrusive_ptr<TrackedOp> >&&)
| | | | | | | | + 0.20% std::_Rb_tree<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::_M_insert_unique<std::pair<double, boost::intrusive_ptr<TrackedOp> > >(std::pair<double, boost::intrusive_ptr<TrackedOp> >&&)
| | | | | | | | + 0.10% std::_Rb_tree<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::_M_insert_<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Rb_tree<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::_Alloc_node>(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<double, boost::intrusive_ptr<TrackedOp> >&&, std::_Rb_tree<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::_Alloc_node&)
| | | | | | | | + 0.10% std::_Rb_tree<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::_Alloc_node::operator()<std::pair<double, boost::intrusive_ptr<TrackedOp> > >(std::pair<double, boost::intrusive_ptr<TrackedOp> >&&) const
| | | | | | | | + 0.10% std::_Rb_tree<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::_M_create_node<std::pair<double, boost::intrusive_ptr<TrackedOp> > >(std::pair<double, boost::intrusive_ptr<TrackedOp> >&&)
| | | | | | | | + 0.10% std::_Rb_tree<std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::pair<double, boost::intrusive_ptr<TrackedOp> >, std::_Identity<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::less<std::pair<double, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::_M_get_node
| | | | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<double, boost::intrusive_ptr<TrackedOp> > > > >::allocate
| | | | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<double, boost::intrusive_ptr<TrackedOp> > > >::allocate
| | | | | | | | + 0.10% operator new(unsigned long)
| | | | | | | | + 0.10% malloc
| | | | | | | + 0.20% OpHistory::cleanup
| | | | | | | + 0.10% std::set<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> >, std::less<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > >, std::allocator<std::pair<utime_t, boost::intrusive_ptr<TrackedOp> > > >::erase
| | | | | | | + 0.10% operator-
| | | | | | | + 0.10% utime_t::nsec
| | | | | | + 1.40% RWLock::RLocker::RLocker
| | | | | | | + 1.40% RWLock::get_read
| | | | | | | + 1.20% __GI___pthread_rwlock_rdlock
| | | | | | | + 0.20% lockdep_locked
| | | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | + 0.10% __lll_lock_wait
| | | | | | + 1.30% boost::intrusive_ptr<TrackedOp>::~intrusive_ptr
| | | | | | | + 1.30% intrusive_ptr_release
| | | | | | | + 1.30% TrackedOp::put
| | | | | | | + 1.30% OpRequest::~OpRequest
| | | | | | | + 1.30% OpRequest::~OpRequest
| | | | | | | + 1.00% TrackedOp::~TrackedOp
| | | | | | | | + 0.70% Mutex::~Mutex
| | | | | | | | | + 0.70% lockdep_unregister
| | | | | | | | | + 0.50% std::map<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find
| | | | | | | | | | + 0.50% std::_Rb_tree<int, std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find
| | | | | | | | | | + 0.50% std::_Rb_tree<int, std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<int>, std::allocator<std::pair<int const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound
| | | | | | | | | + 0.20% std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >::operator[]
| | | | | | | | | + 0.20% std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >::lower_bound
| | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::lower_bound
| | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, int>, std::_Select1st<std::pair<int const, int> >, std::less<int>, std::allocator<std::pair<int const, int> > >::_M_lower_bound
| | | | | | | | + 0.20% std::vector<TrackedOp::Event, std::allocator<TrackedOp::Event> >::~vector
| | | | | | | | | + 0.20% std::_Vector_base<TrackedOp::Event, std::allocator<TrackedOp::Event> >::~_Vector_base
| | | | | | | | | + 0.20% std::_Vector_base<TrackedOp::Event, std::allocator<TrackedOp::Event> >::_M_deallocate
| | | | | | | | | + 0.20% std::allocator_traits<std::allocator<TrackedOp::Event> >::deallocate
| | | | | | | | | + 0.20% __gnu_cxx::new_allocator<TrackedOp::Event>::deallocate
| | | | | | | | | + 0.20% free
| | | | | | | | | + 0.20% ???
| | | | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | | | + 0.10% ???
| | | | | | | | + 0.10% boost::intrusive::list_base_hook<void, void, void>::~list_base_hook
| | | | | | | + 0.30% RefCountedObject::put
| | | | | | | + 0.30% MOSDOp::~MOSDOp
| | | | | | | + 0.30% MOSDOp::~MOSDOp
| | | | | | | + 0.20% std::vector<OSDOp, std::allocator<OSDOp> >::~vector
| | | | | | | | + 0.20% std::_Vector_base<OSDOp, std::allocator<OSDOp> >::~_Vector_base
| | | | | | | | + 0.20% std::_Vector_base<OSDOp, std::allocator<OSDOp> >::_M_deallocate
| | | | | | | | + 0.20% std::allocator_traits<std::allocator<OSDOp> >::deallocate
| | | | | | | | + 0.20% __gnu_cxx::new_allocator<OSDOp>::deallocate
| | | | | | | | + 0.20% free
| | | | | | | + 0.10% MOSDFastDispatchOp::~MOSDFastDispatchOp
| | | | | | | + 0.10% Message::~Message
| | | | | | + 1.10% OpRequest::_unregistered
| | | | | | | + 0.60% Message::clear_payload
| | | | | | | | + 0.30% ceph::buffer::list::clear
| | | | | | | | | + 0.10% ceph::buffer::ptr::~ptr
| | | | | | | | | | + 0.10% ceph::buffer::ptr::release
| | | | | | | | | + 0.10% ceph::buffer::list::begin
| | | | | | | | | + 0.10% ceph::buffer::list::iterator_impl<false>::advance
| | | | | | | | + 0.10% Throttle::put
| | | | | | | + 0.50% Message::clear_data
| | | | | | | + 0.30% MOSDOp::clear_buffers
| | | | | | | | + 0.10% OSDOp::clear_data
| | | | | | | + 0.10% ceph::buffer::list::clear
| | | | | | | + 0.10% Throttle::put
| | | | | | | + 0.10% std::unique_lock<std::mutex>::~unique_lock
| | | | | | + 0.60% Mutex::Locker::Locker
| | | | | | | + 0.60% Mutex::Lock
| | | | | | | + 0.30% Mutex::TryLock
| | | | | | | | + 0.30% Mutex::_locked
| | | | | | | | + 0.30% lockdep_locked
| | | | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | | | + 0.10% lockdep_force_backtrace
| | | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | + 0.10% Mutex::_will_lock
| | | | | | | + 0.10% lockdep_will_lock
| | | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | + 0.30% Mutex::Locker::~Locker
| | | | | | | + 0.30% Mutex::Unlock
| | | | | | | + 0.30% Mutex::_will_unlock
| | | | | | | + 0.30% lockdep_will_unlock
| | | | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | | | | + 0.10% free
| | | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | + 0.20% RWLock::RLocker::~RLocker
| | | | | | | + 0.20% RWLock::unlock
| | | | | | | + 0.10% std::__atomic_base<unsigned int>::operator--
| | | | | | | | + 0.10% std::__atomic_base<unsigned int>::fetch_sub
| | | | | | | + 0.10% lockdep_will_unlock
| | | | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | | | + 0.10% free
| | | | | | | + 0.10% ???
| | | | | | + 0.10% std::__atomic_base<int>::operator=
| | | | | | | + 0.10% std::__atomic_base<int>::store
| | | | | | + 0.10% ceph_clock_now
| | | | | | + 0.10% __GI___clock_gettime
| | | | | | + 0.10% clock_gettime
| | | | | | + 0.10% ???
| | | | | + 1.00% TrackedOp::put
| | | | | + 0.90% TrackedOp::mark_event
| | | | | + 0.40% Mutex::Locker::~Locker
| | | | | | + 0.40% Mutex::Unlock
| | | | | | + 0.40% Mutex::_will_unlock
| | | | | | + 0.40% lockdep_will_unlock
| | | | | | + 0.30% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | | | + 0.30% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | | | + 0.30% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | | | + 0.30% free
| | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | + 0.40% Mutex::Locker::Locker
| | | | | + 0.40% Mutex::Lock
| | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | + 0.10% Mutex::_will_lock
| | | | | | + 0.10% lockdep_will_lock
| | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | + 0.10% Mutex::TryLock
| | | | | + 0.10% Mutex::_locked
| | | | | + 0.10% lockdep_locked
| | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >, std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_get_node
| | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::allocate
| | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::allocate
| | | | | + 0.10% operator new(unsigned long)
| | | | | + 0.10% malloc
| | | | + 2.70% PrimaryLogPG::prepare_transaction
| | | | | + 2.60% PrimaryLogPG::do_osd_ops
| | | | | + 1.20% md_config_t::get_val<bool>
| | | | | | + 1.10% md_config_t::get_val_generic
| | | | | | + 1.00% md_config_t::_get_val_generic
| | | | | | | + 0.60% std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::at
| | | | | | | | + 0.60% std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::lower_bound
| | | | | | | | + 0.60% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::lower_bound
| | | | | | | | + 0.60% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, boost::variant<boost::blank, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned long, long, double, bool, entity_addr_t, uuid_d> > > >::_M_lower_bound
| | | | | | | | + 0.40% std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator()
| | | | | | | | + 0.40% std::operator< <char, std::char_traits<char>, std::allocator<char> >
| | | | | | | | + 0.40% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare
| | | | | | | | + 0.40% std::char_traits<char>::compare
| | | | | | | | + 0.40% __memcmp_sse4_1
| | | | | | | + 0.30% ConfFile::normalize_key_name
| | | | | | | | + 0.30% ConfFile::trim_whitespace
| | | | | | | | + 0.20% isspace
| | | | | | | | + 0.10% strlen
| | | | | | | + 0.10% std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Option const&, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> > >::find
| | | | | | | + 0.10% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> > >::find
| | | | | | | + 0.10% std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Option const&> > >::_M_lower_bound
| | | | | | + 0.10% Mutex::Locker::Locker
| | | | | | + 0.10% Mutex::Lock
| | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | + 0.30% std::map<int, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::find
| | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >, std::_Select1st<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::find
| | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >, std::_Select1st<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::_M_lower_bound
| | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > >, std::_Select1st<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > >, std::less<int>, std::allocator<std::pair<int const, std::unique_ptr<PrimaryLogPG::OpFinisher, std::default_delete<PrimaryLogPG::OpFinisher> > > > >::_M_end
| | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string
| | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose
| | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_destroy
| | | | | | + 0.20% std::allocator_traits<std::allocator<char> >::deallocate
| | | | | | + 0.20% __gnu_cxx::new_allocator<char>::deallocate
| | | | | | + 0.20% free
| | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | + 0.10% std::char_traits<char>::length
| | | | | | + 0.10% strlen
| | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*>
| | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | + 0.10% operator new(unsigned long)
| | | | | + 0.10% malloc
| | | | | + 0.10% ???
| | | | | + 0.10% ???
| | | | | + 0.10% ???
| | | | + 1.70% PrimaryLogPG::do_osd_op_effects
| | | | | + 1.50% Connection::get_priv
| | | | | | + 0.60% Mutex::Locker::~Locker
| | | | | | | + 0.60% Mutex::Unlock
| | | | | | | + 0.60% Mutex::_will_unlock
| | | | | | | + 0.60% lockdep_will_unlock
| | | | | | | + 0.40% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | + 0.40% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | | | | + 0.40% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | | | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | | | | | | + 0.20% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | | | | | | + 0.20% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | | | | | | + 0.10% operator delete(void*)@plt
| | | | | | | | | | + 0.10% free@plt
| | | | | | | | | + 0.10% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
| | | | | | | | + 0.10% std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >::operator++
| | | | | | | | + 0.10% std::_Rb_tree_increment(std::_Rb_tree_node_base*)
| | | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | | | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::lower_bound
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::lower_bound
| | | | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_lower_bound
| | | | | | + 0.60% Mutex::Locker::Locker
| | | | | | | + 0.60% Mutex::Lock
| | | | | | | + 0.30% Mutex::_will_lock
| | | | | | | | + 0.30% lockdep_will_lock
| | | | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | | | + 0.20% __GI___pthread_mutex_lock
| | | | | | | | + 0.20% __lll_lock_wait
| | | | | | | + 0.10% Mutex::TryLock
| | | | | | | + 0.10% Mutex::_locked
| | | | | | | + 0.10% lockdep_locked
| | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | | + 0.10% __lll_lock_wait
| | | | | | + 0.30% RefCountedObject::get
| | | | | + 0.10% std::shared_ptr<ObjectContext>::~shared_ptr
| | | | | | + 0.10% std::__shared_ptr<ObjectContext, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr
| | | | | | + 0.10% std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count
| | | | | | + 0.10% std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release
| | | | | + 0.10% std::shared_ptr<ObjectContext>::shared_ptr
| | | | | + 0.10% std::__shared_ptr<ObjectContext, (__gnu_cxx::_Lock_policy)2>::__shared_ptr
| | | | | + 0.10% std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count
| | | | | + 0.10% std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy
| | | | | + 0.10% __gnu_cxx::__atomic_add_dispatch
| | | | | + 0.10% __gnu_cxx::__atomic_add
| | | | + 1.30% PrimaryLogPG::OpContext::reset_obs
| | | | | + 0.70% ObjectState::ObjectState
| | | | | | + 0.60% object_info_t::object_info_t
| | | | | | + 0.20% object_manifest_t::object_manifest_t
| | | | | | | + 0.20% hobject_t::hobject_t
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>
| | | | | | | + 0.10% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | + 0.20% hobject_t::hobject_t
| | | | | | | + 0.20% object_t::object_t
| | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>
| | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>
| | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy_chars
| | | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy
| | | | | | | + 0.20% std::char_traits<char>::copy
| | | | | | | + 0.20% __memcpy_avx_unaligned
| | | | | | + 0.10% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::interval_set
| | | | | | + 0.10% std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::map
| | | | | | + 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> > >::_Rb_tree
| | | | | | + 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_copy
| | | | | | + 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_copy<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> > >::_Alloc_node>
| | | | | | + 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_copy<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> > >::_Alloc_node>
| | | | | | + 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_clone_node<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> > >::_Alloc_node>
| | | | | | + 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> > >::_Alloc_node::operator()<std::pair<unsigned long const, unsigned long> const&>
| | | | | | + 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_create_node<std::pair<unsigned long const, unsigned long> const&>
| | | | | | + 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_get_node
| | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > > >::allocate
| | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > >::allocate
| | | | | + 0.30% ObjectState::operator=(ObjectState&&)
| | | | | | + 0.30% object_info_t::operator=(object_info_t&&)
| | | | | | + 0.10% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::operator=(interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >&&)
| | | | | | + 0.10% std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::operator=(std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, 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> > >::operator=(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> > >&&)
| | | | | | + 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_move_assign
| | | | | | + 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> > >::clear
| | | | | | + 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_erase
| | | | | | + 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_drop_node
| | | | | | + 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_put_node
| | | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > > >::deallocate
| | | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<unsigned long const, unsigned long> > >::deallocate
| | | | | | + 0.10% free
| | | | | + 0.20% ObjectState::~ObjectState
| | | | | | + 0.10% object_info_t::~object_info_t
| | | | | | | + 0.10% interval_set<unsigned long, std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > > >::~interval_set
| | | | | | | + 0.10% std::map<unsigned long, unsigned long, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, unsigned long> > >::~map
| | | | | | | + 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> > >::~_Rb_tree
| | | | | | + 0.10% free
| | | | | + 0.10% SnapSet::operator=
| | | | + 1.10% MOSDOpReply::MOSDOpReply
| | | | | + 0.30% std::vector<OSDOp, std::allocator<OSDOp> >::vector
| | | | | | + 0.30% std::__uninitialized_copy_a<__gnu_cxx::__normal_iterator<OSDOp const*, std::vector<OSDOp, std::allocator<OSDOp> > >, OSDOp*, OSDOp>
| | | | | | + 0.30% std::uninitialized_copy<__gnu_cxx::__normal_iterator<OSDOp const*, std::vector<OSDOp, std::allocator<OSDOp> > >, OSDOp*>
| | | | | | + 0.30% std::__uninitialized_copy<false>::__uninit_copy<__gnu_cxx::__normal_iterator<OSDOp const*, std::vector<OSDOp, std::allocator<OSDOp> > >, OSDOp*>
| | | | | | + 0.30% std::_Construct<OSDOp, OSDOp const&>
| | | | | | + 0.30% OSDOp::OSDOp
| | | | | | + 0.30% ceph::buffer::list::list
| | | | | | + 0.30% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::list
| | | | | | + 0.30% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_initialize_dispatch<std::_List_const_iterator<ceph::buffer::ptr> >
| | | | | | + 0.10% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::push_back
| | | | | | + 0.10% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_insert<ceph::buffer::ptr const&>
| | | | | | + 0.10% std::__cxx11::list<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_create_node<ceph::buffer::ptr const&>
| | | | | | + 0.10% std::allocator_traits<std::allocator<std::_List_node<ceph::buffer::ptr> > >::construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | | | + 0.10% __gnu_cxx::new_allocator<std::_List_node<ceph::buffer::ptr> >::construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | | | | + 0.10% ceph::buffer::ptr::ptr
| | | | | + 0.30% object_t::object_t
| | | | | | + 0.30% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
| | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>
| | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>
| | | | | | + 0.20% std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>
| | | | | | + 0.20% operator new(unsigned long)
| | | | | | + 0.20% malloc
| | | | | + 0.20% request_redirect_t::request_redirect_t
| | | | | | + 0.20% ceph::buffer::list::list
| | | | | | + 0.10% ceph::buffer::list::iterator_impl<false>::advance
| | | | | + 0.10% Message::Message
| | | | | + 0.10% ceph::buffer::list::list
| | | | | + 0.10% ceph::buffer::list::iterator_impl<false>::iterator_impl
| | | | + 0.90% ObjectContext::ondisk_read_lock
| | | | | + 0.40% Mutex::Lock
| | | | | | + 0.20% Mutex::_will_lock
| | | | | | | + 0.20% lockdep_will_lock
| | | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | | + 0.20% Mutex::TryLock
| | | | | | + 0.20% Mutex::_locked
| | | | | | + 0.20% lockdep_locked
| | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | + 0.30% Mutex::Unlock
| | | | | + 0.20% Mutex::_will_unlock
| | | | | + 0.20% lockdep_will_unlock
| | | | | + 0.20% __GI___pthread_mutex_lock
| | | | + 0.60% ObjectContext::ondisk_read_unlock
| | | | | + 0.60% Mutex::Lock
| | | | | + 0.40% Mutex::_will_lock
| | | | | | + 0.40% lockdep_will_lock
| | | | | | + 0.20% __GI___pthread_mutex_lock
| | | | | | | + 0.20% __lll_lock_wait
| | | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | | + 0.10% __pthread_self
| | | | | + 0.10% __GI___pthread_mutex_lock
| | | | | + 0.10% Mutex::TryLock
| | | | | + 0.10% Mutex::_locked
| | | | | + 0.10% lockdep_locked
| | | | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >, std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_get_node
| | | | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::allocate
| | | | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::allocate
| | | | | + 0.10% operator new(unsigned long)
| | | | | + 0.10% malloc
| | | | + 0.20% std::unique_ptr<PGTransaction, std::default_delete<PGTransaction> >::reset
| | | | | + 0.20% std::default_delete<PGTransaction>::operator()
| | | | | + 0.10% free
| | | | | + 0.10% PGTransaction::~PGTransaction
| | | | | + 0.10% std::map<hobject_t, PGTransaction::ObjectOperation, std::less<hobject_t>, std::allocator<std::pair<hobject_t const, PGTransaction::ObjectOperation> > >::~map
| | | | + 0.20% free
| | | | + 0.20% Mutex::Unlock
| | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | | + 0.10% Mutex::_will_unlock
| | | | | + 0.10% lockdep_will_unlock
| | | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_bucket_index
| | | | | + 0.10% std::__detail::_Hash_code_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::__detail::_Select1st, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, false>::_M_bucket_index
| | | | | + 0.10% std::__detail::_Mod_range_hashing::operator()
| | | | + 0.10% std::shared_ptr<ObjectContext>::shared_ptr
| | | | | + 0.10% std::__shared_ptr<ObjectContext, (__gnu_cxx::_Lock_policy)2>::__shared_ptr
| | | | + 0.10% operator new(unsigned long)
| | | | | + 0.10% malloc
| | | | + 0.10% boost::intrusive_ptr<OpRequest>::intrusive_ptr
| | | | + 0.10% intrusive_ptr_add_ref
| | | | + 0.10% TrackedOp::get
| | | | + 0.10% std::__atomic_base<int>::operator++
| | | + 8.50% PG::lock
| | | | + 8.40% Mutex::Lock
| | | | + 8.20% __GI___pthread_mutex_lock
| | | | | + 8.20% __lll_lock_wait
| | | | + 0.10% Mutex::_will_lock
| | | | | + 0.10% lockdep_will_lock
| | | | | + 0.10% __GI___pthread_mutex_unlock
| | | | | + 0.10% __pthread_mutex_unlock_usercnt
| | | | + 0.10% Mutex::TryLock
| | | | + 0.10% Mutex::_locked
| | | | + 0.10% lockdep_locked
| | | | + 0.10% __GI___pthread_mutex_lock
| | | | + 0.10% __lll_lock_wait
| | | + 0.70% PrimaryLogPG::OpContext::finish_read
| | | + 0.50% std::__cxx11::list<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*>, std::allocator<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> > >::remove_if<PrimaryLogPG::OpContext::finish_read(PrimaryLogPG*)::<lambda(const std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*>&)> >
| | | + 0.30% std::__cxx11::list<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*>, std::allocator<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> > >::_M_erase
| | | | + 0.20% std::allocator_traits<std::allocator<std::_List_node<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> > > >::destroy<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> >
| | | | | + 0.20% __gnu_cxx::new_allocator<std::_List_node<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> > >::destroy<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> >
| | | | | + 0.20% std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*>::~pair
| | | | | + 0.20% boost::intrusive_ptr<OpRequest>::~intrusive_ptr
| | | | | + 0.20% intrusive_ptr_release
| | | | | + 0.20% TrackedOp::put
| | | | + 0.10% std::__cxx11::_List_base<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*>, std::allocator<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> > >::_M_put_node
| | | | + 0.10% std::allocator_traits<std::allocator<std::_List_node<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> > > >::deallocate
| | | | + 0.10% __gnu_cxx::new_allocator<std::_List_node<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> > >::deallocate
| | | | + 0.10% free
| | | | + 0.10% ???
| | | | + 0.10% ???
| | | + 0.10% std::_List_iterator<std::pair<boost::intrusive_ptr<OpRequest>, PrimaryLogPG::OpContext*> >::operator++
| | + 0.70% Mutex::Unlock
| | | + 0.40% Mutex::_will_unlock
| | | | + 0.40% lockdep_will_unlock
| | | | + 0.20% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::clear
| | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase
| | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | | | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | | | + 0.20% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | | | + 0.20% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | | | + 0.20% free
| | | | | + 0.10% ???
| | | | | + 0.10% ???
| | | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | | + 0.10% __GI___pthread_mutex_lock
| | | | + 0.10% __lll_lock_wait
| | | + 0.20% __GI___pthread_mutex_unlock
| | | + 0.20% __pthread_mutex_unlock_usercnt
| | | + 0.20% __lll_unlock_wake
| | + 0.40% free
| | | + 0.40% ???
| | | + 0.20% ???
| | | | + 0.10% ???
| | | + 0.10% __memmove_avx_unaligned
| | | + 0.10% __GI___pthread_mutex_lock
| | | + 0.10% __lll_lock_wait
| | + 0.10% non-virtual thunk to PrimaryLogPG::OpContext::start_async_reads(PrimaryLogPG*)::BlessedReadCompleter::~BlessedReadCompleter()
| + 0.90% Mutex::Lock
| | + 0.50% Mutex::TryLock
| | | + 0.50% Mutex::_locked
| | | + 0.50% lockdep_locked
| | | + 0.30% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | + 0.30% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | + 0.30% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | + 0.30% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >, std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_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&)@plt
| | | + 0.10% __GI___pthread_mutex_lock
| | + 0.40% Mutex::_will_lock
| | + 0.40% lockdep_will_lock
| | + 0.40% __GI___pthread_mutex_lock
| | + 0.40% __lll_lock_wait
| + 0.20% Mutex::Unlock
| + 0.20% Mutex::_will_unlock
| + 0.20% lockdep_will_unlock
| + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| + 0.10% __GI___pthread_mutex_lock
| + 0.10% __lll_lock_wait
+ 1.30% ThreadPool::WorkQueueVal<std::pair<boost::intrusive_ptr<PG>, std::shared_ptr<DeletingState> >, std::pair<boost::intrusive_ptr<PG>, std::shared_ptr<DeletingState> > >::_void_dequeue
| + 0.50% Mutex::Locker::~Locker
| | + 0.50% Mutex::Unlock
| | + 0.40% Mutex::_will_unlock
| | | + 0.40% lockdep_will_unlock
| | | + 0.30% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | + 0.30% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | + 0.30% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | + 0.30% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| | | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| | | + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| | | + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| | | + 0.10% free
| | + 0.10% __GI___pthread_mutex_unlock
| | + 0.10% __pthread_mutex_unlock_usercnt
| + 0.50% Mutex::Locker::Locker
| + 0.50% Mutex::Lock
| + 0.40% Mutex::TryLock
| | + 0.40% Mutex::_locked
| | + 0.40% lockdep_locked
| | + 0.20% __GI___pthread_mutex_lock
| | | + 0.10% __lll_lock_wait
| | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >, std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_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% Mutex::_will_lock
| + 0.10% lockdep_will_lock
| + 0.10% ceph::logging::SubsystemMap::should_gather
+ 1.30% ThreadPool::WorkQueueVal<GenContext<ThreadPool::TPHandle&>*, GenContext<ThreadPool::TPHandle&>*>::_void_dequeue
| + 0.80% Mutex::Locker::Locker
| | + 0.80% Mutex::Lock
| | + 0.40% Mutex::_will_lock
| | | + 0.40% lockdep_will_lock
| | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | + 0.10% __GI___pthread_mutex_lock
| | | + 0.10% __lll_lock_wait
| | + 0.30% Mutex::TryLock
| | + 0.30% Mutex::_locked
| | + 0.30% lockdep_locked
| | + 0.20% __GI___pthread_mutex_lock
| | + 0.10% __lll_lock_wait
| + 0.30% Mutex::Locker::~Locker
| | + 0.30% Mutex::Unlock
| | + 0.30% Mutex::_will_unlock
| | + 0.30% lockdep_will_unlock
| | + 0.30% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | + 0.30% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | + 0.20% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | | + 0.20% std::_Rb_tree_rebalance_for_erase(std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)
| | + 0.10% std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >::operator++
| | + 0.10% std::_Rb_tree_increment(std::_Rb_tree_node_base*)
| + 0.20% std::__cxx11::list<GenContext<ThreadPool::TPHandle&>*, std::allocator<GenContext<ThreadPool::TPHandle&>*> >::push_back
| + 0.20% std::__cxx11::list<GenContext<ThreadPool::TPHandle&>*, std::allocator<GenContext<ThreadPool::TPHandle&>*> >::_M_insert<GenContext<ThreadPool::TPHandle&>* const&>
| + 0.20% std::__cxx11::list<GenContext<ThreadPool::TPHandle&>*, std::allocator<GenContext<ThreadPool::TPHandle&>*> >::_M_create_node<GenContext<ThreadPool::TPHandle&>* const&>
| + 0.20% std::__cxx11::_List_base<GenContext<ThreadPool::TPHandle&>*, std::allocator<GenContext<ThreadPool::TPHandle&>*> >::_M_get_node
| + 0.20% std::allocator_traits<std::allocator<std::_List_node<GenContext<ThreadPool::TPHandle&>*> > >::allocate
| + 0.20% __gnu_cxx::new_allocator<std::_List_node<GenContext<ThreadPool::TPHandle&>*> >::allocate
| + 0.20% operator new(unsigned long)
| + 0.20% malloc
+ 0.80% ThreadPool::WorkQueueVal<GenContext<ThreadPool::TPHandle&>*, GenContext<ThreadPool::TPHandle&>*>::_void_process_finish
| + 0.60% Mutex::Lock
| | + 0.30% Mutex::_will_lock
| | | + 0.30% lockdep_will_lock
| | | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | | + 0.10% std::_Rb_tree_iterator<std::pair<int const, ceph::BackTrace*> >::operator++
| | | | + 0.10% std::_Rb_tree_increment(std::_Rb_tree_node_base*)
| | | + 0.10% __GI___pthread_mutex_unlock
| | | + 0.10% __pthread_mutex_unlock_usercnt
| | + 0.30% Mutex::TryLock
| | + 0.30% Mutex::_locked
| | + 0.30% lockdep_locked
| | + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | | + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | | + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| | + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::operator[]
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<int const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >, std::piecewise_construct_t const&, std::tuple<int const&>&&, std::tuple<>&&)
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_get_insert_hint_unique_pos
| + 0.20% Mutex::Unlock
| + 0.20% Mutex::_will_unlock
| + 0.20% lockdep_will_unlock
| + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| | + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| | + 0.10% std::_Rb_tree_const_iterator<std::pair<int const, ceph::BackTrace*> >::operator++
| | + 0.10% std::_Rb_tree_increment(std::_Rb_tree_node_base*)
| + 0.10% __GI___pthread_mutex_unlock
| + 0.10% __pthread_mutex_unlock_usercnt
+ 0.60% Mutex::Lock
| + 0.50% __GI___pthread_mutex_lock
| | + 0.50% __lll_lock_wait
| + 0.10% Mutex::_will_lock
| + 0.10% lockdep_will_lock
| + 0.10% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| + 0.10% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| + 0.10% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
+ 0.50% ThreadPool::TPHandle::reset_tp_timeout
| + 0.50% ceph::HeartbeatMap::reset_timeout
| + 0.20% std::__atomic_base<unsigned int>::operator=
| | + 0.20% std::__atomic_base<unsigned int>::store
| + 0.10% ceph::time_detail::coarse_mono_clock::now
| | + 0.10% __GI___clock_gettime
| | + 0.10% clock_gettime
| + 0.10% ceph::logging::SubsystemMap::should_gather
+ 0.50% Mutex::Unlock
+ 0.30% Mutex::_will_unlock
| + 0.30% lockdep_will_unlock
| + 0.20% std::unordered_map<unsigned long, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >, std::hash<unsigned long>, std::equal_to<unsigned long>, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > > >::operator[]
| | + 0.20% std::__detail::_Map_base<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[]
| | + 0.20% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_node
| | + 0.20% std::_Hashtable<unsigned long, std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > >, std::allocator<std::pair<unsigned long const, std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > > > >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_find_before_node
| + 0.10% std::map<int, ceph::BackTrace*, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::erase
| + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase_aux
| + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::clear
| + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_erase
| + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_drop_node
| + 0.10% std::_Rb_tree<int, std::pair<int const, ceph::BackTrace*>, std::_Select1st<std::pair<int const, ceph::BackTrace*> >, std::less<int>, std::allocator<std::pair<int const, ceph::BackTrace*> > >::_M_put_node
| + 0.10% std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > > >::deallocate
| + 0.10% __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<int const, ceph::BackTrace*> > >::deallocate
| + 0.10% ???
| + 0.10% ???
+ 0.20% __GI___pthread_mutex_unlock
+ 0.20% __pthread_mutex_unlock_usercnt
rbd_iodepth32: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=rbd, iodepth=32
fio-3.0-32-g83070-dirty
Starting 1 process
rbd_iodepth32: (groupid=0, jobs=1): err= 0: pid=25871: Tue Jan 16 14:40:45 2018
read: IOPS=26.2k, BW=102MiB/s (107MB/s)(6140MiB/60003msec)
slat (nsec): min=1021, max=610135, avg=7956.98, stdev=19520.20
clat (usec): min=200, max=11145, avg=1212.57, stdev=438.04
lat (usec): min=207, max=11153, avg=1220.53, stdev=437.20
clat percentiles (usec):
| 1.00th=[ 498], 5.00th=[ 676], 10.00th=[ 775], 20.00th=[ 906],
| 30.00th=[ 1004], 40.00th=[ 1090], 50.00th=[ 1172], 60.00th=[ 1254],
| 70.00th=[ 1336], 80.00th=[ 1450], 90.00th=[ 1647], 95.00th=[ 1827],
| 99.00th=[ 2737], 99.50th=[ 3785], 99.90th=[ 4817], 99.95th=[ 5211],
| 99.99th=[ 6652]
bw ( KiB/s): min=85664, max=107648, per=99.98%, avg=104758.91, stdev=3508.98, samples=120
iops : min=21416, max=26912, avg=26189.67, stdev=877.24, samples=120
lat (usec) : 250=0.01%, 500=1.03%, 750=7.38%, 1000=21.31%
lat (msec) : 2=67.45%, 4=2.42%, 10=0.40%, 20=0.01%
cpu : usr=38.92%, sys=27.91%, ctx=1967517, majf=0, minf=6
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
issued rwt: total=1571837,0,0, short=0,0,0, dropped=0,0,0
latency : target=0, window=0, percentile=100.00%, depth=32
Run status group 0 (all jobs):
READ: bw=102MiB/s (107MB/s), 102MiB/s-102MiB/s (107MB/s-107MB/s), io=6140MiB (6438MB), run=60003-60003msec
Disk stats (read/write):
dm-1: ios=1570462/895, merge=0/0, ticks=141076/608, in_queue=142660, util=92.40%, aggrios=1571837/1059, aggrmerge=0/0, aggrticks=139596/616, aggrin_queue=141008, aggrutil=92.26%
dm-0: ios=1571837/1059, merge=0/0, ticks=139596/616, in_queue=141008, util=92.26%, aggrios=1571837/776, aggrmerge=0/283, aggrticks=112212/568, aggrin_queue=112708, aggrutil=87.51%
nvme0n1: ios=1571837/776, merge=0/283, ticks=112212/568, in_queue=112708, util=87.51%
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment