* per-cpu data...
@ 2002-07-12 6:01 Rusty Russell
2002-07-12 8:21 ` Richard Henderson
2002-07-24 12:31 ` Jamie Lokier
0 siblings, 2 replies; 4+ messages in thread
From: Rusty Russell @ 2002-07-12 6:01 UTC (permalink / raw)
To: rth; +Cc: linux-kernel
IIUC, __per_cpu_data is insufficient for Alpha as stands, to use
thread-specific gcc tricks (__thread prepended to the decl, even
though they had a perfectly good __attribute__ extension already).
So, I guess we're stuck with something like:
DECLARE_PER_CPU(int x);
If we're going to do this, we can also mangle the name as well to
avoid accidental "direct" accesses:
eg:
#define DECLARE_PER_CPU(var)
var##__percpu __attribute__((section(".percpu")))
/* If not SMP: */
#define per_cpu(var) var##__percpu
(From my reading, ## on "int x" and "__per_cpu" is well-defined).
Thoughts?
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: per-cpu data...
2002-07-12 6:01 per-cpu data Rusty Russell
@ 2002-07-12 8:21 ` Richard Henderson
2002-07-24 12:31 ` Jamie Lokier
1 sibling, 0 replies; 4+ messages in thread
From: Richard Henderson @ 2002-07-12 8:21 UTC (permalink / raw)
To: Rusty Russell; +Cc: linux-kernel
On Fri, Jul 12, 2002 at 04:01:52PM +1000, Rusty Russell wrote:
> (__thread prepended to the decl, even
> though they had a perfectly good __attribute__ extension already).
Sorry, not our extension. I just copied it.
> (From my reading, ## on "int x" and "__per_cpu" is well-defined).
Yep.
> Thoughts?
Seems ok, though you really ought to differentiate between
DECLARE and DEFINE. Otherwise I can see getting screwed again.
r~
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: per-cpu data...
2002-07-12 6:01 per-cpu data Rusty Russell
2002-07-12 8:21 ` Richard Henderson
@ 2002-07-24 12:31 ` Jamie Lokier
2002-07-25 0:28 ` Rusty Russell
1 sibling, 1 reply; 4+ messages in thread
From: Jamie Lokier @ 2002-07-24 12:31 UTC (permalink / raw)
To: Rusty Russell; +Cc: rth, linux-kernel
Rusty Russell wrote:
> (From my reading, ## on "int x" and "__per_cpu" is well-defined).
DECLARE_PER_CPU (int x[3]);
doesn't work, although you can always do
typedef int three_ints_t[3];
DECLARE_PER_CPU (three_ints_t x);
I encountered the same thing while doing a user-space
`MAKE_THREAD_SPECIFIC' macro. The solution I went for looks like this:
#define DECLARE_PER_CPU(type, name) \
__attribute__ ((__section (".percpu"))) __typeof__ (type) name##__per_cpu
enjoy,
-- Jamie
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: per-cpu data...
2002-07-24 12:31 ` Jamie Lokier
@ 2002-07-25 0:28 ` Rusty Russell
0 siblings, 0 replies; 4+ messages in thread
From: Rusty Russell @ 2002-07-25 0:28 UTC (permalink / raw)
To: Jamie Lokier; +Cc: rth, linux-kernel
In message <20020724133128.A7192@kushida.apsleyroad.org> you write:
> Rusty Russell wrote:
> > (From my reading, ## on "int x" and "__per_cpu" is well-defined).
>
> DECLARE_PER_CPU (int x[3]);
>
> doesn't work, although you can always do
>
> typedef int three_ints_t[3];
> DECLARE_PER_CPU (three_ints_t x);
>
> I encountered the same thing while doing a user-space
> `MAKE_THREAD_SPECIFIC' macro. The solution I went for looks like this:
>
> #define DECLARE_PER_CPU(type, name) \
> __attribute__ ((__section (".percpu"))) __typeof__ (type) name##__per_cpu
Hmmm.... Yeah, might as well go the whole way.
Thanks!
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2002-07-25 0:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-07-12 6:01 per-cpu data Rusty Russell
2002-07-12 8:21 ` Richard Henderson
2002-07-24 12:31 ` Jamie Lokier
2002-07-25 0:28 ` Rusty Russell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox