DragonFly BSD
DragonFly commits List (threaded) for 2012-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Fix swapcache inefficiency related to the PQ_INACTIVE queue


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 2 Jan 2012 23:42:24 -0800 (PST)

commit 64949baad746ba8f3a957a675ce437b2f4529a24
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Mon Jan 2 21:25:47 2012 -0800

    kernel - Fix swapcache inefficiency related to the PQ_INACTIVE queue
    
    * The swapcache was still coded with the assumption of just one
      PQ_INACTIVE queue.  Even though it scans all 256 queues the
      end-of-queue code could trigger early and prevent later queue
      indices from being scanned, causing a large percentage of eligible
      VM pages to not get written to the swapcache.
    
      Now all queues must signal that they have reached the end before the
      code sets the end-of-queue condition and loops up to the 1/10 second
      sleep.
    
    * The full count/scount was being applied to each queue individually instead
      of to all queues uniformly, allowing more pages to be laundered than
      desired.  Divide out and add a bit of slop.

Summary of changes:
 sys/vm/vm_pageout.c   |    8 ++--
 sys/vm/vm_swapcache.c |  131 ++++++++++++++++++++++++++++++++----------------
 2 files changed, 91 insertions(+), 48 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/64949baad746ba8f3a957a675ce437b2f4529a24


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]