Re: [rfc patch] x86,uv: -rt conversions
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2013-06-21 13:52:07
* Mike Galbraith | 2013-06-19 16:26:18 [+0200]:
The below is what I use to run -rt on UV boxen, diff generated against 3.8-rt. Should the lock conversions perhaps wander to mainline?
They seem to come from NMI or irq off region so if you can't change this why not.
quoted hunk ↗ jump to hunk
Signed-off-by: Mike Galbraith <redacted> Index: linux-2.6/arch/x86/platform/uv/uv_time.c ===================================================================--- linux-2.6.orig/arch/x86/platform/uv/uv_time.c +++ linux-2.6/arch/x86/platform/uv/uv_time.c@@ -300,13 +300,18 @@ static int uv_rtc_unset_timer(int cpu, istatic cycle_t uv_read_rtc(struct clocksource *cs) { unsigned long offset; + cycle_t cycles; + migrate_disable(); if (uv_get_min_hub_revision_id() == 1) offset = 0; else offset = (uv_blade_processor_id() * L1_CACHE_BYTES) % PAGE_SIZE; - return (cycle_t)uv_read_local_mmr(UVH_RTC | offset); + cycles = (cycle_t)uv_read_local_mmr(UVH_RTC | offset); + migrate_enable(); + + return cycles; }
You try to ensure not to switch CPUs between uv_blade_processor_id() and uv_read_local_mmr()'s final HW access, right? Sebastian