Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-20 Thread Jan Kara
On Tue 19-09-17 22:13:25, Jens Axboe wrote: > On 09/19/2017 09:10 PM, Amir Goldstein wrote: > New version: > > http://git.kernel.dk/cgit/linux-block/commit/?h=writeback-fixup&id=338a69c217cdaaffda93f3cc9a364a347f782adb This looks good to me. You can add: Reviewed-by: Jan Kara

Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-20 Thread Jens Axboe
On 09/20/2017 12:05 AM, Amir Goldstein wrote: > On Wed, Sep 20, 2017 at 7:13 AM, Jens Axboe wrote: >> On 09/19/2017 09:10 PM, Amir Goldstein wrote: >>> On Tue, Sep 19, 2017 at 10:53 PM, Jens Axboe wrote: A few callers pass in nr_pages == 0 when they wakeup the flusher threads, which mea

Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-19 Thread Amir Goldstein
On Wed, Sep 20, 2017 at 7:13 AM, Jens Axboe wrote: > On 09/19/2017 09:10 PM, Amir Goldstein wrote: >> On Tue, Sep 19, 2017 at 10:53 PM, Jens Axboe wrote: >>> A few callers pass in nr_pages == 0 when they wakeup the flusher >>> threads, which means that the flusher should just flush everything >>>

Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-19 Thread Jens Axboe
On 09/19/2017 09:10 PM, Amir Goldstein wrote: > On Tue, Sep 19, 2017 at 10:53 PM, Jens Axboe wrote: >> A few callers pass in nr_pages == 0 when they wakeup the flusher >> threads, which means that the flusher should just flush everything >> that was currently dirty. If we are tight on memory, we c

Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-19 Thread Amir Goldstein
On Tue, Sep 19, 2017 at 10:53 PM, Jens Axboe wrote: > A few callers pass in nr_pages == 0 when they wakeup the flusher > threads, which means that the flusher should just flush everything > that was currently dirty. If we are tight on memory, we can get > tons of these queued from kswapd/vmscan. T

Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-19 Thread Jens Axboe
On 09/19/2017 01:53 PM, Jens Axboe wrote: > @@ -948,15 +949,25 @@ static void wb_start_writeback(struct bdi_writeback > *wb, long nr_pages, > bool range_cyclic, enum wb_reason reason) > { > struct wb_writeback_work *work; > + bool zero_pages = false; > >

Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-19 Thread Jens Axboe
On 09/19/2017 02:18 PM, Johannes Weiner wrote: > On Tue, Sep 19, 2017 at 01:53:07PM -0600, Jens Axboe wrote: >> A few callers pass in nr_pages == 0 when they wakeup the flusher >> threads, which means that the flusher should just flush everything >> that was currently dirty. If we are tight on memo

Re: [PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-19 Thread Johannes Weiner
On Tue, Sep 19, 2017 at 01:53:07PM -0600, Jens Axboe wrote: > A few callers pass in nr_pages == 0 when they wakeup the flusher > threads, which means that the flusher should just flush everything > that was currently dirty. If we are tight on memory, we can get > tons of these queued from kswapd/vm

[PATCH 6/6] fs-writeback: only allow one inflight and pending !nr_pages flush

2017-09-19 Thread Jens Axboe
A few callers pass in nr_pages == 0 when they wakeup the flusher threads, which means that the flusher should just flush everything that was currently dirty. If we are tight on memory, we can get tons of these queued from kswapd/vmscan. This causes (at least) two problems: 1) We consume a ton of m