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"

Reply via email to