Date: Tue, 26 Feb 2013 17:46:31 +0200 From: Alexander Motin <mav@FreeBSD.org> To: attilio@FreeBSD.org Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r247319 - in projects/calloutng/sys: kern sys Message-ID: <512CD8D7.60306@FreeBSD.org> In-Reply-To: <CAJ-FndDunwgsV4FVFNhDcmQm8L21YMrGANjh8caUqL-v4qvhDQ@mail.gmail.com> References: <201302261525.r1QFPhLt058080@svn.freebsd.org> <CAJ-FndDunwgsV4FVFNhDcmQm8L21YMrGANjh8caUqL-v4qvhDQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26.02.2013 17:28, Attilio Rao wrote: > On Tue, Feb 26, 2013 at 4:25 PM, Alexander Motin <mav@freebsd.org> wrote: >> Author: mav >> Date: Tue Feb 26 15:25:43 2013 >> New Revision: 247319 >> URL: http://svnweb.freebsd.org/changeset/base/247319 >> >> Log: >> Optimize callout_process() to use less variables and less conditions to >> implement the same logic. Now it fits better into CPU registers, and >> according to PMC significntly reduces number of resource stalls, reducing >> consumed by it CPU time during usleep(1) benchmark by 30%. > > Is that all improved i-cache capacity and improved dynamic branch > prediction (hwpmc has counters for both FWIW)? I-cache capacity I think is not significant there as the loop is quite small. I believe it was branch misprediction, complicated by additional latency of memory accesses. I haven't analyzed cause deeper, as PMC man pages are not the most informative and easiest reading. -- Alexander Motin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?512CD8D7.60306>