From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D8D6CA9EBD for ; Sun, 27 Oct 2019 10:17:44 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id CD0CC20717 for ; Sun, 27 Oct 2019 10:17:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="FMnlGwZW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CD0CC20717 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 497796B0003; Sun, 27 Oct 2019 06:17:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4479B6B0006; Sun, 27 Oct 2019 06:17:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 35D0E6B0007; Sun, 27 Oct 2019 06:17:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0029.hostedemail.com [216.40.44.29]) by kanga.kvack.org (Postfix) with ESMTP id 159FA6B0003 for ; Sun, 27 Oct 2019 06:17:43 -0400 (EDT) Received: from smtpin15.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with SMTP id 72EB1180ACF0D for ; Sun, 27 Oct 2019 10:17:42 +0000 (UTC) X-FDA: 76089163164.15.rose04_433e43e6c3920 X-HE-Tag: rose04_433e43e6c3920 X-Filterd-Recvd-Size: 3078 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by imf33.hostedemail.com (Postfix) with ESMTP for ; Sun, 27 Oct 2019 10:17:41 +0000 (UTC) Received: from aquarius.haifa.ibm.com (nesher1.haifa.il.ibm.com [195.110.40.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 55B66205C9; Sun, 27 Oct 2019 10:17:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572171460; bh=1/GtICbB1QJ08IPcfmlm4myAOcU2vLpne1WtR9Iw6ts=; h=From:To:Cc:Subject:Date:From; b=FMnlGwZWVBSvgfAhsWpuI8j3qxhrKgdjEWUTs1k5EeL2bX14jcHRCvErRcZ4gOE2T JKokAHe/xHMocxAfjtJhRmfXAQ4wAAAZY3Y94aR8kXojAUt2RLgCJn8DVf7lNwBOKq EfXLKG6WtLcMz1d40S+JguVm/LO4yAu3xTsJ0raU= From: Mike Rapoport To: linux-kernel@vger.kernel.org Cc: Alexey Dobriyan , Andrew Morton , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Dave Hansen , James Bottomley , Mike Rapoport , Peter Zijlstra , Steven Rostedt , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , linux-api@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, Mike Rapoport Subject: [PATCH RFC] mm: add MAP_EXCLUSIVE to create exclusive user mappings Date: Sun, 27 Oct 2019 12:17:31 +0200 Message-Id: <1572171452-7958-1-git-send-email-rppt@kernel.org> X-Mailer: git-send-email 2.7.4 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: From: Mike Rapoport Hi, The patch below aims to allow applications to create mappins that have pages visible only to the owning process. Such mappings could be used to store secrets so that these secrets are not visible neither to other processes nor to the kernel. I've only tested the basic functionality, the changes should be verified against THP/migration/compaction. Yet, I'd appreciate early feedback. Mike Rapoport (1): mm: add MAP_EXCLUSIVE to create exclusive user mappings arch/x86/mm/fault.c | 14 ++++++++++ fs/proc/task_mmu.c | 1 + include/linux/mm.h | 9 +++++++ include/linux/page-flags.h | 7 +++++ include/linux/page_excl.h | 49 ++++++++++++++++++++++++++++++++++ include/trace/events/mmflags.h | 9 ++++++- include/uapi/asm-generic/mman-common.h | 1 + kernel/fork.c | 3 ++- mm/Kconfig | 3 +++ mm/gup.c | 8 ++++++ mm/memory.c | 3 +++ mm/mmap.c | 16 +++++++++++ mm/page_alloc.c | 5 ++++ 13 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 include/linux/page_excl.h -- 2.7.4