Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 069569e0 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

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: default avatarIngo Molnar <mingo@elte.hu>
parent 2b9d1496
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -71,7 +71,8 @@ static long time_reftime;

long				time_adjust;

static long			ntp_tick_adj;
/* constant (boot-param configurable) NTP tick adjustment (upscaled)	*/
static s64			ntp_tick_adj;

/*
 * NTP methods:
@@ -89,7 +90,7 @@ static void ntp_update_frequency(void)
	second_length		 = (u64)(tick_usec * NSEC_PER_USEC * USER_HZ)
						<< NTP_SCALE_SHIFT;

	second_length		+= (s64)ntp_tick_adj << NTP_SCALE_SHIFT;
	second_length		+= ntp_tick_adj;
	second_length		+= time_freq;

	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)
{
	ntp_tick_adj = simple_strtol(str, NULL, 0);
	ntp_tick_adj <<= NTP_SCALE_SHIFT;

	return 1;
}