From patchwork Thu May 7 16:59:39 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joe Konno X-Patchwork-Id: 6359621 Return-Path: X-Original-To: patchwork-linux-pm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 94089BEEE1 for ; Thu, 7 May 2015 16:59:43 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id D85AC203AD for ; Thu, 7 May 2015 16:59:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id DF92A2034F for ; Thu, 7 May 2015 16:59:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751961AbbEGQ7j (ORCPT ); Thu, 7 May 2015 12:59:39 -0400 Received: from mga03.intel.com ([134.134.136.65]:19723 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751459AbbEGQ7j (ORCPT ); Thu, 7 May 2015 12:59:39 -0400 Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP; 07 May 2015 09:59:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,384,1427785200"; d="scan'208";a="567893716" Received: from jbkonno-beef.jf.intel.com ([10.7.197.52]) by orsmga003.jf.intel.com with ESMTP; 07 May 2015 09:59:38 -0700 From: Joe Konno To: linux-pm@vger.kernel.org Cc: rjw@rjwysocki.net, viresh.kumar@linaro.org, linux-kernel@vger.kernel.org, kristen@linux.intel.com Subject: [PATCH] intel_pstate: set BYT MSR with wrmsrl_on_cpu() Date: Thu, 7 May 2015 09:59:39 -0700 Message-Id: <1431017979-28349-1-git-send-email-joe.konno@linux.intel.com> X-Mailer: git-send-email 2.4.0 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Joe Konno In instances where the default cpufreq governor is Performance, reading from MSR 0x199 on an applicable multi-core Atom system saw boot-to-boot variability in the P-State value set to each logical core. Sometimes only one logical core would be set properly, other times two or three. There was an assumption in the code that only a thread on the intended logical core would be calling the wrmsrl() function. That was disproven during debug, as cpufreq, at init, was not always calling from the same as the logical core it targeted. Thus, use wrmsrl_on_cpu() instead, as done in the core_set_pstate() function. For: LCK-1822 Fixes: 007bea098b86 ("intel_pstate: Add setting voltage value for baytrail P states.") Signed-off-by: Joe Konno Acked-by: Kristen Carlson Accardi --- drivers/cpufreq/intel_pstate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index 6414661ac1c4..c45d274a75c8 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c @@ -535,7 +535,7 @@ static void byt_set_pstate(struct cpudata *cpudata, int pstate) val |= vid; - wrmsrl(MSR_IA32_PERF_CTL, val); + wrmsrl_on_cpu(cpudata->cpu, MSR_IA32_PERF_CTL, val); } #define BYT_BCLK_FREQS 5