Andrea Righi
9e4a5bda89
mm: prevent divide error for small values of vm_dirty_bytes
Avoid setting less than two pages for vm_dirty_bytes: this is necessary to
avoid potential division by 0 (like the following) in get_dirty_limits().
[ 49.951610] divide error: 0000 [#1] PREEMPT SMP
[ 49.952195] last sysfs file: /sys/devices/pci0000:00/0000:00:01.1/host0/target0:0:0/0:0:0:0/block/sda/uevent
[ 49.952195] CPU 1
[ 49.952195] Modules linked in: pcspkr
[ 49.952195] Pid: 3064, comm: dd Not tainted 2.6.30-rc3 #1
[ 49.952195] RIP: 0010:[<ffffffff802d39a9>] [<ffffffff802d39a9>] get_dirty_limits+0xe9/0x2c0
[ 49.952195] RSP: 0018:ffff88001de03a98 EFLAGS: 00010202
[ 49.952195] RAX: 00000000000000c0 RBX: ffff88001de03b80 RCX: 28f5c28f5c28f5c3
[ 49.952195] RDX: 0000000000000000 RSI: 00000000000000c0 RDI: 0000000000000000
[ 49.952195] RBP: ffff88001de03ae8 R08: 0000000000000000 R09: 0000000000000000
[ 49.952195] R10: ffff88001ddda9a0 R11: 0000000000000001 R12: 0000000000000001
[ 49.952195] R13: ffff88001fbc8218 R14: ffff88001de03b70 R15: ffff88001de03b78
[ 49.952195] FS: 00007fe9a435b6f0(0000) GS:ffff8800025d9000(0000) knlGS:0000000000000000
[ 49.952195] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 49.952195] CR2: 00007fe9a39ab000 CR3: 000000001de38000 CR4: 00000000000006e0
[ 49.952195] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 49.952195] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 49.952195] Process dd (pid: 3064, threadinfo ffff88001de02000, task ffff88001ddda250)
[ 49.952195] Stack:
[ 49.952195] ffff88001fa0de00 ffff88001f2dbd70 ffff88001f9fe800 000080b900000000
[ 49.952195] 00000000000000c0 ffff8800027a6100 0000000000000400 ffff88001fbc8218
[ 49.952195] 0000000000000000 0000000000000600 ffff88001de03bb8 ffffffff802d3ed7
[ 49.952195] Call Trace:
[ 49.952195] [<ffffffff802d3ed7>] balance_dirty_pages_ratelimited_nr+0x1d7/0x3f0
[ 49.952195] [<ffffffff80368f8e>] ? ext3_writeback_write_end+0x9e/0x120
[ 49.952195] [<ffffffff802cc7df>] generic_file_buffered_write+0x12f/0x330
[ 49.952195] [<ffffffff802cce8d>] __generic_file_aio_write_nolock+0x26d/0x460
[ 49.952195] [<ffffffff802cda32>] ? generic_file_aio_write+0x52/0xd0
[ 49.952195] [<ffffffff802cda49>] generic_file_aio_write+0x69/0xd0
[ 49.952195] [<ffffffff80365fa6>] ext3_file_write+0x26/0xc0
[ 49.952195] [<ffffffff803034d1>] do_sync_write+0xf1/0x140
[ 49.952195] [<ffffffff80290d1a>] ? get_lock_stats+0x2a/0x60
[ 49.952195] [<ffffffff80280730>] ? autoremove_wake_function+0x0/0x40
[ 49.952195] [<ffffffff8030411b>] vfs_write+0xcb/0x190
[ 49.952195] [<ffffffff803042d0>] sys_write+0x50/0x90
[ 49.952195] [<ffffffff8022ff6b>] system_call_fastpath+0x16/0x1b
[ 49.952195] Code: 00 00 00 2b 05 09 1c 17 01 48 89 c6 49 0f af f4 48 c1 ee 02 48 89 f0 48 f7 e1 48 89 d6 31 d2 48 c1 ee 02 48 0f af 75 d0 48 89 f0 <48> f7 f7 41 8b 95 ac 01 00 00 48 89 c7 49 0f af d4 48 c1 ea 02
[ 49.952195] RIP [<ffffffff802d39a9>] get_dirty_limits+0xe9/0x2c0
[ 49.952195] RSP <ffff88001de03a98>
[ 50.096523] ---[ end trace 008d7aa02f244d7b ]---
Signed-off-by: Andrea Righi <righi.andrea@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-05-02 15:36:10 -07:00
..
2009-04-21 00:35:47 -04:00
2009-01-15 16:39:37 -08:00
2008-11-07 21:45:29 -05:00
2008-02-08 09:22:31 -08:00
2009-03-26 22:44:43 +00:00
2008-10-30 11:38:45 -07:00
2009-01-07 23:14:38 +08:00
2009-04-15 08:28:11 +02:00
2009-04-07 08:12:38 +02:00
2008-10-10 08:22:44 +02:00
2009-04-13 15:04:33 -07:00
2009-02-12 16:47:01 -08:00
2007-07-19 10:04:47 -07:00
2009-02-24 22:47:31 -05:00
2008-02-14 00:16:13 -05:00
2008-10-16 11:21:30 -07:00
2009-01-05 18:10:19 -07:00
2009-01-08 16:32:13 -07:00
2008-04-25 13:27:03 +01:00
2009-04-22 14:49:33 -07:00
2009-04-16 16:17:10 -07:00
2009-03-30 12:43:31 -03:00
2008-04-21 22:19:05 +00:00
2007-07-16 09:05:45 -07:00
2009-04-07 08:31:09 -07:00
2009-05-02 15:36:09 -07:00
2008-04-21 22:23:30 +00:00
2008-02-03 15:54:28 +02:00
2009-04-07 08:31:03 -07:00
2009-03-30 21:46:43 +02:00
2007-05-09 08:58:19 +02:00
2009-03-30 15:21:59 +02:00
2009-01-06 17:21:00 +01:00
2009-04-08 13:52:01 -07:00
2009-03-08 16:35:53 -07:00
2009-03-30 12:43:15 -03:00
2009-04-27 05:37:39 -07:00
2009-01-28 15:55:48 -08:00
2009-04-19 11:12:12 +02:00
2008-10-22 15:01:22 +11:00
2007-12-17 10:33:19 -08:00
2009-04-18 01:19:54 -04:00
2009-04-19 23:14:02 +09:30
2008-01-11 18:22:30 -06:00
2007-10-17 08:43:05 -07:00
2009-01-14 19:19:03 +01:00
2009-04-01 08:59:18 -07:00
2008-02-08 09:22:30 -08:00
2008-08-16 10:55:33 +01:00
2007-11-29 09:24:53 -08:00
2007-05-09 08:57:56 +02:00
2009-04-13 00:12:41 -07:00
2009-03-20 11:35:04 -07:00
2008-10-30 11:38:45 -07:00
2008-10-16 11:21:29 -07:00
2009-04-22 13:02:09 +10:00
2008-04-19 19:19:55 +02:00
2009-04-02 01:33:51 -07:00
2009-01-06 15:59:28 -08:00
2009-03-30 15:22:02 +02:00
2009-04-03 09:23:11 -05:00
2008-11-14 17:28:53 +00:00
2008-12-22 18:44:05 +09:00
2009-04-15 11:51:50 +02:00
2008-08-29 02:15:25 -07:00
2009-04-21 13:41:50 -07:00
2009-05-02 15:36:10 -07:00
2008-07-22 19:24:29 +10:00
2008-04-29 02:49:47 -04:00
2008-07-31 18:45:41 +02:00
2009-04-09 07:28:10 +02:00
2006-11-30 04:58:40 +01:00
2009-03-24 16:20:36 -07:00
2009-04-06 21:44:24 -03:00
2009-04-13 15:04:32 -07:00
2009-01-08 08:31:14 -08:00
2008-10-30 11:38:45 -07:00
2009-01-07 10:00:18 -08:00
2009-04-03 15:24:35 -07:00
2008-01-24 20:40:04 -08:00
2009-03-30 15:22:02 +02:00
2008-02-23 17:52:36 -08:00
2008-12-03 16:09:53 -07:00
2007-05-09 08:58:19 +02:00
2008-04-30 08:29:52 -07:00
2008-07-25 10:53:30 -07:00
2008-02-06 10:41:09 -08:00
2008-11-12 17:17:18 -08:00
2007-10-19 11:53:34 -07:00
2009-01-29 18:19:30 -08:00
2009-01-29 18:19:29 -08:00
2008-12-18 12:08:05 +01:00
2007-03-01 14:53:39 -08:00
2009-01-11 19:12:49 +01:00
2008-11-14 10:39:26 +11:00
2008-02-03 15:27:38 +02:00
2008-04-18 17:55:33 +02:00
2009-01-06 11:28:07 +01:00
2009-04-07 08:44:05 -07:00
2009-03-17 12:56:47 +01:00
2008-07-22 10:39:36 +10:00
2006-11-30 04:55:36 +01:00
2009-04-07 08:31:12 -07:00
2009-01-05 18:10:19 -07:00
2009-03-26 15:45:43 -07:00
2009-03-24 16:38:27 -07:00
2008-07-26 12:00:06 -07:00
2006-11-30 04:58:40 +01:00
2008-11-06 15:41:19 -08:00
2006-10-03 22:57:56 +02:00
2009-04-13 17:02:13 +02:00
2009-04-02 19:04:51 -07:00
2008-04-21 15:10:15 -07:00
2008-10-16 11:21:32 -07:00
2008-03-24 19:22:19 -07:00
2008-11-12 17:17:18 -08:00
2008-02-03 14:54:41 +02:00
2008-07-26 12:00:06 -07:00
2008-11-03 18:21:44 +01:00
2009-01-29 18:19:29 -08:00
2008-07-26 12:00:06 -07:00
2007-10-18 14:37:32 -07:00
2008-06-05 15:18:30 +02:00
2007-10-20 02:37:21 +02:00
2009-05-02 15:36:10 -07:00
2008-06-06 11:29:10 -07:00
2009-04-20 18:08:12 +02:00
2008-04-29 08:06:16 -07:00
2008-07-26 12:00:06 -07:00
2009-01-06 10:44:32 -08:00
2009-04-07 08:31:08 -07:00
2008-02-06 10:41:09 -08:00
2007-05-21 09:58:40 -07:00
2008-07-26 12:00:06 -07:00
2008-12-01 13:51:26 +01:00
2009-02-14 23:28:22 +01:00
2008-10-20 15:43:10 +02:00
2009-04-27 12:00:27 -07:00
2009-04-27 12:00:27 -07:00
2009-01-06 15:59:28 -08:00
2008-08-12 16:07:30 -07:00
2008-10-30 11:38:46 -07:00
2008-11-28 16:47:41 +01:00
2008-03-17 09:03:05 +01:00
2009-03-31 15:18:37 +11:00
2008-05-14 10:05:18 -07:00
2009-01-06 15:59:00 -08:00
2006-10-03 22:53:09 +02:00
2007-10-20 00:15:26 +02:00
2008-10-30 19:07:04 +01:00
2009-01-08 12:04:47 +00:00
2008-04-29 08:05:59 -07:00
2007-11-26 19:39:01 -08:00
2006-10-03 23:39:02 +02:00
2008-01-24 20:40:04 -08:00
2008-11-12 17:17:17 -08:00
2006-10-03 22:57:56 +02:00
2007-02-11 10:51:35 -08:00
2008-10-31 19:00:09 -04:00
2006-11-30 04:58:40 +01:00
2006-11-30 05:21:10 +01:00
2006-10-01 00:39:24 -07:00
2008-02-06 10:41:14 -08:00
2008-10-16 11:21:32 -07:00
2008-08-27 08:54:08 +10:00
2009-04-03 16:42:35 +01:00
2007-10-17 08:43:06 -07:00
2009-03-28 15:01:37 +11:00
2009-04-11 08:18:11 +02:00
2008-04-11 13:21:14 -06:00
2007-07-30 14:25:12 -07:00
2008-10-29 15:03:49 -07:00
2008-10-16 11:21:32 -07:00
2008-10-16 11:21:32 -07:00
2008-10-16 12:18:16 -07:00
2008-07-21 21:54:59 -07:00
2009-04-02 00:49:02 +02:00
2009-04-14 09:14:58 +10:00
2008-07-25 10:53:27 -07:00
2006-10-03 22:57:56 +02:00
2006-12-20 01:46:58 -05:00
2008-07-26 12:00:06 -07:00