Skip to content

Instantly share code, notes, and snippets.

@X547
Created September 4, 2024 18:16
Show Gist options
  • Save X547/8d38c19d3e6377ad695b0c0883a51a2d to your computer and use it in GitHub Desktop.
Save X547/8d38c19d3e6377ad695b0c0883a51a2d to your computer and use it in GitHub Desktop.
profiling results for thread "dd" (1585):
tick interval: 100 us
total ticks: 134989 (13498900 us)
expected ticks: 144035 (missed 9046)
unknown ticks: 0 (0 us, 0.00%)
dropped ticks: 1014 (101400 us, 0.75%)
hits unknown image
------------------------------------------------------------------------------
131944 0 1 kernel_x86_64
107 0 36 packagefs
179 0 38 nvme_disk
2590 0 51 bfs
43 0 8926 /boot/system/runtime_loader
1 0 8929 /boot/system/lib/libgcc_s.so.1
92 0 8928 /boot/system/lib/libroot.so
8 0 8927 /boot/system/bin/dd
1 0 8931 /boot/system/lib/libstdc++.so.6.0.32
22 0 8935 /boot/system/lib/libicuuc.so.74.1
2 0 8933 /boot/system/lib/libicui18n.so.74.1
hits in us in % image function
------------------------------------------------------------------------------
64181 6418100 47.55 1 memcpy
16553 1655300 12.26 1 memset
11112 1111200 8.23 1 vm_page_allocate_page
7095 709500 5.26 1 VMCache::RemovePage(vm_page*)
5214 521400 3.86 1 ConditionVariable::_Notify(bool, int)
3536 353600 2.62 1 free_cached_pages(unsigned int, bool)
2652 265200 1.96 1 _mutex_unlock
2559 255900 1.90 1 VMCache::InsertPage(vm_page*, long)
2247 224700 1.66 51 BlockAllocator::AllocateBlocks(Transaction&, int, unsigned short, unsigned short, unsigned short, block_run&) [clone .localalias]
1843 184300 1.37 1 free_cached_page(vm_page*, bool)
1651 165100 1.22 1 vm_cache_acquire_locked_page_cache
1590 159000 1.18 1 mutex_switch_from_read_lock
1431 143100 1.06 1 write_to_cache(file_cache_ref*, void*, long, int, unsigned long, unsigned long, bool, vm_page_reservation*, unsigned long)
1295 129500 0.96 1 free_page(vm_page*, bool)
1263 126300 0.94 1 block_cache_discard
1255 125500 0.93 1 bool (anonymous namespace)::user_access<(anonymous namespace)::arch_cpu_user_memcpy(void*, void const*, unsigned long)::{lambda()#1}>((anonymous namespace)::arch_cpu_user_memcpy(void*, void const*, unsigned long)::{lambda()#1})
1146 114600 0.85 1 add_to_iovec(generic_io_vec*, unsigned int&, unsigned int, unsigned long, unsigned long) [clone .constprop.0]
869 86900 0.64 1 X86VMTranslationMap64Bit::Query(unsigned long, unsigned long*, unsigned int*)
742 74200 0.55 1 _mutex_lock
664 66400 0.49 1 user_memcpy
661 66100 0.49 1 unlock_memory_etc
601 60100 0.45 1 VMCache::LookupPage(long)
533 53300 0.39 1 cache_io(void*, void*, long, unsigned long, unsigned long*, bool)
315 31500 0.23 1 X86PagingMethod64Bit::PageDirectoryForAddress(unsigned long*, unsigned long, bool, bool, vm_page_reservation*, TranslationMapPhysicalPageMapper*, int&)
284 28400 0.21 1 object_cache_alloc
256 25600 0.19 1 __system_time_rdtscp()
194 19400 0.14 1 object_cache_free
194 19400 0.14 1 find_thread
188 18800 0.14 1 lock_memory_etc
165 16500 0.12 1 cache_start_sub_transaction
142 14200 0.11 51 AllocationGroup::Allocate(Transaction&, unsigned short, int) [clone .localalias]
138 13800 0.10 1 vm_page_free_etc
128 12800 0.09 51 AllocationGroup::Free(Transaction&, unsigned short, int) [clone .localalias]
119 11900 0.09 1 vm_page_write_modified_page_range
116 11600 0.09 1 vm_memcpy_to_physical
112 11200 0.08 1 low_resource_state_no_update(unsigned int)
108 10800 0.08 1 object_depot_store
102 10200 0.08 1 X86PagingMethod64Bit::PageDirectoryEntryForAddress(unsigned long*, unsigned long, bool, bool, vm_page_reservation*, TranslationMapPhysicalPageMapper*, int&)
94 9400 0.07 1 VMCache::_FreePageRange(IteratableSplayTree<VMCachePagesTreeDefinition>::Iterator, unsigned long*)
87 8700 0.06 38 nvme_disk_io(void*, IORequest*)
83 8300 0.06 1 VMCache::Unlock(bool)
68 6800 0.05 1 recursive_lock_lock
66 6600 0.05 36 inflate_fast
63 6300 0.05 1 object_depot_obtain
60 6000 0.04 1 _rw_lock_write_unlock
56 5600 0.04 1 reserve_pages(unsigned int, int, bool)
52 5200 0.04 1 MemoryManager::FreeRawOrReturnCache(void*, unsigned int)
52 5200 0.04 38 nvme_qpair_submit_request
43 4300 0.03 1 get_cached_block((anonymous namespace)::block_cache*, long, bool*, bool, (anonymous namespace)::cached_block**)
42 4200 0.03 1 vm_lookup_page
37 3700 0.03 1 X86PhysicalPageMapper::MemcpyToPhysical(unsigned long, void const*, unsigned long, bool)
37 3700 0.03 1 get_memory_map_etc
34 3400 0.03 8928 write
30 3000 0.02 1 mutex_destroy
27 2700 0.02 38 ior_next_sge(nvme_io_request*, unsigned long*, unsigned int*)
25 2500 0.02 1 ConditionVariable::Add(ConditionVariableEntry*)
23 2300 0.02 1 low_resource_state
23 2300 0.02 36 ZSTD_decompressSequences_bmi2.constprop.0
22 2200 0.02 1 thread_block
19 1900 0.01 1 x86_page_fault_exception
19 1900 0.01 51 iterative_io_finished_hook(void*, IORequest*, int, bool, unsigned long)
18 1800 0.01 1 (anonymous namespace)::block_cache::FreeBlockParentData((anonymous namespace)::cached_block*)
18 1800 0.01 1 reserve_pages(file_cache_ref*, vm_page_reservation*, unsigned long, bool)
16 1600 0.01 1 IOBuffer::SetVecs(unsigned long, unsigned long, generic_io_vec const*, unsigned int, unsigned long, unsigned int)
16 1600 0.01 1 setjmp
15 1500 0.01 51 RunArrays::_ContainsRun(block_run&) [clone .localalias]
15 1500 0.01 1 common_user_io(int, long, void*, unsigned long, bool)
15 1500 0.01 8928 _kern_write
15 1500 0.01 1 block_free(void*, unsigned int) [clone .part.0]
13 1300 0.01 1 write_to_file(file_cache_ref*, void*, long, int, unsigned long, unsigned long, bool, vm_page_reservation*, unsigned long)
13 1300 0.01 1 recursive_lock_unlock
12 1200 0.01 1 IORequest::Init(long, unsigned long, unsigned long, generic_io_vec const*, unsigned long, unsigned long, bool, unsigned int)
12 1200 0.01 8926 find_symbol(image_t*, SymbolLookupInfo const&)
12 1200 0.01 36 adler32_z
11 1100 0.01 1 recursive_lock_get_recursion
11 1100 0.01 1 __cxxabiv1::__vmi_class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const
11 1100 0.01 8928 tls_get
11 1100 0.01 1 get_fd
10 1000 0.01 1 vm_page_unreserve_pages
10 1000 0.01 1 x86_64_syscall_entry
9 900 0.01 8926 elf_hash(char const*)
9 900 0.01 51 bfs_write(fs_volume*, fs_vnode*, void*, long, void const*, unsigned long*)
9 900 0.01 1 AddressSpaceReadLocker::~AddressSpaceReadLocker()
9 900 0.01 51 Inode::WriteAt(Transaction&, long, unsigned char const*, unsigned long*) [clone .localalias]
9 900 0.01 1 __dynamic_cast
8 800 0.01 1 devfs_io(fs_volume*, fs_vnode*, void*, IORequest*)
8 800 0.01 1 file_write(file_descriptor*, long, void const*, unsigned long*)
8 800 0.01 1 AVLTree<VMUserAreaTreeDefinition>::CompareKeyNode(void const*, AVLTreeNode const*)
8 800 0.01 8928 _kern_read
8 800 0.01 1 acquire_vnode
8 800 0.01 1 mutex_init_etc
7 700 0.01 1 HashedObjectCache::ObjectSlab(void*) const
7 700 0.01 8928 pthread_self
7 700 0.01 51 Inode::WriteLockInTransaction(Transaction&) [clone .localalias]
7 700 0.01 8926 elf_gnuhash(char const*)
7 700 0.01 1 IORequest::NotifyFinished()
6 600 0.00 1 AVLTreeBase::FindClosest(void const*, bool) const
6 600 0.00 8928 pthread_testcancel
6 600 0.00 1 block_cache_get_etc
6 600 0.00 1 notify_transaction_listeners((anonymous namespace)::block_cache*, (anonymous namespace)::cache_transaction*, int)
6 600 0.00 1 put_fd
6 600 0.00 51 bfs_io(fs_volume*, fs_vnode*, void*, IORequest*)
6 600 0.00 1 vm_area_get_locked_cache
6 600 0.00 1 __cxxabiv1::__class_type_info::__do_dyncast(long, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const
5 500 0.00 1 vfs_vnode_io
5 500 0.00 8927 iread
5 500 0.00 1 BPrivate::AbstractModuleDevice::HasIO() const
5 500 0.00 1 X86VMTranslationMap::Unlock()
5 500 0.00 1 vm_remove_all_page_mappings
5 500 0.00 1 put_cached_block((anonymous namespace)::block_cache*, long)
5 500 0.00 1 cache_blocks_in_transaction
5 500 0.00 8926 match_symbol(image_t const*, SymbolLookupInfo const&, unsigned int, match_result&)
5 500 0.00 38 do_nvme_io_request(nvme_disk_driver_info*, nvme_io_request*)
5 500 0.00 1 block_alloc(unsigned long, unsigned long, unsigned int)
5 500 0.00 1 FileMap::_FindExtent(long, unsigned int*)
5 500 0.00 1 VMArea::Unwire(VMAreaWiredRange*)
5 500 0.00 1 system_time
5 500 0.00 8926 strcmp
5 500 0.00 1 do_iterative_fd_io_iterate(void*, IORequest*, bool*)
5 500 0.00 1 ConditionVariable::Init(void const*, char const*)
4 400 0.00 8928 read
4 400 0.00 36 HUF_decompress4X1_usingDTable_internal_fast_c_loop
4 400 0.00 1 AddressSpaceReadLocker::AddressSpaceReadLocker(VMAddressSpace*, bool)
4 400 0.00 1 IORequest::CreateSubRequest(long, long, unsigned long, IORequest*&)
4 400 0.00 1 int_bottom
4 400 0.00 1 put_cached_block((anonymous namespace)::block_cache*, (anonymous namespace)::cached_block*)
4 400 0.00 1 do_iterative_fd_io
4 400 0.00 1 BPrivate::AbstractModuleDevice::Read(void*, long, void*, unsigned long*)
4 400 0.00 1 dprintf_args(char const*, __va_list_tag*, bool)
3 300 0.00 1 X86VMTranslationMap::Lock()
3 300 0.00 1 IORequest::SubRequestFinished(IORequest*, int, bool, unsigned long)
3 300 0.00 8935 _uhash_find(UHashtable const*, UElement, int)
3 300 0.00 51 Inode::FindBlockRun(long, block_run&, long&)
3 300 0.00 1 IORequest::~IORequest()
3 300 0.00 1 vfs_write_pages
3 300 0.00 1 devfs_read(fs_volume*, fs_vnode*, void*, long, void*, unsigned long*)
3 300 0.00 1 MemoryManager::AllocateRaw(unsigned long, unsigned int, void*&)
3 300 0.00 8926 relocate_rela(image_t*, image_t*, Elf64_Rela*, unsigned long, SymbolLookupCache*)
3 300 0.00 1 void (anonymous namespace)::copy_sse<2ul>(long long __vector(2)*, long long __vector(2) const*)
3 300 0.00 1 ConditionVariableEntry::Wait(unsigned int, long)
3 300 0.00 1 VMUserAddressSpace::LookupArea(unsigned long) const
3 300 0.00 1 arch_rtc_get_system_time_offset
2 200 0.00 1 rw_lock_wait(rw_lock*, bool, BPrivate::AutoLocker<spinlock, BPrivate::InterruptsSpinLocking>&)
2 200 0.00 1 smp_send_broadcast_ici.part.0
2 200 0.00 1 release_sem_etc
2 200 0.00 51 Journal::Lock(Transaction*, bool)
2 200 0.00 1 IOBuffer::LockMemory(int, bool)
2 200 0.00 1 IORequest::Create(bool)
2 200 0.00 8927 main
2 200 0.00 8928 BPrivate::hoardHeap::freeBlock(BPrivate::block*&, BPrivate::superblock*&, int, BPrivate::processHeap*)
2 200 0.00 51 AllocationBlock::SetTo(AllocationGroup&, unsigned short) [clone .localalias]
2 200 0.00 8935 icu_74::UnicodeString::UnicodeString(char const*, int, icu_74::UnicodeString::EInvariant)
2 200 0.00 8935 u_strlen_74
2 200 0.00 38 nvme_request_allocate.localalias
2 200 0.00 38 nvme_qpair_submit_tracker.isra.0
2 200 0.00 38 _nvme_ns_rw
2 200 0.00 1 file_read(file_descriptor*, long, void*, unsigned long*)
2 200 0.00 36 inflate_table
2 200 0.00 1 memmove
2 200 0.00 1 VMAddressSpace::Get(int)
2 200 0.00 1 size_to_index(unsigned long)
1 100 0.00 8935 enumEitherTrie(UTrie2 const*, int, int, unsigned int (*)(void const*, unsigned int), signed char (*)(void const*, int, int, unsigned int), void const*)
1 100 0.00 8927 iwrite.constprop.0
1 100 0.00 8935 ustr_hashUCharsN_74
1 100 0.00 8935 icu_74::LSR::operator=(icu_74::LSR&&)
1 100 0.00 8933 icu_74::FormattedStringBuilder::FormattedStringBuilder()
1 100 0.00 8928 BPrivate::hoardHeap::findAvailableSuperblock(int, BPrivate::block*&, BPrivate::processHeap*)
1 100 0.00 8928 free
1 100 0.00 8928 malloc
1 100 0.00 8933 icu_74::number::impl::DecimalFormatProperties::DecimalFormatProperties()
1 100 0.00 8931 std::(anonymous namespace)::system_error_category::~system_error_category()
1 100 0.00 8935 icu_74::UniqueCharStrings::addByValue(icu_74::UnicodeString, UErrorCode&)
1 100 0.00 8935 icu_74::XLikelySubtagsData::readLSREncodedStrings(icu_74::ResourceTable const&, char const*, icu_74::ResourceValue&, icu_74::ResourceArray const&, icu_74::LocalMemory<int>&, int&, UErrorCode&)
1 100 0.00 8935 icu_74::UnifiedCache::_poll(icu_74::CacheKeyBase const&, icu_74::SharedObject const*&, UErrorCode&) const
1 100 0.00 8935 icu_74::PropNameData::findPropertyValueNameGroup(int, int)
1 100 0.00 8935 uhash_compareUChars_74
1 100 0.00 8935 uhash_hashUChars_74
1 100 0.00 8935 _uhash_put(UHashtable*, UElement, UElement, signed char, UErrorCode*)
1 100 0.00 8935 _uhash_rehash(UHashtable*, UErrorCode*)
1 100 0.00 8935 uprv_timezone_74
1 100 0.00 8935 u_charType_74
1 100 0.00 8935 parseConverterOptions(char const*, UConverterNamePieces*, UConverterLoadArgs*, UErrorCode*)
1 100 0.00 8935 _uhash_setElement(UHashtable*, UHashElement*, int, UElement, UElement, signed char)
1 100 0.00 1 _user_read
1 100 0.00 1 X86VMTranslationMap::Flush()
1 100 0.00 1 VMKernelAddressSpace::LookupArea(unsigned long) const
1 100 0.00 1 add_transaction_listener((anonymous namespace)::block_cache*, (anonymous namespace)::cache_transaction*, int, void (*)(int, int, void*), void*) [clone .isra.0]
1 100 0.00 1 vm_soft_fault(VMAddressSpace*, unsigned long, bool, bool, bool, vm_page**)
1 100 0.00 1 bool (anonymous namespace)::user_access<(anonymous namespace)::arch_cpu_user_memset(void*, char, unsigned long)::{lambda()#1}>((anonymous namespace)::arch_cpu_user_memset(void*, char, unsigned long)::{lambda()#1})
1 100 0.00 1 free_etc
1 100 0.00 1 memalign_etc
1 100 0.00 1 vnode_path_to_vnode(vnode*, char*, bool, int, io_context*, BPrivate::CObjectDeleter<vnode, void, &vfs_put_vnode>&, long*, char*)
1 100 0.00 38 ior_reset_sgl(nvme_io_request*, unsigned int)
1 100 0.00 1 do_iterative_fd_io_finish(void*, IORequest*, int, bool, unsigned long)
1 100 0.00 38 await_status(nvme_disk_driver_info*, nvme_qpair*, int&)
1 100 0.00 1 NodeMonitorService::_MonitorFor(int, long, bool)
1 100 0.00 1 _user_write
1 100 0.00 1 get_writable_cached_block((anonymous namespace)::block_cache*, long, long, long, int, bool, void**) [clone .isra.0]
1 100 0.00 1 IORequest::Advance(unsigned long)
1 100 0.00 51 Inode::RemovedFromTransaction() [clone .localalias]
1 100 0.00 1 user_debug_post_syscall
1 100 0.00 1 mutex_init
1 100 0.00 1 rw_lock_write_lock
1 100 0.00 8926 resolve_symbol
1 100 0.00 8926 get_loaded_images()
1 100 0.00 8929 __deregister_frame_info
1 100 0.00 8928 __mutex_lock
1 100 0.00 1 FileMap::Translate(long, unsigned long, file_io_vec*, unsigned long*, unsigned long)
1 100 0.00 1 file_cache_set_size
1 100 0.00 8928 memcpy
1 100 0.00 1 block_cache_get_writable_etc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment