From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ingo Molnar Subject: Re: [PATCH] perf: Check all MSRs before passing hw check Date: Mon, 18 Mar 2013 09:42:42 +0100 Message-ID: <20130318084242.GB17959@gmail.com> References: <1363350033-16379-1-git-send-email-george.dunlap@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1363350033-16379-1-git-send-email-george.dunlap@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: George Dunlap , Peter Zijlstra Cc: Thomas Gleixner , Konrad Wilk , "H. Peter Anvin" , x86@kernel.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org * George Dunlap wrote: > check_hw_exists has a number of checks which go to two exit paths: > msr_fail and bios_fail. Checks classified as msr_fail will cause > check_hw_exists() to return false, causing the PMU not to be used; > bios_fail checks will only cause a warning to be printed, but will > return true. > > The problem is that if there are both msr failures and bios failures, > and the routine hits a bios_fail check first, it will exit early and > return true, not finishing the rest of the msr checks. If those msrs > are in fact broken, it will cause them to be used erroneously. > > This changset causes check_hw_exists() to go through all of the msr > checks, failing and returning false if any of them fail. > > This problem affects kernels as far back as 3.2, and should thus be > considered for backport. > > Signed-off-by: George Dunlap > CC: Konrad Wilk > CC: Thomas Gleixner > CC: "H. Peter Anvin" > CC: x86@kernel.org > --- > arch/x86/kernel/cpu/perf_event.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) What is missing is a description of what specific platform this gets triggered on and exactly why. Is some hw feature emulation missing that causes the check to fail? Thanks, Ingo