mirror of
https://github.com/torvalds/linux.git
synced 2026-09-21 10:42:56 -04:00
[PATCH] x86: Log reason why TSC was marked unstable
Change mark_tsc_unstable() so it takes a string argument, which holds the reason the TSC was marked unstable. This is then displayed the first time mark_tsc_unstable is called. This should help us better debug why the TSC was marked unstable on certain systems and allow us to make sure we're not being overly paranoid when throwing out this troublesome clocksource. Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andi Kleen <ak@suse.de>
This commit is contained in:
@@ -30,7 +30,7 @@ static inline int mps_oem_check(struct mp_config_table *mpc, char *oem,
|
||||
(!strncmp(productid, "VIGIL SMP", 9)
|
||||
|| !strncmp(productid, "EXA", 3)
|
||||
|| !strncmp(productid, "RUTHLESS SMP", 12))){
|
||||
mark_tsc_unstable();
|
||||
mark_tsc_unstable("Summit based system");
|
||||
use_cyclone = 1; /*enable cyclone-timer*/
|
||||
setup_summit();
|
||||
return 1;
|
||||
@@ -44,7 +44,7 @@ static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
||||
if (!strncmp(oem_id, "IBM", 3) &&
|
||||
(!strncmp(oem_table_id, "SERVIGIL", 8)
|
||||
|| !strncmp(oem_table_id, "EXA", 3))){
|
||||
mark_tsc_unstable();
|
||||
mark_tsc_unstable("Summit based system");
|
||||
use_cyclone = 1; /*enable cyclone-timer*/
|
||||
setup_summit();
|
||||
return 1;
|
||||
|
||||
@@ -53,7 +53,7 @@ static __always_inline cycles_t get_cycles_sync(void)
|
||||
}
|
||||
|
||||
extern void tsc_init(void);
|
||||
extern void mark_tsc_unstable(void);
|
||||
extern void mark_tsc_unstable(char *reason);
|
||||
extern int unsynchronized_tsc(void);
|
||||
extern void init_tsc_clocksource(void);
|
||||
|
||||
|
||||
@@ -27,6 +27,6 @@ extern int read_current_timer(unsigned long *timer_value);
|
||||
#define NS_SCALE 10 /* 2^10, carefully chosen */
|
||||
#define US_SCALE 32 /* 2^32, arbitralrily chosen */
|
||||
|
||||
extern void mark_tsc_unstable(void);
|
||||
extern void mark_tsc_unstable(char *msg);
|
||||
extern void set_cyc2ns_scale(unsigned long khz);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user