From: Peter Zijlstra <peterz@infradead.org>
To: "Liu, Chuansheng" <chuansheng.liu@intel.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Yanmin Zhang <yanmin_zhang@linux.intel.com>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com>
Subject: RE: [PATCH] Fix the race between smp_call_function and CPU booting
Date: Fri, 23 Mar 2012 13:02:00 +0100 [thread overview]
Message-ID: <1332504120.16159.17.camel@twins> (raw)
In-Reply-To: <27240C0AC20F114CBF8149A2696CBE4A05D65B@SHSMSX101.ccr.corp.intel.com>
On Fri, 2012-03-23 at 11:32 +0000, Liu, Chuansheng wrote:
> In fact, I started two scripts running:
> 1/ One script:
> echo 0 > /sys/devices/system/cpuX/online
> echo 1 > /sys/devices/system/cpuX/online
> Rerunning the above commands in loop
>
> 2/Another script:
> echo 1 > /debug/smp_call_test
> usleep 50000
> Rerunning the above command in loop
>
> This race issue can be easy to be reproduced in several minutes;
> For simplify your test as mine(just two CPUs), you can set other non-booting CPUs as offline
> at first and just leave one non-booting CPU.
So this is exactly what I did and it ran for 30+ minutes without fail. I
found I forgot to log the serial output so I just re-ran this to make
sure. 10+ minutes and not a single WARN in the console output.
If I pop my change to select_fallback_rq() I can indeed trigger this:
------------[ cut here ]------------
WARNING: at /usr/src/linux-2.6/arch/x86/kernel/smp.c:120
native_smp_send_reschedule+0x5b/0x60()
Hardware name: X8DTN
Modules linked in: [last unloaded: scsi_wait_scan]
Pid: 1542, comm: abrtd Not tainted 3.3.0-01725-gd6eb054-dirty #63
Call Trace:
<IRQ> [<ffffffff810775df>] warn_slowpath_common+0x7f/0xc0
[<ffffffff8107763a>] warn_slowpath_null+0x1a/0x20
[<ffffffff8105f79b>] native_smp_send_reschedule+0x5b/0x60
[<ffffffff810aa67a>] try_to_wake_up+0x1fa/0x2c0
[<ffffffff810acaec>] ? sched_slice.isra.38+0x5c/0x90
[<ffffffff810aa795>] wake_up_process+0x15/0x20
[<ffffffff81085c6e>] process_timeout+0xe/0x10
[<ffffffff81086cb3>] run_timer_softirq+0x143/0x460
[<ffffffff81384a94>] ? timerqueue_add+0x74/0xc0
[<ffffffff81085c60>] ? usleep_range+0x50/0x50
[<ffffffff8107e81d>] __do_softirq+0xbd/0x290
[<ffffffff810c5e64>] ? clockevents_program_event+0x74/0x100
[<ffffffff810c72d4>] ? tick_program_event+0x24/0x30
[<ffffffff8194ba4c>] call_softirq+0x1c/0x30
[<ffffffff810433d5>] do_softirq+0x55/0x90
[<ffffffff8107ed2e>] irq_exit+0x9e/0xe0
[<ffffffff8194c07e>] smp_apic_timer_interrupt+0x6e/0x99
[<ffffffff8194b107>] apic_timer_interrupt+0x67/0x70
<EOI>
---[ end trace d2b2cbf78c1ddd2e ]---
But let me re-run with the select_fallback_rq() change and let it run
for several hours while I go play outside..
next prev parent reply other threads:[~2012-03-23 12:02 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-12 9:27 [PATCH] Fix the race between smp_call_function and CPU booting Liu, Chuansheng
2012-03-12 9:32 ` Peter Zijlstra
2012-03-13 6:43 ` Liu, Chuansheng
2012-03-12 9:58 ` Peter Zijlstra
2012-03-13 6:46 ` Liu, Chuansheng
2012-03-13 15:57 ` Peter Zijlstra
2012-03-14 6:27 ` Liu, Chuansheng
2012-03-14 9:43 ` Peter Zijlstra
2012-03-15 0:11 ` Liu, Chuansheng
2012-03-15 10:46 ` Peter Zijlstra
2012-03-16 6:24 ` Liu, Chuansheng
2012-03-16 9:49 ` Peter Zijlstra
2012-03-19 0:58 ` Liu, Chuansheng
2012-03-19 10:03 ` Peter Zijlstra
2012-03-20 0:22 ` Liu, Chuansheng
2012-03-20 12:17 ` Peter Zijlstra
2012-03-20 13:14 ` Srivatsa S. Bhat
2012-03-20 13:41 ` Peter Zijlstra
2012-03-20 15:02 ` Srivatsa S. Bhat
2012-03-21 5:59 ` Liu, Chuansheng
2012-03-21 9:12 ` Peter Zijlstra
2012-03-21 12:25 ` Peter Zijlstra
2012-03-22 0:59 ` Liu, Chuansheng
2012-03-23 10:25 ` Peter Zijlstra
2012-03-23 11:32 ` Liu, Chuansheng
2012-03-23 12:02 ` Peter Zijlstra [this message]
2012-03-23 12:06 ` Liu, Chuansheng
2012-03-23 12:13 ` Peter Zijlstra
2012-03-23 12:21 ` Liu, Chuansheng
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=1332504120.16159.17.camel@twins \
--to=peterz@infradead.org \
--cc=chuansheng.liu@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=srivatsa.bhat@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=yanmin_zhang@linux.intel.com \
/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.