All of lore.kernel.org
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@elte.hu>,
	Thomas Gleixner <tglx@linutronix.de>,
	Daniel Walker <dwalker@fifo99.com>
Subject: Re: [patch 02/14] remove clocksource inline functions
Date: Thu, 13 Aug 2009 15:14:34 -0700	[thread overview]
Message-ID: <1250201674.7149.3.camel@localhost.localdomain> (raw)
In-Reply-To: <20090813154159.634291990@de.ibm.com>>

On Thu, 2009-08-13 at 17:40 +0200, Martin Schwidefsky wrote:
> plain text document attachment (clocksource-inline.diff)
> From: Martin Schwidefsky <schwidefsky@de.ibm.com>
> 
> The three inline functions clocksource_read, clocksource_enable
> and clocksource_disable are simple wrappers of an indirect call
> plus the copy from and to the mult_orig value. The functions
> are exclusively used by the timekeeping code which has intimate
> knowledge of the clocksource anyway. Therefore remove the inline
> functions. No functional change.
> 
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Daniel Walker <dwalker@fifo99.com>
> Acked-by: John Stultz <johnstul@us.ibm.com>
> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
> ---
>  include/linux/clocksource.h |   58
> --------------------------------------------
>  kernel/time/timekeeping.c   |   42 +++++++++++++++++++++----------
>  2 files changed, 28 insertions(+), 72 deletions(-)
> 
> Index: linux-2.6/kernel/time/timekeeping.c
> ===================================================================
> --- linux-2.6.orig/kernel/time/timekeeping.c
> +++ linux-2.6/kernel/time/timekeeping.c
[snip]
> @@ -477,8 +492,7 @@ static int timekeeping_resume(struct sys
>  	}
>  	update_xtime_cache(0);
>  	/* re-base the last cycle value */
> -	clock->cycle_last = 0;
> -	clock->cycle_last = clocksource_read(clock);
> +	clock->cycle_last = clock->read(clock);

Minor bug here, the clearing of cycle_last has a side-effect of making
sure the TSC doesn't trip over its own cycle_last checking in the read()
function. This is part of the uglyness of the TSC pulling this internal
timeekping state to avoid minor inconsistencies, but until we find a
better way, we have to live with it.

So you'll need to preserve the cycle_last = 0 line.

thanks
-john





       reply	other threads:[~2009-08-13 22:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090813154034.613706651@de.ibm.com>
     [not found] ` <20090813154159.634291990@de.ibm.com>
2009-08-13 22:14   ` john stultz [this message]
2009-08-14  8:10     ` [patch 02/14] remove clocksource inline functions Martin Schwidefsky
2009-08-14  8:17       ` Thomas Gleixner
     [not found] ` <20090813154201.810817188@de.ibm.com>
2009-08-13 23:30   ` [patch 11/14] timekeeper read clock helper functions john stultz
2009-08-14 11:12     ` Martin Schwidefsky
2009-08-14  0:28 ` [patch 00/14] clocksource / timekeeping rework V3 john stultz

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=1250201674.7149.3.camel@localhost.localdomain \
    --to=johnstul@us.ibm.com \
    --cc=dwalker@fifo99.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=schwidefsky@de.ibm.com \
    --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.