All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RESEND] Calling check_system_tsc_reliable() before unsynchronized_tsc()
@ 2017-06-21  8:23 Zhenzhong Duan
  2017-06-22 13:56 ` Thomas Gleixner
  2017-06-22 14:03 ` [tip:x86/timers] x86/tsc: Call " tip-bot for Zhenzhong Duan
  0 siblings, 2 replies; 4+ messages in thread
From: Zhenzhong Duan @ 2017-06-21  8:23 UTC (permalink / raw)
  To: mingo, tglx, hpa; +Cc: x86, Zhenzhong Duan, linux-kernel

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.

Though X86_FEATURE_CONSTANT_TSC is usually set for TSC reliable system, just in
case.

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
---
 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();
-
 	detect_art();
 }
 
-- 
1.7.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH RESEND] Calling check_system_tsc_reliable() before unsynchronized_tsc()
  2017-06-21  8:23 [PATCH RESEND] Calling check_system_tsc_reliable() before unsynchronized_tsc() Zhenzhong Duan
@ 2017-06-22 13:56 ` Thomas Gleixner
  2017-06-23  8:30   ` Zhenzhong Duan
  2017-06-22 14:03 ` [tip:x86/timers] x86/tsc: Call " tip-bot for Zhenzhong Duan
  1 sibling, 1 reply; 4+ messages in thread
From: Thomas Gleixner @ 2017-06-22 13:56 UTC (permalink / raw)
  To: Zhenzhong Duan; +Cc: mingo, hpa, x86, linux-kernel

Zhenzhong,

On Wed, 21 Jun 2017, Zhenzhong Duan wrote:

So the patch format is now correct, but the subject line is missing a
proper subsystem prefix. Please use 'git log 'path/to/patched/file' next
time to see what the usually used prefix for a file is.

In this case it's:   x86/tsc

Also please do not use [PATCH RESEND] when your patch is different from the
version you sent before. Please use [PATCH v2] instead.

> 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.

Please make your statements affirmative. 'It's better' is a weak expression.

> Though X86_FEATURE_CONSTANT_TSC is usually set for TSC reliable system, just in
> case.

So what you wanted to say here is:

   tsc_clocksource_reliable is initialized in check_system_tsc_reliable(),
   but it is checked in unsynchronized_tsc() which is called before the
   initialization.

   In practice that's not an issue because systems which mark the TSC
   reliable have X86_FEATURE_CONSTANT_TSC set as well, which is evaluated
   in unsynchronized_tsc() before tsc_clocksource_reliable.

   Reorder the calls so initialization happens before usage.

All this information is also documented in Documentation/process/.

No need to resend. I'll fix it up for you this time. 
 
Thanks,

	tglx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip:x86/timers] x86/tsc: Call check_system_tsc_reliable() before unsynchronized_tsc()
  2017-06-21  8:23 [PATCH RESEND] Calling check_system_tsc_reliable() before unsynchronized_tsc() Zhenzhong Duan
  2017-06-22 13:56 ` Thomas Gleixner
@ 2017-06-22 14:03 ` tip-bot for Zhenzhong Duan
  1 sibling, 0 replies; 4+ messages in thread
From: tip-bot for Zhenzhong Duan @ 2017-06-22 14:03 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: tglx, hpa, linux-kernel, mingo, zhenzhong.duan

Commit-ID:  a1272dd5531b259bf7313ac7597a67362698038c
Gitweb:     http://git.kernel.org/tip/a1272dd5531b259bf7313ac7597a67362698038c
Author:     Zhenzhong Duan <zhenzhong.duan@oracle.com>
AuthorDate: Wed, 21 Jun 2017 01:23:37 -0700
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Thu, 22 Jun 2017 16:00:03 +0200

x86/tsc: Call check_system_tsc_reliable() before unsynchronized_tsc()

tsc_clocksource_reliable is initialized in check_system_tsc_reliable(), but
it is checked in unsynchronized_tsc() which is called before the
initialization.

In practice that's not an issue because systems which mark the TSC
reliable have X86_FEATURE_CONSTANT_TSC set as well, which is evaluated
in unsynchronized_tsc() before tsc_clocksource_reliable.

Reorder the calls so initialization happens before usage.

[ tglx: Massaged changelog ]

Signed-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/b1532ef7-cd9f-45f7-9f49-48dd2a5c2495@default
---
 arch/x86/kernel/tsc.c | 4 ++--
 1 file 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();
-
 	detect_art();
 }
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH RESEND] Calling check_system_tsc_reliable() before unsynchronized_tsc()
  2017-06-22 13:56 ` Thomas Gleixner
@ 2017-06-23  8:30   ` Zhenzhong Duan
  0 siblings, 0 replies; 4+ messages in thread
From: Zhenzhong Duan @ 2017-06-23  8:30 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: mingo, hpa, x86, linux-kernel

在 2017/6/22 21:56, Thomas Gleixner 写道:
> Zhenzhong,
>
> On Wed, 21 Jun 2017, Zhenzhong Duan wrote:
>
> So the patch format is now correct, but the subject line is missing a
> proper subsystem prefix. Please use 'git log 'path/to/patched/file' next
> time to see what the usually used prefix for a file is.
>
> In this case it's:   x86/tsc
>
> Also please do not use [PATCH RESEND] when your patch is different from the
> version you sent before. Please use [PATCH v2] instead.
Got it.
>
>> 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.
> Please make your statements affirmative. 'It's better' is a weak expression.
>
>> Though X86_FEATURE_CONSTANT_TSC is usually set for TSC reliable system, just in
>> case.
> So what you wanted to say here is:
>
>     tsc_clocksource_reliable is initialized in check_system_tsc_reliable(),
>     but it is checked in unsynchronized_tsc() which is called before the
>     initialization.
>
>     In practice that's not an issue because systems which mark the TSC
>     reliable have X86_FEATURE_CONSTANT_TSC set as well, which is evaluated
>     in unsynchronized_tsc() before tsc_clocksource_reliable.
>
>     Reorder the calls so initialization happens before usage.
Exactly.
>
> All this information is also documented in Documentation/process/.
I'll read them.
>
> No need to resend. I'll fix it up for you this time.
Ok, thanks.

zduan

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-06-23  8:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-21  8:23 [PATCH RESEND] Calling check_system_tsc_reliable() before unsynchronized_tsc() Zhenzhong Duan
2017-06-22 13:56 ` Thomas Gleixner
2017-06-23  8:30   ` Zhenzhong Duan
2017-06-22 14:03 ` [tip:x86/timers] x86/tsc: Call " tip-bot for Zhenzhong Duan

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.