Re: [PATCH] Calling check_system_tsc_reliable before unsynchronized_tsc

From: Thomas Gleixner
Date: Tue Jun 20 2017 - 09:14:42 EST


On Tue, 13 Jun 2017, Zhenzhong Duan wrote:
> 在 2017/6/13 0:03, Thomas Gleixner 写道:
> > On Thu, 8 Jun 2017, Zhenzhong Duan wrote:
> >
> > > unsynchronized_tsc() checks value of tsc_clocksource_reliable which is set
> > > by
> > > check_system_tsc_reliable(). It's better to move
> > > check_system_tsc_reliable()
> > > at
> > > front, or else this check makes no sense.
> > >
> > > Though X86_FEATURE_CONSTANT_TSC is usually set for TSC reliable system,
> > > just
> > > in
> > > case.
> > >
> > > Signed-off-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx>
> > > ---
> > > arch/x86/kernel/tsc.c | 4 ++--
> > > 1 files changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> > > index 714dfba..a316bdd 100644
> > > --- a/arch/x86/kernel/tsc.c
> > > +++ b/arch/x86/kernel/tsc.c
> > > @@ -1412,11 +1412,11 @@ void __init tsc_init(void)
> > > use_tsc_delay();
> > > + check_system_tsc_reliable();
> > > +
> > > if (unsynchronized_tsc())
> > > mark_tsc_unstable("TSCs unsynchronized");
> > > - check_system_tsc_reliable();
> > > -
> > What kind of patch is that? Definitely nothing which can be applied.
> To avoid using unassigned variable tsc_clocksource_reliable.
> Or what's the purpose of if (tsc_clocksource_reliable) check in
> unsynchronized_tsc()?

That's not the question. The patch format itself is broken:

@@ -1412,11 +1412,11 @@ void __init tsc_init(void)
use_tsc_delay();
+ check_system_tsc_reliable();
+
if (unsynchronized_tsc())
mark_tsc_unstable("TSCs unsynchronized");
- check_system_tsc_reliable();
-

That is not a patch created with diff -u or any other mechanism
which creates properly formatted patches.

Thanks,

tglx