time: ntp: simplify ntp_tick_adj calculations
Impact: micro-optimization Convert the (internal) ntp_tick_adj value we store from unscaled units to scaled units. This is a constant that we never modify, so scaling it up once during bootup is enough - we dont have to do it for every adjustment step. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
2b9d1496e7
commit
069569e025
1 changed files with 5 additions and 2 deletions
|
@ -71,7 +71,8 @@ static long time_reftime;
|
||||||
|
|
||||||
long time_adjust;
|
long time_adjust;
|
||||||
|
|
||||||
static long ntp_tick_adj;
|
/* constant (boot-param configurable) NTP tick adjustment (upscaled) */
|
||||||
|
static s64 ntp_tick_adj;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NTP methods:
|
* NTP methods:
|
||||||
|
@ -89,7 +90,7 @@ static void ntp_update_frequency(void)
|
||||||
second_length = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ)
|
second_length = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ)
|
||||||
<< NTP_SCALE_SHIFT;
|
<< NTP_SCALE_SHIFT;
|
||||||
|
|
||||||
second_length += (s64)ntp_tick_adj << NTP_SCALE_SHIFT;
|
second_length += ntp_tick_adj;
|
||||||
second_length += time_freq;
|
second_length += time_freq;
|
||||||
|
|
||||||
tick_nsec = div_u64(second_length, HZ) >> NTP_SCALE_SHIFT;
|
tick_nsec = div_u64(second_length, HZ) >> NTP_SCALE_SHIFT;
|
||||||
|
@ -540,6 +541,8 @@ int do_adjtimex(struct timex *txc)
|
||||||
static int __init ntp_tick_adj_setup(char *str)
|
static int __init ntp_tick_adj_setup(char *str)
|
||||||
{
|
{
|
||||||
ntp_tick_adj = simple_strtol(str, NULL, 0);
|
ntp_tick_adj = simple_strtol(str, NULL, 0);
|
||||||
|
ntp_tick_adj <<= NTP_SCALE_SHIFT;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue