From: Mike Galbraith <bitbucket@online.de>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: RT <linux-rt-users@vger.kernel.org>,
Dimitri Sivanich <sivanich@sgi.com>,
Thomas Gleixner <tglx@linutronix.de>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [rfc patch] x86,uv: -rt conversions
Date: Fri, 21 Jun 2013 16:45:38 +0200 [thread overview]
Message-ID: <1371825938.5953.28.camel@marge.simpson.net> (raw)
In-Reply-To: <20130621135204.GD21228@linutronix.de>
On Fri, 2013-06-21 at 15:52 +0200, Sebastian Andrzej Siewior wrote:
> * 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.
Maybe SGI can, they know what a bau is. I only made their locks happy.
> >Signed-off-by: Mike Galbraith <bitbucket@online.de>
> >
> >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, i
> > static 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?
Yeah. I originally did preempt_disable/enable() a couple years ago
while convincing a UV to boot/run 2.6.33-rt (x2apic dmar intr_remap
etc), it turned into migrate_disable/enable() as time passed. I'm not
so sure it's really enough, but I was recently given a UV2000 to tinker
with, and both it and old UV100 box boot and (seem to) run fine as is.
-Mike
prev parent reply other threads:[~2013-06-21 14:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-19 14:26 [rfc patch] x86,uv: -rt conversions Mike Galbraith
2013-06-21 13:52 ` Sebastian Andrzej Siewior
2013-06-21 14:45 ` Mike Galbraith [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1371825938.5953.28.camel@marge.simpson.net \
--to=bitbucket@online.de \
--cc=bigeasy@linutronix.de \
--cc=linux-rt-users@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=sivanich@sgi.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.