Message ID | 20230207035139.272707-15-shiyn.lin@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 CAB4EC636CC for <linux-mm@archiver.kernel.org>; Tue, 7 Feb 2023 03:55:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6AC8A6B0071; Mon, 6 Feb 2023 22:55:31 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 635446B007B; Mon, 6 Feb 2023 22:55:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4AF156B007D; Mon, 6 Feb 2023 22:55:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 3A3096B0071 for <linux-mm@kvack.org>; Mon, 6 Feb 2023 22:55:31 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0A4D1120C03 for <linux-mm@kvack.org>; Tue, 7 Feb 2023 03:55:31 +0000 (UTC) X-FDA: 80439131262.20.D1C6D7A Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf30.hostedemail.com (Postfix) with ESMTP id 3AA518000A for <linux-mm@kvack.org>; Tue, 7 Feb 2023 03:55:29 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=o8ui0BwX; spf=pass (imf30.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.214.179 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=1675742129; a=rsa-sha256; cv=none; b=qJd7QdT16XaxIlZMAUfz3QmpH1veE0LNYuOLmIA2T+6769MLmrla6poH/VqDSlz4LiSFqE nyG325k9ytLizlY1Jie0oecTvyFo/CwZXuvsg8nDlrQ2Vd1PC9NFPZLydR7rSSKhxe6S3l eFZPKqePRysfUJEnVtFecbu3qqTLKC0= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=o8ui0BwX; spf=pass (imf30.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.214.179 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=1675742129; 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=mqI9CX9OCLRhinZW0rV2yxCcmMTFndJVCdpXa5ZUnco=; b=mMibgX5R1zjh/YbyDmkSt2WDge9ueprmc8c2gJ3bylanWuZhSUfxH4oh4W3vasGY67jNQU q/+6kcM5OjQQDQ+Xwz4xY6sSHe06pkBEtfyIYo96vNXObCfNhyR+eN2q8PCFTsEKFfkcZO 9elPuqafCZe4PLj02okVj8VSdVUoHqs= Received: by mail-pl1-f179.google.com with SMTP id be8so14373065plb.7 for <linux-mm@kvack.org>; Mon, 06 Feb 2023 19:55:28 -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=mqI9CX9OCLRhinZW0rV2yxCcmMTFndJVCdpXa5ZUnco=; b=o8ui0BwXjQb6Xz0+sV/XmAtBjIzgRNhLYPdfI9IHudkrwl5gTXpIpMOvolOaL9acRP XCdxnPWLWgJw0ORyp798XI/vdNQuP73eC52jwImCAT0YkmN/TUT0tUbkJMmm/mxAgpS0 XwxXjspo5I4w92K8TbwcdAFn+fv7U2jGlSP77xhKOI9/9crgO40/0FZOrKoybVWuIL8t fgIES6vwRi5iZ+RJVoHMkoDuT77EbnvzOn3Wgu+tVadR852ojkBEAyXwqTWHEvQ+/F9D oEoa54gTUp2x7VmLp0YL5AnlSdnytBXcKlTuEBzoyN6tEHrZwBETmGO0jD6Kw2tysYBO mLpA== 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=mqI9CX9OCLRhinZW0rV2yxCcmMTFndJVCdpXa5ZUnco=; b=vuchJY8az++pBi/yz172CuL4EjAtYNWvKdueY75+Ovs6ow06GnBUHGX9vfINegFwnO +lJIKE8PABBTumYeLcCQaCfvHzgyGt/wiI7VAocOELB1dlZBV94AoOvyHNrnbV2uy4rn cVxkPbfIAwG6qA3Z6LhWw/l6CmmtoxqNuyIIxVCtRI0Dk+GHcUwvslWflI1iSwxSoyj4 crvAly1voe5g4Z7aMDdnONZy6iL1n7+b2EHZ/gl5wJ0TvqFBtL0H6wdwJsQ6AP2YF4Iv aUShFQUq204itMOC2dL3D0F1Donb9cwkglJTlREV7EylxKSjUiJvUdvksXpDmCs9+U5h mgsA== X-Gm-Message-State: AO0yUKWq8fCGWUD4oAWxp1NIoAiYXbiL1WWjWJMgA3qsJ4A2Q4+VIL+k m/jAiRxIVpeEWG13S+3bzB7jGUMuFG6fdb99 X-Google-Smtp-Source: AK7set8xEIMQnqgw2pXG5HFkn5MnGyHjDBNyhDZPYQWQM7saiWZRxmBOABnr1379qxiruU1f4ByBsQ== X-Received: by 2002:a17:903:32c9:b0:196:1425:740c with SMTP id i9-20020a17090332c900b001961425740cmr1762111plr.62.1675742128059; Mon, 06 Feb 2023 19:55:28 -0800 (PST) Received: from strix-laptop.hitronhub.home ([123.110.9.95]) by smtp.googlemail.com with ESMTPSA id q4-20020a170902b10400b0019682e27995sm7647655plr.223.2023.02.06.19.55.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 19:55:27 -0800 (PST) From: Chih-En Lin <shiyn.lin@gmail.com> To: Andrew Morton <akpm@linux-foundation.org>, Qi Zheng <zhengqi.arch@bytedance.com>, David Hildenbrand <david@redhat.com>, "Matthew Wilcox (Oracle)" <willy@infradead.org>, Christophe Leroy <christophe.leroy@csgroup.eu>, John Hubbard <jhubbard@nvidia.com>, Nadav Amit <namit@vmware.com>, Barry Song <baohua@kernel.org> Cc: Steven Rostedt <rostedt@goodmis.org>, Masami Hiramatsu <mhiramat@kernel.org>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Arnaldo Carvalho de Melo <acme@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>, Yang Shi <shy828301@gmail.com>, Peter Xu <peterx@redhat.com>, Vlastimil Babka <vbabka@suse.cz>, "Zach O'Keefe" <zokeefe@google.com>, Yun Zhou <yun.zhou@windriver.com>, Hugh Dickins <hughd@google.com>, Suren Baghdasaryan <surenb@google.com>, Pasha Tatashin <pasha.tatashin@soleen.com>, Yu Zhao <yuzhao@google.com>, Juergen Gross <jgross@suse.com>, Tong Tiangen <tongtiangen@huawei.com>, Liu Shixin <liushixin2@huawei.com>, Anshuman Khandual <anshuman.khandual@arm.com>, Li kunyu <kunyu@nfschina.com>, Minchan Kim <minchan@kernel.org>, Miaohe Lin <linmiaohe@huawei.com>, Gautam Menghani <gautammenghani201@gmail.com>, Catalin Marinas <catalin.marinas@arm.com>, Mark Brown <broonie@kernel.org>, Will Deacon <will@kernel.org>, Vincenzo Frascino <Vincenzo.Frascino@arm.com>, Thomas Gleixner <tglx@linutronix.de>, "Eric W. Biederman" <ebiederm@xmission.com>, Andy Lutomirski <luto@kernel.org>, Sebastian Andrzej Siewior <bigeasy@linutronix.de>, "Liam R. Howlett" <Liam.Howlett@Oracle.com>, Fenghua Yu <fenghua.yu@intel.com>, Andrei Vagin <avagin@gmail.com>, Barret Rhoden <brho@google.com>, Michal Hocko <mhocko@suse.com>, "Jason A. Donenfeld" <Jason@zx2c4.com>, Alexey Gladkov <legion@kernel.org>, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Dinglan Peng <peng301@purdue.edu>, Pedro Fonseca <pfonseca@purdue.edu>, Jim Huang <jserv@ccns.ncku.edu.tw>, Huichun Feng <foxhoundsk.tw@gmail.com>, Chih-En Lin <shiyn.lin@gmail.com> Subject: [PATCH v4 14/14] mm: fork: Enable COW PTE to fork system call Date: Tue, 7 Feb 2023 11:51:39 +0800 Message-Id: <20230207035139.272707-15-shiyn.lin@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230207035139.272707-1-shiyn.lin@gmail.com> References: <20230207035139.272707-1-shiyn.lin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 3AA518000A X-Rspamd-Server: rspam01 X-Stat-Signature: u8ejbsd6sfizpjpxyambbrotzh1zhjgi X-HE-Tag: 1675742129-644037 X-HE-Meta: U2FsdGVkX1+dfhiQtkojlc0xq2JZ+FyXWEj+XbB35Vd7gmzr8HrpycFns2D5VqhEdI+70xfKqHYNo5aMbOQiTx0Uhtr6DuJXWNPVSXwMPTwBUP1+myGeO9VjNg3JY1P8jM56LcHuQW2Jucc0vZVa+84FSAGpwDqZQKBUoKra/2IVGOAJqJL5zBKoWOCeVD45X8130HCS3BMV2TDPoaykcPr1mM5o0DQLOdD0oi347Kd8th7pMsGlloxBcVB9JRH0SWxHzxW3qBjBeQUGTFmfA4ROnYi5shW44fRrwv9vG8zKzW7pYyJG7hnrzIkv9mQChWdWgvcv274kgivZHsPL9oDcurMIsDh6hhtLYptj93xTY4auVK/fka1rw2Ro896KnWzOYcOfH3AO21Y8yBKUcNdDzZreV/HAatoRGObkTuLQ5OAlH8oOrB43TyZYT6rNCEM8tejdQdYtJG9CswbJHxt6CBR5b/v1h4oKtwttUnwbICRWbLBCNr61WHtbq6Aq6LskpDIgrE7KAzE7KfcOvt+B67fAZwStCfp7qNLpD77sdyPlXH/sX6p0Xf90wd1er00BlPhlvKyM0E5QdkSiHwWbdGXzLgDgX9QefWk53RIbdvPFRJnvBWXce9OuzT7Tx4I8IKaxwZDWXoMCiYr1HUYP8pTw3wLxn3G9jOhh+TEPYSBosLySc+fF0j3HURddZJ4Gng/uCUD8C/xlI21CYc6KUb3YmU4NUknct2Pa0vchrRNkK0FfPGvftJ0dGboKS+XrKSL4rHTdznut41L2bSkmLyBTtAtYGAuBZm8lyD20ix+B9T4E6JiFfAtn1OUk4QE24JwDtomkQYcbkhE/7J0uX/i4gDs1Q/tuaREZGgWLgdHAoFCum8AvLufd6y1lNTLcxo0kn9qb1hU4/KTE3CW2jkvXyy9wdyav8Dr5wtZ8mnyyw2SNdA5T1Tqkpx1wH8yswU0/aNqIq4JGLES WesLrdHQ yJC/idYf9t0mn0wgvuUwSw2SWPf6aN9Q8jVcMb9/qn7PgqgPRIS7Uoq/jDsBKhkIJjq8vJZ1khQhu1TEBLBgdq7Bj22cEvC2mSVYFKDKH3kuozuRNtsATNCvTA0Q6ynNDpUDlkWxyZjbW1ZCGZ2EVpUcwU8RqhCEH/fMVekLOjpQUrnpY5XvJKiAn3h+E7/HqGVhhRNB2sfCBuQJ5jBeZiEGLyDLfvHpvX8EFRRI/WyvqirqVAdYmrqM0zFQsRiz00Gr6c6BufgyLgZj9iQyzUchYW7TeNY+xcWbxSRooClZ2RSbLRKGYHJ8EroniiDK3cvwU+9pIyEM5eN+QPwNKWEtzlP1hu7u3T83qMR04JtKwlTRd0mVi6+w2upGK+d61mDsjhvcOXcVsHhm6rAP+xbzpYa2sOiUtuGPcqrstljezEwI/UZWESMZdyL/y/Rg0tU1uEBFu5httWmsbfZ03ubi5+8cXB4OAwE6m2Kh0C3J1qpwcVVamN4mLXKBQHH9JdAo0N/1WEVESp77nwTKvczbBsw/mSd8+HF9VV1kfXsGQsdHH0FLRNIE9WA== 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: <linux-mm.kvack.org> |
Series |
Introduce Copy-On-Write to Page Table
|
expand
|
diff --git a/kernel/fork.c b/kernel/fork.c index 9f7fe3541897..94c35c8b31b1 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2678,6 +2678,13 @@ pid_t kernel_clone(struct kernel_clone_args *args) trace = 0; } +#ifdef CONFIG_COW_PTE + 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); + } +#endif + p = copy_process(NULL, trace, NUMA_NO_NODE, args); add_latent_entropy();
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 <shiyn.lin@gmail.com> --- kernel/fork.c | 7 +++++++ 1 file changed, 7 insertions(+)