From patchwork Fri Nov 9 17:35:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Mattson X-Patchwork-Id: 10676379 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 58FE0139B for ; Fri, 9 Nov 2018 17:35:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4176E2ED38 for ; Fri, 9 Nov 2018 17:35:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 35A352EE08; Fri, 9 Nov 2018 17:35:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DD15D2ED38 for ; Fri, 9 Nov 2018 17:35:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728422AbeKJDQw (ORCPT ); Fri, 9 Nov 2018 22:16:52 -0500 Received: from mail-io1-f73.google.com ([209.85.166.73]:35722 "EHLO mail-io1-f73.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728162AbeKJDQw (ORCPT ); Fri, 9 Nov 2018 22:16:52 -0500 Received: by mail-io1-f73.google.com with SMTP id n12-v6so2946944ioh.2 for ; Fri, 09 Nov 2018 09:35:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=6m9tnPDBB3cqxFBT3MM+iozIETganK+iJMxbwYI8kMo=; b=C1QsSS7aTFhSZjgQhgsUbNXDIu48zc9waM1+ZK9/uule7x5DOVNoUrllI1uz5k5Q7+ mhbfUE0G1AQ5cLqZY6yaHiotKH1S4Xl6R2KyBKQ137fzMECR6ctvr7Y38ObJyPg/y+4a XZWJ/lKcFKhZKpXiQymiqm3iMqkf2IZI54/H44ADMrIX/fe4Dv7c0U0pBbI+L2GsTrA3 e400wK5pn+vrRtrkGL6xlWRbn2WHUpzgMXdvyuFVOIvRwbtwfjPokBcSVmL1KsJdEknj jybcCCePmiTkF01n0NoP2kKDgVTqG5TTQjHCzKjsbWuuKNfvoJ2ajRQdujd7xbJJzAp9 ixZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=6m9tnPDBB3cqxFBT3MM+iozIETganK+iJMxbwYI8kMo=; b=LSZ2+YNaFbam6nfGLf+YR3yn/m8dIq/2Du55BUVmtGwAElTq+5iVp2JeyD+EHXN5fF GEwE7ojqY3Qj4TD2+Q1syFU5NYec7ZbHjGLR9770LVLPXrvikNTexaQ7hav+GRsBF7Dc 0kSIaMr8PRdlRykFZYsamx8M6hjSPA6rbP4aewdXZcgXxvI4wTUTVtGRt1DyZEMPJZ2Z adgp1EjfwcZVmz44gw9zQKnVIJzWS+nv7ZtMA7gX7zdZB8Rrg0j1QEZy0gWrRh2sJXUd AuNO0m184TKkGimiD+Wt4BN+rTW4on7LUlxCAzuMubw4xZvxxpJTCDUcVwhreUPRrUiY Z7Yg== X-Gm-Message-State: AGRZ1gK2wt47OHIkKLjMWv6UTvHQzM5lLpN5ueq2XLrAtLpgcqxhPUCK L5Aaa6qCJBXbpisbIDllr6snof575W5B4j6ySva7h0JjW2V/6QaKxn9k4r/qgVEafna06v3AJBl r5zuEK2VXeGO1MV2PZKOFHfDXt9gWzlkxs1lpFScispoFsguUSTrHjEeelobMAB0= X-Google-Smtp-Source: AJdET5eNPHUVbEn+kFIIiRXFY5m5VqCS6eb3DJSer5bSPZuWp/zmtKDSQ/NBIeGbLyeoSpLj+HAqTWSZZKF83A== X-Received: by 2002:a24:1741:: with SMTP id 62-v6mr2704307ith.1.1541784917368; Fri, 09 Nov 2018 09:35:17 -0800 (PST) Date: Fri, 9 Nov 2018 09:35:11 -0800 Message-Id: <20181109173511.178056-1-jmattson@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.19.1.930.g4563a0d9d0-goog Subject: [PATCH] kvm: vmx: Allow guest read access to IA32_TSC From: Jim Mattson To: kvm@vger.kernel.org Cc: Marc Orr , Peter Shier , Jim Mattson Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Let the guest read the IA32_TSC MSR with the generic RDMSR instruction as well as the specific RDTSC(P) instructions. Note that the hardware applies the TSC multiplier and offset (when applicable) to the result of RDMSR(IA32_TSC), just as it does to the result of RDTSC(P). Signed-off-by: Jim Mattson Reviewed-by: Peter Shier Reviewed-by: Marc Orr Reviewed-by: Liran Alon --- arch/x86/kvm/vmx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index ccc6a01eb4f4..b9602d000fbf 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -11521,6 +11521,7 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id) goto free_msrs; msr_bitmap = vmx->vmcs01.msr_bitmap; + vmx_disable_intercept_for_msr(msr_bitmap, MSR_IA32_TSC, MSR_TYPE_R); vmx_disable_intercept_for_msr(msr_bitmap, MSR_FS_BASE, MSR_TYPE_RW); vmx_disable_intercept_for_msr(msr_bitmap, MSR_GS_BASE, MSR_TYPE_RW); vmx_disable_intercept_for_msr(msr_bitmap, MSR_KERNEL_GS_BASE, MSR_TYPE_RW);