Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp150065imd; Wed, 31 Oct 2018 16:19:17 -0700 (PDT) X-Google-Smtp-Source: AJdET5dmqq6j+RfBPJDWVykGGXrDlTMkxgFn9LDz80jrvA1shA5R1m/ytX4Hpy6QrcPxfOQPKhzm X-Received: by 2002:a17:902:744a:: with SMTP id e10-v6mr5346344plt.61.1541027957675; Wed, 31 Oct 2018 16:19:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541027957; cv=none; d=google.com; s=arc-20160816; b=U2MVpbsCwNuxsDUg/Zm16jnT8Ll4ZS1L3sH2yatPapGgEBI5HxJiKxGEUgACSpTEX8 3J5l9mmmwFphJkcTrqWMcmSkZmywEJurT0RuvoNeodZPSGakJeiTxZLVhev314Zw0M06 HDWpIkHIKEx5QnkCDgnIn5kKTWJjOMOYbUPEjhZSH3EoD4/7CImy6FjW0a826L88HM+A M2mzXrIvh1n/VrNExQAKjli5L7qDW0BkRFYPDTSf19hlSuNY9OvbI6pRNb0KKwhyY8N0 MAFBnKRAPXEYgdr6jwtL+1NGFpzU8hHaMK3aKFWE0I0WW8VsYUkfIxHc+cSJiFGNkR3j /zRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=1V0Qgl2bcWmkylREXsPbWYL2rGuvNaTF1zFmyDEf/2M=; b=IjBzENen727STOn/ior9l1L0VZRcREtz7YweQwqq4AJFbn/RPlDmO2kC+3ey5GcU1A zuqszAowip5t2HC/Z10uJhQof3l6agSZ7oO/++ZaLj0X1dXNAtXXZ5INx8mMIm0+wSBV paB2tfNqVaLPORXRCdwG6m3iGFf6lU2h39X5tvJHepHlyCPauafEgFvliYuasYqICtyW UxOZLqcOfZLmEpTAC0UgcRzLJOlHdWTJbnFjCP//VMbApfL1/a2vXHq2geHHqfHAT4qK E72Fsv+qv2LqNK3tRPLEjit0Bh9f3zOsqKYO/fl/jLqxnVcgT/88+ed6mkoNFC6ojXaY fHgA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=R6rdy06K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p12-v6si30781950pll.1.2018.10.31.16.19.03; Wed, 31 Oct 2018 16:19:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=R6rdy06K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731937AbeKAIL5 (ORCPT + 99 others); Thu, 1 Nov 2018 04:11:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:36186 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730796AbeKAIL4 (ORCPT ); Thu, 1 Nov 2018 04:11:56 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D500E2085A; Wed, 31 Oct 2018 23:11:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1541027504; bh=bvo1h2bwlubHylv+fqebyw7NNfghczvN9UDyOz4MngQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R6rdy06KPXknETDTDnPTCfgNa2P1v/9uJckAtRdeL+jR3WMlnDoCOtWtbP+4SFqPd cRH4Bc+gfpF56oQqaverFTLa7RjnTdzqb9/4/83ZAvdXt7C3Tk+g0VAGggbydZoqT/ 5t/bQpbTREeJIl8JmfVd0bFI+BaUcxZdk+Y3GH0M= From: Sasha Levin To: stable@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Prarit Bhargava , Shuah Khan , Stafford Horne , Sasha Levin Subject: [PATCH AUTOSEL 4.4 07/32] cpupower: Fix coredump on VMWare Date: Wed, 31 Oct 2018 19:11:12 -0400 Message-Id: <20181031231137.29429-7-sashal@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181031231137.29429-1-sashal@kernel.org> References: <20181031231137.29429-1-sashal@kernel.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Prarit Bhargava [ Upstream commit f69ffc5d3db8f1f03fd6d1df5930f9a1fbd787b6 ] cpupower crashes on VMWare guests. The guests have the AMD PStateDef MSR (0xC0010064 + state number) set to zero. As a result fid and did are zero and the crash occurs because of a divide by zero (cof = fid/did). This can be prevented by checking the enable bit in the PStateDef MSR before calculating cof. By doing this the value of pstate[i] remains zero and the value can be tested before displaying the active Pstates. Check the enable bit in the PstateDef register for all supported families and only print out enabled Pstates. Signed-off-by: Prarit Bhargava Cc: Shuah Khan Cc: Stafford Horne Signed-off-by: Shuah Khan (Samsung OSG) Signed-off-by: Sasha Levin --- tools/power/cpupower/utils/cpufreq-info.c | 2 ++ tools/power/cpupower/utils/helpers/amd.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/tools/power/cpupower/utils/cpufreq-info.c b/tools/power/cpupower/utils/cpufreq-info.c index 0e6764330241..f9b064ac8d94 100644 --- a/tools/power/cpupower/utils/cpufreq-info.c +++ b/tools/power/cpupower/utils/cpufreq-info.c @@ -200,6 +200,8 @@ static int get_boost_mode(unsigned int cpu) printf(_(" Boost States: %d\n"), b_states); printf(_(" Total States: %d\n"), pstate_no); for (i = 0; i < pstate_no; i++) { + if (!pstates[i]) + continue; if (i < b_states) printf(_(" Pstate-Pb%d: %luMHz (boost state)" "\n"), i, pstates[i]); diff --git a/tools/power/cpupower/utils/helpers/amd.c b/tools/power/cpupower/utils/helpers/amd.c index 6437ef39aeea..82adfb33d7a5 100644 --- a/tools/power/cpupower/utils/helpers/amd.c +++ b/tools/power/cpupower/utils/helpers/amd.c @@ -103,6 +103,11 @@ int decode_pstates(unsigned int cpu, unsigned int cpu_family, } if (read_msr(cpu, MSR_AMD_PSTATE + i, &pstate.val)) return -1; + if ((cpu_family == 0x17) && (!pstate.fam17h_bits.en)) + continue; + else if (!pstate.bits.en) + continue; + pstates[i] = get_cof(cpu_family, pstate); } *no = i; -- 2.17.1