freebsd-dev/sys
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
..
alpha MFi386 revisions 1.375 and 1.376 2002-12-14 22:25:35 +00:00
amd64 Export the physical address of the RSDP to userland by means 2002-12-18 08:47:07 +00:00
arm Add standards visibility conditionals. Change any uses of sigset_t to 2002-10-13 00:31:46 +00:00
boot -mno-align-long-strings can make things smaller, so lets use it in hopes 2002-12-21 02:03:31 +00:00
cam Quirk for Memorybird pen drive 2002-12-18 21:47:52 +00:00
coda Back our kernel support for reliable signal queues. 2002-10-01 17:15:53 +00:00
compat Regen: swapoff 2002-12-16 00:49:36 +00:00
conf Move the amd(4) driver to it's own directory in preparation for it growing 2002-12-13 22:59:18 +00:00
contrib Resolve conflicts arising from the ACPI CA 20021118 import. 2002-11-27 18:09:20 +00:00
crypto Make this compilable from userland as well. 2002-11-01 08:56:39 +00:00
ddb - Rename the DDB specific %z printf format to %y. 2002-10-25 19:41:32 +00:00
dev Be nice. There are evidentally a number of different cards that 2002-12-21 22:37:54 +00:00
fs Remove redundant check for negative or zero v_usecount; vrele() already 2002-12-15 04:32:41 +00:00
geom Don't forget our topology lock in the MBREXT case. 2002-12-19 12:01:19 +00:00
gnu MFufs 1.33: 2002-10-18 21:41:41 +00:00
i4b network interface and link layer changes: 2002-11-15 00:00:15 +00:00
i386 Export the physical address of the RSDP to userland by means 2002-12-18 08:47:07 +00:00
ia64 More MFp4: DIG64 structures. 2002-12-18 18:52:20 +00:00
isa Use the correct value when writing the Day Of Week byte in the CMOS. 2002-12-04 13:46:49 +00:00
isofs/cd9660 Unbreak MNT_UPDATE when running with cd as root. Detect mountroot by 2002-11-02 20:16:55 +00:00
kern Fix multiple registration of the elf_legacy_coredump sysctl variable. 2002-12-21 01:15:39 +00:00
libkern Fix instances of macros with improperly parenthasized arguments. 2002-11-09 12:55:07 +00:00
modules libmchain no longer exports m_fixhdr(); remove it from EXPORT_SYMS. 2002-12-14 00:01:51 +00:00
net Swap the order of a free and a use of an ifaddr structure. 2002-12-20 11:21:07 +00:00
netatalk Lock up ifaddr reference counts. 2002-12-18 11:46:59 +00:00
netatm - Change the ATM stack functions to use intptr_t instead of int for opaque 2002-11-08 18:27:30 +00:00
netgraph o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
netinet In syncache_timer(), don't attempt to lock the inpcb structure 2002-12-21 19:59:47 +00:00
netinet6 define HAVE_PPSRATECHECK now that we have this stuff in the kernel 2002-12-20 23:57:22 +00:00
netipsec o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
netipx Fix a sizeof(int) != sizeof(void *) warning. 2002-11-08 21:16:27 +00:00
netkey o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
netnatm Be consistent about functions being static. 2002-10-16 09:19:17 +00:00
netncp - Change mb_copy_t to take a size_t as the length argument instead of an 2002-11-08 21:26:32 +00:00
netns Use m_length() instead of home-rolled versions. 2002-09-18 19:44:14 +00:00
netsmb o Untangle the confusion with the malloc flags {M_WAITOK, M_NOWAIT} and 2002-12-19 22:58:27 +00:00
nfs Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
nfsclient do not try to free a mountpoint that we did not allocate. 2002-12-21 20:55:34 +00:00
nfsserver In the NFSv3 `fsinfo' procedure reply, don't claim that we support 2002-12-05 16:58:11 +00:00
opencrypto correct minor # in make_dev call 2002-11-08 23:07:41 +00:00
pc98 Unspam some experimental changes which should not have been committed. 2002-12-17 13:37:08 +00:00
pccard MFp4: 2002-11-27 06:04:49 +00:00
pci Fix bug with 3c90xB cards and newer. We weren't trying to 2002-12-18 23:16:22 +00:00
posix4 Rework the sysconf(3) interaction with aio: 2002-11-17 04:15:34 +00:00
powerpc Unbreak the KSE code. Keep track of zobie threads using the Per-CPU storage 2002-12-10 02:33:45 +00:00
rpc
security SCARGS removal take II. 2002-12-14 01:56: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
sys add generic rate limiting support from netbsd; ratelimit is purely time based, 2002-12-20 23:54:47 +00:00
tools - Move ASSERT_VOP_*LOCK* functionality into functions in vfs_subr.c 2002-09-26 04:48:44 +00:00
ufs Fix corruption introduced in previous delta. 2002-12-18 19:50:28 +00:00
vm Increase the scope of the kmem_object locking in kmem_malloc(). 2002-12-20 18:59:23 +00:00
Makefile