Re: [PATCH] mm: disallow direct reclaim page writeback

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Dave Chinner
Date: Tuesday, April 13, 2010 - 8:12 pm

On Wed, Apr 14, 2010 at 12:36:59AM +1000, Dave Chinner wrote:

So, a rough as guts first pass - just run a large dd (8 times the
size of memory - 8GB file vs 1GB RAM) and repeated try to allocate
the entire of memory in huge pages (500) every 5 seconds. The IO
rate is roughly 100MB/s, so it takes 75-85s to complete the dd.

The script:

$ cat t.sh
#!/bin/bash

echo 0 > /proc/sys/vm/nr_hugepages
echo 3 > /proc/sys/vm/drop_caches

dd if=/dev/zero of=/mnt/scratch/test bs=1024k count=8000 > /dev/null 2>&1 &

(
for i in `seq 1 1 20`; do
        sleep 5
        /usr/bin/time --format="wall %e" sh -c "echo 500 > /proc/sys/vm/nr_hugepages" 2>&1
        grep HugePages_Total /proc/meminfo
done
) | awk '
        /wall/ { wall += $2; cnt += 1 }
        /Pages/ { pages[cnt] = $2 }
        END { printf "average wall time %f\nPages step: ", wall / cnt ;
                for (i = 1; i <= cnt; i++) {
                        printf "%d ", pages[i];
                }
        }'
----

And the output looks like:

$ sudo ./t.sh
average wall time 0.954500
Pages step: 97 101 101 121 173 173 173 173 173 173 175 194 195 195 202 220 226 419 423 426
$

Run 50 times in a loop, and the outputs averaged, the existing lumpy
reclaim resulted in:

dave@test-1:~$ cat current.txt | awk -f av.awk
av. wall = 0.519385 secs
av Pages step: 192 228 242 255 265 272 279 284 289 294 298 303 307 322 342 366 383 401 412 420

And with my patch that disables ->writepage:

dave@test-1:~$ cat no-direct.txt | awk -f av.awk
av. wall = 0.554163 secs
av Pages step: 231 283 310 316 323 328 336 340 345 351 356 359 364 377 388 397 413 423 432 439

Basically, with my patch lumpy reclaim was *substantially* more
effective with only a slight increase in average allocation latency
with this test case.

I need to add a marker to the output that records when the dd
completes, but from monitoring the writeback rates via PCP, they
were in the balllpark of 85-100MB/s for the existing code, and
95-110MB/s with my patch.  Hence it improved both IO throughput and
the effectiveness of lumpy reclaim.

On the down side, I did have an OOM killer invocation with my patch
after about 150 iterations - dd failed an order zero allocation
because there were 455 huge pages allocated and there were only
_320_ available pages for IO, all of which were under IO. i.e. lumpy
reclaim worked so well that the machine got into order-0 page
starvation.

I know this is a simple test case, but it shows much better results
than I think anyone (even me) is expecting...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Mon Apr 12, 5:17 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 1:31 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 3:29 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 4:19 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 4:39 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 7:36 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Mel Gorman, (Tue Apr 13, 12:34 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Tue Apr 13, 1:20 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Tue Apr 13, 5:24 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 6:40 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 8:12 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 9:44 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Tue Apr 13, 9:59 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Tue Apr 13, 10:41 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 10:54 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Tue Apr 13, 11:13 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Tue Apr 13, 11:52 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 12:06 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 12:19 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 12:28 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 12:36 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 12:54 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Wed Apr 14, 2:42 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 3:01 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Minchan Kim, (Wed Apr 14, 3:16 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Wed Apr 14, 4:20 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Wed Apr 14, 7:07 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 6:34 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 6:56 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Johannes Weiner, (Wed Apr 14, 7:37 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Wed Apr 14, 7:43 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Wed Apr 14, 9:09 pm)
[PATCH 2/4] vmscan: kill prev_priority completely, KOSAKI Motohiro, (Wed Apr 14, 9:13 pm)
[PATCH 3/4] vmscan: move priority variable into scan_control, KOSAKI Motohiro, (Wed Apr 14, 9:14 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Wed Apr 14, 9:35 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 11:20 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 11:32 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Wed Apr 14, 11:58 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Thu Apr 15, 1:54 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, KOSAKI Motohiro, (Thu Apr 15, 3:21 am)
[PATCH 1/4] vmscan: simplify shrink_inactive_list(), KOSAKI Motohiro, (Thu Apr 15, 3:23 am)
[PATCH 2/4] [cleanup] mm: introduce free_pages_prepare, KOSAKI Motohiro, (Thu Apr 15, 3:24 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Chris Mason, (Thu Apr 15, 6:42 am)
Re: [PATCH 3/4] mm: introduce free_pages_bulk, Mel Gorman, (Thu Apr 15, 6:46 am)
Re: [PATCH 1/4] vmscan: delegate pageout io to flusher thr ..., Suleiman Souhlal, (Thu Apr 15, 10:24 am)
Re: [PATCH 1/4] vmscan: delegate pageout io to flusher thr ..., Suleiman Souhlal, (Thu Apr 15, 10:27 am)
Re: [PATCH 1/4] vmscan: simplify shrink_inactive_list(), Valdis.Kletnieks, (Thu Apr 15, 11:22 am)
Re: [PATCH 1/4] vmscan: simplify shrink_inactive_list(), Dave Chinner, (Thu Apr 15, 4:40 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Thu Apr 15, 6:13 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Thu Apr 15, 9:14 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, KAMEZAWA Hiroyuki, (Thu Apr 15, 9:18 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Johannes Weiner, (Fri Apr 16, 4:56 pm)
Re: [PATCH 1/4] vmscan: simplify shrink_inactive_list(), Dave Chinner, (Fri Apr 16, 7:37 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Andrew Morton, (Sat Apr 17, 5:32 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Andrew Morton, (Sun Apr 18, 9:31 am)
Re: [PATCH] mm: disallow direct reclaim page writeback, Christoph Hellwig, (Sun Apr 18, 12:05 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Sorin Faibish, (Sun Apr 18, 12:10 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Sorin Faibish, (Sun Apr 18, 12:11 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Christoph Hellwig, (Sun Apr 18, 12:35 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Sorin Faibish, (Sun Apr 18, 4:34 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Sun Apr 18, 5:35 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Arjan van de Ven, (Sun Apr 18, 5:49 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Sun Apr 18, 6:08 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Arjan van de Ven, (Sun Apr 18, 9:32 pm)
Re: [PATCH] mm: disallow direct reclaim page writeback, Dave Chinner, (Thu Apr 22, 6:06 pm)