RFC: [PATCH] disabling buckets under "low memory"

Alan Cox alan.l.cox at gmail.com
Wed May 23 18:15:52 UTC 2012


On Wed, May 23, 2012 at 1:05 PM, Maksim Yevmenkin <
maksim.yevmenkin at gmail.com> wrote:

> hello,
>
> would anyone object to the following patch?
>
>
No objection.  There shouldn't be any controversy here.  Your patch is
correct.  The existing code in UMA is doing the wrong comparison.

Alan


> ===
>
> Index: uma_core.c
> ===================================================================
> --- uma_core.c  (revision 616)
> +++ uma_core.c  (working copy)
> @@ -267,10 +267,7 @@
>  static void
>  bucket_enable(void)
>  {
> -       if (cnt.v_free_count < cnt.v_free_min)
> -               bucketdisable = 1;
> -       else
> -               bucketdisable = 0;
> +       bucketdisable = vm_page_count_min();
>  }
>
> ===
>
> i've observed situation where per-cpu buckets were disabled while
> there were enough free cached pages. basically, cnt.v_free_count was
> sitting stable at a value lower than cnt.v_free_min and that caused
> massive performance drop. tuning down vm.v_free_min sysctl immediately
> helped.
>
> thanks,
> max
>


More information about the freebsd-current mailing list