freebsd-dev/sys/mips
Alan Cox c027892779 Merge portions of r208645 and supporting code from the i386 pmap:
When I pushed down the page queues lock into pmap_is_modified(), I created
  an ordering dependence: A pmap operation that clears PG_WRITEABLE and calls
  vm_page_dirty() must perform the call first.  Otherwise, pmap_is_modified()
  could return FALSE without acquiring the page queues lock because the page
  is not (currently) writeable, and the caller to pmap_is_modified() might
  believe that the page's dirty field is clear because it has not seen the
  effect of the vm_page_dirty() call.

  When I pushed down the page queues lock into pmap_is_modified(), I
  overlooked one place where this ordering dependence is violated:
  pmap_enter().  In a rare situation pmap_enter() can be called to replace a
  dirty mapping to one page with a mapping to another page.  (I say rare
  because replacements generally occur as a result of a copy-on-write fault,
  and so the old page is not dirty.)  This change delays clearing PG_WRITEABLE
  until after vm_page_dirty() has been called.

  Fixing the ordering dependency also makes it easy to introduce a small
  optimization: When pmap_enter() used to replace a mapping to one page with a
  mapping to another page, it freed the pv entry for the first mapping and
  later called the pv entry allocator for the new mapping.  Now, pmap_enter()
  attempts to recycle the old pv entry, saving two calls to the pv entry
  allocator.
2010-05-31 01:43:02 +00:00
..
adm5120 Remove some stray ';'s 2010-05-13 01:50:29 +00:00
alchemy Hack to make ALCHEMY compile again... 2010-02-18 19:41:38 +00:00
atheros Add new tunable 'net.link.ifqmaxlen' to set default send interface 2010-05-03 07:32:50 +00:00
cavium Remove redundant checking of sc_leaving (uart_intr() already handles this). 2010-05-02 19:07:19 +00:00
compile
conf This pushes all of JC's patches that I have in place. I 2010-05-16 19:43:48 +00:00
idt - Call post-boot fixup function in order to get proper static 2010-01-25 00:44:05 +00:00
include Get rid of empty and unused KSEG0TEXT macros. 2010-05-25 05:45:16 +00:00
malta Fix MALTA64 build. 2010-04-19 09:03:34 +00:00
mips Merge portions of r208645 and supporting code from the i386 pmap: 2010-05-31 01:43:02 +00:00
rmi Remove unused code in sys/mips/rmi : 2010-05-24 06:01:37 +00:00
sentry5 - Call post-boot fixup function in order to get proper static 2010-01-25 00:44:05 +00:00
sibyte Fix Sibyte SMP kernel breakage caused by r208249. 2010-05-18 05:12:54 +00:00