site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com I was doing some profiling of my network device driver receiving a TCP stream at 3.8Gb/sec. An L1 data cache miss profile shows the following top functions: mi_set_interrupts_enabled mutex_lock mulckPatch_eieio sbappend my driver's rx function m_copy_pkthdr hw_compare_and_store <....> Most of these make sense .. they either use a lot of locked instructions, or get called often, or both. But when I saw m_copy_pkthdr, as #6, I was pretty surprised, and spent about an hour scouring the source code, trying to figure out how in the heck it could possibly be getting called so often, or with such stale data.. It turns out that the private externs used in the kernel really screw up profiling... I'm pretty sure that "m_copy_pkthdr" really means m_getpackets_internal, since its the next thing in uipc_mbuf.c, and there is no symbol for it found when running nm on /mach_kernel. When profiling on other systems, seeing unexpected functions high in the profile has always been a hint that something is seriously wrong. Its going to be hard to break myself of that. Is there any way we could get the full symbolic information out to shark so that its possible to generate meaningful profiles? Thanks, Drew _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... This email sent to site_archiver@lists.apple.com