All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@suse.de>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Fengguang Wu <fengguang.wu@intel.com>
Cc: "oprofile-list@lists.sf.net" <oprofile-list@lists.sf.net>,
	Robert Richter <rric@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86/oprofile/ppro: Do not use __this_cpu* accessors in preemptible context
Date: Tue, 7 Nov 2017 18:53:07 +0100	[thread overview]
Message-ID: <20171107175307.yl25jewyopgymil4@pd.tnic> (raw)
In-Reply-To: <CA+55aFyF1YbzKKUpxposp9O-Vtbjmc9E62cuEgqJQTP2ijb9XQ@mail.gmail.com>

On Tue, Nov 07, 2017 at 08:43:40AM -0800, Linus Torvalds wrote:
> So I'm adding Borislav to the cc just to maybe annoy him into sending
> in a patch for this thing too..

/me runs away like the wind!

> This is the famous "you touched it last, tag you're it" model of
> kernel maintainership.

Oh great, like I don't have enough crappy code to maintain already.

And besides, I'm sure Robert would've addressed it eventually, once he
moves his head up from Cavium-land. Oh well, it is simple enough, lemme
take care of it. :-)

Fengguang, please run it to confirm.

Thx.

---
From: Borislav Petkov <bp@suse.de>
Subject: [PATCH] x86/oprofile/ppro: Do not use __this_cpu* accessors in preemptible context

The warning below says it all. And we should not have used those
accessors in the first place: it is PPro so no mixed silicon revisions
and thus can simply use boot_cpu_data.

  BUG: using __this_cpu_read() in preemptible [00000000] code: swapper/0/1
  caller is __this_cpu_preempt_check
  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.0-rc8 #4
  Call Trace:
   dump_stack
   check_preemption_disabled
   ? do_early_param
   __this_cpu_preempt_check
   arch_perfmon_init
   op_nmi_init
   ? alloc_pci_root_info
   oprofile_arch_init
   oprofile_init
   do_one_initcall
   ...

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Fix-creation-mandated-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Robert Richter <rric@kernel.org>
Cc: x86@kernel.org
---
 arch/x86/oprofile/op_model_ppro.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
index 350f7096baac..1c3b400b05ce 100644
--- a/arch/x86/oprofile/op_model_ppro.c
+++ b/arch/x86/oprofile/op_model_ppro.c
@@ -212,8 +212,9 @@ static void arch_perfmon_setup_counters(void)
 	eax.full = cpuid_eax(0xa);
 
 	/* Workaround for BIOS bugs in 6/15. Taken from perfmon2 */
-	if (eax.split.version_id == 0 && __this_cpu_read(cpu_info.x86) == 6 &&
-		__this_cpu_read(cpu_info.x86_model) == 15) {
+	if (eax.split.version_id == 0 &&
+	    boot_cpu_data.x86 == 6 &&
+	    boot_cpu_data.x86_model == 15) {
 		eax.split.version_id = 2;
 		eax.split.num_counters = 2;
 		eax.split.bit_width = 40;
-- 
2.13.0

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
-- 

  reply	other threads:[~2017-11-07 17:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-07  9:35 [oprofile_arch_init] BUG: using __this_cpu_read() in preemptible [00000000] code: swapper/0/1 Fengguang Wu
2017-11-07 16:43 ` Linus Torvalds
2017-11-07 17:53   ` Borislav Petkov [this message]
2017-11-08  6:53     ` [PATCH] x86/oprofile/ppro: Do not use __this_cpu* accessors in preemptible context Fengguang Wu
2017-11-08 10:48     ` Thomas Gleixner
2017-11-08 11:24       ` Borislav Petkov
2017-11-08 12:01         ` Thomas Gleixner

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=20171107175307.yl25jewyopgymil4@pd.tnic \
    --to=bp@suse.de \
    --cc=fengguang.wu@intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=oprofile-list@lists.sf.net \
    --cc=rric@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.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.