[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#695182: [PATCH] Negative (setpoint-dirty) in bdi_position_ratio()



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


Reply to: