Marcel Moolenaar wrote: > On Thu, Jul 10, 2003 at 03:03:41PM -0700, Julian Elischer wrote: > > it comes I think from the fact that some hardware treats things as > > bitmaps. (?) > > I have to guess that a bitmap is a natural way to represent sets > when the sets aren't large and that this is why we use bitmaps. > We have a need to send an IPI to multiple CPUs, which is expressed > nicely with bitmaps. Many CISC processors support the necessary instructions for an implementation of the magic "bit-fu" necessary to do things like finding the first bit, counting bits, etc., in O(log2). If you are trying to perform set operations (union, disunion, intersect, least common member, greatest common member, etc.), then bitmaps are a much more natural represntation for this than it would first appear. If you read back over the excerpt I posted from the Intel manual, you'll see that you can send IPIs to *groups* of processors, and this wording was pretty explicitly chosen, rather than saying "broadcast". As one example, you could add a processor to the "idle group", in Julian's latest patch, and then IPI the idle group. This would wake up the processors that were idle, in case the event that resulted in one process going on the run queue was responsible for other processes going on the run queue at the same time. Another example would be adding a processor to the "power managed" group, and actually powering down its private support circuitry to save electricity when, for example you were on a 4 CPU system, and only had a 25% capacity processing load. There's a lot of gold in that mine... -- TerryReceived on Fri Jul 11 2003 - 01:55:09 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:14 UTC