kernel - Refactor cpumask_t to extend cpus past 64, part 1/2
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 4 Jul 2014 03:07:27 +0000 (20:07 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 4 Jul 2014 04:01:54 +0000 (21:01 -0700)
commitc07315c47f12ac7242a5409623dcfbb82f8168ab
treeb325c2c97212788feb1f0dbf42f20fe2032bcdfd
parentdacf70b99fb315685679e484687c2f3c94e8ab49
kernel - Refactor cpumask_t to extend cpus past 64, part 1/2

* 64-bit systems only.  32-bit builds use the macros but cannot be expanded
  past 32 cpus.

* Change cpumask_t from __uint64_t to a structure.  This commit implements
  one 64-bit sub-element (the next one will implement four for 256 cpus).

* Create a CPUMASK_*() macro API for non-atomic and atomic cpumask
  manipulation.  These macros generally take lvalues as arguments, allowing
  for a fairly optimal implementation.

* Change all C code operating on cpumask's to use the newly created CPUMASK_*()
  macro API.

* Compile-test 32 and 64-bit.  Run-test 64-bit.

* Adjust sbin/usched, usr.sbin/powerd.  usched currently needs more work.
46 files changed:
sbin/usched/usched.c
sys/cpu/i386/include/types.h
sys/cpu/i386/misc/lwbuf.c
sys/cpu/x86_64/include/types.h
sys/dev/acpica/acpi_cpu.c
sys/dev/powermng/clockmod/clockmod.c
sys/kern/init_main.c
sys/kern/kern_fork.c
sys/kern/kern_proc.c
sys/kern/kern_shutdown.c
sys/kern/kern_synch.c
sys/kern/kern_usched.c
sys/kern/lwkt_ipiq.c
sys/kern/subr_cpu_topology.c
sys/kern/sys_vmm.c
sys/kern/usched_bsd4.c
sys/kern/usched_dfly.c
sys/kern/usched_dummy.c
sys/net/netisr.c
sys/netinet/ip_flow.c
sys/netinet/ip_input.c
sys/platform/pc32/apic/lapic.c
sys/platform/pc32/apic/lapic.h
sys/platform/pc32/i386/mp_machdep.c
sys/platform/pc32/i386/mptable.c
sys/platform/pc32/i386/pmap.c
sys/platform/pc32/i386/vm_machdep.c
sys/platform/pc64/apic/lapic.c
sys/platform/pc64/apic/lapic.h
sys/platform/pc64/isa/clock.c
sys/platform/pc64/vmm/vmx.c
sys/platform/pc64/x86_64/db_interface.c
sys/platform/pc64/x86_64/mp_machdep.c
sys/platform/pc64/x86_64/mptable.c
sys/platform/pc64/x86_64/pmap.c
sys/platform/vkernel/i386/exception.c
sys/platform/vkernel/i386/mp.c
sys/platform/vkernel/platform/pmap.c
sys/platform/vkernel64/platform/pmap.c
sys/platform/vkernel64/platform/pmap_inval.c
sys/platform/vkernel64/x86_64/exception.c
sys/platform/vkernel64/x86_64/mp.c
sys/sys/cpu_topology.h
sys/sys/globaldata.h
sys/sys/param.h
usr.sbin/powerd/powerd.c