cvs commit: src/sys/amd64/amd64 identcpu.c mp_machdep.c src/sys/amd64/include smp.h src/sys/i386/i386 identcpu.c mp_machdep.c src/sys/i386/include smp.h src/sys/ia64/ia64 mp_machdep.c src/sys/kern sched_ule.c subr_smp.c ...

Maxim Sobolev sobomax at
Mon Mar 3 09:15:15 UTC 2008

Jeff Roberson wrote:
> jeff        2008-03-02 07:58:42 UTC
>   FreeBSD src repository
>   Modified files:
>     sys/amd64/amd64      identcpu.c mp_machdep.c 
>     sys/amd64/include    smp.h 
>     sys/i386/i386        identcpu.c mp_machdep.c 
>     sys/i386/include     smp.h 
>     sys/ia64/ia64        mp_machdep.c 
>     sys/kern             sched_ule.c subr_smp.c 
>     sys/powerpc/powerpc  mp_machdep.c 
>     sys/sparc64/sparc64  mp_machdep.c 
>     sys/sun4v/sun4v      mp_machdep.c 
>     sys/sys              smp.h 
>   Log:
>    - Remove the old smp cpu topology specification with a new, more flexible
>      tree structure that encodes the level of cache sharing and other
>      properties.
>    - Provide several convenience functions for creating one and two level
>      cpu trees as well as a default flat topology.  The system now always
>      has some topology.
>    - On i386 and amd64 create a seperate level in the hierarchy for HTT
>      and multi-core cpus.  This will allow the scheduler to intelligently
>      load balance non-uniform cores.  Presently we don't detect what level
>      of the cache hierarchy is shared at each level in the topology.
>    - Add a mechanism for testing common topologies that have more information
>      than the MD code is able to provide via the kern.smp.topology tunable.
>      This should be considered a debugging tool only and not a stable api.

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.


More information about the cvs-src mailing list