2010/11/25 Andriy Gapon <a...@freebsd.org>: > on 25/11/2010 17:28 John Baldwin said the following: >> Andriy Gapon wrote: >>> on 22/11/2010 16:24 John Baldwin said the following: >>>> Well, the real solution is actually larger than described in the PR. What >>>> you >>>> really want to do is take the logical CPUs offline when they are "halted". >>>> Taking a CPU offline should trigger an EVENTHANDLER that various bits of >>>> code >>>> could invoke. In the case of platforms that support binding interrupts to >>>> CPUs >>>> (x86 and sparc64 at least), they would install an event handler that >>>> searches >>>> the MD interrupt tables (e.g. the interrupt_sources[] array on x86) and >>>> move >>>> bound interrupts to other CPUs. However, I think all the interrupt >>>> bits will be MD, not MI. >>> >>> That's a good idea and a comprehensive approach. >>> One minor technical detail - should an offlined CPU be removed from all_cpus >>> mask/set? >> >> That's tricky. In other e-mails I've had on this topic, the idea has been >> to have >> a new online_cpus mask and maybe a CPU_ONLINE() test macro similar to >> CPU_ABSENT(). In that case, an offline CPU should still be in all_cpus, but >> many >> places that use all_cpus would need to use online_cpus instead. >> > > This sounds like a plan. > CPU_FOREACH_ONLINE() could also come handy, > Thanks!
One of the biggest issues here is that these bitmasks become no-more fixed for the kernel timelife, but you need proper locking to access them. I recall that one of the point for this plan is to benchmark and eventually optimize performance (as it is easilly feasible) on writing for rmlocks. In order to have a fully effective plan, there are several nits that need to be addressed here, I may have collected somewhere in a file, when I find it I will send to you. Attilio -- Peace can only be achieved by understanding - A. Einstein _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"