From patchwork Tue Nov 13 18:49:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Hocko X-Patchwork-Id: 10681359 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 8FA4B14D6 for ; Tue, 13 Nov 2018 18:49:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 82F1E2B2DE for ; Tue, 13 Nov 2018 18:49:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 76EE42B2E1; Tue, 13 Nov 2018 18:49:23 +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 F13D52B2DE for ; Tue, 13 Nov 2018 18:49:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E9006B000D; Tue, 13 Nov 2018 13:49:21 -0500 (EST) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 997FD6B000E; Tue, 13 Nov 2018 13:49:21 -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 887BF6B0010; Tue, 13 Nov 2018 13:49:21 -0500 (EST) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by kanga.kvack.org (Postfix) with ESMTP id 30F9B6B000D for ; Tue, 13 Nov 2018 13:49:21 -0500 (EST) Received: by mail-wm1-f70.google.com with SMTP id y74so1467931wmc.0 for ; Tue, 13 Nov 2018 10:49:21 -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:from:to:cc :subject:date:message-id:mime-version:content-transfer-encoding; bh=axpG6rzE7l/3qR0YkiVIhOuz2ldr2WJwHJpqxgxardQ=; b=onAW+7qF6hVRzh9USkq35D7KaVH55ci5TmpZMwQAD1Pf9M7AQ2PJoM0L7Zz7QHmM/J RYvRZR4XSRIJKLy57dHR708ufosVHR+43PK2jKJTvIQPrXzbLEMg061MjTEcP3F5VdWs lwlKVzeDer+xDxUa8p8hSBQFsygOdslkP2C++Hsu2iaCa4bMYWFoJkHHDa3awCXCkLO1 Lkg8T8IAVrTtzw6rvv61F0ZGItk1/cr2wwLlSF34x7xtIIC6qkPkL2lyoNcDI944zQ78 QqR7HcgekQgKBlTlu/9ZmS7XAq/rrBpPexQTFCdMkLr+wxn9FIyBgGnebDeqIhwtP3Ty ApFQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of mstsxfx@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=mstsxfx@gmail.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org X-Gm-Message-State: AGRZ1gIlCc8H1lomcGUFrOc9rwQ0kUc4dhSp4l5M1qMmG+dEqRB0XwgK YaXzD706XuimGxlRD4HzC2RFTnLNHawwdMAAfabokgP/H19noaOXZ9E5tSe84AYh2seExuovuII 7lFnwFhRRRM34AFh/Ng3Oz8P8vivfUz2m0JbQI5GGPeyQwqfusGLlRvQ+96TdbP+BXrIOFy/CTz o8nRuhBqpymMhLKvTyoPbaSayi/XG4/4tKSN6EyoQ3mTrSThaqfk8Qzoz2YxQdeSYq8gTzdOioN 2DBMmXsbRiXvr3+hQV8e3MFH+1S4MUMv1aRo6Bq+60ZuVtzZwzhN1FsqNpLK/nq74RShHbsJ3r4 i5x00Gnls2JyBqOEvGUpNqyleki34De2qhHykWzXZjKNQJuluA88KRl+zz/ecWBeM0KsEsWNSg= = X-Received: by 2002:adf:e983:: with SMTP id h3-v6mr6038958wrm.58.1542134960693; Tue, 13 Nov 2018 10:49:20 -0800 (PST) X-Received: by 2002:adf:e983:: with SMTP id h3-v6mr6038906wrm.58.1542134959517; Tue, 13 Nov 2018 10:49:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1542134959; cv=none; d=google.com; s=arc-20160816; b=KIXkJVDGFeKSX0LCaGhtVrsu5NojTvc2M02kQ8U38D/VWSyH9UlQTqZHmY3dIs3+/g ni2aeiK9yg3Cl/TqbH9n8z3/3OrG99dHjg9iK+eNCciz8l7tnT2ppOdZatgz6t3bK5Jy Uryajs65JsRKw/aXvSPhVBsMkXB73u0Qt2pCjtpPpei3Xv1u4IP4iUI9rj8l03XqBY58 hVR0qtfyqH5zZvqPp2BrDuE9zn5tMhHtfDwn7i4dM058ufV/etO0OyqMiTodaVYa26Fq +yDKxPbv2R6wMjbrBuM0tUjpfxGjzHwwqhQLRaiXHL0pzpXfVPlj5clL0GuItPcnjCQV M+TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from; bh=axpG6rzE7l/3qR0YkiVIhOuz2ldr2WJwHJpqxgxardQ=; b=PAX18lN5Q0O5RnlSV8MRNge62NqiwReiw4dcm5G7i2UVB2HOlvlci3ACWrWYLbfoMQ OzYTv41msl3ZtNJI8hQQLqyj0++oE1rT7HSscUyFMlu/XZXEG4a5YRoccrgHzixtghgZ tcgrbnow7fpUURiztjejxCU9y1fynVk2vieF+qfIKTA4h/qXod4ccKWxKOO3IwBWHZah 3HWZZ2GXIVbFKv6DuCXp55JRPxDFfUc0gaacQCuokww9/E1533sebABoNbTLgTEiPxqb WpnnzHrkqhc6A50xIlk63orax83ccZNRBsPL1yqxsqMICYZAsLpIbmba9MNEDdTY0ZwS Oang== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of mstsxfx@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=mstsxfx@gmail.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id e2-v6sor13525194wru.38.2018.11.13.10.49.19 for (Google Transport Security); Tue, 13 Nov 2018 10:49:19 -0800 (PST) Received-SPF: pass (google.com: domain of mstsxfx@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; spf=pass (google.com: domain of mstsxfx@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=mstsxfx@gmail.com; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org X-Google-Smtp-Source: AJdET5ePO/C8G4VSiB7eoZf+D29DIDFhYy6NYq1ehm+ziUerBQag6Hmjw6CgM+EVFNewFvAGjJawdA== X-Received: by 2002:adf:fe05:: with SMTP id n5-v6mr6028406wrr.116.1542134958874; Tue, 13 Nov 2018 10:49:18 -0800 (PST) Received: from tiehlicka.suse.cz (ip-37-188-247-207.eurotel.cz. [37.188.247.207]) by smtp.gmail.com with ESMTPSA id y138sm7228308wmc.16.2018.11.13.10.49.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Nov 2018 10:49:17 -0800 (PST) From: Michal Hocko To: Thomas Gleixner Cc: Jiri Kosina , Linus Torvalds , Dave Hansen , Andi Kleen , Borislav Petkov , LKML , , Michal Hocko Subject: [PATCH] l1tf: drop the swap storage limit restriction when l1tf=off Date: Tue, 13 Nov 2018 19:49:10 +0100 Message-Id: <20181113184910.26697-1-mhocko@kernel.org> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 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 From: Michal Hocko 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. Signed-off-by: Michal Hocko Reviewed-by: Pavel Tatashin Reviewed-by: Andi Kleen --- Documentation/admin-guide/kernel-parameters.txt | 2 ++ Documentation/admin-guide/l1tf.rst | 5 ++++- arch/x86/kernel/cpu/bugs.c | 3 ++- arch/x86/mm/init.c | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 81d1d5a74728..a54f2bd39e77 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -2095,6 +2095,8 @@ off Disables hypervisor mitigations and doesn't emit any warnings. + It also drops the swap size and available + RAM limit restriction. Default is 'flush'. diff --git a/Documentation/admin-guide/l1tf.rst b/Documentation/admin-guide/l1tf.rst index b85dd80510b0..b00464a9c09c 100644 --- a/Documentation/admin-guide/l1tf.rst +++ b/Documentation/admin-guide/l1tf.rst @@ -405,6 +405,8 @@ The kernel command line allows to control the L1TF mitigations at boot off Disables hypervisor mitigations and doesn't emit any warnings. + It also drops the swap size and available RAM limit restrictions. + ============ ============================================================= The default is 'flush'. For details about L1D flushing see :ref:`l1d_flush`. @@ -576,7 +578,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 c37e66e493bf..761100cd3eab 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -779,7 +779,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(); /*