From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755678AbdKHGyE (ORCPT ); Wed, 8 Nov 2017 01:54:04 -0500 Received: from mga04.intel.com ([192.55.52.120]:5334 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752158AbdKHGyD (ORCPT ); Wed, 8 Nov 2017 01:54:03 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,362,1505804400"; d="scan'208";a="275607" Date: Wed, 8 Nov 2017 14:53:57 +0800 From: Fengguang Wu To: Borislav Petkov Cc: Linus Torvalds , "oprofile-list@lists.sf.net" , Robert Richter , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , the arch/x86 maintainers , Linux Kernel Mailing List Subject: Re: [PATCH] x86/oprofile/ppro: Do not use __this_cpu* accessors in preemptible context Message-ID: <20171108065357.7yidj6oebyaspmhx@wfg-t540p.sh.intel.com> References: <20171107093518.hnvd37aprqwrea6h@wfg-t540p.sh.intel.com> <20171107175307.yl25jewyopgymil4@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20171107175307.yl25jewyopgymil4@pd.tnic> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 07, 2017 at 06:53:07PM +0100, Borislav Petkov wrote: >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. Yes it fixed the problem! Tested-by: Fengguang Wu Thanks, Fengguang >Thx. > >--- >From: Borislav Petkov >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 >Signed-off-by: Borislav Petkov >Fix-creation-mandated-by: Linus Torvalds >Cc: Robert Richter >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) >-- >