Kirill Tkhai
6419265899
sched/fair: Fix division by zero sysctl_numa_balancing_scan_size
...
File /proc/sys/kernel/numa_balancing_scan_size_mb allows writing of zero.
This bash command reproduces problem:
$ while :; do echo 0 > /proc/sys/kernel/numa_balancing_scan_size_mb; \
echo 256 > /proc/sys/kernel/numa_balancing_scan_size_mb; done
divide error: 0000 [#1 ] SMP
Modules linked in:
CPU: 0 PID: 24112 Comm: bash Not tainted 3.17.0+ #8
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
task: ffff88013c852600 ti: ffff880037a68000 task.ti: ffff880037a68000
RIP: 0010:[<ffffffff81074191>] [<ffffffff81074191>] task_scan_min+0x21/0x50
RSP: 0000:ffff880037a6bce0 EFLAGS: 00010246
RAX: 0000000000000a00 RBX: 00000000000003e8 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88013c852600
RBP: ffff880037a6bcf0 R08: 0000000000000001 R09: 0000000000015c90
R10: ffff880239bf6c00 R11: 0000000000000016 R12: 0000000000003fff
R13: ffff88013c852600 R14: ffffea0008d1b000 R15: 0000000000000003
FS: 00007f12bb048700(0000) GS:ffff88007da00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000001505678 CR3: 0000000234770000 CR4: 00000000000006f0
Stack:
ffff88013c852600 0000000000003fff ffff880037a6bd18 ffffffff810741d1
ffff88013c852600 0000000000003fff 000000000002bfff ffff880037a6bda8
ffffffff81077ef7 ffffea0008a56d40 0000000000000001 0000000000000001
Call Trace:
[<ffffffff810741d1>] task_scan_max+0x11/0x40
[<ffffffff81077ef7>] task_numa_fault+0x1f7/0xae0
[<ffffffff8115a896>] ? migrate_misplaced_page+0x276/0x300
[<ffffffff81134a4d>] handle_mm_fault+0x62d/0xba0
[<ffffffff8103e2f1>] __do_page_fault+0x191/0x510
[<ffffffff81030122>] ? native_smp_send_reschedule+0x42/0x60
[<ffffffff8106dc00>] ? check_preempt_curr+0x80/0xa0
[<ffffffff8107092c>] ? wake_up_new_task+0x11c/0x1a0
[<ffffffff8104887d>] ? do_fork+0x14d/0x340
[<ffffffff811799bb>] ? get_unused_fd_flags+0x2b/0x30
[<ffffffff811799df>] ? __fd_install+0x1f/0x60
[<ffffffff8103e67c>] do_page_fault+0xc/0x10
[<ffffffff8150d322>] page_fault+0x22/0x30
RIP [<ffffffff81074191>] task_scan_min+0x21/0x50
RSP <ffff880037a6bce0>
---[ end trace 9a826d16936c04de ]---
Also fix race in task_scan_min (it depends on compiler behaviour).
Signed-off-by: Kirill Tkhai <ktkhai@parallels.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Aaron Tomlin <atomlin@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dario Faggioli <raistlin@linux.it>
Cc: David Rientjes <rientjes@google.com>
Cc: Jens Axboe <axboe@fb.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Rik van Riel <riel@redhat.com>
Link: http://lkml.kernel.org/r/1413455977.24793.78.camel@tkhai
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2014-10-28 10:46:04 +01:00
..
2014-10-01 21:30:33 -04:00
2014-08-08 16:30:24 -07:00
2014-10-14 02:18:25 +02:00
2014-10-15 07:48:18 +02:00
2014-09-26 14:39:57 +01:00
2014-10-15 07:48:18 +02:00
2014-10-13 15:51:40 +02:00
2014-10-23 23:02:45 +02:00
2014-10-15 07:48:18 +02:00
2014-09-18 16:22:27 -07:00
2014-10-28 10:46:04 +01:00
2014-10-15 07:48:18 +02:00
2014-10-13 16:23:15 +02:00
2013-12-10 18:21:34 +00:00
2014-10-09 22:26:04 -04:00
2014-10-09 22:26:04 -04:00
2014-10-10 15:30:25 -04:00
2014-09-23 16:37:53 -04:00
2014-10-19 16:25:56 -07:00
2014-09-23 16:37:51 -04:00
2014-10-19 16:25:56 -07:00
2014-10-19 16:25:56 -07:00
2014-06-04 16:54:14 -07:00
2014-08-08 15:57:18 -07:00
2014-07-24 21:53:47 +10:00
2014-07-15 11:05:09 -04:00
2014-10-10 07:26:02 -04:00
2014-09-06 12:58:18 +02:00
2014-06-14 09:07:44 +02:00
2014-09-18 16:22:27 -07:00
2014-10-10 07:24:40 -04:00
2014-08-25 15:42:19 -07:00
2014-07-23 10:18:06 -07:00
2014-06-04 16:54:15 -07:00
2014-10-13 16:23:15 +02:00
2014-02-13 18:13:22 -08:00
2014-10-13 16:23:15 +02:00
2014-10-21 23:44:20 +02:00
2014-02-02 14:09:12 -08:00
2014-10-18 09:28:51 -07:00
2014-04-03 16:21:05 -07:00
2014-06-04 16:54:15 -07:00
2014-10-15 07:48:18 +02:00
2014-10-14 02:18:16 +02:00
2014-09-10 15:42:12 -07:00
2014-07-16 14:57:13 +02:00
2014-10-14 02:18:21 +02:00
2014-06-06 16:08:12 -07:00
2014-08-08 10:38:04 +02:00
2014-04-25 12:00:49 -07:00
2014-10-09 22:25:51 -04:00
2014-06-04 16:54:15 -07:00
2014-08-08 15:57:32 -07:00
2014-10-18 10:24:26 -07:00
2014-04-24 10:26:39 +02:00
2014-07-29 18:08:50 -07:00
2013-12-05 21:28:42 +08:00
2014-08-08 15:57:24 -07:00
2014-10-14 02:18:28 +02:00
2014-04-02 16:20:21 -07:00
2014-06-06 16:08:13 -07:00
2014-07-16 15:10:39 +02:00
2014-09-26 00:00:06 -07:00
2014-04-12 14:49:50 -07:00
2014-06-04 16:54:15 -07:00
2014-10-14 02:18:22 +02:00
2014-10-14 02:27:06 +02:00
2014-08-09 09:58:12 -07:00
2014-10-15 07:48:18 +02:00
2014-10-15 07:48:18 +02:00
2014-06-04 16:54:15 -07:00
2014-10-08 21:40:54 -04:00
2014-10-13 16:23:15 +02:00
2014-10-07 20:39:25 -04:00
2014-10-28 10:46:04 +01:00
2013-12-10 18:25:28 +00:00
2014-07-17 09:35:17 -04:00
2014-08-26 13:45:45 -04:00
2014-08-08 15:57:18 -07:00
2014-09-16 13:41:06 -07:00
2014-06-21 00:15:26 -04:00
2014-07-23 10:18:05 -07:00
2014-02-24 14:47:15 -08:00
2014-08-08 15:57:22 -07:00
2014-08-26 13:45:45 -04:00
2014-06-04 16:54:16 -07:00
2014-06-06 16:08:16 -07:00
2014-07-29 18:08:50 -07:00
2014-10-15 07:48:18 +02:00
2014-05-20 10:59:32 -04:00
2014-10-06 05:58:26 -07:00