From patchwork Tue Dec 20 07:27:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chih-En Lin X-Patchwork-Id: 13077587 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ABD81C4332F for ; Tue, 20 Dec 2022 07:27:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 44AFC8E0009; Tue, 20 Dec 2022 02:27:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3FBB18E0001; Tue, 20 Dec 2022 02:27:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 274DB8E0009; Tue, 20 Dec 2022 02:27:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 1866E8E0001 for ; Tue, 20 Dec 2022 02:27:07 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8CAF9160761 for ; Tue, 20 Dec 2022 07:27:06 +0000 (UTC) X-FDA: 80261853252.05.FC7E4CA Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) by imf17.hostedemail.com (Postfix) with ESMTP id E75E640009 for ; Tue, 20 Dec 2022 07:27:04 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=QnipYX8r; spf=pass (imf17.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.215.176 as permitted sender) smtp.mailfrom=shiyn.lin@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1671521225; a=rsa-sha256; cv=none; b=c8OmhxSfEsN3Q1S8INhJc219qDiZ8+JWTf46GuF36bvV71cFr6CCm1F2WZOH2X7Kta5Z6/ quZLMTPXIpTZ1EOrvzwhBq+BzKk7F/ePhopRXumiaYKWmSbZYyE0js0q7MBdNMUzr/1nKr d+JdX3n5YoNvsKE+Dxr5LfNONep5dWs= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=QnipYX8r; spf=pass (imf17.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.215.176 as permitted sender) smtp.mailfrom=shiyn.lin@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1671521225; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=xOFwABHyEQomQ1BAaOhC3aSTvtto13Wh1TP7RdkKGVE=; b=7PAp7nIsGkPqLeE2c2LX3xFXJkio9l78gG7ybvtFSoG6DtjPivgol8bB2NHF2x2PyDDOeP 5TjQTOe7cRtWBpavTBYGwmX6Gh/2kdiBwFJLiEqa/aTr5iPMVdb9jS7V01xfnBIluPcU6l 0KhHEhVOZcqsG4mmie6PHIrHjwYpK24= Received: by mail-pg1-f176.google.com with SMTP id r18so7759034pgr.12 for ; Mon, 19 Dec 2022 23:27:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xOFwABHyEQomQ1BAaOhC3aSTvtto13Wh1TP7RdkKGVE=; b=QnipYX8r/cNxeA/VcnjSW/OSh/9P8UNJuqQNtxcvn2GyxEmaZw9iQabvRE1dwc3IsR dAuFzZZSQzfKXY8pwrONKqRlExpvyWNEEsnwOOsEFk8OM76ZgWJfE5+Pm/D85D6rLtW3 Q9Uig/Noj0FXSt2AVzDvVG5SlyyDuU1JFt7gyRzHkSbSziPG0wdVLdfYwo3VpTPPazVd +pikE3ai8HaktWHADnbHo51lZ0dczhIifhyThwjVXSQCiEmVGod8pYv8ZVMXJ/vQQlZX eWhrMJgRDJUqm/f0KPO3VCs6J2V65fgNZVsZZxuLUtYnBItYK9U4Esqgrg1J0+rzfRhY Y+uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xOFwABHyEQomQ1BAaOhC3aSTvtto13Wh1TP7RdkKGVE=; b=6hofmdPWuLHBozojBeVKwwTzI+jKhcnpbim/TryDSAIgVX8YdjdsY+eXBO6VcvMWU9 zi1ZiP1QsZBPW6qJdQjg2qgKAOxfJb4xi21T7cR5lawOQuFwyuJ/muOP+a0Cc5Jd2dts KuJYmyWfmtggLmudM85SMqsm86Vf6PbIlKBrx8F1vut1jbdI0LdbY21lQBRoteosnaUy Dvr1x0a7go0f8Z1Ca2pwbRvZFoWNXrItDCqGUEAOuOe1RyzKrXZd7RUtqv8rug3wytF+ m2wEy1USXr78Bf6OkLPnSol0CWTA0CYHMx8LhTYh2DGaYwoKlU4KjAxzN3rtarpi7K8G ltOQ== X-Gm-Message-State: AFqh2kpT64Ik64B18SnYLRmG6DOyowsxQ0oYFLhpAwKetC29ko0hQNt2 KQpJ9mOsJ54RsYP3xU0lEsE= X-Google-Smtp-Source: AMrXdXtiyKeI7TFFv6WMGqX0SE+95zDp3DgcU0JzPCjOSWZyo1MAwEssYqWeR06tsKbgCRIzVkuWew== X-Received: by 2002:a05:6a00:2dc:b0:57e:866d:c095 with SMTP id b28-20020a056a0002dc00b0057e866dc095mr18317032pft.25.1671521223915; Mon, 19 Dec 2022 23:27:03 -0800 (PST) Received: from archlinux.localdomain ([140.121.198.213]) by smtp.googlemail.com with ESMTPSA id q15-20020aa7982f000000b00576f9773c80sm7865544pfl.206.2022.12.19.23.26.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 23:27:03 -0800 (PST) From: Chih-En Lin To: Andrew Morton , Qi Zheng , David Hildenbrand , Matthew Wilcox , Christophe Leroy , John Hubbard , Nadav Amit Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, Steven Rostedt , Masami Hiramatsu , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Yang Shi , Peter Xu , Zach O'Keefe , "Liam R . Howlett" , Alex Sierra , Xianting Tian , Colin Cross , Suren Baghdasaryan , Barry Song , Pasha Tatashin , Suleiman Souhlal , Brian Geffon , Yu Zhao , Tong Tiangen , Liu Shixin , Li kunyu , Anshuman Khandual , Vlastimil Babka , Hugh Dickins , Minchan Kim , Miaohe Lin , Gautam Menghani , Catalin Marinas , Mark Brown , Will Deacon , "Eric W . Biederman" , Thomas Gleixner , Sebastian Andrzej Siewior , Andy Lutomirski , Fenghua Yu , Barret Rhoden , Davidlohr Bueso , "Jason A . Donenfeld" , Dinglan Peng , Pedro Fonseca , Jim Huang , Huichun Feng , Chih-En Lin Subject: [PATCH v3 14/14] mm: fork: Enable COW PTE to fork system call Date: Tue, 20 Dec 2022 15:27:43 +0800 Message-Id: <20221220072743.3039060-15-shiyn.lin@gmail.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221220072743.3039060-1-shiyn.lin@gmail.com> References: <20221220072743.3039060-1-shiyn.lin@gmail.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: E75E640009 X-Stat-Signature: erw83gmr3hkg99dw8krhgh4sj7z5ztz4 X-HE-Tag: 1671521224-614724 X-HE-Meta: U2FsdGVkX19mSj26JEtnka75mikIttN/4myVo2wcav0VNqcJ+dP7KeOBNGUxkqD5DNQDWiR2bTVhFD+Jq515IOXG8WKUGSGw9TTueJDxFdaHJ7x4cyuwz+45+gTMCJrlhoPvl9+4G3vmd9uhn7qTD5Njf2zLXseVO1V+3xXbEqfO4/piEwE56w/47ORkGdKODXPKoggJygw7YzbBBHO3i+Hrh3tzYYBFgbwUFKjWwQG+Mdfj8pf8lWj4JnxXYQRh9eykJWCOnhzj8LyFuQQN3JnTJKrfx94DzicvXunXl15OY8lUAUNrPL3JNB7qIohUA9d648F2jRG3gZxezy2Zobc4pKi07ues/epm5JDu0oNdYwzKb6hf9Wd/Sc/F5w6uQlb+jstN7j1S2ZIFEQmaWJzpGdcvH2VEkXiRgrd4XgG/v8w2zfYAY8VmD3P6q9lDY+fXERygR5CWCWJ7vQH+H93psoFLdL5KxkRJQ0AG77QbskiQNMLqmFkoTHbzOkotY6bVnhXDW15m2XKV2PAS4lACjNt3dEyGpfrNWMZEJg+QFRs3jBOz6y/gLyhq1C7hgzVsCQRYcV5VStV7eGGB2kblXd2yzLX3N7I7iJrF/UDt4ZH+/stVwT6uqekqRgDKynIRqOjw7rrumiqiy4A2Wb/F9YMeVl07g50G2TRepsLPSe9Xt28qPXLgqAziVLZJVAyqq2CtDvenBA/9xpGMwA2RO4Dp4kqThaVsDTqp1apSfkBpVsjWZ/FMYbCTuyMnWu8GWozML070EYekkTUX9eHOvLdKX7O4umSTdu44maJHS516PxpoBDgyBtxT6qAO8dRX5FZNCsEXyQN8pINwA/9/slBTZudriI97kOzp/6WLDBWgSlNvbsJji/SBOwFdmdQBuxPRznwNN+uoSInRstk8JTrgxEcbO+9Y/YwqDDYxcqUqTMr3/P4jtF6ttHV0RIEFmKXNUE8hYQEI8vf zPx5CgJ8 2oEk/vtqY/g8YYvfamMimRm5t6taLq2VlN3Q4bYuiNk182di8p89srf/CK8v3tbjC4FHeSk2/0WtJp+ESzACwKW7sFUPHHkBlS4Ne1gGozh40h9cGfTzZctza0yNJ5PVJd8Lx6cCEck7bM89dw8iboam3Nh8Avwgwhg2IYYTcvJetcUCP19pWdkx/HbLlA/Tzj2aGM7ANnjtHy/bLgH7AEdI8yQazjZgh3wnszraC17fBl2c= 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: This patch enables the Copy-On-Write (COW) mechanism to the PTE table in fork system call. To let the process do COW PTE fork, use prctl(PR_SET_COW_PTE), it will set the MMF_COW_PTE_READY flag to the process for enabling COW PTE during the next time of fork. It uses the MMF_COW_PTE flag to distinguish the normal page table and the COW one. Moreover, it is difficult to distinguish whether all the page tables is out of COW state. So the MMF_COW_PTE flag won't be disabled after setup. Signed-off-by: Chih-En Lin --- kernel/fork.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/fork.c b/kernel/fork.c index 08969f5aa38d5..ef3d27577aa43 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2668,6 +2668,11 @@ pid_t kernel_clone(struct kernel_clone_args *args) trace = 0; } + if (current->mm && test_bit(MMF_COW_PTE_READY, ¤t->mm->flags)) { + clear_bit(MMF_COW_PTE_READY, ¤t->mm->flags); + set_bit(MMF_COW_PTE, ¤t->mm->flags); + } + p = copy_process(NULL, trace, NUMA_NO_NODE, args); add_latent_entropy();