Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rzarzynski/83c8b8a79b9cf5574d8f9546d41f1b6c to your computer and use it in GitHub Desktop.
Save rzarzynski/83c8b8a79b9cf5574d8f9546d41f1b6c to your computer and use it in GitHub Desktop.
bstore_aio load during 4 KiB randreads
Thread: 120 (bstore_aio) - 1000 samples
+ 100.00% clone
+ 100.00% start_thread
+ 100.00% KernelDevice::AioCompletionThread::entry
+ 100.00% KernelDevice::_aio_thread
+ 89.50% BlueStore::AioReadBatch::aio_finish
| + 85.30% BlueStore::PlainRegionReader::postprocess
| | + 63.30% BlueStore::RegionReader::_verify_csum
| | | + 63.30% bluestore_blob_t::verify_csum
| | | + 63.30% verify<Checksummer::crc32c>
| | | + 62.20% calc
| | | | + 62.20% ceph::buffer::list::iterator_impl<true>::crc32c
| | | | + 60.80% ceph_crc32c
| | | | | + 60.80% ceph_crc32c_intel_fast
| | | | | + 60.70% ???
| | | | | + 60.60% ???
| | | | | | + 60.60% crc32_iscsi_00
| | | | | + 0.10% crc32_iscsi_00
| | | | + 1.00% ceph::buffer::list::iterator_impl<true>::get_ptr_and_advance
| | | | + 0.70% ceph::buffer::ptr::c_str
| | | + 0.90% ceph::buffer::ptr::c_str
| | + 20.60% did_read
| | | + 18.10% lock_guard
| | | | + 18.10% lock
| | | | + 18.10% __gthread_recursive_mutex_lock
| | | | + 18.10% __gthread_mutex_lock
| | | | + 18.10% pthread_mutex_lock
| | | | + 18.10% _L_lock_870
| | | | + 18.10% __lll_lock_wait
| | | + 0.90% BlueStore::Buffer::operator new
| | | | + 0.90% allocate
| | | | + 0.90% tc_newarray
| | | | + 0.40% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.40% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.40% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | | + 0.20% tcmalloc::DLL_Remove(tcmalloc::Span*)
| | | + 0.80% BlueStore::BufferSpace::_discard
| | | | + 0.40% 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.40% _M_drop_node
| | | | | + 0.30% _M_destroy_node
| | | | | | + 0.30% destroy<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer> > >
| | | | | | + 0.30% _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.30% destroy<std::pair<unsigned int const, std::unique_ptr<BlueStore::Buffer> > >
| | | | | | + 0.30% ~pair
| | | | | | + 0.30% ~unique_ptr
| | | | | | + 0.30% 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% BlueStore::Buffer::operator delete
| | | | | | + 0.10% deallocate
| | | | | | + 0.10% operator-=
| | | | | + 0.10% _M_put_node
| | | | | + 0.10% deallocate
| | | | | + 0.10% deallocate
| | | | | + 0.10% tc_deletearray
| | | | + 0.30% _data_lower_bound
| | | | | + 0.30% lower_bound
| | | | | + 0.30% lower_bound
| | | | | + 0.20% _M_lower_bound
| | | | | + 0.10% _M_end
| | | | + 0.10% ceph::logging::SubsystemMap::should_gather
| | | | + 0.10% size
| | | + 0.60% BlueStore::BufferSpace::_add_buffer
| | | | + 0.40% ceph::buffer::list::reassign_to_mempool
| | | | | + 0.40% reassign_to_mempool
| | | | | + 0.40% mempool::pool_t::adjust_count
| | | | | + 0.30% operator+=
| | | | + 0.20% operator[]
| | | | + 0.20% _M_emplace_hint_unique<const std::piecewise_construct_t&, std::tuple<unsigned int const&>, std::tuple<> >
| | | | + 0.20% _M_create_node<const std::piecewise_construct_t&, std::tuple<unsigned int const&>, std::tuple<> >
| | | | + 0.20% _M_get_node
| | | | + 0.20% allocate
| | | | + 0.20% allocate
| | | | + 0.10% tc_newarray
| | | | + 0.10% operator+=
| | | + 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% _L_unlock_713
| | | | + 0.10% __lll_unlock_wake
| | | + 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% _M_create_node<ceph::buffer::ptr const&>
| | | + 0.10% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | + 0.10% construct<ceph::buffer::ptr, ceph::buffer::ptr const&>
| | | + 0.10% ceph::buffer::ptr::ptr
| | + 0.60% ceph::buffer::list::substr_of
| | | + 0.30% push_back
| | | | + 0.30% _M_insert<ceph::buffer::ptr>
| | | | + 0.30% _M_create_node<ceph::buffer::ptr>
| | | | + 0.30% _M_get_node
| | | | + 0.30% allocate
| | | | + 0.30% allocate
| | | | + 0.30% tc_new
| | | | + 0.10% tcmalloc::ThreadCache::FetchFromCentralCache(unsigned long, unsigned long)
| | | | + 0.10% tcmalloc::CentralFreeList::RemoveRange(void**, void**, int)
| | | | + 0.10% tcmalloc::CentralFreeList::FetchFromOneSpans(int, void**, void**)
| | | + 0.10% ceph::buffer::ptr::ptr
| | + 0.20% 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.20% std::_Rb_tree<unsigned long, std::pair<unsigned long const, ceph::buffer::list>, std::_Select1st<std::pair<unsigned long const, ceph::buffer::list> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, ceph::buffer::list> > >::_M_insert_node
| | | + 0.20% std::_Rb_tree_insert_and_rebalance
| | + 0.10% get_cache
| + 2.70% BlueStore::AioReadBatch::~AioReadBatch
| | + 2.70% ~AioReadBatch
| | + 1.40% ~small_vector
| | | + 1.40% ~small_vector_base
| | | + 1.40% ~vector
| | | + 1.40% 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.40% destroy<BlueStore::AioReadBatch::read_ctx_t>
| | | + 1.40% priv_destroy<BlueStore::AioReadBatch::read_ctx_t>
| | | + 1.40% ~read_ctx_t
| | | + 1.40% ~cache_response_t
| | | + 1.40% ~map
| | | + 1.40% ~_Rb_tree
| | | + 1.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
| | | | + 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
| | | | | + 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.70% 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% _M_drop_node
| | | | | | | | | + 0.20% _M_destroy_node
| | | | | | | | | + 0.20% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > >
| | | | | | | | | + 0.20% destroy<std::pair<boost::intrusive_ptr<BlueStore::Blob> const, std::unique_ptr<BlueStore::RegionReader> > >
| | | | | | | | | + 0.20% ~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% ~intrusive_ptr
| | | | | | | | | + 0.10% intrusive_ptr_release
| | | | | | | | | + 0.10% 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_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_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.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.20% ~unique_ptr
| | | | | | | | + 0.20% operator()
| | | | | | | | + 0.20% BlueStore::PlainRegionReader::~PlainRegionReader
| | | | | | | | + 0.20% ~PlainRegionReader
| | | | | | | | + 0.20% ~small_vector
| | | | | | | | + 0.20% ~small_vector_base
| | | | | | | | + 0.20% ~vector
| | | | | | | | + 0.20% 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.20% destroy<BlueStore::PlainRegionReader::plain_region_t>
| | | | | | | | + 0.20% priv_destroy<BlueStore::PlainRegionReader::plain_region_t>
| | | | | | | | + 0.20% ~plain_region_t
| | | | | | | | + 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.10% destroy<ceph::buffer::ptr>
| | | | | | | | | + 0.10% destroy<ceph::buffer::ptr>
| | | | | | | | | + 0.10% ~ptr
| | | | | | | | | + 0.10% ceph::buffer::ptr::release
| | | | | | | | + 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.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.40% _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.10% ~PlainRegionReader
| | | | | | | + 0.10% ~RegionReader
| | | | | | | + 0.10% ~ghobject_t
| | | | | | | + 0.10% ~hobject_t
| | | | | | | + 0.10% ~basic_string
| | | | | | | + 0.10% _M_rep
| | | | | | + 0.10% tc_delete
| | | | | + 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% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | | + 0.10% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | | + 0.10% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | | + 0.10% tcmalloc::DLL_Remove(tcmalloc::Span*)
| | | + 0.10% 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% _M_drop_node
| | | + 0.10% _M_put_node
| | | + 0.10% deallocate
| | | + 0.10% deallocate
| | | + 0.10% tc_delete
| | + 1.30% ~IOContext
| | + 1.30% ~list
| | + 1.30% ~_List_base
| | + 1.30% std::_List_base<aio_t, std::allocator<aio_t> >::_M_clear
| | + 0.70% _M_put_node
| | | + 0.70% deallocate
| | | + 0.70% deallocate
| | | + 0.70% tc_delete
| | | + 0.70% tcmalloc::ThreadCache::ListTooLong(tcmalloc::ThreadCache::FreeList*, unsigned long)
| | | + 0.70% tcmalloc::ThreadCache::ReleaseToCentralCache(tcmalloc::ThreadCache::FreeList*, unsigned long, int)
| | | + 0.30% tcmalloc::CentralFreeList::InsertRange(void*, void*, int)
| | | + 0.30% tcmalloc::CentralFreeList::ReleaseListToSpans(void*)
| | | + 0.30% tcmalloc::CentralFreeList::ReleaseToSpans(void*)
| | | + 0.20% SpinLock::SlowLock()
| | | | + 0.20% base::internal::SpinLockDelay(int volatile*, int, int)
| | | + 0.10% tcmalloc::PageHeap::Delete(tcmalloc::Span*)
| | | + 0.10% tcmalloc::PageHeap::MergeIntoFreeList(tcmalloc::Span*)
| | | + 0.10% tcmalloc::PageHeap::DecommitSpan(tcmalloc::Span*)
| | | + 0.10% TCMalloc_SystemRelease(void*, unsigned long)
| | | + 0.10% madvise
| | + 0.60% destroy<aio_t>
| | + 0.60% destroy<aio_t>
| | + 0.60% ~aio_t
| | + 0.60% ~list
| | + 0.50% ~list
| | | + 0.50% ~_List_base
| | | + 0.50% std::_List_base<ceph::buffer::ptr, std::allocator<ceph::buffer::ptr> >::_M_clear
| | | + 0.20% _M_put_node
| | | | + 0.20% deallocate
| | | | + 0.20% deallocate
| | | | + 0.20% tc_delete
| | | + 0.10% destroy<ceph::buffer::ptr>
| | | + 0.10% destroy<ceph::buffer::ptr>
| | | + 0.10% ~ptr
| | | + 0.10% ceph::buffer::ptr::release
| | + 0.10% ~ptr
| + 0.70% operator++
| | + 0.70% std::_Rb_tree_increment
| | + 0.70% local_Rb_tree_increment
| + 0.20% operator=
| | + 0.10% clear
| | + 0.10% begin
| + 0.10% tc_delete
| + 0.10% Context::complete
| | + 0.10% ToSparseReadResult::finish
| | + 0.10% encode_destructively
| | + 0.10% encode
| | + 0.10% encode_raw<ceph_le<unsigned int> >
| | + 0.10% ceph::buffer::list::append
| | + 0.10% create
| | + 0.10% raw_combined
| | + 0.10% raw
| | + 0.10% mempool::pool_t::adjust_count
| | + 0.10% operator+=
| + 0.10% BlueStore::_do_read_compose_result
| + 0.10% ceph::buffer::list::claim_append
| + 0.10% make_shareable
| + 0.10% ceph::buffer::ptr::make_shareable
+ 9.70% aio_queue_t::get_next_completed
| + 9.40% __io_getevents_0_4
| + 0.10% io_getevents
+ 0.10% is_linked
+ 0.10% this_ptr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment