From patchwork Thu Jan 11 10:11:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Guo X-Patchwork-Id: 858985 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="e2VADSz5"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zHMBN6pB9z9t44 for ; Thu, 11 Jan 2018 21:12:28 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933261AbeAKKM1 (ORCPT ); Thu, 11 Jan 2018 05:12:27 -0500 Received: from mail-pf0-f193.google.com ([209.85.192.193]:34740 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932982AbeAKKM0 (ORCPT ); Thu, 11 Jan 2018 05:12:26 -0500 Received: by mail-pf0-f193.google.com with SMTP id e76so1307700pfk.1; Thu, 11 Jan 2018 02:12:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=eT4BDlNIqleU/m87GmIEjCEDyR7qHDW+W3PCFt7PDyY=; b=e2VADSz5knX6hTdBfhwjiCjStcIS2K8B++BKvaPfiqPcTDBSskzgKIuYq3VRYF2iyB YZI6Ma3uzR3YWVS6Ry8S6ar5IC488ju6+xxzoANSGBOn8TkZYh8LMPtmtz1GOl9ey5HB R7EJvzOVwWqUgYAjmAfuDCdwTxdNiyq3oAecGSSP40EBvKodh7Ph6xqv+ZirTw3fTaKE bMd3lklXgoW8b42I3hOmoafxCgXX7Fn6D0ynfCcZpeaYSyZG5XfrdnMt01tcXCYPOoxA dUVcoeGbdX03WJB+XAMn2G6AwpHDH31u0z4WdGFi100zsawamF56VvJLxpB5gEX+SVl6 gc6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=eT4BDlNIqleU/m87GmIEjCEDyR7qHDW+W3PCFt7PDyY=; b=oRqGJyAlNgZN1foE310x4reYRFReku8sECedHe76T+P2i3c9snBmhWkjhAn9rxlITb nXlln+I8/Lf9EQAEPMCJCb1grw6aEP4Onb6aa587qci2XYUq3lhGOa2BWcl3X++ByhMg UT3TKGmPQcqsZuFQ1SqwQ38mCXXN9XoS9JFKTQIFgzVTK5kxcayaSEcXEdoq5RwRwrOv 24j3RGhL5O2hx4WHWzVhdtmKrP8mWjeHTE3zF9fyfWe9zIbRXERqq2myEGWvXiZ3gECZ ryJ2FmHYLWAXSNX7Iunm9iWoZ3tDl2bI9eLFt4EYh5ZvFC6nBDBDTqHYZTulcegh50fW eA9g== X-Gm-Message-State: AKwxytfsx2n3aFdo2/It2S7BSRutke2XYclyFAu2Cj5gF3D9hMZrMVPX XSMKaDZ8Ll950HiyPEXiCWEYUA== X-Google-Smtp-Source: ACJfBotYfngC38zUZaR1mIcDP1DEHwR/OFgp7SPLKGe3E8EPU2o+O3qVpbPbfF+SDdYRy10rAs36zw== X-Received: by 10.84.247.145 with SMTP id o17mr1629971pll.269.1515665546070; Thu, 11 Jan 2018 02:12:26 -0800 (PST) Received: from simonLocalRHEL7.cn.ibm.com ([112.73.0.88]) by smtp.gmail.com with ESMTPSA id m11sm34336122pgt.56.2018.01.11.02.12.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Jan 2018 02:12:25 -0800 (PST) From: wei.guo.simon@gmail.com To: linuxppc-dev@lists.ozlabs.org Cc: Paul Mackerras , kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, Simon Guo Subject: [PATCH 10/26] KVM: PPC: Book3S PR: set MSR HV bit accordingly for PPC970 and others. Date: Thu, 11 Jan 2018 18:11:23 +0800 Message-Id: <1515665499-31710-11-git-send-email-wei.guo.simon@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1515665499-31710-1-git-send-email-wei.guo.simon@gmail.com> References: <1515665499-31710-1-git-send-email-wei.guo.simon@gmail.com> Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org From: Simon Guo Apple G5 machines(PPC970/FX/GX/MP) have supervisor mode disabled and MSR HV bit is forced into 1. We should follow this in PR KVM guest. This patch set MSR HV=1 for G5 machines and HV=0 for others on PR KVM guest. Signed-off-by: Simon Guo Suggested-by: Paul Mackerras Reviewed-by: Paul Mackerras --- arch/powerpc/kvm/book3s_pr.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c index 7ec866a..b2f7566 100644 --- a/arch/powerpc/kvm/book3s_pr.c +++ b/arch/powerpc/kvm/book3s_pr.c @@ -320,6 +320,7 @@ static void kvmppc_recalc_shadow_msr(struct kvm_vcpu *vcpu) { ulong guest_msr = kvmppc_get_msr(vcpu); ulong smsr = guest_msr; + u32 guest_pvr = vcpu->arch.pvr; /* Guest MSR values */ #ifdef CONFIG_PPC_TRANSACTIONAL_MEM @@ -334,7 +335,16 @@ static void kvmppc_recalc_shadow_msr(struct kvm_vcpu *vcpu) smsr |= (guest_msr & vcpu->arch.guest_owned_ext); /* 64-bit Process MSR values */ #ifdef CONFIG_PPC_BOOK3S_64 - smsr |= MSR_ISF | MSR_HV; + smsr |= MSR_ISF; + + /* for PPC970 chip, its HV bit is hard-wired to 1. For others, + * we should clear HV bit. + */ + if ((PVR_VER(guest_pvr) == PVR_970) || + (PVR_VER(guest_pvr) == PVR_970FX) || + (PVR_VER(guest_pvr) == PVR_970MP) || + (PVR_VER(guest_pvr) == PVR_970GX)) + smsr |= MSR_HV; #endif vcpu->arch.shadow_msr = smsr; }