From: Sasha Levin <sasha.levin@oracle.com>
To: Christoph Lameter <cl@gentwo.org>, akpm@linux-foundation.org
Cc: Gilad Ben-Yossef <gilad@benyossef.com>,
Thomas Gleixner <tglx@linutronix.de>, Tejun Heo <tj@kernel.org>,
John Stultz <johnstul@us.ibm.com>,
Mike Frysinger <vapier@gentoo.org>,
Minchan Kim <minchan.kim@gmail.com>,
Hakan Akkan <hakanakkan@gmail.com>,
Max Krasnyansky <maxk@qualcomm.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
hughd@google.com, viresh.kumar@linaro.org, hpa@zytor.com,
mingo@kernel.org, peterz@infradead.org
Subject: Re: vmstat: On demand vmstat workers V8
Date: Fri, 25 Jul 2014 22:22:57 -0400 [thread overview]
Message-ID: <53D31101.8000107@oracle.com> (raw)
In-Reply-To: <alpine.DEB.2.11.1407100903130.12483@gentwo.org>
On 07/10/2014 10:04 AM, Christoph Lameter wrote:
> This patch creates a vmstat shepherd worker that monitors the
> per cpu differentials on all processors. If there are differentials
> on a processor then a vmstat worker local to the processors
> with the differentials is created. That worker will then start
> folding the diffs in regular intervals. Should the worker
> find that there is no work to be done then it will make the shepherd
> worker monitor the differentials again.
Hi Christoph, all,
This patch doesn't interact well with my fuzzing setup. I'm seeing
the following:
[ 490.446927] BUG: using __this_cpu_read() in preemptible [00000000] code: kworker/16:1/7368
[ 490.447909] caller is __this_cpu_preempt_check+0x13/0x20
[ 490.448596] CPU: 8 PID: 7368 Comm: kworker/16:1 Not tainted 3.16.0-rc6-next-20140725-sasha-00047-g9eb9a52 #933
[ 490.449847] Workqueue: events vmstat_update
[ 490.450558] ffffffff97383bb6 0000000000000000 ffffffff9727df83 ffff8803077cfb68
[ 490.451520] ffffffff95dc96b3 0000000000000008 ffff8803077cfba0 ffffffff92002438
[ 490.452475] ffff8803077cfc80 ffff880be21ea138 ffff8803077cfc80 00000000001e6a48
[ 490.453459] Call Trace:
[ 490.453776] dump_stack (lib/dump_stack.c:52)
[ 490.454394] check_preemption_disabled (lib/smp_processor_id.c:46)
[ 490.455161] __this_cpu_preempt_check (lib/smp_processor_id.c:63)
[ 490.455927] refresh_cpu_vm_stats (mm/vmstat.c:492)
[ 490.456753] vmstat_update (mm/vmstat.c:1252)
[ 490.457463] process_one_work (kernel/workqueue.c:2022 include/linux/jump_label.h:115 include/trace/events/workqueue.h:111 kernel/workqueue.c:2027)
[ 490.458159] ? process_one_work (include/linux/workqueue.h:185 kernel/workqueue.c:598 kernel/workqueue.c:625 kernel/workqueue.c:2015)
[ 490.458887] worker_thread (include/linux/list.h:188 kernel/workqueue.c:2154)
[ 490.459555] ? __schedule (./arch/x86/include/asm/bitops.h:311 include/linux/thread_info.h:91 include/linux/sched.h:2854 kernel/sched/core.c:2825)
[ 490.460370] ? process_one_work (kernel/workqueue.c:2098)
[ 490.461177] kthread (kernel/kthread.c:207)
[ 490.461792] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.462529] ret_from_fork (arch/x86/kernel/entry_64.S:348)
[ 490.463181] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.464008] ------------[ cut here ]------------
[ 490.464613] kernel BUG at mm/vmstat.c:1278!
[ 490.465116] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
[ 490.465981] Dumping ftrace buffer:
[ 490.466585] (ftrace buffer empty)
[ 490.467030] Modules linked in:
[ 490.467429] CPU: 8 PID: 7368 Comm: kworker/16:1 Not tainted 3.16.0-rc6-next-20140725-sasha-00047-g9eb9a52 #933
[ 490.468641] Workqueue: events vmstat_update
[ 490.469163] task: ffff88030772b000 ti: ffff8803077cc000 task.ti: ffff8803077cc000
[ 490.470033] RIP: vmstat_update (mm/vmstat.c:1278)
[ 490.470269] RSP: 0000:ffff8803077cfcb8 EFLAGS: 00010287
[ 490.470269] RAX: ffff87ffffffffff RBX: 0000000000000008 RCX: 0000000000000000
[ 490.470269] RDX: ffff88030772bcf8 RSI: ffffffff972e5fd0 RDI: ffffffff986fa5d0
[ 490.470269] RBP: ffff8803077cfcd0 R08: 0000000000000002 R09: 0000000000000000
[ 490.470269] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8805fa7e34d0
[ 490.470269] R13: ffff8803117e2240 R14: 0000000000000800 R15: 0000000000000000
[ 490.470269] FS: 0000000000000000(0000) GS:ffff880311200000(0000) knlGS:0000000000000000
[ 490.470269] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 490.470269] CR2: 00007fffc67fef1a CR3: 0000000017a22000 CR4: 00000000000006a0
[ 490.470269] Stack:
[ 490.470269] ffff8803117dd240 ffff88030af938e0 ffff8803117e2240 ffff8803077cfd88
[ 490.470269] ffffffff911f45f5 ffffffff911f455d ffff88030af93928 ffff88031081e900
[ 490.470269] ffff88030af938f0 ffff88030af93900 ffff88030af938e8 ffff88030af938f8
[ 490.470269] Call Trace:
[ 490.470269] process_one_work (kernel/workqueue.c:2022 include/linux/jump_label.h:115 include/trace/events/workqueue.h:111 kernel/workqueue.c:2027)
[ 490.470269] ? process_one_work (include/linux/workqueue.h:185 kernel/workqueue.c:598 kernel/workqueue.c:625 kernel/workqueue.c:2015)
[ 490.470269] worker_thread (include/linux/list.h:188 kernel/workqueue.c:2154)
[ 490.470269] ? __schedule (./arch/x86/include/asm/bitops.h:311 include/linux/thread_info.h:91 include/linux/sched.h:2854 kernel/sched/core.c:2825)
[ 490.470269] ? process_one_work (kernel/workqueue.c:2098)
[ 490.470269] kthread (kernel/kthread.c:207)
[ 490.470269] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.470269] ret_from_fork (arch/x86/kernel/entry_64.S:348)
[ 490.470269] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.470269] Code: c7 d0 a5 6f 98 89 c3 e8 9f 9e 08 00 3b 1d 89 8b 35 07 73 7f f0 49 0f ab 1c 24 72 0f 5b 41 5c 41 5d 5d c3 0f 1f 84 00 00 00 00 00 <0f> 0b 66 0f 1f 44 00 00 48 63 3d f1 be 36 07 48 c7 c3 40 d2 1d
All code
========
0: c7 (bad)
1: d0 a5 6f 98 89 c3 shlb -0x3c766791(%rbp)
7: e8 9f 9e 08 00 callq 0x89eab
c: 3b 1d 89 8b 35 07 cmp 0x7358b89(%rip),%ebx # 0x7358b9b
12: 73 7f jae 0x93
14: f0 49 0f ab 1c 24 lock bts %rbx,(%r12)
1a: 72 0f jb 0x2b
1c: 5b pop %rbx
1d: 41 5c pop %r12
1f: 41 5d pop %r13
21: 5d pop %rbp
22: c3 retq
23: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
2a: 00
2b:* 0f 0b ud2 <-- trapping instruction
2d: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
33: 48 63 3d f1 be 36 07 movslq 0x736bef1(%rip),%rdi # 0x736bf2b
3a: 48 c7 c3 40 d2 1d 00 mov $0x1dd240,%rbx
Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
8: 48 63 3d f1 be 36 07 movslq 0x736bef1(%rip),%rdi # 0x736bf00
f: 48 c7 c3 40 d2 1d 00 mov $0x1dd240,%rbx
[ 490.470269] RIP vmstat_update (mm/vmstat.c:1278)
[ 490.470269] RSP <ffff8803077cfcb8>
Thanks,
Sasha
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <sasha.levin@oracle.com>
To: Christoph Lameter <cl@gentwo.org>, akpm@linux-foundation.org
Cc: Gilad Ben-Yossef <gilad@benyossef.com>,
Thomas Gleixner <tglx@linutronix.de>, Tejun Heo <tj@kernel.org>,
John Stultz <johnstul@us.ibm.com>,
Mike Frysinger <vapier@gentoo.org>,
Minchan Kim <minchan.kim@gmail.com>,
Hakan Akkan <hakanakkan@gmail.com>,
Max Krasnyansky <maxk@qualcomm.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
hughd@google.com, viresh.kumar@linaro.org, hpa@zytor.com,
mingo@kernel.org, peterz@infradead.org
Subject: Re: vmstat: On demand vmstat workers V8
Date: Fri, 25 Jul 2014 22:22:57 -0400 [thread overview]
Message-ID: <53D31101.8000107@oracle.com> (raw)
In-Reply-To: <alpine.DEB.2.11.1407100903130.12483@gentwo.org>
On 07/10/2014 10:04 AM, Christoph Lameter wrote:
> This patch creates a vmstat shepherd worker that monitors the
> per cpu differentials on all processors. If there are differentials
> on a processor then a vmstat worker local to the processors
> with the differentials is created. That worker will then start
> folding the diffs in regular intervals. Should the worker
> find that there is no work to be done then it will make the shepherd
> worker monitor the differentials again.
Hi Christoph, all,
This patch doesn't interact well with my fuzzing setup. I'm seeing
the following:
[ 490.446927] BUG: using __this_cpu_read() in preemptible [00000000] code: kworker/16:1/7368
[ 490.447909] caller is __this_cpu_preempt_check+0x13/0x20
[ 490.448596] CPU: 8 PID: 7368 Comm: kworker/16:1 Not tainted 3.16.0-rc6-next-20140725-sasha-00047-g9eb9a52 #933
[ 490.449847] Workqueue: events vmstat_update
[ 490.450558] ffffffff97383bb6 0000000000000000 ffffffff9727df83 ffff8803077cfb68
[ 490.451520] ffffffff95dc96b3 0000000000000008 ffff8803077cfba0 ffffffff92002438
[ 490.452475] ffff8803077cfc80 ffff880be21ea138 ffff8803077cfc80 00000000001e6a48
[ 490.453459] Call Trace:
[ 490.453776] dump_stack (lib/dump_stack.c:52)
[ 490.454394] check_preemption_disabled (lib/smp_processor_id.c:46)
[ 490.455161] __this_cpu_preempt_check (lib/smp_processor_id.c:63)
[ 490.455927] refresh_cpu_vm_stats (mm/vmstat.c:492)
[ 490.456753] vmstat_update (mm/vmstat.c:1252)
[ 490.457463] process_one_work (kernel/workqueue.c:2022 include/linux/jump_label.h:115 include/trace/events/workqueue.h:111 kernel/workqueue.c:2027)
[ 490.458159] ? process_one_work (include/linux/workqueue.h:185 kernel/workqueue.c:598 kernel/workqueue.c:625 kernel/workqueue.c:2015)
[ 490.458887] worker_thread (include/linux/list.h:188 kernel/workqueue.c:2154)
[ 490.459555] ? __schedule (./arch/x86/include/asm/bitops.h:311 include/linux/thread_info.h:91 include/linux/sched.h:2854 kernel/sched/core.c:2825)
[ 490.460370] ? process_one_work (kernel/workqueue.c:2098)
[ 490.461177] kthread (kernel/kthread.c:207)
[ 490.461792] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.462529] ret_from_fork (arch/x86/kernel/entry_64.S:348)
[ 490.463181] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.464008] ------------[ cut here ]------------
[ 490.464613] kernel BUG at mm/vmstat.c:1278!
[ 490.465116] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
[ 490.465981] Dumping ftrace buffer:
[ 490.466585] (ftrace buffer empty)
[ 490.467030] Modules linked in:
[ 490.467429] CPU: 8 PID: 7368 Comm: kworker/16:1 Not tainted 3.16.0-rc6-next-20140725-sasha-00047-g9eb9a52 #933
[ 490.468641] Workqueue: events vmstat_update
[ 490.469163] task: ffff88030772b000 ti: ffff8803077cc000 task.ti: ffff8803077cc000
[ 490.470033] RIP: vmstat_update (mm/vmstat.c:1278)
[ 490.470269] RSP: 0000:ffff8803077cfcb8 EFLAGS: 00010287
[ 490.470269] RAX: ffff87ffffffffff RBX: 0000000000000008 RCX: 0000000000000000
[ 490.470269] RDX: ffff88030772bcf8 RSI: ffffffff972e5fd0 RDI: ffffffff986fa5d0
[ 490.470269] RBP: ffff8803077cfcd0 R08: 0000000000000002 R09: 0000000000000000
[ 490.470269] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8805fa7e34d0
[ 490.470269] R13: ffff8803117e2240 R14: 0000000000000800 R15: 0000000000000000
[ 490.470269] FS: 0000000000000000(0000) GS:ffff880311200000(0000) knlGS:0000000000000000
[ 490.470269] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 490.470269] CR2: 00007fffc67fef1a CR3: 0000000017a22000 CR4: 00000000000006a0
[ 490.470269] Stack:
[ 490.470269] ffff8803117dd240 ffff88030af938e0 ffff8803117e2240 ffff8803077cfd88
[ 490.470269] ffffffff911f45f5 ffffffff911f455d ffff88030af93928 ffff88031081e900
[ 490.470269] ffff88030af938f0 ffff88030af93900 ffff88030af938e8 ffff88030af938f8
[ 490.470269] Call Trace:
[ 490.470269] process_one_work (kernel/workqueue.c:2022 include/linux/jump_label.h:115 include/trace/events/workqueue.h:111 kernel/workqueue.c:2027)
[ 490.470269] ? process_one_work (include/linux/workqueue.h:185 kernel/workqueue.c:598 kernel/workqueue.c:625 kernel/workqueue.c:2015)
[ 490.470269] worker_thread (include/linux/list.h:188 kernel/workqueue.c:2154)
[ 490.470269] ? __schedule (./arch/x86/include/asm/bitops.h:311 include/linux/thread_info.h:91 include/linux/sched.h:2854 kernel/sched/core.c:2825)
[ 490.470269] ? process_one_work (kernel/workqueue.c:2098)
[ 490.470269] kthread (kernel/kthread.c:207)
[ 490.470269] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.470269] ret_from_fork (arch/x86/kernel/entry_64.S:348)
[ 490.470269] ? flush_kthread_work (kernel/kthread.c:176)
[ 490.470269] Code: c7 d0 a5 6f 98 89 c3 e8 9f 9e 08 00 3b 1d 89 8b 35 07 73 7f f0 49 0f ab 1c 24 72 0f 5b 41 5c 41 5d 5d c3 0f 1f 84 00 00 00 00 00 <0f> 0b 66 0f 1f 44 00 00 48 63 3d f1 be 36 07 48 c7 c3 40 d2 1d
All code
========
0: c7 (bad)
1: d0 a5 6f 98 89 c3 shlb -0x3c766791(%rbp)
7: e8 9f 9e 08 00 callq 0x89eab
c: 3b 1d 89 8b 35 07 cmp 0x7358b89(%rip),%ebx # 0x7358b9b
12: 73 7f jae 0x93
14: f0 49 0f ab 1c 24 lock bts %rbx,(%r12)
1a: 72 0f jb 0x2b
1c: 5b pop %rbx
1d: 41 5c pop %r12
1f: 41 5d pop %r13
21: 5d pop %rbp
22: c3 retq
23: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
2a: 00
2b:* 0f 0b ud2 <-- trapping instruction
2d: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
33: 48 63 3d f1 be 36 07 movslq 0x736bef1(%rip),%rdi # 0x736bf2b
3a: 48 c7 c3 40 d2 1d 00 mov $0x1dd240,%rbx
Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
8: 48 63 3d f1 be 36 07 movslq 0x736bef1(%rip),%rdi # 0x736bf00
f: 48 c7 c3 40 d2 1d 00 mov $0x1dd240,%rbx
[ 490.470269] RIP vmstat_update (mm/vmstat.c:1278)
[ 490.470269] RSP <ffff8803077cfcb8>
Thanks,
Sasha
next prev parent reply other threads:[~2014-07-26 2:23 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-10 14:04 vmstat: On demand vmstat workers V8 Christoph Lameter
2014-07-10 14:04 ` Christoph Lameter
2014-07-11 13:20 ` Frederic Weisbecker
2014-07-11 13:20 ` Frederic Weisbecker
2014-07-11 13:56 ` Christoph Lameter
2014-07-11 13:56 ` Christoph Lameter
2014-07-11 13:58 ` Frederic Weisbecker
2014-07-11 13:58 ` Frederic Weisbecker
2014-07-11 15:17 ` Christoph Lameter
2014-07-11 15:17 ` Christoph Lameter
2014-07-11 15:19 ` Frederic Weisbecker
2014-07-11 15:19 ` Frederic Weisbecker
2014-07-11 15:22 ` Christoph Lameter
2014-07-11 15:22 ` Christoph Lameter
2014-07-14 20:10 ` Hugh Dickins
2014-07-14 20:10 ` Hugh Dickins
2014-07-14 20:51 ` Christoph Lameter
2014-07-14 20:51 ` Christoph Lameter
2014-07-30 3:04 ` Lai Jiangshan
2014-07-30 3:04 ` Lai Jiangshan
2014-07-26 2:22 ` Sasha Levin [this message]
2014-07-26 2:22 ` Sasha Levin
2014-07-28 18:55 ` Christoph Lameter
2014-07-28 18:55 ` Christoph Lameter
2014-07-28 21:54 ` Andrew Morton
2014-07-28 21:54 ` Andrew Morton
2014-07-28 22:00 ` Sasha Levin
2014-07-28 22:00 ` Sasha Levin
2014-07-29 15:17 ` Christoph Lameter
2014-07-29 15:17 ` Christoph Lameter
2014-07-29 7:56 ` Peter Zijlstra
2014-07-29 12:05 ` Tejun Heo
2014-07-29 12:05 ` Tejun Heo
2014-07-29 12:23 ` Peter Zijlstra
2014-07-29 12:23 ` Peter Zijlstra
2014-07-29 13:12 ` Tejun Heo
2014-07-29 13:12 ` Tejun Heo
2014-07-29 15:10 ` Christoph Lameter
2014-07-29 15:10 ` Christoph Lameter
2014-07-29 15:14 ` Tejun Heo
2014-07-29 15:14 ` Tejun Heo
2014-07-29 15:26 ` Christoph Lameter
2014-07-29 15:26 ` Christoph Lameter
2014-07-29 15:39 ` Christoph Lameter
2014-07-29 15:39 ` Christoph Lameter
2014-07-29 15:47 ` Sasha Levin
2014-07-29 15:47 ` Sasha Levin
2014-07-29 15:59 ` Christoph Lameter
2014-07-29 15:59 ` Christoph Lameter
2014-07-30 3:11 ` Lai Jiangshan
2014-07-30 3:11 ` Lai Jiangshan
2014-07-30 14:34 ` Christoph Lameter
2014-07-30 14:34 ` Christoph Lameter
2014-07-29 15:22 ` Christoph Lameter
2014-07-29 15:22 ` Christoph Lameter
2014-07-29 15:43 ` Sasha Levin
2014-07-29 15:43 ` Sasha Levin
2014-08-04 21:37 ` Sasha Levin
2014-08-04 21:37 ` Sasha Levin
2014-08-05 14:51 ` Christoph Lameter
2014-08-05 14:51 ` Christoph Lameter
2014-08-05 22:25 ` Sasha Levin
2014-08-05 22:25 ` Sasha Levin
2014-08-06 14:12 ` Christoph Lameter
2014-08-06 14:12 ` Christoph Lameter
2014-08-07 1:50 ` Sasha Levin
2014-08-07 1:50 ` Sasha Levin
2014-07-30 2:57 ` Lai Jiangshan
2014-07-30 2:57 ` Lai Jiangshan
2014-07-30 14:45 ` Christoph Lameter
2014-07-30 14:45 ` Christoph Lameter
2014-07-31 0:52 ` Lai Jiangshan
2014-07-31 0:52 ` Lai Jiangshan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53D31101.8000107@oracle.com \
--to=sasha.levin@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=cl@gentwo.org \
--cc=fweisbec@gmail.com \
--cc=gilad@benyossef.com \
--cc=hakanakkan@gmail.com \
--cc=hpa@zytor.com \
--cc=hughd@google.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=maxk@qualcomm.com \
--cc=minchan.kim@gmail.com \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=vapier@gentoo.org \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.