Received: by 10.223.185.116 with SMTP id b49csp1070614wrg; Fri, 16 Feb 2018 11:55:09 -0800 (PST) X-Google-Smtp-Source: AH8x226hIeJHk6UZgZP8AQLPVPmjiT0CAqpQsJ8DNRqqX0waNSx8cySU4ORXZ3MpNtERXXZNCAWh X-Received: by 10.101.74.208 with SMTP id c16mr6051491pgu.116.1518810909782; Fri, 16 Feb 2018 11:55:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518810909; cv=none; d=google.com; s=arc-20160816; b=aQ7WWhAGYP+PH1lDnFhBUfJpzwcP9RTHdsPTP9//Go1hSE63FEHdX5R/2H1V379Fxh XUuj5IC6zL0mUeUfh1s9f1lfIuWSjd9rRaUOXs7up7pQCZCIenPTEH4m7AxEsC/I7cz9 wt53+PGZdj2/onhEa7RDeYrJ/eypsOyYJ4iPimzT4xlIpKgpPelJZccpUUFv1vs9F7d6 Vh+lJZnf1y5UYMH8wRGfVFvrCuF0KwtpRhtEJRVbLYspBjG2X1cFMf5bslLuSJAs+v/F T3Ln5Ylc7Dnzm4KnCnKuRqrVt2kZZlI5pyjqfxwkdOdt/d+FxRZ6GAOKD+UXKuBR2zzU MRAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:to:references:message-id :content-transfer-encoding:cc:date:in-reply-to:from:subject :mime-version:dkim-signature:arc-authentication-results; bh=f4jjGuPrzcU83a6DDvtVzmFylf9xhDfoR6N4tqXPet8=; b=whazisD1rADNkK1x7E3UroZFwOg4OX3JnXyVo7ztYxFI5UQg9xBm810CWJkDoawYhB FUMueueLZOdJD5YjT86L5bS3how+gpam2C8xIfMFNEpCwvpSUiV0DB09I8mMnUT5mYzK aWrT8fdyzDK/UwcsiAfpUk4azG1cF/s2CgDVXnQzbn99PabFLsxG7aAucqSyJdGG2BJp z73e5/kbY/KaMnNJlCkp5EQ+CTHGZXCksNHsGhESDLsyZkMFlvcUSYlzS901n+9BK6LP EwG2QLGjZ7exV3PflbknYjLkfTuXtVzlCyNQHd1zqyuPkhU364fO5eg8eW0j+Agc+nN1 nn6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=GLFBQqsK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u76si1835100pgc.218.2018.02.16.11.54.54; Fri, 16 Feb 2018 11:55:09 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=GLFBQqsK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750896AbeBPTyK (ORCPT + 99 others); Fri, 16 Feb 2018 14:54:10 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:36304 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750782AbeBPTyI (ORCPT ); Fri, 16 Feb 2018 14:54:08 -0500 Received: by mail-wm0-f67.google.com with SMTP id f3so5064719wmc.1 for ; Fri, 16 Feb 2018 11:54:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=f4jjGuPrzcU83a6DDvtVzmFylf9xhDfoR6N4tqXPet8=; b=GLFBQqsK9U9VUizc5YopjnziIU6SRjYG40AHUJeENQDGwxFbH5sqRo0vZ9ykXvfULl F6uTqLzuyn9ijA8p9e3DRZ5LQBUmYsOc7/6i+ExrOBumQD4QUTmVCMZqUvUrCPMTGJIb k//yr9KaGwnbXgIVXxNl0JgWgtJcIwEUxxpXjH6PGameli0vDE+t/xwIFqj7Rzze1T/m HtkDTlcGLlknbW/2vgC71A7T97K7DYFtCL8SwK0EN6/4WOsKa4U3H6ycMT8B1GwiGUhK d0GbCeJ3lTz30GN2Yp9AlfsKQY6V5uZRTxk8+/YA8XjqskKMawDWPCElvd/AnSpTFcwi v/CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=f4jjGuPrzcU83a6DDvtVzmFylf9xhDfoR6N4tqXPet8=; b=Gp7JYM/uOyK6Dly/m70rCbTqlJIktCqvXObFyKD/6xYY4tV4nO4UeLZTDnZePxlXYb /6FroYDv+Vr0dNTrN4lKryupR+LyZEi/La4oaZCL0VcOZfA0Nv/+y55Xeup4WWaEDm7J /MRZhjY8tlEbtgmOSTAS574ysozSO4Xz/9XWI6vLciAkXcnAb5ZGvyAibXxc39ivW9ln n3Mx/kcPPBHk48iQKd5WJylOQHut6jytE7NsaYrFU0fXWBmFCbz+tc1pIJiwlN8AG4gu ANUp3Z9GIWUQqSsU1OHhs+iCkavwiEwRq6kDmx1bFxypGWitrjYiSY869QZRGh/sdAqI eb8A== X-Gm-Message-State: APf1xPD8GwgXDtyxxTQI/OAyU6oybSO9IdCW3OnmSKkeWf6UQfvdARkP ltePVQeSiz06gtZcWq//zwY= X-Received: by 10.80.220.141 with SMTP id r13mr9448483edk.120.1518810847570; Fri, 16 Feb 2018 11:54:07 -0800 (PST) Received: from [10.2.101.129] ([208.91.2.2]) by smtp.gmail.com with ESMTPSA id e12sm12537613edi.29.2018.02.16.11.54.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Feb 2018 11:54:06 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: [PATCH 2/3] x86/mm: introduce __PAGE_KERNEL_GLOBAL From: Nadav Amit In-Reply-To: <0f8abc68-1092-1bae-d244-1adbbee455f9@linux.intel.com> Date: Fri, 16 Feb 2018 11:54:03 -0800 Cc: LKML , "open list:MEMORY MANAGEMENT" , Andy Lutomirski , Linus Torvalds , keescook@google.com, Hugh Dickins , Juergen Gross , x86@kernel.org Content-Transfer-Encoding: quoted-printable Message-Id: <4542D3AE-6A4F-45AD-AD70-8DFA9503071A@gmail.com> References: <20180215132053.6C9B48C8@viggo.jf.intel.com> <20180215132055.F341C31E@viggo.jf.intel.com> <0f8abc68-1092-1bae-d244-1adbbee455f9@linux.intel.com> To: Dave Hansen X-Mailer: Apple Mail (2.3273) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dave Hansen wrote: > On 02/16/2018 10:25 AM, Nadav Amit wrote: >>> +#ifdef CONFIG_PAGE_TABLE_ISOLATION >>> +#define __PAGE_KERNEL_GLOBAL 0 >>> +#else >>> +#define __PAGE_KERNEL_GLOBAL _PAGE_GLOBAL >>> +#endif >> ... >>> --- a/arch/x86/mm/pageattr.c~kpti-no-global-for-kernel-mappings = 2018-02-13 15:17:56.148210060 -0800 >>> +++ b/arch/x86/mm/pageattr.c 2018-02-13 15:17:56.153210060 = -0800 >>> @@ -593,7 +593,8 @@ try_preserve_large_page(pte_t *kpte, uns >>> * different bit positions in the two formats. >>> */ >>> req_prot =3D pgprot_4k_2_large(req_prot); >>> - req_prot =3D pgprot_set_on_present(req_prot, _PAGE_GLOBAL | = _PAGE_PSE); >>> + req_prot =3D pgprot_set_on_present(req_prot, >>> + __PAGE_KERNEL_GLOBAL | _PAGE_PSE); >>> req_prot =3D canon_pgprot(req_prot); >> =46rom these chunks, it seems to me as req_prot will not have the = global bit >> on when =E2=80=9Cnopti=E2=80=9D parameter is provided. What am I = missing? >=20 > That's a good point. The current patch does not allow the use of > _PAGE_GLOBAL via _PAGE_KERNEL_GLOBAL when = CONFIG_PAGE_TABLE_ISOLATION=3Dy, > but booted with nopti. It's a simple enough fix. Logically: >=20 > #ifdef CONFIG_PAGE_TABLE_ISOLATION > #define __PAGE_KERNEL_GLOBAL static_cpu_has(X86_FEATURE_PTI) ? > 0 : _PAGE_GLOBAL > #else > #define __PAGE_KERNEL_GLOBAL _PAGE_GLOBAL > #endif >=20 > But I don't really want to hide that gunk in a macro like that. It > might make more sense as a static inline. I'll give that a shot and = resent. Since determining whether PTI is on is done in several places in the = kernel, maybe there should a single function to determine whether PTI is on, something like: static inline bool is_pti_on(void) { return IS_ENABLED(CONFIG_PAGE_TABLE_ISOLATION) &&=20 static_cpu_has(X86_FEATURE_PTI); }