From patchwork Fri Sep 7 17:57:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Brijesh Singh X-Patchwork-Id: 10592427 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 589B114BD for ; Fri, 7 Sep 2018 17:58:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4DA582B7E4 for ; Fri, 7 Sep 2018 17:58:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3FE5C2B8AA; Fri, 7 Sep 2018 17:58:12 +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=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI 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 CDE492B7E4 for ; Fri, 7 Sep 2018 17:58:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727798AbeIGWj4 (ORCPT ); Fri, 7 Sep 2018 18:39:56 -0400 Received: from mail-eopbgr680053.outbound.protection.outlook.com ([40.107.68.53]:59456 "EHLO NAM04-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726365AbeIGWjz (ORCPT ); Fri, 7 Sep 2018 18:39:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F6NWRmT1MHxuQGpUxYzj4VuHOnSWLDZMxzj86WU5iPI=; b=GYPPmWo2SsB/N5nrG0eGhJ2yTBlvYm6gcRm2rKHZFih1HJUNMUW0P+yb1waVtbTCIZqCPj0m0ucYOp29BcseV4WdkfqANVmeu6s88MIv8Dnf2bgRpqCMt+0szjCa7uWxZEcB4jV4JRLkg8swIxQne2cJ9MfDxXB666QV7/CqHWU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; Received: from sbrijesh-desktop.amd.com (165.204.77.1) by DM6PR12MB2684.namprd12.prod.outlook.com (2603:10b6:5:4a::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.16; Fri, 7 Sep 2018 17:57:42 +0000 From: Brijesh Singh To: x86@kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Brijesh Singh , Tom Lendacky , Thomas Gleixner , Borislav Petkov , "H. Peter Anvin" , Paolo Bonzini , Sean Christopherson , =?utf-8?b?UmFkaW0g?= =?utf-8?b?S3LEjW3DocWZ?= Subject: [PATCH v6 4/5] x86/kvm: use __decrypted attribute in shared variables Date: Fri, 7 Sep 2018 12:57:29 -0500 Message-Id: <1536343050-18532-5-git-send-email-brijesh.singh@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1536343050-18532-1-git-send-email-brijesh.singh@amd.com> References: <1536343050-18532-1-git-send-email-brijesh.singh@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0401CA0004.namprd04.prod.outlook.com (2603:10b6:803:21::14) To DM6PR12MB2684.namprd12.prod.outlook.com (2603:10b6:5:4a::33) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4fc228f8-ebac-4505-116a-08d614eb691c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:DM6PR12MB2684; X-Microsoft-Exchange-Diagnostics: 1;DM6PR12MB2684;3:xSgBWy/zVrbo4/s20I4Dcz9nNKMKIPZVvUVgsxi/uUeynS0fftPq44MBvDIRmRXU59J6w9AOKH9KIG7UreFdNgwKLdjb/9EvtlWnODdygCZ0lvlH99wbU9TQrV2ZSnFK4f5b69nEA3E+xKYgUeHMiH+46JoC66BiJ8UqFBKRnyxwqFuVW35cDCGFzoVjjH/PXY+cnXvc4wlTJFoqLTJrjpJCEogaywjqItb85U7xD+ScC4L1PC64SCKK2CB0aNcH;25:+l9ny/O9s4OpHuX5/XFvWR9EvjUyjxRBP+mkK5kYhHU/moTBeP85VdgoWKAHrYB6AVFTSCbrcykpA0eHVimyJJLSAY422Iz1ANYXg8vvAGKXe4AYNjk8qgEjZx3JTAU6Cf42rrdL7pFQyBAOozLbfVLMsizBfHHJ36DTXDucgGg4lwoMz+IrogL3uWabhLGy9Sr4ZMzhFo5/BqOxfa20jdbCjx4j9BC4SOK/4WBl5n+LFcrJ38D0Yw1cMZ2JDo82VXKWklW4sGLvNkBqlGxOVJQyMGP5+D9cuTz5z+2AWjg0sPDCL3VmGT2okiwpYblKvmMnCZAfEpm/+N+X5dvmug==;31:/fuWaloqrHNDD2zyu0Z8pARGmP49Q1vADn6XuiO16eKoDZNGO2O+vunwVv24vRGv6ChgmCxooM+KF2AJviACGT/8Sa9AZuZWLtcFnM7Bw8w0mF0lUQKobBGGV2R5yIO+n8uMSyubiE/Q8/eZNmdzDjxrlbOr54RRUwyNu/rIKQEPWVzASNlGoQxYo0CBgmzQAPdaf+kpApQgJgHJsM8uixcO3ezLhueUXFBl41TWSRs= X-MS-TrafficTypeDiagnostic: DM6PR12MB2684: X-Microsoft-Exchange-Diagnostics: 1;DM6PR12MB2684;20:vdYuPy6uTWeI8nkmvU/XfpLNQmQorQLMdaosfCXvtD/sg6nxhOoRZsg2LAx4330Dv59XwTSi8roWTaLPMb1Pm1a56RhnoXuMq8WI4RDMQvPvekFlFOJ2UAFYpXYSAtc7A6pyBhrvE1vY+UFQMMPrGZeFf6w7fGH9J+lWC6x/yAeuMskpCYMKr2+5qCYY8Q3dJWCQR+YKzdcKTOBkksJcQ3dxbNCkM0yHUjhi56z7BiXyAJTRzqLgbvH/hOtyn3nkRXbctYlZemA+XjiM5bykxBSCdSu3lE1H8aoVWym7fdlKtuvWSq/Rm8txYJuStrPudm+zkElLRmLe4QJB+F1OHrZPm/oYa7nEc5x5JLjoBEX8fmx+S1YDpUNw62BdAP/xQvitPBKSEeB0huvMAtaHJcD1l+N7LrPwgqTNH00X8SBFPLR1eDUKpYdgstxlNsybeyxd0R2+dLdkvqAFXEzePXD8DD1sc/miTVOmje7flbH/ydxujy072XS/mJ7vXbZd;4:m4IXGEE2Fo/uwfWHexEzUGdFoK5pe/NcesAADYk35Fj2P4xBhndd8iL0crxrT6OU5PRFmtCzg9Kx6OSkHL5MvgSYNvnKrBjRDzoSyJjGimbfnIkR7v+fceZm3edEanyCxO8YSoZNRo7gYFTQuNe/lUUVDmUq+tmofrYoGldHrg1Du1MN47FHPuw2ZFDEnCjv1kDnsUbjhe2d9SDg/4DUom2SUm2lg7npr7o9vtgEMrAZqUOKfqFhWZ+0DoLc+Jl4QDqnB83+xjgeNBbO168W5G89U+g9OT6RTrdzy2H5/lMtQBoYMvYZOOwsBO9YejIdL8QXu1Om+x488FFk+O1jLshKeQPDgVw3Emx5JrzbL4nWrW+NJUgkGD+mxtswAhLy X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(767451399110)(228905959029699); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(823301075)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(201708071742011)(7699050);SRVR:DM6PR12MB2684;BCL:0;PCL:0;RULEID:;SRVR:DM6PR12MB2684; X-Forefront-PRVS: 07880C4932 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(366004)(346002)(376002)(39860400002)(396003)(136003)(189003)(199004)(14444005)(8936002)(81156014)(81166006)(446003)(476003)(2616005)(956004)(86362001)(11346002)(36756003)(486006)(2870700001)(44832011)(2906002)(47776003)(25786009)(50226002)(66066001)(4326008)(6116002)(97736004)(6666003)(7736002)(105586002)(316002)(54906003)(106356001)(76176011)(3846002)(23676004)(7696005)(8676002)(305945005)(52116002)(16526019)(386003)(186003)(68736007)(6486002)(26005)(5660300001)(50466002)(53936002)(478600001)(53416004);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB2684;H:sbrijesh-desktop.amd.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDM6PR12MB2684=3B23=3ALuuskB+?= =?utf-8?q?6BwACHn/0CFuwygpMbJ7059+xkVfHflUmEHLoH0ddR3/wgiAcgOEhbT+nNKj5XSxI?= =?utf-8?q?dmA67gTlv3r7vk7+KDlsWRQu6jKpC2wn57T+qxMrs9ycg60L2YT3r8PnrYw/KiFbU?= =?utf-8?q?yuvkMFXoNAIjfNsa9NX8Xy5g3yDD0Ho4ODD5IqKOLVIpSl4hWGgZPltjxXk8AtYBX?= =?utf-8?q?OLFI6Qu4kDnVo/Vn0ttQfteraRxZWWApzRBFXrK2cg4m0GNFBP0dh6NTGgn96wurh?= =?utf-8?q?vhFe/gC3Z/EyAOu7rJpXugt564BOUcmQ1KawwZ/WBpF+8SEmfg62Q5YQ/wKPin0hu?= =?utf-8?q?+HTki1sMCajDuvnxm484AaMN9rdYw6CR0nKSFdLRVnSHKDiNbd967j440L7vPZlD1?= =?utf-8?q?l5c84O6riC3APKDvGK7sRSiFyr/VIo6BYwUKJCUU5tndr5ka80a4qYSkXRHjbIxGG?= =?utf-8?q?5q/eKEuKsUXPKDu2L53wxqWexafN5J9tHLv02w+lKaDPY80zX5wHJ9RyibgH0GWh3?= =?utf-8?q?7xIsxyNyNLyp/vaTIG0xvOGcQDZUT+G1Lq8VKz3BfhkoS6WozNp26oBqXcVcin6xc?= =?utf-8?q?VFoE0f90M5yUAaAbk7dwHTMTQLAD8BfMb46GTDoRBc3gj9Dql4CtF71my0ojdo+X9?= =?utf-8?q?UyEsGAjHy0Y4KwsC4AwwrrmQOfhACwcfmj1UKTqumhX/CnC8p1UrkWBBIUh1SkzRf?= =?utf-8?q?W6V/SK4FyV4fHXvGg/bpROFl5cmY/nDRDuxxv9pIJRc/s18OJhsKri+ANo4TiXkzc?= =?utf-8?q?EHv8eXHEa0EAYCbwQV4q4hoBb5SbtxqGMPnVEnauEbTDgpxcZW7fb8NpNPXV8N4oA?= =?utf-8?q?6/5PuEYFMRnfvZtFOAzLTcRYlfniJpnQujb3NoPvk50IRsxEM6qAEQTlnVQFlSrIJ?= =?utf-8?q?/R2pk2l+ejZdubFQTDFvQZALpmqcMfEq2TzFTWiUd1SOYzwTqjOFB59Evml3FnSvf?= =?utf-8?q?7AJ4WIKyWtn7Z/dUvGQGk6i3MvCm+kitZGqGBJAfQE2dUZ/emuFbAx16ZHLPkFNmR?= =?utf-8?q?kcT+exVuD+ykBT2hstwr726TwXLEsB54ODnN/qgR8Y2PK1m3S28qNQemmu7/SMRpC?= =?utf-8?q?Fu2HPj2A9bAbD5ZsO4gL+EmwT22tiD3st4p62MIkOhy+1FZJf+sP+utT6urpHJpBq?= =?utf-8?q?Ya5rFWXsw1/KeJ84/M9cLc6FSeEpTEx3mAbDW9q?= X-Microsoft-Antispam-Message-Info: p1NE2tYIbDuhOjHjhl4zU5s2v5JG7kslsYkrb9YCFdWa29EsvMzqtS4k5EWmpKw1W91bE5+f/sfvJChrthNkq79R0C7TS7KzYfENHMqjBXZxS8OYyMGhO4e8nffKVbLBHBfsCiT48r4jyQQHk4v9HuJdATpbQmxuCtUSfW/Jlu/riTW6jVVnt6q1FNzR9kQ5bRc1MdJWXsz39WyRBOgteH1tFHq7QvRtPAi+Lo6tfTGp/YsBV8EAJDsoc3L9uNMIU18DfgFuqNo4c+tPhoClt3pI2TZJitlSbr6PaC/7+m700oXDVRkVqqOWBexMqZp/6cSEUzi+96zUjkK8bY54qMbmJcHwtdyOwWG5gwO80mA= X-Microsoft-Exchange-Diagnostics: 1;DM6PR12MB2684;6:KvDqsT1e6R+VycoCkPjD+yH2TviADZ7gzCQNow0MMKS06qwvVX+wTnQ+q6PTUyMpurB51o0//rsEQnPdfIqCvJTsbK5Uo7HC97a5Hmc3ds44hi4bnzEj+3OuclmsXYoMXnOj2je3FsqRMepjb9KOgV6WgaBLZeYpssrIj0CETsoIqc1huFckLZvI1SVmrrKM7S8eE95nOjtURNjgMQiL/x3wyM9RSeNcgYWX9DFhKJaHyT464vRnCBuS9Tr0EICGdN4olp1KOTcT6DRhPR7a1Cb6IKOOtnthjiz7MfK3cy/8V+2eCPgQOGYbrYQqBvBoNzPFl1TrFckznXPxMhJVboVoCdKcQIGPuBX8I/UVEtDQ25O/bJVz1SN4hfkKfvMgDVnLESD+zyRy3dclz8Heuzh4JSPbj9C13RZDYzosqd/uGQSZOZVY0JgToOECd+SPcebCb+jmZ5d43Oo/dslV4g==;5:TLZfW1ftTwqG0VgS/ILeosKU1zIEBzIU/jF2HFczipmd4OlG42KS2z13IxG6Aub5M0+ap0zdyIwSWjVyuemt+zezTtwbaO5yoyOg6SYKtv3gWS1sRF7RoK7lpo1G5zZE2313ga4hbvdYuwidhOl5kr1++AgdirV1Jbh5a1H+z7A=;7:MSnk02YQkTA42FUfr8OPmnf0QvMF+EzW/EXpZyFqEZ/07vRW4bKaSZp3t/1Sz1U3+TKIPE1I70ZdgkMXtt3yBixQcmwqrjI4/hLol90BAH7INiwFG2RuZOM/cRl0v5Ksj0QXvbL5fLsTnRyvgdMP4F8SuofujsExub+kWepp8pdKCIu9OOYzW/ceFmQCuOrvSRfE25hI4sTNhv579aWfdoANvT5IJtilbS1xlHdP1I/3CBojTPcIekrQCHmFkT7d SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM6PR12MB2684;20:nSYhT/GI5zeBKmEPuvp1b5qOaytWfZge+2sn1e1MMWPAjp34sRaokHO86Q2R17ORQFbzwtsbZ6BVgz8R1NZHM5J4iE+Jvm8WzkM3iuBwmFmm+wgDQI/mYdpTGQVVjlMK3pLUjxa0GOYQNOIZ/amicdDR1thnnDVG8tE0w1mA4l9nhWpZBt+ncST4OlULWCLLEWYJ5tNrmG9hC7wFgDbarIeuDJEPMd3/eYgKH3Jt2azOyloHHCoh8q+HzI10GnqP X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2018 17:57:42.6206 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4fc228f8-ebac-4505-116a-08d614eb691c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB2684 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Commit: 368a540e0232 (x86/kvmclock: Remove memblock dependency) caused SEV guest regression. When SEV is active, we map the shared variables (wall_clock and hv_clock_boot) with C=0 to ensure that both the guest and the hypervisor are able to access the data. To map the variables we use kernel_physical_mapping_init() to split the large pages, but splitting large pages requires allocating a new PMD, which fails now that kvmclock initialization is called early during boot. Recently we added a special .data..decrypted section to hold the shared variables. This section is mapped with C=0 early during boot. Use __decrypted attribute to put the wall_clock and hv_clock_boot in .data..decrypted section so that they are mapped with C=0. Signed-off-by: Brijesh Singh Reviewed-by: Tom Lendacky Fixes: 368a540e0232 ("x86/kvmclock: Remove memblock dependency") Cc: Tom Lendacky Cc: kvm@vger.kernel.org Cc: Thomas Gleixner Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: linux-kernel@vger.kernel.org Cc: Paolo Bonzini Cc: Sean Christopherson Cc: kvm@vger.kernel.org Cc: "Radim Krčmář" Reviewed-by: Borislav Petkov Acked-by: Paolo Bonzini --- arch/x86/kernel/kvmclock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c index 1e67646..376fd3a 100644 --- a/arch/x86/kernel/kvmclock.c +++ b/arch/x86/kernel/kvmclock.c @@ -61,8 +61,8 @@ early_param("no-kvmclock-vsyscall", parse_no_kvmclock_vsyscall); (PAGE_SIZE / sizeof(struct pvclock_vsyscall_time_info)) static struct pvclock_vsyscall_time_info - hv_clock_boot[HVC_BOOT_ARRAY_SIZE] __aligned(PAGE_SIZE); -static struct pvclock_wall_clock wall_clock; + hv_clock_boot[HVC_BOOT_ARRAY_SIZE] __decrypted __aligned(PAGE_SIZE); +static struct pvclock_wall_clock wall_clock __decrypted; static DEFINE_PER_CPU(struct pvclock_vsyscall_time_info *, hv_clock_per_cpu); static inline struct pvclock_vcpu_time_info *this_cpu_pvti(void)