Re: VM idle page zeroing

看板DFBSD_kernel作者時間15年前 (2010/05/17 07:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串10/19 (看更多)
--00163642759d427ab10486be0496 Content-Type: text/plain; charset=UTF-8 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? Thanks, -- vs --00163642759d427ab10486be0496 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Sun, May 16, 2010 at 2:02 PM, Matthew Dillon <span dir=3D"ltr">&lt;<a hr= ef=3D"mailto:dillon@apollo.backplane.com">dillon@apollo.backplane.com</a>&g= t;</span> wrote:<br><div class=3D"gmail_quote"><blockquote class=3D"gmail_q= uote" style=3D"margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 2= 04, 204); padding-left: 1ex;"> =C2=A0 =C2=A0Venkatesh&#39;s VM idle page zeroing code has been committed.= =C2=A0I used a<br> =C2=A0 =C2=A0squashed merge and rolled in some additional fixes for proble= ms that<br> =C2=A0 =C2=A0came up during testing, so our main repo probably won&#39;t s= ync with<br> =C2=A0 =C2=A0Venkatesh&#39;s repo now.<br> <br> =C2=A0 =C2=A0It currently defaults to disabled. =C2=A0We will change the d= efault to<br> =C2=A0 =C2=A0enabled once we do a little more testing. =C2=A0&#39;sysctl v= m | fgrep zero&#39;<br> =C2=A0 =C2=A0gets you all the sysctls.<br> <br> =C2=A0 =C2=A0It doesn&#39;t make a huge difference when testing a parallel= buildworld,<br> =C2=A0 =C2=A0*maybe* saving 20 seconds on a 1200 second build. =C2=A0I exp= ect that it<br> =C2=A0 =C2=A0will make more of a difference for burst or serialized operat= ions such<br> =C2=A0 =C2=A0as shell script execution where cpus have enough idle time to= <br> =C2=A0 =C2=A0pre-zero more pages.<br> <br> =C2=A0 =C2=A0The page zeroing rate has been bumped up to levels more condu= sive to<br> =C2=A0 =C2=A0expected workloads, around 20,000 pages per second max.<br> </blockquote><div><br>Cool; I&#39;ll try here to see if makes a difference = on older h/w.<br><br>Any particular reason for moving the thread to the las= t cpu?<br><br>Something that occured to me - right now, we have a thread th= at 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 lo= t. 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 wh= en we hit ZIDLE_LOW?<br> <br>Thanks,<br></div></div>-- vs<br> --00163642759d427ab10486be0496--
文章代碼(AID): #1By81ry1 (DFBSD_kernel)
討論串 (同標題文章)
文章代碼(AID): #1By81ry1 (DFBSD_kernel)