Received: by 2002:a05:6358:53a8:b0:117:f937:c515 with SMTP id z40csp608666rwe; Fri, 14 Apr 2023 07:30:15 -0700 (PDT) X-Google-Smtp-Source: AKy350a/wAUtYRlDFi0lt40Ts8GFmZUDvFQeUiV7H0YO5zf/YesU85RdNU4t+xfklHvDU5DU7EYH X-Received: by 2002:a05:6a20:3d83:b0:ee:35c8:c1c3 with SMTP id s3-20020a056a203d8300b000ee35c8c1c3mr2705794pzi.19.1681482615549; Fri, 14 Apr 2023 07:30:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681482615; cv=none; d=google.com; s=arc-20160816; b=eI/K1fLmYvARysILMP9kbFRiN9Gdd0y9SJsDecKr7wb2029hJpqEI9CuT+pE70+/QK 4fyWrHvcbMV78iG5ZN4Q7U7uOWfC35R0xtooTeicVSFzewKjppDbpQS6Od7ND0960XPo WjiFMW13ZQWFK+aWYdobMia02sPBxMsplzEMkd44SnnJ5224Iwnqz7qBrwRSLe8Ch123 ShNEU+fnYCjPyEfucLoP/IMI7xVyHfaUrE4tEdhKvDHJ/BKdzYrfqWM5UK+JY5VbBUbV IlZ9jg0ly2eB+ZjcuNu28T5ZbuHRSXeeEKhdzcp0D/XgAGBBPbjvCPFkmDADO9SS3Bgr fkCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=6QF5xJOwjDJikkH9xEOT05QJOI9cchS0txpOZNjqBVs=; b=CadahfJZEV02mOGmO3LBBcXDmaj0Wh90tXXJwfsMqn/VQlu14W/9kMJlw0XjUOiaV7 8p9aVmp+gOzwXN2vt687OpfLEAk9sHcZ7JO2MUQ+9EdP6yFfvR2hpBVPpfWAE/2duVMu jkiav/tf11+++TsXPrrzeY2EvlFV5Um14J3zopujBSym5AI+EbtbciYDsrnGxBFvhAd2 UTGfqlKkQwuTlcHyx+c5KOXQR5etG/WlenTfJTJnsSGUGNG/9gAwX7gqaKJO7ims/n+R e0MTXHoNERox/CgnafLEWTMMx6rD3j4lAoBD0gwdhacMhyF48gF4XdFVPt/fC1oVQWX2 OlbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=PG8vzbsO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bv2-20020a632e02000000b004f2022f3cc2si4902665pgb.813.2023.04.14.07.30.02; Fri, 14 Apr 2023 07:30:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=PG8vzbsO; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S231166AbjDNO16 (ORCPT + 99 others); Fri, 14 Apr 2023 10:27:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231172AbjDNO1Y (ORCPT ); Fri, 14 Apr 2023 10:27:24 -0400 Received: from mail-pj1-x102e.google.com (mail-pj1-x102e.google.com [IPv6:2607:f8b0:4864:20::102e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51A09CC37; Fri, 14 Apr 2023 07:26:49 -0700 (PDT) Received: by mail-pj1-x102e.google.com with SMTP id v9so23783189pjk.0; Fri, 14 Apr 2023 07:26:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681482409; x=1684074409; 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=6QF5xJOwjDJikkH9xEOT05QJOI9cchS0txpOZNjqBVs=; b=PG8vzbsOguYntaBArXbPoyIOsUI0mlogXRMQ4K9KcrLog2kyEaNPzgy2SEcS28YMUz IYXTxZGaddfvbi1anPbUGMwmo7Ik9EQqSMINnbh5SC09Rc1vsm3SmI8jX+O0mSrg3R1D MEvaod7BVxSb4j6WdFrCjbbKx5aJ4njVMPUPFG3PrD+ynvMVvRCyg3r+bhlDW0Qh0WQ7 JQcJOgXzbwgB47RvgU3kyZR72Ehyob9f2lb4Xld+MgKykEaM1vneMQijfXeQ/BPtilCu 3w3bGXb4MB3IouRkauI2Ok4meKWRELFArwxIoQaBgvym7muq1nRaMooCTqk/IeMMr1cK E+Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681482409; x=1684074409; 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=6QF5xJOwjDJikkH9xEOT05QJOI9cchS0txpOZNjqBVs=; b=X19LYlhZUWyru24aX23k7E1eTbaXQf42xQX0tO6zLfFhfnhQLdGL8SZSLk5wZaKkMz vS+9wv9blCaAJSgKtDqiML48knLu8i51N/OQT59nG0MWmjyc+y9wXwiIHUn/3Bvv+IPn Qb8ABSQhFql+nKQVuE2AOT/bFO5uh9JEvhkdU96k1JyF3GbVmhAhL4G1q6qB8mWxVd3T 8CpHAbRM1chmBnkFa3pG+zHsLh8kWHrIZg3yjp5tGr6+GwLp02uEUCFf7ROLB3ppN36f QzbHQSgNMnY8tKm7vRVWdKyMuLYwDmL4AYfAQEjgoNULM8kbuoTAM2ejopG7C26FPN6d /6kA== X-Gm-Message-State: AAQBX9dkCKRK5Bn9hUhJLejWilfvx3NXSy8Ocwu4tY/caZtXEtmLgoaN INGZ5+xz49JOX+7WHTAF8hk= X-Received: by 2002:a17:90b:17c9:b0:246:a228:1359 with SMTP id me9-20020a17090b17c900b00246a2281359mr10871223pjb.23.1681482408896; Fri, 14 Apr 2023 07:26:48 -0700 (PDT) Received: from strix-laptop.. (2001-b011-20e0-1499-8303-7502-d3d7-e13b.dynamic-ip6.hinet.net. [2001:b011:20e0:1499:8303:7502:d3d7:e13b]) by smtp.googlemail.com with ESMTPSA id h7-20020a17090ac38700b0022335f1dae2sm2952386pjt.22.2023.04.14.07.26.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Apr 2023 07:26:48 -0700 (PDT) From: Chih-En Lin To: Andrew Morton , Qi Zheng , David Hildenbrand , "Matthew Wilcox (Oracle)" , Christophe Leroy , John Hubbard , Nadav Amit , Barry Song , Pasha Tatashin Cc: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Steven Rostedt , Masami Hiramatsu , Peter Zijlstra , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Adrian Hunter , Yu Zhao , Steven Barrett , Juergen Gross , Peter Xu , Kefeng Wang , Tong Tiangen , Christoph Hellwig , "Liam R. Howlett" , Yang Shi , Vlastimil Babka , Alex Sierra , Vincent Whitchurch , Anshuman Khandual , Li kunyu , Liu Shixin , Hugh Dickins , Minchan Kim , Joey Gouly , Chih-En Lin , Michal Hocko , Suren Baghdasaryan , "Zach O'Keefe" , Gautam Menghani , Catalin Marinas , Mark Brown , "Eric W. Biederman" , Andrei Vagin , Shakeel Butt , Daniel Bristot de Oliveira , "Jason A. Donenfeld" , Greg Kroah-Hartman , Alexey Gladkov , x86@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 , Pedro Fonseca , Jim Huang , Huichun Feng Subject: [PATCH v5 16/17] mm: fork: Enable COW PTE to fork system call Date: Fri, 14 Apr 2023 22:23:40 +0800 Message-Id: <20230414142341.354556-17-shiyn.lin@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230414142341.354556-1-shiyn.lin@gmail.com> References: <20230414142341.354556-1-shiyn.lin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/fork.c b/kernel/fork.c index 0c92f224c68c..8452d5c4eb5e 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2679,6 +2679,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(); -- 2.34.1