All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <rth@twiddle.net>
To: Rusty Russell <rusty@rustcorp.com.au>
Cc: davidm@hpl.hp.com, linux-kernel@vger.kernel.org, torvalds@transmeta.com
Subject: Re: [PATCH] 2.5.1-pre5: per-cpu areas
Date: Thu, 14 Mar 2002 01:37:21 -0800	[thread overview]
Message-ID: <20020314013721.A23274@twiddle.net> (raw)
In-Reply-To: <15504.7958.677592.908691@napali.hpl.hp.com> <E16lMzi-0002bb-00@wagner.rustcorp.com.au>
In-Reply-To: <E16lMzi-0002bb-00@wagner.rustcorp.com.au>; from rusty@rustcorp.com.au on Thu, Mar 14, 2002 at 03:37:38PM +1100

On Thu, Mar 14, 2002 at 03:37:38PM +1100, Rusty Russell wrote:
> > I am also a bit concerned however about aliasing that the compiler
> > might not detect.  For example, with this code:
> > 
> > 	this_cpu(foo) = 13;
> > 	per_cpu(foo, 0) = 15;
> > 	printf("foo=%d\n", this_cpu(foo);
> > 
> > might print the wrong value if gcc thinks that the first and second
> > assignment never alias each other.  Does HIDE_RELOC() take care of
> > this also?
> 
> I'd be pretty sure the compiler can't assume that.  Richard would
> know...

I can't think of a way your current code is invalid.  It's all
hidden behind an asm.  The compiler could guess the two addresses
are the same iff smp_processor_id() is the constant 0, aka UP.

> > On a side-note, would you mind moving __per_cpu_data from smp.h into
> > compiler.h?  I'd like to use it in processor.h and from that file, I
> > can't include smp.h due to a recursive dependency.

This definitely needs to be per-architecture.  On Alpha, I think I
can use the Thread Local Storage model to be added to binutils 2.13
(and potentially compiler support to gcc 3.[23]).  IA-64 may be able
to do the same.  It's certain that x86 can't, since the userland
model requires %gs:0 point to the thread base, and the kernel folk
would never cotton to the segment swapping that would be needed.



r~

  parent reply	other threads:[~2002-03-14  9:37 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <15504.7958.677592.908691@napali.hpl.hp.com>
2002-03-14  4:37 ` [PATCH] 2.5.1-pre5: per-cpu areas Rusty Russell
2002-03-14  5:05   ` Jeff Garzik
2002-03-14 11:14     ` Rusty Russell
2002-03-14 11:26       ` Jeff Garzik
2002-03-14 12:16         ` Rusty Russell
2002-03-14 12:25           ` Jeff Garzik
2002-03-15  1:00         ` Richard Henderson
2002-03-14  9:37   ` Richard Henderson [this message]
2002-03-14 18:06     ` David Mosberger
     [not found] <15504.7958.677592.908691@napali.hpl.hp.com.suse.lists.linux.kernel>
     [not found] ` <E16lMzi-0002bb-00@wagner.rustcorp.com.au.suse.lists.linux.kernel>
2002-03-14  8:39   ` Andi Kleen
2002-03-14 11:09     ` Rusty Russell
2002-03-14 11:14       ` Andi Kleen
2002-03-14 19:48       ` H. Peter Anvin
2002-03-14 18:04     ` David Mosberger
2002-03-14 18:51       ` Andi Kleen
2002-03-15  4:07         ` Rusty Russell
2002-03-15  4:19           ` David Mosberger
2002-03-15  5:52             ` Rusty Russell
2002-03-15  9:13           ` Andi Kleen
2002-03-17  7:17             ` Rusty Russell
2002-03-18  7:35               ` Andi Kleen
2002-03-19  0:02                 ` Rusty Russell
2002-03-19  0:08                   ` J.A. Magallon
2002-03-19  0:15                   ` Andi Kleen
2002-03-19 17:05                     ` Richard Henderson
2001-12-05 22:09 Rusty Russell
2001-12-06  7:21 ` Keith Owens
2001-12-06  8:07   ` David S. Miller
2001-12-06  9:18 ` Chris Wedgwood
2001-12-07 15:03   ` Pavel Machek

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=20020314013721.A23274@twiddle.net \
    --to=rth@twiddle.net \
    --cc=davidm@hpl.hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=torvalds@transmeta.com \
    /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.