Last active
January 19, 2018 15:23
-
-
Save rzarzynski/351ac017d1d8b9cc5faf235a01864c1c to your computer and use it in GitHub Desktop.
bstore_aio load during 4 MiB reads & randreads
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Thread: 120 (bstore_aio) - 1000 samples | |
+ 100.00% clone | |
+ 100.00% start_thread | |
+ 100.00% KernelDevice::AioCompletionThread::entry | |
+ 100.00% KernelDevice::_aio_thread | |
+ 55.00% aio_queue_t::get_next_completed | |
| + 54.70% __io_getevents_0_4 | |
| + 0.10% io_getevents | |
+ 44.70% BlueStore::AioReadBatch::aio_finish | |
| + 42.30% BlueStore::PlainRegionReader::postprocess | |
| | + 36.70% BlueStore::RegionReader::_verify_csum | |
| | | + 36.60% bluestore_blob_t::verify_csum | |
| | | | + 36.60% verify<Checksummer::crc32c> | |
| | | | + 35.90% calc | |
| | | | | + 35.90% ceph::buffer::list::iterator_impl<true>::crc32c | |
| | | | | + 35.00% ceph_crc32c | |
| | | | | | + 35.00% ceph_crc32c_intel_fast | |
| | | | | | + 34.80% ??? | |
| | | | | | + 34.80% ??? | |
| | | | | | + 34.80% crc32_iscsi_00 | |
| | | | | + 0.70% ceph::buffer::list::iterator_impl<true>::get_ptr_and_advance | |
| | | | | + 0.60% ceph::buffer::ptr::c_str | |
| | | | + 0.60% ceph::buffer::ptr::c_str | |
| | | + 0.10% ~PerfGuard | |
| | | + 0.10% now | |
| | | + 0.10% clock_gettime | |
| | | + 0.10% clock_gettime | |
| | + 5.10% did_read | |
| | | + 4.20% lock_guard | |
| | | | + 4.20% lock | |
| | | | + 4.20% __gthread_recursive_mutex_lock | |
| | | | + 4.20% __gthread_mutex_lock | |
| | | | + 4.20% pthread_mutex_lock | |
| | | | + 4.20% _L_lock_870 | |
| | | | + 4.20% __lll_lock_wait | |
| | | + 0.40% BlueStore::BufferSpace::_discard | |
| | | | + 0.30% std::_Rb_tree<unsigned int, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > >, std::_Select1st<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > >, std::less<unsigned int>, mempool::pool_allocator<(mempool::pool_index_t)4, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer, std::default_delete<BlueStore::Buffer> > > > >::_M_erase_aux | |
| | | | | + 0.30% _M_drop_node | |
| | | | | + 0.20% _M_destroy_node | |
| | | | | | + 0.20% destroy<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer> > > | |
| | | | | | + 0.20% _S_destroy<mempool::pool_allocator<(mempool::pool_index_t)4, std::_Rb_tree_node<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer> > > >, std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer> > > | |
| | | | | | + 0.20% destroy<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer> > > | |
| | | | | | + 0.20% ~pair | |
| | | | | | + 0.20% ~unique_ptr | |
| | | | | | + 0.20% operator() | |
| | | | | | + 0.20% ~Buffer | |
| | | | | | + 0.20% ~list | |
| | | | | | + 0.20% ~list | |
| | | | | | + 0.20% ~_List_base | |
| | | | | | + 0.20% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | | | + 0.20% destroy<ceph::buffer::ptr> | |
| | | | | | + 0.20% destroy<ceph::buffer::ptr> | |
| | | | | | + 0.20% ~ptr | |
| | | | | | + 0.20% ceph::buffer::ptr::release | |
| | | | | | + 0.20% ceph::buffer::raw_posix_aligned::~raw_posix_aligned | |
| | | | | | + 0.20% ~raw_posix_aligned | |
| | | | | | + 0.20% tc_free | |
| | | | | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | | | | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | | | | | + 0.20% tcmalloc::CentralFreeList::InsertRange(void*, void*, int) | |
| | | | | | + 0.20% tcmalloc::CentralFreeList::ReleaseListToSpans(void*) | |
| | | | | | + 0.20% tcmalloc::CentralFreeList::ReleaseToSpans(void*) | |
| | | | | | + 0.20% tcmalloc::PageHeap::Delete(tcmalloc::Span*) | |
| | | | | | + 0.20% tcmalloc::PageHeap::MergeIntoFreeList(tcmalloc::Span*) | |
| | | | | | + 0.20% tcmalloc::PageHeap::DecommitSpan(tcmalloc::Span*) | |
| | | | | | + 0.20% TCMalloc_SystemRelease(void*, unsigned long) | |
| | | | | | + 0.20% madvise | |
| | | | | + 0.10% _M_put_node | |
| | | | | + 0.10% deallocate | |
| | | | | + 0.10% deallocate | |
| | | | | + 0.10% operator-= | |
| | | | + 0.10% _data_lower_bound | |
| | | | + 0.10% lower_bound | |
| | | | + 0.10% lower_bound | |
| | | | + 0.10% _M_end | |
| | | + 0.20% BlueStore::Buffer::operator new | |
| | | | + 0.20% allocate | |
| | | | + 0.20% tc_newarray | |
| | | + 0.10% ~lock_guard | |
| | | | + 0.10% unlock | |
| | | | + 0.10% __gthread_recursive_mutex_unlock | |
| | | | + 0.10% __gthread_mutex_unlock | |
| | | | + 0.10% pthread_mutex_unlock | |
| | | + 0.10% Buffer | |
| | | | + 0.10% list | |
| | | | + 0.10% list | |
| | | | + 0.10% _M_initialize_dispatch<std::_List_const_iterator<ceph::buffer::ptr> > | |
| | | | + 0.10% emplace_back<ceph::buffer::ptr const&> | |
| | | | + 0.10% _M_insert<ceph::buffer::ptr const&> | |
| | | + 0.10% BlueStore::BufferSpace::_add_buffer | |
| | | + 0.10% ceph::buffer::list::reassign_to_mempool | |
| | | + 0.10% reassign_to_mempool | |
| | | + 0.10% mempool::pool_t::adjust_count | |
| | + 0.30% operator[] | |
| | | + 0.30% 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.20% _M_create_node<const std::piecewise_construct_t&, std::tuple<long unsigned int const&>, std::tuple<> > | |
| | | | + 0.20% _M_get_node | |
| | | | + 0.20% allocate | |
| | | | + 0.20% allocate | |
| | | | + 0.20% tc_new | |
| | | + 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_insert_and_rebalance | |
| | | + 0.10% local_Rb_tree_rotate_left | |
| | + 0.10% ceph::buffer::list::substr_of | |
| | + 0.10% clear | |
| | + 0.10% begin | |
| | + 0.10% ceph::buffer::list::iterator::iterator | |
| + 1.20% BlueStore::AioReadBatch::~AioReadBatch | |
| | + 1.20% ~AioReadBatch | |
| | + 0.80% ~small_vector | |
| | | + 0.80% ~small_vector_base | |
| | | + 0.80% ~vector | |
| | | + 0.80% 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.80% destroy<BlueStore::AioReadBatch::read_ctx_t> | |
| | | + 0.80% priv_destroy<BlueStore::AioReadBatch::read_ctx_t> | |
| | | + 0.80% ~read_ctx_t | |
| | | + 0.80% ~cache_response_t | |
| | | + 0.80% ~map | |
| | | + 0.80% ~_Rb_tree | |
| | | + 0.80% 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.60% 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.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_erase | |
| | | | | + 0.20% 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.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_erase | |
| | | | | | | + 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_erase | |
| | | | | | | + 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_erase | |
| | | | | | | + 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_erase | |
| | | | | | | + 0.10% _M_drop_node | |
| | | | | | | + 0.10% _M_put_node | |
| | | | | | | + 0.10% deallocate | |
| | | | | | | + 0.10% deallocate | |
| | | | | | | + 0.10% tc_delete | |
| | | | | | + 0.10% _M_drop_node | |
| | | | | | + 0.10% _M_destroy_node | |
| | | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | + 0.10% ~pair | |
| | | | | | + 0.10% ~unique_ptr | |
| | | | | | + 0.10% operator() | |
| | | | | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | | | + 0.10% tc_delete | |
| | | | | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | | | | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | | | | + 0.10% _M_drop_node | |
| | | | | + 0.10% _M_destroy_node | |
| | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | + 0.10% ~pair | |
| | | | | + 0.10% ~unique_ptr | |
| | | | | + 0.10% operator() | |
| | | | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | | + 0.10% ~PlainRegionReader | |
| | | | | + 0.10% ~small_vector | |
| | | | | + 0.10% ~small_vector_base | |
| | | | | + 0.10% ~vector | |
| | | | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | + 0.10% ~plain_region_t | |
| | | | | + 0.10% ~list | |
| | | | | + 0.10% ~list | |
| | | | | + 0.10% ~_List_base | |
| | | | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | | + 0.10% ~ptr | |
| | | | | + 0.10% ceph::buffer::ptr::release | |
| | | | + 0.30% _M_drop_node | |
| | | | + 0.30% _M_destroy_node | |
| | | | + 0.30% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | + 0.30% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | + 0.30% ~pair | |
| | | | + 0.30% ~unique_ptr | |
| | | | + 0.30% operator() | |
| | | | + 0.20% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | + 0.20% ~PlainRegionReader | |
| | | | + 0.10% ~small_vector | |
| | | | | + 0.10% ~small_vector_base | |
| | | | | + 0.10% ~vector | |
| | | | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | + 0.10% ~plain_region_t | |
| | | | | + 0.10% ~list | |
| | | | | + 0.10% ~list | |
| | | | | + 0.10% ~_List_base | |
| | | | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | | + 0.10% _M_valptr | |
| | | | | + 0.10% _M_ptr | |
| | | | | + 0.10% _M_addr | |
| | | | + 0.10% ~RegionReader | |
| | | | + 0.10% ~intrusive_ptr | |
| | | | + 0.10% intrusive_ptr_release | |
| | | | + 0.10% put | |
| | | + 0.10% _M_drop_node | |
| | | + 0.10% _M_destroy_node | |
| | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | + 0.10% ~pair | |
| | | + 0.10% ~unique_ptr | |
| | | + 0.10% operator() | |
| | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | + 0.10% ~PlainRegionReader | |
| | | + 0.10% ~small_vector | |
| | | + 0.10% ~small_vector_base | |
| | | + 0.10% ~vector | |
| | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | + 0.10% ~plain_region_t | |
| | | + 0.10% ~list | |
| | | + 0.10% ~list | |
| | | + 0.10% ~_List_base | |
| | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | + 0.10% ~ptr | |
| | | + 0.10% ceph::buffer::ptr::release | |
| | + 0.40% ~IOContext | |
| | + 0.40% ~list | |
| | + 0.40% ~_List_base | |
| | + 0.40% std::_List_base<aio_t, std::allocator<aio_t> >::_M_clear | |
| | + 0.30% destroy<aio_t> | |
| | | + 0.30% destroy<aio_t> | |
| | | + 0.30% ~aio_t | |
| | | + 0.30% ~list | |
| | | + 0.30% ~list | |
| | | + 0.30% ~_List_base | |
| | | + 0.30% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | + 0.10% ~ptr | |
| | | | + 0.10% ceph::buffer::ptr::release | |
| | | + 0.10% _M_valptr | |
| | | | + 0.10% _M_ptr | |
| | | | + 0.10% _M_addr | |
| | | + 0.10% _M_put_node | |
| | | + 0.10% deallocate | |
| | | + 0.10% deallocate | |
| | | + 0.10% tc_delete | |
| | + 0.10% _M_put_node | |
| | + 0.10% deallocate | |
| | + 0.10% deallocate | |
| | + 0.10% tc_delete | |
| | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| + 0.30% operator++ | |
| | + 0.30% std::_Rb_tree_increment | |
| | + 0.30% local_Rb_tree_increment | |
| + 0.20% OSDService::queue_recovery_context | |
| | + 0.20% OSD::ShardedOpWQ::_enqueue(OpQueueItem&&) | |
| | + 0.10% WeightedPriorityQueue<OpQueueItem, unsigned long>::Queue::insert(unsigned int, unsigned long, unsigned int, OpQueueItem&&, bool) | |
| | | + 0.10% insert | |
| | | + 0.10% tc_new | |
| | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) | |
| | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) | |
| | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**) | |
| | + 0.10% SignalOne | |
| | + 0.10% pthread_cond_signal@@GLIBC_2.3.2 | |
| + 0.20% BlueStore::_do_read_compose_result | |
| | + 0.20% ceph::buffer::list::claim_append | |
| | + 0.10% make_shareable | |
| | + 0.10% ceph::buffer::ptr::make_shareable | |
| + 0.10% PrimaryLogPG::schedule_recovery_work | |
+ 0.10% KernelDevice::_aio_log_finish |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Thread: 120 (bstore_aio) - 1000 samples | |
+ 100.00% clone | |
+ 100.00% start_thread | |
+ 100.00% KernelDevice::AioCompletionThread::entry | |
+ 100.00% KernelDevice::_aio_thread | |
+ 51.90% BlueStore::AioReadBatch::aio_finish | |
| + 48.10% BlueStore::PlainRegionReader::postprocess | |
| | + 41.30% BlueStore::RegionReader::_verify_csum | |
| | | + 41.00% bluestore_blob_t::verify_csum | |
| | | | + 40.90% verify<Checksummer::crc32c> | |
| | | | + 40.40% calc | |
| | | | | + 40.40% ceph::buffer::list::iterator_impl<true>::crc32c | |
| | | | | + 39.60% ceph_crc32c | |
| | | | | | + 39.60% ceph_crc32c_intel_fast | |
| | | | | | + 39.50% ??? | |
| | | | | | + 39.50% ??? | |
| | | | | | + 39.50% crc32_iscsi_00 | |
| | | | | + 0.80% ceph::buffer::list::iterator_impl<true>::get_ptr_and_advance | |
| | | | | + 0.70% ceph::buffer::ptr::c_str | |
| | | | | + 0.10% operator== | |
| | | | + 0.30% ceph::buffer::ptr::c_str | |
| | | + 0.20% ~PerfGuard | |
| | | | + 0.10% PerfCounters::tinc | |
| | | + 0.10% PerfGuard | |
| | | + 0.10% now | |
| | | + 0.10% clock_gettime | |
| | | + 0.10% clock_gettime | |
| | + 5.90% did_read | |
| | | + 5.30% lock_guard | |
| | | | + 5.30% lock | |
| | | | + 5.30% __gthread_recursive_mutex_lock | |
| | | | + 5.30% __gthread_mutex_lock | |
| | | | + 5.30% pthread_mutex_lock | |
| | | | + 5.20% _L_lock_870 | |
| | | | + 5.20% __lll_lock_wait | |
| | | + 0.30% BlueStore::BufferSpace::_add_buffer | |
| | | | + 0.20% operator[] | |
| | | | | + 0.20% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<unsigned int const&>, std::tuple<> > | |
| | | | | + 0.20% _M_insert_node | |
| | | | | + 0.10% std::_Rb_tree_insert_and_rebalance | |
| | | | + 0.10% ceph::buffer::list::reassign_to_mempool | |
| | | | + 0.10% reassign_to_mempool | |
| | | | + 0.10% mempool::pool_t::adjust_count | |
| | | + 0.20% Buffer | |
| | | | + 0.20% list | |
| | | | + 0.10% list | |
| | | | | + 0.10% _M_initialize_dispatch<std::_List_const_iterator<ceph::buffer::ptr> > | |
| | | | | + 0.10% emplace_back<ceph::buffer::ptr const&> | |
| | | | | + 0.10% _M_insert<ceph::buffer::ptr const&> | |
| | | | | + 0.10% _M_create_node<ceph::buffer::ptr const&> | |
| | | | | + 0.10% _M_get_node | |
| | | | | + 0.10% allocate | |
| | | | | + 0.10% allocate | |
| | | | | + 0.10% tc_new | |
| | | | + 0.10% ceph::buffer::list::iterator::iterator | |
| | | + 0.10% BlueStore::Buffer::operator new | |
| | | + 0.10% allocate | |
| | | + 0.10% tc_newarray | |
| | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long) | |
| | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int) | |
| | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**) | |
| | + 0.40% 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_get_insert_hint_unique_pos | |
| | | + 0.20% lower_bound | |
| | | + 0.20% lower_bound | |
| | | + 0.20% _M_lower_bound | |
| | + 0.30% ceph::buffer::list::substr_of | |
| | | + 0.10% operator* | |
| | | | + 0.10% _M_valptr | |
| | | | + 0.10% _M_ptr | |
| | | | + 0.10% _M_addr | |
| | | + 0.10% ceph::buffer::ptr::ptr | |
| | + 0.10% operator-> | |
| | + 0.10% get_cache | |
| + 2.30% BlueStore::AioReadBatch::~AioReadBatch | |
| | + 2.30% ~AioReadBatch | |
| | + 1.30% ~small_vector | |
| | | + 1.30% ~small_vector_base | |
| | | + 1.30% ~vector | |
| | | + 1.30% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::AioReadBatch::read_ctx_t> >, BlueStore::AioReadBatch::read_ctx_t*, unsigned long> | |
| | | + 1.30% destroy<BlueStore::AioReadBatch::read_ctx_t> | |
| | | + 1.30% priv_destroy<BlueStore::AioReadBatch::read_ctx_t> | |
| | | + 1.30% ~read_ctx_t | |
| | | + 1.30% ~cache_response_t | |
| | | + 1.30% ~map | |
| | | + 1.30% ~_Rb_tree | |
| | | + 1.20% std::_Rb_tree<boost::intrusive_ptr<BlueStore::Blob>, std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > >, std::_Select1st<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > >, std::less<boost::intrusive_ptr<BlueStore::Blob> >, std::allocator<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > >::_M_erase | |
| | | | + 1.20% std::_Rb_tree<boost::intrusive_ptr<BlueStore::Blob>, std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > >, std::_Select1st<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > >, std::less<boost::intrusive_ptr<BlueStore::Blob> >, std::allocator<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader, std::default_delete<BlueStore::RegionReader> > > > >::_M_erase | |
| | | | + 1.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_erase | |
| | | | | + 1.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_erase | |
| | | | | + 0.80% 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.50% _M_drop_node | |
| | | | | | | + 0.50% _M_destroy_node | |
| | | | | | | + 0.50% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | | + 0.50% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | | + 0.50% ~pair | |
| | | | | | | + 0.40% ~unique_ptr | |
| | | | | | | | + 0.40% operator() | |
| | | | | | | | + 0.40% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | | | | | + 0.30% tc_delete | |
| | | | | | | | | + 0.30% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | | | | | | | | + 0.30% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | | | | | | | + 0.10% ~PlainRegionReader | |
| | | | | | | | + 0.10% ~small_vector | |
| | | | | | | | + 0.10% ~small_vector_base | |
| | | | | | | | + 0.10% ~vector | |
| | | | | | | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | | | | | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | | | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | | | | + 0.10% ~plain_region_t | |
| | | | | | | | + 0.10% ~list | |
| | | | | | | | + 0.10% ~list | |
| | | | | | | | + 0.10% ~_List_base | |
| | | | | | | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | | | | | + 0.10% _M_put_node | |
| | | | | | | | + 0.10% deallocate | |
| | | | | | | | + 0.10% deallocate | |
| | | | | | | | + 0.10% tc_delete | |
| | | | | | | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | | | | | | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | | | | | | + 0.10% ~intrusive_ptr | |
| | | | | | | + 0.10% intrusive_ptr_release | |
| | | | | | | + 0.10% put | |
| | | | | | + 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_erase | |
| | | | | | + 0.20% 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.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_erase | |
| | | | | | | | + 0.10% _M_drop_node | |
| | | | | | | | + 0.10% _M_put_node | |
| | | | | | | | + 0.10% deallocate | |
| | | | | | | | + 0.10% deallocate | |
| | | | | | | | + 0.10% tc_delete | |
| | | | | | | + 0.10% _M_drop_node | |
| | | | | | | + 0.10% _M_destroy_node | |
| | | | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | | + 0.10% ~pair | |
| | | | | | | + 0.10% ~unique_ptr | |
| | | | | | | + 0.10% operator() | |
| | | | | | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | | | | + 0.10% ~PlainRegionReader | |
| | | | | | | + 0.10% ~small_vector | |
| | | | | | | + 0.10% ~small_vector_base | |
| | | | | | | + 0.10% ~vector | |
| | | | | | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | | | | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | | | + 0.10% ~plain_region_t | |
| | | | | | | + 0.10% ~list | |
| | | | | | | + 0.10% ~list | |
| | | | | | | + 0.10% ~_List_base | |
| | | | | | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | | | | + 0.10% _M_put_node | |
| | | | | | | + 0.10% deallocate | |
| | | | | | | + 0.10% deallocate | |
| | | | | | | + 0.10% tc_delete | |
| | | | | | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | | | | | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | | | | | | + 0.10% tcmalloc::CentralFreeList::InsertRange(void*, void*, int) | |
| | | | | | | + 0.10% tcmalloc::CentralFreeList::ReleaseListToSpans(void*) | |
| | | | | | + 0.10% _M_drop_node | |
| | | | | | + 0.10% _M_destroy_node | |
| | | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | | + 0.10% ~pair | |
| | | | | | + 0.10% ~unique_ptr | |
| | | | | | + 0.10% operator() | |
| | | | | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | | | + 0.10% ~PlainRegionReader | |
| | | | | | + 0.10% ~small_vector | |
| | | | | | + 0.10% ~small_vector_base | |
| | | | | | + 0.10% ~vector | |
| | | | | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | | | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | | + 0.10% ~plain_region_t | |
| | | | | | + 0.10% ~list | |
| | | | | | + 0.10% ~list | |
| | | | | | + 0.10% ~_List_base | |
| | | | | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | | | + 0.10% ~ptr | |
| | | | | | + 0.10% ceph::buffer::ptr::release | |
| | | | | + 0.30% _M_drop_node | |
| | | | | + 0.30% _M_destroy_node | |
| | | | | + 0.30% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | + 0.30% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | | + 0.30% ~pair | |
| | | | | + 0.30% ~unique_ptr | |
| | | | | + 0.30% operator() | |
| | | | | + 0.30% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | | + 0.20% tc_delete | |
| | | | | | + 0.20% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | | | | | + 0.20% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | | | | | + 0.10% tcmalloc::CentralFreeList::InsertRange(void*, void*, int) | |
| | | | | | + 0.10% tcmalloc::CentralFreeList::ReleaseListToSpans(void*) | |
| | | | | | + 0.10% tcmalloc::CentralFreeList::ReleaseToSpans(void*) | |
| | | | | | + 0.10% SpinLock::SlowLock() | |
| | | | | | + 0.10% base::internal::SpinLockDelay(int volatile*, int, int) | |
| | | | | + 0.10% ~PlainRegionReader | |
| | | | | + 0.10% ~small_vector | |
| | | | | + 0.10% ~small_vector_base | |
| | | | | + 0.10% ~vector | |
| | | | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | | + 0.10% ~plain_region_t | |
| | | | | + 0.10% ~list | |
| | | | | + 0.10% ~ptr | |
| | | | | + 0.10% ceph::buffer::ptr::release | |
| | | | + 0.10% _M_drop_node | |
| | | | + 0.10% _M_destroy_node | |
| | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | + 0.10% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > > | |
| | | | + 0.10% ~pair | |
| | | | + 0.10% ~unique_ptr | |
| | | | + 0.10% operator() | |
| | | | + 0.10% BlueStore::PlainRegionReader::~PlainRegionReader | |
| | | | + 0.10% ~PlainRegionReader | |
| | | | + 0.10% ~small_vector | |
| | | | + 0.10% ~small_vector_base | |
| | | | + 0.10% ~vector | |
| | | | + 0.10% destroy_alloc_n<boost::container::small_vector_allocator<boost::container::new_allocator<BlueStore::PlainRegionReader::plain_region_t> >, BlueStore::PlainRegionReader::plain_region_t*, unsigned long> | |
| | | | + 0.10% destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | + 0.10% priv_destroy<BlueStore::PlainRegionReader::plain_region_t> | |
| | | | + 0.10% ~plain_region_t | |
| | | | + 0.10% ~list | |
| | | | + 0.10% ~list | |
| | | | + 0.10% ~_List_base | |
| | | | + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | + 0.10% _M_valptr | |
| | | | + 0.10% _M_ptr | |
| | | | + 0.10% _M_addr | |
| | | + 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_erase | |
| | | + 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_erase | |
| | | + 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_erase | |
| | | + 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_erase | |
| | | + 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_erase | |
| | | + 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_erase | |
| | + 1.00% ~IOContext | |
| | + 1.00% ~list | |
| | + 1.00% ~_List_base | |
| | + 1.00% std::_List_base<aio_t, std::allocator<aio_t> >::_M_clear | |
| | + 0.50% destroy<aio_t> | |
| | | + 0.50% destroy<aio_t> | |
| | | + 0.50% ~aio_t | |
| | | + 0.30% ~list | |
| | | | + 0.30% ~list | |
| | | | + 0.30% ~_List_base | |
| | | | + 0.30% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
| | | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | | + 0.10% destroy<ceph::buffer::ptr> | |
| | | | | + 0.10% ~ptr | |
| | | | | + 0.10% ceph::buffer::ptr::release | |
| | | | + 0.10% _M_valptr | |
| | | | | + 0.10% _M_ptr | |
| | | | | + 0.10% _M_addr | |
| | | | + 0.10% _M_put_node | |
| | | | + 0.10% deallocate | |
| | | | + 0.10% deallocate | |
| | | | + 0.10% tc_delete | |
| | | | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | | | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | | + 0.20% ~small_vector | |
| | | + 0.20% ~small_vector_base | |
| | | + 0.20% ~vector | |
| | | + 0.20% ~vector_alloc_holder | |
| | + 0.50% _M_put_node | |
| | + 0.50% deallocate | |
| | + 0.50% deallocate | |
| | + 0.50% tc_delete | |
| | + 0.50% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | + 0.50% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| | + 0.50% tcmalloc::CentralFreeList::InsertRange(void*, void*, int) | |
| | + 0.50% tcmalloc::CentralFreeList::ReleaseListToSpans(void*) | |
| | + 0.40% tcmalloc::CentralFreeList::ReleaseToSpans(void*) | |
| | + 0.30% SpinLock::SlowLock() | |
| | + 0.30% base::internal::SpinLockDelay(int volatile*, int, int) | |
| + 0.50% operator++ | |
| | + 0.50% std::_Rb_tree_increment | |
| | + 0.40% local_Rb_tree_increment | |
| + 0.30% BlueStore::_do_read_compose_result | |
| | + 0.30% ceph::buffer::list::claim_append | |
| | + 0.10% make_shareable | |
| | + 0.10% ceph::buffer::ptr::make_shareable | |
| + 0.20% OSDService::queue_recovery_context | |
| | + 0.10% OpQueueItem::OpQueueItem(std::unique_ptr<OpQueueItem::OpQueueable, std::default_delete<OpQueueItem::OpQueueable> >&&, int, unsigned int, utime_t, unsigned long, unsigned int) | |
| | + 0.10% OSD::ShardedOpWQ::_enqueue(OpQueueItem&&) | |
| | + 0.10% SignalOne | |
| | + 0.10% pthread_cond_signal@@GLIBC_2.3.2 | |
| + 0.10% tc_delete | |
| | + 0.10% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long) | |
| | + 0.10% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int) | |
| + 0.10% operator= | |
| + 0.10% operator= | |
| + 0.10% _M_move_assign | |
| + 0.10% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear | |
+ 47.20% aio_queue_t::get_next_completed | |
| + 47.20% __io_getevents_0_4 | |
+ 0.30% is_linked | |
+ 0.20% this_ptr | |
+ 0.10% unique | |
+ 0.10% get_next |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment