freebsd-skq/sys/i386
Attilio Rao 71a19bdc64 Commit the support for removing cpumask_t and replacing it directly with
cpuset_t objects.
That is going to offer the underlying support for a simple bump of
MAXCPU and then support for number of cpus > 32 (as it is today).

Right now, cpumask_t is an int, 32 bits on all our supported architecture.
cpumask_t on the other side is implemented as an array of longs, and
easilly extendible by definition.

The architectures touched by this commit are the following:
- amd64
- i386
- pc98
- arm
- ia64
- XEN

while the others are still missing.
Userland is believed to be fully converted with the changes contained
here.

Some technical notes:
- This commit may be considered an ABI nop for all the architectures
  different from amd64 and ia64 (and sparc64 in the future)
- per-cpu members, which are now converted to cpuset_t, needs to be
  accessed avoiding migration, because the size of cpuset_t should be
  considered unknown
- size of cpuset_t objects is different from kernel and userland (this is
  primirally done in order to leave some more space in userland to cope
  with KBI extensions). If you need to access kernel cpuset_t from the
  userland please refer to example in this patch on how to do that
  correctly (kgdb may be a good source, for example).
- Support for other architectures is going to be added soon
- Only MAXCPU for amd64 is bumped now

The patch has been tested by sbruno and Nicholas Esborn on opteron
4 x 12 pack CPUs. More testing on big SMP is expected to came soon.
pluknet tested the patch with his 8-ways on both amd64 and i386.

Tested by:	pluknet, sbruno, gianni, Nicholas Esborn
Reviewed by:	jeff, jhb, sbruno
2011-05-05 14:39:14 +00:00
..
acpica MFamd64: (based on) r209957 2010-11-12 20:55:14 +00:00
bios Do not invoke resume event handlers if suspend was successful. 2011-04-19 16:30:17 +00:00
compile
conf Enable the new PCI-PCI bridge driver on amd64 and i386 by default. It can 2011-05-03 18:23:11 +00:00
i386 Commit the support for removing cpumask_t and replacing it directly with 2011-05-05 14:39:14 +00:00
ibcs2 Extend struct sysvec with new method sv_schedtail, which is used for an 2011-03-08 19:01:45 +00:00
include Commit the support for removing cpumask_t and replacing it directly with 2011-05-05 14:39:14 +00:00
isa Use atomic load & store for TSC frequency. It may be overkill for amd64 but 2011-04-07 23:28:28 +00:00
linux Add accounting for most of the memory-related resources. 2011-04-05 20:23:59 +00:00
pci Reimplement how PCI-PCI bridges manage their I/O windows. Previously the 2011-05-03 17:37:24 +00:00
svr4 Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions 2009-01-31 11:37:21 +00:00
xbox Update d_mmap() to accept vm_ooffset_t and vm_memattr_t. 2009-12-29 21:51:28 +00:00
xen Commit the support for removing cpumask_t and replacing it directly with 2011-05-05 14:39:14 +00:00
Makefile Update entries for building tags. 2007-05-13 18:21:54 +00:00