From nobody Wed Sep 17 11:57:10 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C5FC4C4332F for ; Tue, 20 Dec 2022 07:28:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233644AbiLTH2y (ORCPT ); Tue, 20 Dec 2022 02:28:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233591AbiLTH2E (ORCPT ); Tue, 20 Dec 2022 02:28:04 -0500 Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 554DF167DF for ; Mon, 19 Dec 2022 23:27:04 -0800 (PST) Received: by mail-pf1-x42c.google.com with SMTP id 21so7933866pfw.4 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=BTJvYS4spxawqClPZN3JsF5BIQur69dzc90zuaFE6cJJCiJZrUzmmtEjfU6YgIC4Z6 AJGWICq80lXPLJTaCpEry0jEUsI55tWgfpMcY7Wpv4XramshiAeqtFLbBFtRkBDlkbOh BJfwA0UsEXWPhCKOxLbLHZOGf+frofbiJa6ledrcZ7r9xq60C5PFgdDlRizjaJt3KDNH fzJCs43P7v4qrH/fhzaPtY7sIlBHV6+rpY17IhFoLBsMBX+1hjVTmbmlmnlG+V69jsxQ SvmJILou60+0PH+KkLNkER3GvgXXnCIY2cxkxML5eb4a+ppQO9KxkRjc8dW14FV2BBCj tHzA== X-Gm-Message-State: AFqh2krG3eOY2N1S2whT1jEN2oCVqBDtTx2PImWJebHTKpEFZFrWB5He aKJ78XnHUCKTvWbNUMc487o= 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 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" 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 =3D 0; } =20 + 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 =3D copy_process(NULL, trace, NUMA_NO_NODE, args); add_latent_entropy(); =20 --=20 2.37.3