Messages in this thread | | | Date | Thu, 10 Jul 2008 12:56:23 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: [RFC 00/15] x86_64: Optimize percpu accesses |
| |
Eric W. Biederman wrote: > Jeremy Fitzhardinge <jeremy@goop.org> 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
| |