1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-04 12:52:15 +00:00
freebsd/sys/sparc64/include
Jake Burkholder b8eb0267c0 - Add a pmap pointer to struct md_page, and use this to find the pmap that
a mapping belongs to by setting it in the vm_page_t structure that backs
  the tsb page that the tte for a mapping is in.  This allows the pmap that
  a mapping belongs to to be found without keeping a pointer to it in the
  tte itself.
- Remove the pmap pointer from struct tte and use the space to make the
  tte pv lists doubly linked (TAILQs), like on other architectures.  This
  makes entering or removing a mapping O(1) instead of O(n) where n is the
  number of pmaps a page is mapped by (including kernel_pmap).
- Use atomic ops for setting and clearing bits in the ttes, now that they
  return the old value and can be easily used for this purpose.
- Use __builtin_memset for zeroing ttes instead of bzero, so that gcc will
  inline it (4 inline stores using %g0 instead of a function call).
- Initially set the virtual colour for all the vm_page_ts to be equal to their
  physical colour.  This will be more useful once uma_small_alloc is
  implemented, but basically pages with virtual colour equal to phsyical
  colour are easier to handle at the pmap level because they can be safely
  accessed through cachable direct virtual to physical mappings with that
  colour, without fear of causing illegal dcache aliases.

In total these changes give a minor performance improvement, about 1%
reduction in system time during buildworld.
2002-12-21 22:43:19 +00:00
..
_inttypes.h Since printf(3) now supports the `j' conversion specifier, use that 2002-06-30 05:48:03 +00:00
_limits.h Create a new header <machine/_stdint.h> for storing MD parts of 2002-07-29 17:41:23 +00:00
_stdint.h Create a new header <machine/_stdint.h> for storing MD parts of 2002-07-29 17:41:23 +00:00
_types.h Move several MI types from <machine/_types.h> to <sys/_types.h>. 2002-08-23 16:49:06 +00:00
asi.h Add ASI definitions of UltraSPARC-III (Cu) processors, and add some 2002-07-16 16:22:25 +00:00
asm.h
asmacros.h Add pmap support for user mappings of multiple page sizes (super pages). 2002-08-18 02:09:27 +00:00
atomic.h Make the atomic arithmetic functions return the old value, since they're 2002-12-21 08:53:26 +00:00
bus_common.h Always initialize the UPA target module id in the interrupt mapping 2002-12-01 23:30:26 +00:00
bus_memio.h
bus_pio.h
bus_private.h
bus.h New bus_dma interfaces for use by crypto device drivers: 2002-10-04 20:40:39 +00:00
cache.h Add SMP aware cache flushing functions, which operate on a single physical 2002-05-20 16:30:47 +00:00
ccr.h
clock.h Add two extern's for adjkerntz and wall_cmos_clock, all other 2002-10-05 20:14:49 +00:00
cpu.h Add declarations for btext and etext. 2002-07-28 01:01:14 +00:00
cpufunc.h
critical.h
db_machdep.h
eeprom.h Add missing header for the eeprom driver frontents. 2002-04-05 02:40:54 +00:00
elf.h Move the definition of ElfN_Hashelt to common headers. The only platform 2002-05-30 08:32:18 +00:00
endian.h Be careful not to define GCC-specific optimizations in the non-GCC 2002-09-23 04:32:17 +00:00
exec.h
float.h
floatingpoint.h
fp.h Remove code from trap which is handled in userland now. 2002-06-08 07:17:19 +00:00
frame.h - Expand struct trapframe to 256 bytes, make all fields fixed width and the 2002-10-22 18:03:15 +00:00
fsr.h Clean up a bit, and add some more macros to access %fsr fields. 2002-09-14 17:58:54 +00:00
idprom.h
ieee.h
ieeefp.h Use the definitions in machine/fsr.h instead of duplicating these magic 2002-09-14 18:00:44 +00:00
in_cksum.h
instr.h Add new UltraSPARC-III VIS II instructions. 2002-07-16 17:44:01 +00:00
intr_machdep.h Renamed intr_enqueue to intr_vector and intr_dequeue to intr_fast, to 2002-09-28 03:06:35 +00:00
iommureg.h
iommuvar.h When multiple IOMMUs are present in a system, use a single TSB for all 2002-07-16 18:17:03 +00:00
kerneldump.h Add kernel dump support, based on the ia64 version (which was committed 2002-10-20 17:03:15 +00:00
kse.h Add files that are new for KSE. 2002-06-29 07:04:59 +00:00
ktr.h Provide an implementation of KTR_CPU that doesn't use pcpu, so we don't 2002-04-06 08:40:59 +00:00
limits.h Create a new header <machine/_stdint.h> for storing MD parts of 2002-07-29 17:41:23 +00:00
lsu.h Add new LSU bits for UltraSPARC-III. 2002-07-16 16:24:03 +00:00
md_var.h Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
metadata.h Use a contrived 'tlb_entry' structure for passing the mappings for the 2002-05-29 05:49:59 +00:00
mutex.h
nexusvar.h
ofw_bus.h Add two new workaround for firmware anomalies: 2002-11-07 16:07:46 +00:00
ofw_machdep.h
ofw_mem.h Add kernel dump support, based on the ia64 version (which was committed 2002-10-20 17:03:15 +00:00
ofw_nexus.h
ofw_upa.h
param.h Get rid of the TODO macro in the few places that still need work; either 2002-10-01 06:34:21 +00:00
pcb.h Explicitely specify an alignment for struct pcb. While all regular pcb's 2002-10-19 15:54:34 +00:00
pcpu.h Store the number of itlb and dtlb entries separately; they may be different. 2002-08-15 05:24:55 +00:00
pmap.h - Add a pmap pointer to struct md_page, and use this to find the pmap that 2002-12-21 22:43:19 +00:00
proc.h Remove unneeded include. 2002-05-08 04:21:58 +00:00
profile.h Add definitions for statistical and high-resolution profiling. The calling 2002-07-30 06:14:34 +00:00
pstate.h
ptrace.h
reg.h - Expand struct trapframe to 256 bytes, make all fields fixed width and the 2002-10-22 18:03:15 +00:00
reloc.h
resource.h
runq.h Move the "- 1" into the RQB_FFS(mask) macro itself so that 2002-06-20 06:21:20 +00:00
setjmp.h Fix namespace issues by using visibility conditionals from 2002-10-05 05:47:56 +00:00
sigframe.h
signal.h Split 4.x and 5.x signal handling so that we can keep 4.x signal 2002-10-25 19:10:58 +00:00
smp.h Remove the tlb argument to tlb_page_demap (itlb or dtlb), in order to better 2002-07-26 15:54:04 +00:00
stdarg.h o Add conditionals to allow va_list to be defined in other headers. 2002-10-06 22:01:07 +00:00
sysarch.h Add support for an alternate signal trampoline; add a sysarch call to register 2002-04-29 18:08:26 +00:00
tick.h Initialize tick_MHz and related variables much earlier. After the last 2002-10-25 17:42:14 +00:00
tlb.h Demark sections of code that need special fault handling with labels. 2002-08-16 00:57:37 +00:00
trap.h Greatly improve readability of trap() by using a table to convert between 2002-10-25 16:00:47 +00:00
tsb.h Add pmap support for user mappings of multiple page sizes (super pages). 2002-08-18 02:09:27 +00:00
tstate.h
tte.h - Add a pmap pointer to struct md_page, and use this to find the pmap that 2002-12-21 22:43:19 +00:00
ucontext.h - Expand struct trapframe to 256 bytes, make all fields fixed width and the 2002-10-22 18:03:15 +00:00
upa.h
utrap.h Don peril sensitive sun glasses and change the default system call vector 2002-10-27 17:22:43 +00:00
varargs.h Add conditionals to allow va_list to be defined in other headers. 2002-10-06 22:02:06 +00:00
ver.h Add two new workaround for firmware anomalies: 2002-11-07 16:07:46 +00:00
vmparam.h Auto size available kernel virtual address space based on phsyical memory 2002-08-10 22:14:16 +00:00
watch.h
wstate.h