svn commit: r300110 - head/sys/kern
NGie Cooper
yaneurabeya at gmail.com
Wed May 18 05:22:20 UTC 2016
> On May 17, 2016, at 20:55, Mark Johnston <markj at FreeBSD.org> wrote:
>
> Author: markj
> Date: Wed May 18 03:55:54 2016
> New Revision: 300110
> URL: https://svnweb.freebsd.org/changeset/base/300110
>
> Log:
> Do not acquire the thread lock in hardclock_cnt() unless needed.
>
> This function only sets thread flags if a SIGPROF or SIGVTALRM timer
> has fired, which is almost never the case.
>
> MFC after: 2 weeks
>
> Modified:
> head/sys/kern/kern_clock.c
>
> Modified: head/sys/kern/kern_clock.c
> ==============================================================================
> --- head/sys/kern/kern_clock.c Wed May 18 03:50:21 2016 (r300109)
> +++ head/sys/kern/kern_clock.c Wed May 18 03:55:54 2016 (r300110)
> @@ -570,9 +570,11 @@ hardclock_cnt(int cnt, int usermode)
> flags |= TDF_PROFPEND | TDF_ASTPENDING;
> PROC_ITIMUNLOCK(p);
> }
> - thread_lock(td);
> - td->td_flags |= flags;
> - thread_unlock(td);
> + if (flags != 0) {
> + thread_lock(td);
> + td->td_flags |= flags;
> + thread_unlock(td);
> + }
Use predict_false?
>
> #ifdef HWPMC_HOOKS
> if (PMC_CPU_HAS_SAMPLES(PCPU_GET(cpuid)))
>
More information about the svn-src-all
mailing list