DragonFly BSD
DragonFly kernel List (threaded) for 2010-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: VM idle page zeroing

From: Venkatesh Srinivas <me@xxxxxxxxxxx>
Date: Sun, 16 May 2010 18:56:00 -0400

On Sun, May 16, 2010 at 2:02 PM, Matthew Dillon <dillon@apollo.backplane.com> wrote:
   Venkatesh's VM idle page zeroing code has been committed.  I used a
   squashed merge and rolled in some additional fixes for problems that
   came up during testing, so our main repo probably won't sync with
   Venkatesh's repo now.

   It currently defaults to disabled.  We will change the default to
   enabled once we do a little more testing.  'sysctl vm | fgrep zero'
   gets you all the sysctls.

   It doesn't make a huge difference when testing a parallel buildworld,
   *maybe* saving 20 seconds on a 1200 second build.  I expect that it
   will make more of a difference for burst or serialized operations such
   as shell script execution where cpus have enough idle time to
   pre-zero more pages.

   The page zeroing rate has been bumped up to levels more condusive to
   expected workloads, around 20,000 pages per second max.

Cool; I'll try here to see if makes a difference on older h/w.

Any particular reason for moving the thread to the last cpu?

Something that occured to me - right now, we have a thread that wakes up every 1/10th of a second, checks if there are pages to zero. At long stretches of idle time, we just end up waking and sleeping a whole lot. Instead, perhaps, when vm_page_zero_check() sees that we hit ZIDLE_HIGH we should perhaps sleep for a lot longer and drop down to the usual rate when we hit ZIDLE_LOW?

-- vs

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