Re: [PATCH] Negative (setpoint-dirty) in bdi_position_ratio()

From: Fengguang Wu
Date: Thu Jan 24 2013 - 09:56:59 EST


Hi Paul,

> (This patch does not solve the PAE OOM issue.)

You may try the below debug patch. The only way the writeback patches
should trigger OOM, I think, is for the number of dirty/writeback
pages going out of control.

Or more simple, you may show us the OOM dmesg which will contain the
number of dirty pages. Or run this in a continuous loop during your
tests, and see how the dirty numbers change before OOM:

while :
do
grep -E '(Dirty|Writeback)' /proc/meminfo
sleep 1
done

Thanks,
Fengguang

diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 50f0824..cf1165a 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -1147,6 +1147,16 @@ pause:
if (task_ratelimit)
break;

+ if (nr_dirty > dirty_thresh + dirty_thresh / 2) {
+ if (printk_ratelimit())
+ printk(KERN_WARNING "nr_dirty=%lu dirty_thresh=%lu task_ratelimit=%lu dirty_ratelimit=%lu pos_ratio=%lu\n",
+ nr_dirty,
+ dirty_thresh,
+ task_ratelimit,
+ dirty_ratelimit,
+ pos_ratio);
+ }
+
/*
* In the case of an unresponding NFS server and the NFS dirty
* pages exceeds dirty_thresh, give the other good bdi's a pipe
--
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/