On Mon, 3 Mar 2008, Robert Watson wrote:


On Mon, 3 Mar 2008, Maxim Sobolev wrote:

Cool! I am just curious if the new topology code is flexible enough to support cores that come and go on the fly? This could be useful in several scenarios, such as for example when running under multi-core aware hypervisor (e.g. Niagara), in the cases when pro-active power manager shuts down some cores to conserve power, in server applications when one of CPUs either has fried or has been unplugged, etc.

We have quite a bit of kernel code that expects CPUs never come and go; I've been hoping to interest people in having a devsummit session on CPU hotplugging for a couple of years now. :-) I don't see physical hotplugging as all that motivating currently, by hypervisor reallocation of CPUs *is* immediately motivating. You'll find assumptions of fixed CPUs all over our kernel -- schedulers, memory allocators, timer management, etc. A mature model for starting and stopping CPUs and allowing kernel subsystems to register with event handlers in order to start/stop their own services is necessary. Similarly, providing a way for user applications that care about CPU placement to hook into the event stream and respond appropriately is important.

Just to add a little bit more about cpu migration. Presently cpuset enforces a hard limit on the cpus that a thread can run on. Also, attempts to restrict the cpu set that would leave a thread without a processor to run on fail. In the future I intend to add a force mode that would return the thread to the default set.

These features can be used to migrate all of the threads in the system off of certain processors. However, there is still a lot of state, as robert has mentioned, that would have to be reclaimed.

I think long term what we need is a per-cpu init chain to take care of these subsystems. I wasn't aware that we ran well enough within any virtualization environment that this might be considered a useful feature. Can anyone comment on that?

Thanks,
Jeff


Robert N M Watson
Computer Laboratory
University of Cambridge

_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to