Messages in this thread | | | Subject | Re: [PATCH v7 1/5] x86: add simple udelay calibration | From | Sergei Shtylyov <> | Date | Tue, 14 Feb 2017 12:23:56 +0300 |
| |
Hello!
On 2/14/2017 5:27 AM, Lu Baolu wrote:
> Add a simple udelay calibration in x86 architecture-specific > boot-time initializations. This will get a workable estimate > for loops_per_jiffy. Hence, udelay() could be used after this > initialization. > > Cc: Ingo Molnar <mingo@redhat.com> > Cc: x86@kernel.org > Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> > --- > arch/x86/kernel/setup.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c > index 4cfba94..aab7faa 100644 > --- a/arch/x86/kernel/setup.c > +++ b/arch/x86/kernel/setup.c > @@ -835,6 +835,26 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p) > return 0; > } > > +static void __init simple_udelay_calibration(void) > +{ > + unsigned int tsc_khz, cpu_khz; > + unsigned long lpj; > + > + if (!boot_cpu_has(X86_FEATURE_TSC)) > + return; > + > + cpu_khz = x86_platform.calibrate_cpu(); > + tsc_khz = x86_platform.calibrate_tsc(); > + > + tsc_khz = tsc_khz ? : cpu_khz;
Why not:
if (!tsc_khz) tsc_khz = cpu_khz;
It's more clear IMHO.
> + if (!tsc_khz) > + return; > + > + lpj = tsc_khz * 1000; > + do_div(lpj, HZ); > + loops_per_jiffy = lpj; > +} > + > /* > * Determine if we were loaded by an EFI loader. If so, then we have also been > * passed the efi memmap, systab, etc., so we should use these data structures [...]
MBR, Sergei
| |