From: Adrian Hunter <adrian.hunter@intel.com>
To: mingo@kernel.org, hpa@zytor.com, linux-kernel@vger.kernel.org,
peterz@infradead.org, tglx@linutronix.de,
linux-tip-commits@vger.kernel.org
Subject: Re: [tip:perf/core] perf/x86: Clean up cap_user_time* setting
Date: Fri, 04 Oct 2013 21:31:22 +0300 [thread overview]
Message-ID: <524F097A.9010506@intel.com> (raw)
In-Reply-To: <tip-nmgn0j0muo1r4c94vlfh23xy@git.kernel.org>
On 4/10/2013 8:31 p.m., tip-bot for Peter Zijlstra wrote:
> Commit-ID: d8b11a0cbd1c66ce283eb9dabe0498dfa6483f32
> Gitweb: http://git.kernel.org/tip/d8b11a0cbd1c66ce283eb9dabe0498dfa6483f32
> Author: Peter Zijlstra <peterz@infradead.org>
> AuthorDate: Thu, 3 Oct 2013 16:00:14 +0200
> Committer: Ingo Molnar <mingo@kernel.org>
> CommitDate: Fri, 4 Oct 2013 09:58:55 +0200
>
> perf/x86: Clean up cap_user_time* setting
>
> Currently the cap_user_time_zero capability has different tests than
> cap_user_time; even though they expose the exact same data.
>
> Switch from CONSTANT && NONSTOP to sched_clock_stable to also deal
> with multi cabinet machines and drop the tsc_disabled() check.. non of
> this will work sanely without tsc anyway.
Unfortunately in the case that TSC is disabled, sched_clock is still
reported as stable, which means removing the tsc_disabled() check breaks
the capability bit. e.g.
$ dmesg | grep -i TSC
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.11.0+ root=UUID=f1b4c71a-15aa-41a6-8898-cdde49966bce ro ignore_loglevel earlyprintk=ttyS0 console=ttyS0,115200n8 no_console_suspend notsc=1 sched_debug=1
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.11.0+ root=UUID=f1b4c71a-15aa-41a6-8898-cdde49966bce ro ignore_loglevel earlyprintk=ttyS0 console=ttyS0,115200n8 no_console_suspend notsc=1 sched_debug=1
[ 0.000000] tsc: Kernel compiled with CONFIG_X86_TSC, cannot disable TSC completely
[ 0.000000] tsc: Fast TSC calibration using PIT
[ 0.004000] tsc: Detected 2594.166 MHz processor
[ 0.224000] TSC deadline timer enabled
$ cat /proc/sched_debug | grep sched_clock_stable
sched_clock_stable : 1
>
> Signed-off-by: Peter Zijlstra <peterz@infradead.org>
> Link: http://lkml.kernel.org/n/tip-nmgn0j0muo1r4c94vlfh23xy@git.kernel.org
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> ---
> arch/x86/kernel/cpu/perf_event.c | 11 +++--------
> 1 file changed, 3 insertions(+), 8 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
> index 897783b..9d84491 100644
> --- a/arch/x86/kernel/cpu/perf_event.c
> +++ b/arch/x86/kernel/cpu/perf_event.c
> @@ -1888,10 +1888,7 @@ void arch_perf_update_userpage(struct perf_event_mmap_page *userpg, u64 now)
> userpg->cap_user_rdpmc = x86_pmu.attr_rdpmc;
> userpg->pmc_width = x86_pmu.cntval_bits;
>
> - if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
> - return;
> -
> - if (!boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
> + if (!sched_clock_stable)
> return;
>
> userpg->cap_user_time = 1;
> @@ -1899,10 +1896,8 @@ void arch_perf_update_userpage(struct perf_event_mmap_page *userpg, u64 now)
> userpg->time_shift = CYC2NS_SCALE_FACTOR;
> userpg->time_offset = this_cpu_read(cyc2ns_offset) - now;
>
> - if (sched_clock_stable && !check_tsc_disabled()) {
> - userpg->cap_user_time_zero = 1;
> - userpg->time_zero = this_cpu_read(cyc2ns_offset);
> - }
> + userpg->cap_user_time_zero = 1;
> + userpg->time_zero = this_cpu_read(cyc2ns_offset);
> }
>
> /*
>
next prev parent reply other threads:[~2013-10-04 18:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-04 17:31 [tip:perf/core] perf/x86: Clean up cap_user_time* setting tip-bot for Peter Zijlstra
2013-10-04 18:31 ` Adrian Hunter [this message]
2013-10-04 18:55 ` Peter Zijlstra
2013-10-06 9:10 ` Ingo Molnar
2013-10-07 9:33 ` Peter Zijlstra
2013-10-07 15:59 ` Peter Zijlstra
2013-10-07 17:22 ` H. Peter Anvin
2013-10-07 17:40 ` Peter Zijlstra
2013-10-07 18:30 ` H. Peter Anvin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=524F097A.9010506@intel.com \
--to=adrian.hunter@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.