2012-02-16 20:10:47

by Dimitri Sivanich

[permalink] [raw]
Subject: [PATCH] x86 uv: lower UV rtc clocksource rating

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

Signed-off-by: Dimitri Sivanich <[email protected]>
---
arch/x86/platform/uv/uv_time.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

Index: linux/arch/x86/platform/uv/uv_time.c
===================================================================
--- linux.orig/arch/x86/platform/uv/uv_time.c
+++ 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);


2012-02-17 12:03:00

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86 uv: lower UV rtc clocksource rating


* Dimitri Sivanich <[email protected]> wrote:

> 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

2012-02-17 14:16:45

by Dimitri Sivanich

[permalink] [raw]
Subject: Re: [PATCH] x86 uv: lower UV rtc clocksource rating

On Fri, Feb 17, 2012 at 01:02:42PM +0100, Ingo Molnar wrote:
>
> * Dimitri Sivanich <[email protected]> wrote:
>
> > 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.

Signed-off-by: Dimitri Sivanich <[email protected]>
---
arch/x86/platform/uv/uv_time.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)

Index: linux/arch/x86/platform/uv/uv_time.c
===================================================================
--- linux.orig/arch/x86/platform/uv/uv_time.c
+++ 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);

2012-02-19 12:51:57

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] x86 uv: lower UV rtc clocksource rating

* Dimitri Sivanich <[email protected]> wrote:

> On Fri, Feb 17, 2012 at 01:02:42PM +0100, Ingo Molnar wrote:
> >
> > * Dimitri Sivanich <[email protected]> wrote:
> >
> > > 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.

Yeah, perfect, thanks.

Ingo

2012-02-20 11:47:30

by Dimitri Sivanich

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

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.

Signed-off-by: Dimitri Sivanich <[email protected]>
Cc: John Stultz <[email protected]>
Cc: Jack Steiner <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/platform/uv/uv_time.c | 6 +-----
1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/arch/x86/platform/uv/uv_time.c b/arch/x86/platform/uv/uv_time.c
index 9f29a01..5032e0d 100644
--- a/arch/x86/platform/uv/uv_time.c
+++ b/arch/x86/platform/uv/uv_time.c
@@ -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);