freebsd-nq/sys/sparc64
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
..
compile
conf Add COMPAT_FREEBSD4 for the transition. COMPAT_43 was already present. 2002-10-26 04:57:19 +00:00
ebus Add two new workaround for firmware anomalies: 2002-11-07 16:07:46 +00:00
include - Add a pmap pointer to struct md_page, and use this to find the pmap that 2002-12-21 22:43:19 +00:00
isa Add two new workaround for firmware anomalies: 2002-11-07 16:07:46 +00:00
pci Exclude yet more interrupt mapping registers from the OBIO INO search, 2002-12-06 13:16:52 +00:00
sbus Always initialize the UPA target module id in the interrupt mapping 2002-12-01 23:30:26 +00:00
sparc64 - Add a pmap pointer to struct md_page, and use this to find the pmap that 2002-12-21 22:43:19 +00:00