RE: [PATCH 1/2] Define new percpu interface for shared data -- version 3

From: Yu, Fenghua
Date: Fri May 25 2007 - 11:24:33 EST


>What's "shared percpu data" ? It sounds to me like a contradiction in
>terms. Isn't percpu data supposed to only be accessed by the CPU which
>owns it to prevent cache line bouncing? In which case, what's the
point
>of sharing that data with other CPUs? Surely "shared percpu data" is
>just the same as normal data?

Like said in the patch description:
"per cpu data section contains two types of data. One set which is
exclusively accessed by the local cpu and the other set which is per
cpu,
but also shared by remote cpus."

The patches separate shared and aligned per cpu data from others to
eliminate cache pouncing between remote and local access.

The patches do not separate shared but non-aligned percpu data, e.g.
cpu_idle_state, flush_state in x86-64. We can do that later if needed.

I think the shared percpu data are "mainly" accessed by local cpu. We
need
to concentrate on their local cpu access i.e. define in percpu. If we
treat them as "normal" data, we may lose percpu benefits e.g. numa
allocation.

Thanks.

-Fenghua
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/