Skip to contentSkip to conversation

x86 uv: lower UV rtc clocksource rating

PATCH In review Dimitri Sivanich 2 participants 5 messages Feb 16, 2012 – Feb 20, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86 uv: lower UV rtc clocksource rating

Lower the rating of the UV rtc clocksource to just below that of the tsc.

---
 arch/x86/platform/uv/uv_time.c |    6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
arch/x86/platform/uv/uv_time.c +1 -5
Index: linux/arch/x86/platform/uv/uv_time.c
===================================================================
@@ -37,7 +37,7 @@ static void uv_rtc_timer_setup(enum cloc
 
 static struct clocksource clocksource_uv = {
 	.name		= RTC_NAME,
-	.rating		= 400,
+	.rating		= 299,
 	.read		= uv_read_rtc,
 	.mask		= (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
@@ -379,10 +379,6 @@ static __init int uv_rtc_setup_clock(voi
 	if (!is_uv_system())
 		return -ENODEV;
 
-	/* If single blade, prefer tsc */
-	if (uv_num_possible_blades() == 1)
-		clocksource_uv.rating = 250;
-
 	rc = clocksource_register_hz(&clocksource_uv, sn_rtc_cycles_per_second);
 	if (rc)
 		printk(KERN_INFO "UV RTC clocksource failed rc %d\n", rc);
#1 lore raw
Quoted 1 line · Dimitri Sivanich

Lower the rating of the UV rtc clocksource to just below that of the tsc.

This changelog is deficient for obvious reasons, mind updating it?

Thanks,

Ingo

#2 lore raw
Quoted 8 lines · Ingo Molnar
Quoted 1 line · Dimitri Sivanich

Lower the rating of the UV rtc clocksource to just below that of the tsc.

This changelog is deficient for obvious reasons, mind updating it?

OK. Is this sufficient?

Lower the rating of the UV rtc clocksource to just below that of the tsc.

Reading the tsc clocksource has lower latency than reading the rtc, so favor it in situations where it is synchronized and stable. When the tsc is unsynchronized, the rtc needs to be the chosen clocksource.

---
 arch/x86/platform/uv/uv_time.c |    6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
arch/x86/platform/uv/uv_time.c +1 -5
Index: linux/arch/x86/platform/uv/uv_time.c
===================================================================
@@ -37,7 +37,7 @@ static void uv_rtc_timer_setup(enum cloc
 
 static struct clocksource clocksource_uv = {
 	.name		= RTC_NAME,
-	.rating		= 400,
+	.rating		= 299,
 	.read		= uv_read_rtc,
 	.mask		= (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
@@ -379,10 +379,6 @@ static __init int uv_rtc_setup_clock(voi
 	if (!is_uv_system())
 		return -ENODEV;
 
-	/* If single blade, prefer tsc */
-	if (uv_num_possible_blades() == 1)
-		clocksource_uv.rating = 250;
-
 	rc = clocksource_register_hz(&clocksource_uv, sn_rtc_cycles_per_second);
 	if (rc)
 		printk(KERN_INFO "UV RTC clocksource failed rc %d\n", rc);
#3 lore raw
Quoted 9 lines · Dimitri Sivanich
Quoted 8 lines · Ingo Molnar
Quoted 1 line · Dimitri Sivanich

Lower the rating of the UV rtc clocksource to just below that of the tsc.

This changelog is deficient for obvious reasons, mind updating it?

Quoted 8 lines

OK. Is this sufficient?

Lower the rating of the UV rtc clocksource to just below that of the tsc.

Reading the tsc clocksource has lower latency than reading the rtc, so favor it in situations where it is synchronized and stable. When the tsc is unsynchronized, the rtc needs to be the chosen clocksource.

Yeah, perfect, thanks.

Ingo

#4 lore raw

[tip:x86/uv] x86/UV: Lower UV rtc clocksource rating

In reply to Dimitri Sivanich
Commit-ID:  b0deca2e0270135f797e81bdb0743e50fd1dc58d
Gitweb:     http://git.kernel.org/tip/b0deca2e0270135f797e81bdb0743e50fd1dc58d
Author:     Dimitri Sivanich <[email protected]>
AuthorDate: Fri, 17 Feb 2012 08:16:41 -0600
Committer:  Ingo Molnar <[email protected]>
CommitDate: Mon, 20 Feb 2012 09:07:56 +0100

x86/UV: Lower UV rtc clocksource rating

Lower the rating of the UV rtc clocksource to just below that of the tsc, to improve performance.

Reading the tsc clocksource has lower latency than reading the rtc, so favor it in situations where it is synchronized and stable. When the tsc is unsynchronized, the rtc needs to be the chosen clocksource.

---
 arch/x86/platform/uv/uv_time.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)
arch/x86/platform/uv/uv_time.c +1 -5
index 9f29a01..5032e0d 100644
@@ -37,7 +37,7 @@ static void uv_rtc_timer_setup(enum clock_event_mode,
 
 static struct clocksource clocksource_uv = {
 	.name		= RTC_NAME,
-	.rating		= 400,
+	.rating		= 299,
 	.read		= uv_read_rtc,
 	.mask		= (cycle_t)UVH_RTC_REAL_TIME_CLOCK_MASK,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
@@ -379,10 +379,6 @@ static __init int uv_rtc_setup_clock(void)
 	if (!is_uv_system())
 		return -ENODEV;
 
-	/* If single blade, prefer tsc */
-	if (uv_num_possible_blades() == 1)
-		clocksource_uv.rating = 250;
-
 	rc = clocksource_register_hz(&clocksource_uv, sn_rtc_cycles_per_second);
 	if (rc)
 		printk(KERN_INFO "UV RTC clocksource failed rc %d\n", rc);