On Sun, May 16, 2010 at 2:02 PM, Matthew Dillon <dil...@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? Thanks, -- vs