Re: [RFC 00/15] x86_64: Optimize percpu accesses

From: Jeremy Fitzhardinge
Date: Thu Jul 10 2008 - 15:56:48 EST


Eric W. Biederman wrote:
Jeremy Fitzhardinge <jeremy@xxxxxxxx> writes:

Eric W. Biederman wrote:
I think we can get away with just simply realloc'ing the percpu area
on each cpu. No fancy table manipulations required. Just update
the base pointer in %gs and in someplace global.

It's perfectly legitimate to take the address of a percpu variable and store it
somewhere. We can't move them around.

Really? I guess there are cases where that makes sense. It is a pretty
rare case though. Especially when you are not talking about doing it temporarily
with preemption disabled. There are few enough users of the API I think we can
certainly explore the cost of forbidding in the general case of storing the
address of a percpu variable.

No, that sounds like a bad idea. For one, how would you enforce it? How would you check for it? It's one of those things that would mostly work and then fail very rarely.

Secondly, I depend on it. I register a percpu structure with Xen to share per-vcpu specific information (interrupt mask, time info, runstate stats, etc).

J
--
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/