From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
To: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Ingo Molnar <mingo@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] kernel: sched: fix preempt_disable_ip recodring for preempt_disable()
Date: Fri, 12 Feb 2016 00:22:58 +0100 [thread overview]
Message-ID: <20160211232258.GA29109@breakpoint.cc> (raw)
In-Reply-To: <1455232867-29059-2-git-send-email-bigeasy@linutronix.de>
Before:
preempt_test(1) kernel_init_freeable+0x1bd/0x239
preempt_test(2) preempt_test+0x75/0x15c
preempt_test(3) preempt_test+0xaa/0x15c
preempt_test(4) kernel_init_freeable+0x1bd/0x239
preempt_test(5) kernel_init_freeable+0x1bd/0x239
After:
preempt_test(1) preempt_test+0x2f/0x15c
preempt_test(2) preempt_test+0x75/0x15c
preempt_test(3) preempt_test+0xaa/0x15c
preempt_test(4) preempt_test+0xd7/0x15c
preempt_test(5) preempt_test+0x121/0x15c
diff --git a/init/main.c b/init/main.c
index 9e64d7097f1a..da4a4b10964a 100644
--- a/init/main.c
+++ b/init/main.c
@@ -974,6 +974,35 @@ static int __ref kernel_init(void *unused)
"See Linux Documentation/init.txt for guidance.");
}
+static DEFINE_PER_CPU(unsigned long, pcpu_rtest_var);
+
+static noinline void preempt_test(void)
+{
+ spinlock_t sl;
+
+ spin_lock_init(&sl);
+
+ preempt_disable();
+ pr_err("%s(1) %pF\n", __func__, current->preempt_disable_ip);
+ preempt_enable();
+
+ spin_lock(&sl);
+ pr_err("%s(2) %pF\n", __func__, current->preempt_disable_ip);
+ spin_unlock(&sl);
+
+ spin_lock_bh(&sl);
+ pr_err("%s(3) %pF\n", __func__, current->preempt_disable_ip);
+ spin_unlock_bh(&sl);
+
+ get_cpu_var(pcpu_rtest_var);
+ pr_err("%s(4) %pF\n", __func__, current->preempt_disable_ip);
+ put_cpu_var(pcpu_rtest_var);
+
+ local_bh_disable();
+ pr_err("%s(5) %pF\n", __func__, current->preempt_disable_ip);
+ local_bh_enable();
+}
+
static noinline void __init kernel_init_freeable(void)
{
/*
@@ -1006,6 +1035,7 @@ static noinline void __init kernel_init_freeable(void)
page_alloc_init_late();
do_basic_setup();
+ preempt_test();
/* Open the /dev/console on the rootfs, this should never fail */
if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
Sebastian
next prev parent reply other threads:[~2016-02-11 23:23 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-11 23:21 [PATCH 1/2] ftrace: move the CALLER_ADDRx macros into its own header Sebastian Andrzej Siewior
2016-02-11 23:21 ` [PATCH 2/2] kernel: sched: fix preempt_disable_ip recodring for preempt_disable() Sebastian Andrzej Siewior
2016-02-11 23:22 ` Sebastian Andrzej Siewior [this message]
2016-02-12 0:27 ` kbuild test robot
2016-02-12 0:45 ` Steven Rostedt
2016-02-12 15:21 ` Sebastian Andrzej Siewior
2016-02-12 16:27 ` Steven Rostedt
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=20160211232258.GA29109@breakpoint.cc \
--to=sebastian@breakpoint.cc \
--cc=bigeasy@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome