This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: [PATCH] PR15789/gettimeofday: do not bail out if cpufreq_register_notifier fails
- From: David Smith <dsmith at redhat dot com>
- To: Timo Juhani Lindfors <timo dot lindfors at iki dot fi>
- Cc: systemtap at sourceware dot org
- Date: Fri, 02 Aug 2013 13:09:00 -0500
- Subject: Re: [PATCH] PR15789/gettimeofday: do not bail out if cpufreq_register_notifier fails
- References: <1375171839-15996-1-git-send-email-timo dot lindfors at iki dot fi>
On 07/30/2013 03:10 AM, Timo Juhani Lindfors wrote:
> Linux commit d5aaffa9dd531c978c6f3fea06a2972653bd7fc8 (cpufreq: handle
> cpufreq being disabled for all exported function.) causes
> cpufreq_register_notifier to fail if cpufreq gets disabled at
> runtime. This patch simply ignores the failure of
> cpufreq_register_notifier so that gettimeofday can continue to work.
> Once cpufreq is disabled it can not be enabled at runtime so this
> should be safe.
> ---
> runtime/time.c | 6 ++----
> 1 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/runtime/time.c b/runtime/time.c
> index 34df72a..a01d922 100644
> --- a/runtime/time.c
> +++ b/runtime/time.c
> @@ -253,10 +253,8 @@ _stp_init_time(void)
>
> #ifdef CONFIG_CPU_FREQ
> if (!ret && !__stp_constant_freq()) {
> - ret = cpufreq_register_notifier(&__stp_time_notifier,
> - CPUFREQ_TRANSITION_NOTIFIER);
> -
> - if (!ret) {
> + if (!cpufreq_register_notifier(&__stp_time_notifier,
> + CPUFREQ_TRANSITION_NOTIFIER)) {
> for_each_online_cpu(cpu) {
> unsigned long flags;
> int freq_khz = cpufreq_get(cpu);
>
I've looked at this patch, and while the patch looks simple enough, I
can't really test it (since I don't run xen anywhere). It seemed to work
on my fedora kernel (3.11.0-0.rc3.git1.1.fc20.x86_64).
I went ahead and committed it (with a minor tweak, to only unregister
the notifier it the registration worked).
If the patch doesn't fix your issue, let us know.
--
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)