Date: Sat, 02 Feb 2008 12:30:42 +0200 From: Alexander Motin <mav@FreeBSD.org> To: Joseph Koshy <joseph.koshy@gmail.com> Cc: freebsd-hackers@freebsd.org, freebsd-performance@freebsd.org Subject: Re: Memory allocation performance Message-ID: <47A44652.70409@FreeBSD.org> In-Reply-To: <84dead720802020209n49c09664p3962fa08f2f9a57c@mail.gmail.com> References: <47A25412.3010301@FreeBSD.org> <47A25A0D.2080508@elischer.org> <47A2C2A2.5040109@FreeBSD.org> <20080201185435.X88034@fledge.watson.org> <47A37E14.7050801@FreeBSD.org> <84dead720802020209n49c09664p3962fa08f2f9a57c@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Joseph Koshy wrote: > You cannot sample with the TSC since the TSC does not interrupt the CPU. > For CPU cycles you would probably want to use "p4-global-power-events"; > see pmc(3). Thanks, I have already found this. There was only problem, that by default it counts cycles only when both logical cores are active while one of my cores was halted. Sampling on this, profiler shown results close to usual profiling, but looking more random: 175.97 1.49 1/64 ip_input <cycle 1> [49] 175.97 1.49 1/64 g_alloc_bio [81] 175.97 1.49 1/64 ng_package_data [18] 1055.81 8.93 6/64 em_handle_rxtx [4] 2639.53 22.32 15/64 em_get_buf [19] 3343.41 28.27 19/64 ng_getqblk [17] 3695.34 31.25 21/64 ip_forward <cycle 1> [14] [9]21.6 11262.00 95.23 64 uma_zalloc_arg [9] 35.45 13.03 5/22 critical_exit [75] 26.86 0.00 22/77 critical_enter [99] 19.89 0.00 18/19 mb_ctor_mbuf [141] 31.87 0.24 4/1324 ng_ether_rcvdata [13] 31.87 0.24 4/1324 ip_forward <cycle 1> [14] 95.60 0.73 12/1324 ng_iface_rcvdata <cycle 1> [16] 103.57 0.79 13/1324 m_freem [25] 876.34 6.71 110/1324 mb_free_ext [30] 9408.75 72.01 1181/1324 ng_free_item [11] [10]20.2 10548.00 80.73 1324 uma_zfree_arg [10] 26.86 0.00 22/77 critical_enter [99] 15.00 11.59 7/7 mb_dtor_mbuf [134] 19.00 6.62 4/4 mb_dtor_pack [136] 1.66 0.00 1/32 m_tag_delete_chain [114] 21.4 11262.00 11262.00 64 175968.75 177456.76 uma_zalloc_arg [9] 20.1 21810.00 10548.00 1324 7966.77 8027.74 uma_zfree_arg [10] 5.6 24773.00 2963.00 1591 1862.35 2640.07 ng_snd_item <cycle 1> [15] 3.5 26599.00 1826.00 33 55333.33 55333.33 ng_address_hook [20] 2.4 27834.00 1235.00 319 3871.47 3871.47 ng_acquire_read [28] To make statistics better I need to record sampling data with smaller period, but too much data creates additional overhead including disc operations and brakes statistics. Is there any way to make it more precise? What sampling parameters should I use for better results? -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47A44652.70409>