Re: [PATCH] vmscan: skip freeing memory from zones with lots free

KOSAKI Motohiro
2008-12-08T17:48:40Z

> example,
>
> Called zone_watermark_ok(zone, 2, pages_min, 0, 0);
> pages_min = 64
> free pages = 80
>
> case A.
>
> order nr_pages
> --------------------
> 2 5
> 1 10
> 0 30
>
> -> zone_watermark_ok() return 1
>
> case B.
>
> order nr_pages
> --------------------
> 3 10
> 2 0
> 1 0
> 0 0
>
> -> zone_watermark_ok() return 0

Doh!
this example is obiously buggy.

I guess Mr. KOSAKI is very silly or Idiot.
I recommend to he get feathery blanket and good sleeping, instead
black black coffee ;-)

...but below mesurement result still true.

> This patch change zone_watermark_ok() logic to prefer large contenious block.
>
>
> Result:
>
> test machine:
> CPU: ia64 x 8
> MEM: 8GB
>
> benchmark:
> $ tbench 8 (three times mesurement)
>
> tbench works between about 600sec.
> alloc_pages() and zone_watermark_ok() are called about 15,000,000 times.
>
>
> 2.6.28-rc6 this patch
>
> throughput max-latency throughput max-latency
> ---------------------------------------------------------
> 1480.92 20.896 1,490.27 19.606
> 1483.94 19.202 1,482.86 21.082
> 1478.93 22.215 1,490.57 23.493
>
> avg 1,481.26 20.771 1,487.90 21.394
> std 2.06 1.233 3.56 1.602
> min 1,478.93 19.202 1,477.86 19.606
> max 1,483.94 22.215 1,490.57 23.493
>
>
> throughput improve about 5MB/sec. it over measurement wobbly.