freebsd-dev/sys/i386/include
John Baldwin a3870a1826 Very rough first cut at NUMA support for the physical page allocator. For
now it uses a very dumb first-touch allocation policy.  This will change in
the future.
- Each architecture indicates the maximum number of supported memory domains
  via a new VM_NDOMAIN parameter in <machine/vmparam.h>.
- Each cpu now has a PCPU_GET(domain) member to indicate the memory domain
  a CPU belongs to.  Domain values are dense and numbered from 0.
- When a platform supports multiple domains, the default freelist
  (VM_FREELIST_DEFAULT) is split up into N freelists, one for each domain.
  The MD code is required to populate an array of mem_affinity structures.
  Each entry in the array defines a range of memory (start and end) and a
  domain for the range.  Multiple entries may be present for a single
  domain.  The list is terminated by an entry where all fields are zero.
  This array of structures is used to split up phys_avail[] regions that
  fall in VM_FREELIST_DEFAULT into per-domain freelists.
- Each memory domain has a separate lookup-array of freelists that is
  used when fulfulling a physical memory allocation.  Right now the
  per-domain freelists are listed in a round-robin order for each domain.
  In the future a table such as the ACPI SLIT table may be used to order
  the per-domain lookup lists based on the penalty for each memory domain
  relative to a specific domain.  The lookup lists may be examined via a
  new vm.phys.lookup_lists sysctl.
- The first-touch policy is implemented by using PCPU_GET(domain) to
  pick a lookup list when allocating memory.

Reviewed by:	alc
2010-07-27 20:33:50 +00:00
..
pc - Teach vesa(4) and dpms(4) about x86emu. [1] 2009-09-09 09:50:31 +00:00
xen Switch to our preferred 2-clause BSD license. 2010-05-05 20:39:02 +00:00
_align.h Get rid of the _NO_NAMESPACE_POLLUTION kludge by creating an 2009-09-08 20:45:40 +00:00
_bus.h
_inttypes.h The NetBSD Foundation has granted permission to remove clause 3 and 4 from 2010-03-03 17:55:51 +00:00
_limits.h
_stdint.h
_types.h Change float_t and double_t to long double on i386. All floating point 2008-03-05 11:21:14 +00:00
acpica_machdep.h Extract the code to find and map the MADT ACPI table during early kernel 2009-09-23 15:42:35 +00:00
apicreg.h Add support for corrected machine check interrupts. CMCI is a new local 2010-05-24 15:45:05 +00:00
apicvar.h Implement new event timers infrastructure. It provides unified APIs for 2010-06-20 21:33:29 +00:00
apm_bios.h Copy apm(4) emulation from sys/i386/acpica/acpi_machdep.c and 2009-09-27 14:00:16 +00:00
apm_segments.h
asm.h Define an END() macro for use in i386 and amd64 assembly code, akin 2007-08-22 04:26:07 +00:00
asmacros.h Integrate support for xen in to i386 common code. 2008-08-15 20:51:31 +00:00
atomic.h Rename an argument from "exp" to "expect" since the former makes FlexeLint 2010-05-20 06:18:03 +00:00
bootinfo.h Add EFI boot info fields. 2010-04-07 18:52:51 +00:00
bus_dma.h
bus.h
clock.h Move functions declaration to MI code, following implementation. 2010-07-15 17:49:35 +00:00
cpu.h Remove obsolete undef of COPY_SIGCODE. It appears to have not been 2010-07-13 15:06:13 +00:00
cpufunc.h Quiet variable "shadows" warning: 2010-01-01 20:55:11 +00:00
cputypes.h Introduce cpu_vendor_id and replace a lot of strcmp(cpu_vendor, "..."). 2008-11-26 19:25:13 +00:00
cserial.h
db_machdep.h
elan_mmcr.h
elf.h Define architectural load bases for PIE binaries. Addresses were selected 2009-10-10 15:31:24 +00:00
endian.h Also remove the unused __word_swap_int*() macros. 2009-04-08 19:10:20 +00:00
exec.h
float.h Oops, back out previous commit since it was to the wrong file. 2008-03-05 11:17:20 +00:00
floatingpoint.h
frame.h
gdb_machdep.h
ieeefp.h MFamd64 (everything possible up to 1.19; mainly the amd64 implementations 2008-01-11 18:59:35 +00:00
if_wl_wavelan.h
in_cksum.h Clobber "cc" instead of using volatile; remove obsolete register keyword. 2009-06-13 14:00:10 +00:00
intr_machdep.h Add a facility for associating optional descriptions with active interrupt 2009-10-15 14:54:35 +00:00
ioctl_bt848.h
ioctl_meteor.h
iodev.h - Extract the IODEV_PIO interface from ia64 and make it MI. 2010-04-28 15:38:01 +00:00
kdb.h Add kdb_cpu_sync_icache(), intended to synchronize instruction 2007-06-09 21:55:17 +00:00
legacyvar.h strict kobj signatures: fix legacy i386 pcib_write_config impl 2009-06-11 17:06:31 +00:00
limits.h
mca.h Restore the machine check register banks on resume. For banks being 2010-06-15 18:51:41 +00:00
md_var.h Remove unused i586 optimized bcopy/bzero/etc implementations that utilize 2010-06-23 10:40:28 +00:00
memdev.h Remove the unused M_MEMDEV from the kernel. 2008-06-25 07:52:10 +00:00
metadata.h A simple rewrite of biossmap.c: 2009-04-15 17:31:22 +00:00
minidump.h
mp_watchdog.h
mptable.h
mutex.h
nexusvar.h Rework how the nexus(4) device works on x86 to better handle the idea of 2008-03-13 20:39:04 +00:00
npx.h Remove the support for int13 FPU exception reporting on i386. It is 2010-06-23 11:12:58 +00:00
param.h Add a new sysctl for reporting all of the supported page sizes. 2009-09-18 17:04:57 +00:00
pcaudioio.h
pcb_ext.h
pcb.h Remove the support for int13 FPU exception reporting on i386. It is 2010-06-23 11:12:58 +00:00
pci_cfgreg.h Extend the support for PCI-e memory mapped configuration space access: 2008-08-22 02:14:23 +00:00
pcpu.h MFamd64: Add a new macro PCPU_XEN_FIELDS to hold XEN-specific per-CPU 2010-06-02 15:09:36 +00:00
perfmon.h
pmap.h Fix spacing. 2010-07-09 21:27:42 +00:00
pmc_mdep.h - Support for uncore counting events: one fixed PMC with the uncore 2010-04-02 13:23:49 +00:00
ppireg.h
privatespace.h
proc.h Reorganize syscall entry and leave handling. 2010-05-23 18:32:02 +00:00
profile.h Unbreak cc -pg support on i386. In gcc 4.2, %ecx is used as the arg pointer 2008-07-23 11:37:20 +00:00
psl.h
ptrace.h
reg.h - Add macro constants for the various fields in %dr7 and use them in place 2006-11-17 19:20:32 +00:00
reloc.h
resource.h
runq.h
segments.h MFamd64: 2010-07-21 18:47:52 +00:00
setjmp.h Remove 3rd clause, renumber, ok per email 2007-01-12 07:26:21 +00:00
sf_buf.h As was done in r195820 for amd64, use clflush for flushing cache lines 2009-07-29 08:49:58 +00:00
sigframe.h
signal.h Sync definitions for struct sigcontext for i386 and amd64 architectures 2009-04-01 13:44:28 +00:00
smapi.h
smp.h * Completely Remove the option STOP_NMI from the kernel. This option 2009-08-13 17:09:45 +00:00
speaker.h
specialreg.h Add support for corrected machine check interrupts. CMCI is a new local 2010-05-24 15:45:05 +00:00
stack.h Break out stack(9) from ddb(4): 2007-12-02 20:40:35 +00:00
stdarg.h Use __builtin_va_start instead of __builtin_stdarg_start. GCC4 obsoletes 2006-09-21 01:37:02 +00:00
sysarch.h
timerreg.h The "free-lance" timer in the i8254 is only used for the speaker 2008-03-26 20:09:21 +00:00
trap.h GC unused values 2008-10-19 01:23:30 +00:00
tss.h
ucontext.h Add all segment registers for the amd64 CPU to struct reg and mcontext. 2009-04-01 12:44:17 +00:00
varargs.h
vm86.h
vm.h Add support to the virtual memory system for configuring machine- 2009-07-12 23:31:20 +00:00
vmparam.h Very rough first cut at NUMA support for the physical page allocator. For 2010-07-27 20:33:50 +00:00
xbox.h