freebsd-nq/sys/sparc64/include
Jake Burkholder 5573db3f0b Allocate tlb contexts on the fly in cpu_switch, instead of statically 1 to 1
with pmaps.  When the context numbers wrap around we flush all user mappings
from the tlb.  This makes use of the array indexed by cpuid to allow a pmap
to have a different context number on a different cpu.  If the context numbers
are then divided evenly among cpus such that none are shared, we can avoid
sending tlb shootdown ipis in an smp system for non-shared pmaps.  This also
removes a limit of 8192 processes (pmaps) that could be active at any given
time due to running out of tlb contexts.

Inspired by:		the brown book
Crucial bugfix from:	tmm
2002-03-04 05:20:29 +00:00
..
_inttypes.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
_limits.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
ansi.h Resurrect one of the easiest changes from my big include files roll-up 2002-02-15 22:15:39 +00:00
asi.h Add asis for the upa config reg, which contains the hardware cpu id, and 2002-01-08 04:29:50 +00:00
asm.h Define __ASM__ so that libc will know not to define C things. 2002-01-01 21:21:05 +00:00
asmacros.h Update comments and defines to reflect that normal and alternate g6 point 2002-01-08 04:34:20 +00:00
atomic.h Use ASI_P instead of ASI_N if _KERNEL isn't defined so that these 2001-12-29 06:48:43 +00:00
bus_common.h Add support for the counter-timer which is included in the Sun U2S and 2002-02-13 16:16:36 +00:00
bus_memio.h Add bus_space and busdma support for sparc64. 2001-11-09 20:05:53 +00:00
bus_pio.h Add bus_space and busdma support for sparc64. 2001-11-09 20:05:53 +00:00
bus.h Clean up bus space debugging support; change sparc64_bus_mem_map() to 2002-02-13 15:51:57 +00:00
cache.h Use stxa_sync() when accessing the diagnostic registers to invalidate 2002-02-13 16:20:38 +00:00
ccr.h Add definitions for the number of bits in the icc and xcc fields 2001-12-29 06:50:25 +00:00
clock.h
cpu.h Define CKLF_PC in terms of TRAPF_PC. 2002-01-08 04:36:53 +00:00
cpufunc.h Add a few new functions/macros: intr_disable() and intr_restore() to 2002-02-13 15:40:05 +00:00
db_machdep.h 1. Remove kdbframe. Bad idea. 2001-11-18 03:41:12 +00:00
elf.h Implement elf_reloc. This makes klds work. 2001-10-27 07:09:40 +00:00
endian.h Add the following functions/macros to support byte order conversions and 2002-02-27 17:16:18 +00:00
exec.h
float.h Add kernel headers needed to build libc. Some are bogus and/or just enough 2001-11-18 17:56:46 +00:00
floatingpoint.h Add this FreeBSD standard header. 2002-02-10 14:27:20 +00:00
fp.h Change fpblock to be an array of ints instead longs. 2001-12-29 06:53:19 +00:00
frame.h Add a macro for shift of an integer (1 << shift == sizeof). Move the pointer 2002-02-27 00:21:04 +00:00
fsr.h 1. Split fp.h into fp.h and fsr.h so that the latter can be included 2001-11-18 04:00:22 +00:00
idprom.h Add a structure defintion for the id prom contents. 2001-11-18 20:50:11 +00:00
ieee.h Add kernel headers needed to build libc. Some are bogus and/or just enough 2001-11-18 17:56:46 +00:00
ieeefp.h Standardize idempotentcy ifdefs. 2001-11-18 20:30:16 +00:00
in_cksum.h Add optimized implementations of in_cksum_skip() and related functions 2001-11-06 20:05:01 +00:00
instr.h Adapt for used by upcoming fp emulation code. 2001-12-29 08:55:56 +00:00
intr_machdep.h Avoid crashing in early boot when WITNESS is enabled by moving the 2002-02-13 16:36:44 +00:00
iommureg.h Add a delta missed in the last iommu.c commit. This unbreaks the sparc64 2002-02-15 14:48:54 +00:00
iommuvar.h Merge r1.42 of iommu.c and r1.9 of iommuvar.h from NetBSD (this adds 2002-02-13 15:59:17 +00:00
ktr.h Remove an unused macro arg. 2001-10-20 15:57:39 +00:00
limits.h o Add new header <sys/stdint.h>. 2001-11-02 18:05:43 +00:00
lsu.h
md_var.h Make cpu_identify take the value of the ver register and cpuid as arguments 2002-02-27 06:05:50 +00:00
metadata.h Add metadata types for dtlb and itlb data, and number of slots used. 2002-02-23 17:43:44 +00:00
mutex.h Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
nexusvar.h Correct the defintion of struct ofw_upa_regs, and use it instead of 2002-01-02 18:27:13 +00:00
ofw_bus.h Add some OpenFirmware bus support code and definitions. 2001-11-09 20:10:55 +00:00
ofw_machdep.h Add some OpenFirmware bus support code and definitions. 2001-11-09 20:10:55 +00:00
ofw_nexus.h Correct the defintion of struct ofw_upa_regs, and use it instead of 2002-01-02 18:27:13 +00:00
ofw_upa.h Correct the defintion of struct ofw_upa_regs, and use it instead of 2002-01-02 18:27:13 +00:00
param.h Parameterize the number of pages to allocate for the per-cpu area on 2002-02-27 06:08:13 +00:00
pcb.h Remove pcb_y. It has moved to trapframe. 2001-12-29 07:00:30 +00:00
pcpu.h Allocate tlb contexts on the fly in cpu_switch, instead of statically 1 to 1 2002-03-04 05:20:29 +00:00
pmap.h Allocate tlb contexts on the fly in cpu_switch, instead of statically 1 to 1 2002-03-04 05:20:29 +00:00
proc.h Implement user trap delivery as specified by the sparc abi. This provides 2002-01-01 20:56:28 +00:00
profile.h Add kernel headers needed to build libc. Some are bogus and/or just enough 2001-11-18 17:56:46 +00:00
pstate.h Define PSTATE_MM_MASK in terms of PSTATE_MM_SIZE. 2001-12-29 07:01:34 +00:00
ptrace.h Define basic macros required by GDB. 2002-02-26 21:49:46 +00:00
pv.h Implement pv entries as separate structures from the ttes, like other 2001-12-29 08:17:16 +00:00
reg.h Add fprs to struct fpreg. 2001-12-29 07:02:12 +00:00
reloc.h Add kernel headers needed to build libc. Some are bogus and/or just enough 2001-11-18 17:56:46 +00:00
resource.h
setjmp.h jmpbuf is no longer a ucontext_t since it does not need to be passed 2001-12-29 07:03:09 +00:00
sigframe.h
signal.h
smp.h Include intr_machdep.h only for !LOCORE. 2002-02-23 18:41:34 +00:00
stdarg.h
sysarch.h Implement sysarch(SPARC_UTRAP_INSTALL). 2002-01-01 20:57:51 +00:00
tick.h
tlb.h Allocate tlb contexts on the fly in cpu_switch, instead of statically 1 to 1 2002-03-04 05:20:29 +00:00
trap.h Add a panic stack, which is used as a known good stack when there is 2002-01-01 20:26:46 +00:00
tsb.h Minimal testing has shown that a 4 page tsb is a nice sweet spot for current 2002-02-27 06:18:02 +00:00
tstate.h Add definitions for TSTATE_MM_* and TSTATE_{I,X}CC_*. 2001-12-29 07:11:00 +00:00
tte.h Modify the tte format to not include the tlb context number and to store the 2002-02-25 04:56:50 +00:00
types.h style(9) 2001-12-09 19:12:07 +00:00
ucontext.h 1. Remove bootinfo and just pass loader metadata to the kernel. 2001-11-18 03:02:53 +00:00
upa.h Add macros to extract the UPA module id from the UPA config register. 2002-02-23 19:54:34 +00:00
utrap.h Add a define for the fp restore soft trap type. 2002-01-01 21:19:46 +00:00
varargs.h Standardize idempotentcy ifdefs. 2001-11-18 20:30:16 +00:00
ver.h Define constants for the CPU implementation id; export the dectected id 2002-02-13 15:47:12 +00:00
vmparam.h Add comments as to why VM_MAXUSER_ADDRESS is magic (abitrary). 2001-12-29 08:25:43 +00:00
watch.h
wstate.h Implement a nested window state. This avoids attempting to spill a user 2002-02-25 18:37:17 +00:00