Re: [PATCH 05/17] writeback: quit throttling when signal pending

From: KOSAKI Motohiro
Date: Tue Sep 14 2010 - 04:24:30 EST


> Subject: writeback: quit throttling when fatal signal pending
> From: Wu Fengguang <fengguang.wu@xxxxxxxxx>
> Date: Wed Sep 08 17:40:22 CST 2010
>
> This allows quick response to Ctrl-C etc. for impatient users.
>
> It mainly helps the rare bdi/global dirty exceeded cases.
> In the normal case of not exceeded, it will quit the loop anyway.
>
> CC: Neil Brown <neilb@xxxxxxx>
> Signed-off-by: Wu Fengguang <fengguang.wu@xxxxxxxxx>
> ---
> mm/page-writeback.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> --- linux-next.orig/mm/page-writeback.c 2010-09-12 13:25:23.000000000 +0800
> +++ linux-next/mm/page-writeback.c 2010-09-13 11:39:33.000000000 +0800
> @@ -552,6 +552,9 @@ static void balance_dirty_pages(struct a
> __set_current_state(TASK_INTERRUPTIBLE);
> io_schedule_timeout(pause);
>
> + if (fatal_signal_pending(current))
> + break;
> +
> check_exceeded:
> /*
> * The bdi thresh is somehow "soft" limit derived from the

I think we need to change callers (e.g. generic_perform_write) too.
Otherwise, plenty write + SIGKILL combination easily exceed dirty limit.
It mean we can see strange OOM.



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/