From patchwork Tue Dec 11 10:51:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: tip-bot for Kobe Wu X-Patchwork-Id: 10723541 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 15F2491E for ; Tue, 11 Dec 2018 10:52:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F3ECB2A1DA for ; Tue, 11 Dec 2018 10:51:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E6E2D2A215; Tue, 11 Dec 2018 10:51:59 +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=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7616A2A1E5 for ; Tue, 11 Dec 2018 10:51:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 816088E0083; Tue, 11 Dec 2018 05:51:57 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 7C6AB8E004D; Tue, 11 Dec 2018 05:51:57 -0500 (EST) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6B5978E0083; Tue, 11 Dec 2018 05:51:57 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by kanga.kvack.org (Postfix) with ESMTP id 1E8BF8E004D for ; Tue, 11 Dec 2018 05:51:57 -0500 (EST) Received: by mail-pl1-f197.google.com with SMTP id t10so6022715plo.13 for ; Tue, 11 Dec 2018 02:51:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:date:sender :from:message-id:cc:reply-to:in-reply-to:references:to:subject :git-commit-id:robot-id:robot-unsubscribe:mime-version :content-transfer-encoding:content-disposition:precedence; bh=UBcEjrxvTggZxxh3ENC9iQjiGdy7Tb0MVjF4LVodCc0=; b=Vjdib97NcwSiTZt4mcRwODxNYY1X7J4AatvNirLVcHnoAyChTEZl8cVWiVpHaykJxg tyn3pHznDEfD9XUQ2/N9SP2j6s4GLs4NzTYNJUxpwiOMUA2ey2i+vzgAIltu6va5zOJL /dOf9szbNRObyKHkHRwqYcoO9EiTaiSbV0UoAjA2tC67dpHUpQbwNa6acnFTjGkzvW3q 6/BcVkOyfCKHBLj+t8nwUyuIhU7AWVf23jC1cAMHpXsgWYVkuc6QHmhWRgiRk3KjYVQM Mxl+kYdwhbNN2xKviFLUnyPdaFVlFO2rfdW+vAfR3N6n6DG0IIw0inrxv+c0r032T6l8 gNCA== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of tipbot@zytor.com designates 198.137.202.136 as permitted sender) smtp.mailfrom=tipbot@zytor.com X-Gm-Message-State: AA+aEWbAUMFueIsdbuGbrC7fLTTVWvrD2X25cIw0lk6BQIF2UrUclRcB HVAM0/zky/67t2/ciA7dcGt3sTpKXoLVgVrpC0s5BZ3C1cdbTo5U9RIM+sA7PA+LeV22+FxunMm BAIami6iK4j9hoNfLGpAubJtnLQHTPFYc/gI4qsKn9DJ8/9a9H4FM+DBOfBF+BX9eYw== X-Received: by 2002:a17:902:45:: with SMTP id 63mr14895083pla.272.1544525516699; Tue, 11 Dec 2018 02:51:56 -0800 (PST) X-Google-Smtp-Source: AFSGD/WCKDbtjqDTYx2RK5CalWNAuCbnrKYp+fe6c6X+5SAWtqq0fwSo5bYz1uajinkiqI+Q60h8 X-Received: by 2002:a17:902:45:: with SMTP id 63mr14895062pla.272.1544525515991; Tue, 11 Dec 2018 02:51:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544525515; cv=none; d=google.com; s=arc-20160816; b=j3dEtVB0Apk0nR0pP4UgSHQHQSDo25963GSES2sxtj4CUZ45yryMCXhtD0rmOGy3F/ DZlCfUwAERwYq443d5ObCdd3l2SfX7OgEYyYeXD+kh/nEAh0IV32MvWiogrpUgb8dAJg qVsz/bqxGJOtb+1028qtz4Onal8G527g4LdFjxi6h3+B+9TmfkITqoVUheRjDbeu6ZoM +D2ZqcKpSGjYndAnR7LlX7Gvto9+kiS+JtNjGj4DwyMj3jOCgCLzdTbK9od0UXCNaI0z k1ixLk46QDPako7/VKe4oY8Pr0zflFtfFBMq5iF44X8Mt4rLDpyALHrKdRRegABo6fLJ hk2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=precedence:content-disposition:content-transfer-encoding :mime-version:robot-unsubscribe:robot-id:git-commit-id:subject:to :references:in-reply-to:reply-to:cc:message-id:from:sender:date; bh=UBcEjrxvTggZxxh3ENC9iQjiGdy7Tb0MVjF4LVodCc0=; b=MXv2S0GycFRFvlWzYCL3QmT+6/DS5GQx85uNpZK4dA5z7buwv3R29cl3B77hrYDVQi TRFgD4nWy7IXeuHU6f3/pkBAMNR0sIKqTGZZ69MavsTIgnnGrHnrprmXaYirRs9RpJND CkVTOniClL97L1MwBJL9XADF7hbfS9l8v6A+xC0JzLE/P1tngYkROz0kzCwkuGXRVbh+ dvbkIIBJkhfN6tjmGgC5zwogeKJ3dBd3RdeSQwzXXEJ+oqEHmmBjV610D70SQZ0Vzglc ErEq2yibTpWHwv3/l7ohYAb2kPqvw0Ih8Bwf2GpsG9A10WbZ6jr8cUKplKK+MQHiU0mA 6rMA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of tipbot@zytor.com designates 198.137.202.136 as permitted sender) smtp.mailfrom=tipbot@zytor.com Received: from terminus.zytor.com (terminus.zytor.com. [198.137.202.136]) by mx.google.com with ESMTPS id g7si12245300plt.212.2018.12.11.02.51.55 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 11 Dec 2018 02:51:55 -0800 (PST) Received-SPF: pass (google.com: domain of tipbot@zytor.com designates 198.137.202.136 as permitted sender) client-ip=198.137.202.136; Authentication-Results: mx.google.com; spf=pass (google.com: domain of tipbot@zytor.com designates 198.137.202.136 as permitted sender) smtp.mailfrom=tipbot@zytor.com Received: from terminus.zytor.com (localhost [127.0.0.1]) by terminus.zytor.com (8.15.2/8.15.2) with ESMTPS id wBBAppR53954752 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 11 Dec 2018 02:51:51 -0800 Received: (from tipbot@localhost) by terminus.zytor.com (8.15.2/8.15.2/Submit) id wBBApp2q3954749; Tue, 11 Dec 2018 02:51:51 -0800 Date: Tue, 11 Dec 2018 02:51:51 -0800 X-Authentication-Warning: terminus.zytor.com: tipbot set sender to tipbot@zytor.com using -f From: tip-bot for Michal Hocko Message-ID: Cc: tglx@linutronix.de, linux-mm@kvack.org, ak@linux.intel.com, pasha.tatashin@soleen.com, linux-kernel@vger.kernel.org, mhocko@suse.com, hpa@zytor.com, dave.hansen@intel.com, jkosina@suse.cz, bp@suse.de, mingo@kernel.org, torvalds@linux-foundation.org Reply-To: ak@linux.intel.com, linux-mm@kvack.org, tglx@linutronix.de, hpa@zytor.com, mhocko@suse.com, linux-kernel@vger.kernel.org, pasha.tatashin@soleen.com, dave.hansen@intel.com, jkosina@suse.cz, torvalds@linux-foundation.org, mingo@kernel.org, bp@suse.de In-Reply-To: <20181113184910.26697-1-mhocko@kernel.org> References: <20181113184910.26697-1-mhocko@kernel.org> To: linux-tip-commits@vger.kernel.org Subject: [tip:x86/pti] x86/speculation/l1tf: Drop the swap storage limit restriction when l1tf=off Git-Commit-ID: 5b5e4d623ec8a34689df98e42d038a3b594d2ff9 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Disposition: inline X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP Commit-ID: 5b5e4d623ec8a34689df98e42d038a3b594d2ff9 Gitweb: https://git.kernel.org/tip/5b5e4d623ec8a34689df98e42d038a3b594d2ff9 Author: Michal Hocko AuthorDate: Tue, 13 Nov 2018 19:49:10 +0100 Committer: Thomas Gleixner CommitDate: Tue, 11 Dec 2018 11:46:13 +0100 x86/speculation/l1tf: Drop the swap storage limit restriction when l1tf=off Swap storage is restricted to max_swapfile_size (~16TB on x86_64) whenever the system is deemed affected by L1TF vulnerability. Even though the limit is quite high for most deployments it seems to be too restrictive for deployments which are willing to live with the mitigation disabled. We have a customer to deploy 8x 6,4TB PCIe/NVMe SSD swap devices which is clearly out of the limit. Drop the swap restriction when l1tf=off is specified. It also doesn't make much sense to warn about too much memory for the l1tf mitigation when it is forcefully disabled by the administrator. [ tglx: Folded the documentation delta change ] Fixes: 377eeaa8e11f ("x86/speculation/l1tf: Limit swap file size to MAX_PA/2") Signed-off-by: Michal Hocko Signed-off-by: Thomas Gleixner Reviewed-by: Pavel Tatashin Reviewed-by: Andi Kleen Acked-by: Jiri Kosina Cc: Linus Torvalds Cc: Dave Hansen Cc: Andi Kleen Cc: Borislav Petkov Cc: Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/20181113184910.26697-1-mhocko@kernel.org --- Documentation/admin-guide/kernel-parameters.txt | 3 +++ Documentation/admin-guide/l1tf.rst | 6 +++++- arch/x86/kernel/cpu/bugs.c | 3 ++- arch/x86/mm/init.c | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 05a252e5178d..835e422572eb 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -2095,6 +2095,9 @@ off Disables hypervisor mitigations and doesn't emit any warnings. + It also drops the swap size and available + RAM limit restriction on both hypervisor and + bare metal. Default is 'flush'. diff --git a/Documentation/admin-guide/l1tf.rst b/Documentation/admin-guide/l1tf.rst index b85dd80510b0..9af977384168 100644 --- a/Documentation/admin-guide/l1tf.rst +++ b/Documentation/admin-guide/l1tf.rst @@ -405,6 +405,9 @@ time with the option "l1tf=". The valid arguments for this option are: off Disables hypervisor mitigations and doesn't emit any warnings. + It also drops the swap size and available RAM limit restrictions + on both hypervisor and bare metal. + ============ ============================================================= The default is 'flush'. For details about L1D flushing see :ref:`l1d_flush`. @@ -576,7 +579,8 @@ Default mitigations The kernel default mitigations for vulnerable processors are: - PTE inversion to protect against malicious user space. This is done - unconditionally and cannot be controlled. + unconditionally and cannot be controlled. The swap storage is limited + to ~16TB. - L1D conditional flushing on VMENTER when EPT is enabled for a guest. diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index a68b32cb845a..58689ac64440 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -1002,7 +1002,8 @@ static void __init l1tf_select_mitigation(void) #endif half_pa = (u64)l1tf_pfn_limit() << PAGE_SHIFT; - if (e820__mapped_any(half_pa, ULLONG_MAX - half_pa, E820_TYPE_RAM)) { + if (l1tf_mitigation != L1TF_MITIGATION_OFF && + e820__mapped_any(half_pa, ULLONG_MAX - half_pa, E820_TYPE_RAM)) { pr_warn("System has more than MAX_PA/2 memory. L1TF mitigation not effective.\n"); pr_info("You may make it effective by booting the kernel with mem=%llu parameter.\n", half_pa); diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index ef99f3892e1f..427a955a2cf2 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -931,7 +931,7 @@ unsigned long max_swapfile_size(void) pages = generic_max_swapfile_size(); - if (boot_cpu_has_bug(X86_BUG_L1TF)) { + if (boot_cpu_has_bug(X86_BUG_L1TF) && l1tf_mitigation != L1TF_MITIGATION_OFF) { /* Limit the swap file size to MAX_PA/2 for L1TF workaround */ unsigned long long l1tf_limit = l1tf_pfn_limit(); /*