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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C6FBC4167B for ; Tue, 20 Dec 2022 07:26:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B77608E0002; Tue, 20 Dec 2022 02:26:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B275B8E0001; Tue, 20 Dec 2022 02:26:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 97CB58E0002; Tue, 20 Dec 2022 02:26:15 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 87ACB8E0001 for ; Tue, 20 Dec 2022 02:26:15 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 58F65AADEF for ; Tue, 20 Dec 2022 07:26:15 +0000 (UTC) X-FDA: 80261851110.15.380AB31 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by imf02.hostedemail.com (Postfix) with ESMTP id B58A080007 for ; Tue, 20 Dec 2022 07:26:13 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Jbm+ZDET; spf=pass (imf02.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.210.173 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=1671521173; 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=Do3acUsDb4bseCZZAAdCXOeb3zH5cpjKCNiCZshpYgw=; b=3DUgTjw45YYG0vWdow0vXdETt1CjQjSaaVJh3vOBuGga6TnRNeKwRSNH2bvjZ3+x6WzndY 5DHOQs8PNozcFZ+NVHwO4xxYUkhNDP6R4jtJUPLAVzmVgP9ChvPYQZc7QKVCvXo6VJUDV0 P6674/cnWw9LX6+EL/tIQtSrCQJZKOY= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Jbm+ZDET; spf=pass (imf02.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.210.173 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=1671521173; a=rsa-sha256; cv=none; b=liZRAlLB4l1bsytEuGvDePI/fHTWRrycTcIyZt6d3//mF/aytdwdNF2HFTmksgz2bnIPDY 5Q//KNuIZLoSZgYYbFQnQpgvhrPhjCc1nUVfFztXrKYs75SOPh825OKDgv1oF3xf83H7xv Piz8jRyV8ByEhi1KFhSu2p8dOdHGaqs= Received: by mail-pf1-f173.google.com with SMTP id n3so7908128pfq.10 for ; Mon, 19 Dec 2022 23:26:13 -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=Do3acUsDb4bseCZZAAdCXOeb3zH5cpjKCNiCZshpYgw=; b=Jbm+ZDETl/xq5MthImH8BHHm9GBXQRsQVT3uhHj94LaQ8kg9xI0a4zaGCVg+cefzXk D5EG8JXUc/rT2JguGIYDN8cOKuwJv0wmeQi/ty+upc1PhBOmLL1OAFiJmY4QIEr3FV+u vkQIFqHEDKKxAt6NsvFG4EgYacTY5Kj73Kwv2ZtPwUgZQ+kat+enQ+Byyx4iHWoBBgQq lEBuUXzYINS4qMKwlgv7tZLpRkvuEoM9LlnJJp3/9ckZy1AN0k3HxjzcvUXMV91kEWB2 h8WeyuZsX4oE7ylWWH1LyNtoUaYvUmkYlnxbVpO/i5rxyaGkS28mf01HC/XLRtY7UuUs ZTLQ== 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=Do3acUsDb4bseCZZAAdCXOeb3zH5cpjKCNiCZshpYgw=; b=gqEd4brfM4pmM8v+K9cwFbRLT3AJUIFushZ7/AujDmub7DZoSozydlJ2o0ELXtsTyq EMmUkdIvec0JrZI+Dp6/fgde8TTGPWy/EKs8D+Wjk08Gq3ijZ14O0LlUMLLIyvgfD9bl 0ZSp+ZasPc4AqDrVokstxi1G7+yIHgfETp4Secshaz/FJiFt2EpPOGwyA1lbh3xtWEvv gFPvAiZfzhrUSKNvnjpWbcsMxYpFBgGU7N0pbQWs7UyjYm6PPdXWwZSdlWEoVibTtTTL XHgGzFZAjV6mLn1nNui1NW8BRzOb9i0xq3gX44brDEmFRbm5f7j2dLFPkm38yFhzy6GE WKHQ== X-Gm-Message-State: ANoB5pmdInkL6znpdyzIBQHUgWWFnkCSo1i7MAB38IX4jojCMCizgFCc U1L4SxKbXms8xdyoLVKB1PM= X-Google-Smtp-Source: AA0mqf4sXbpc959lO3xaruJ/7JwWbqHNxobqwVmkT0oSHM0O93U4eYrT6K7YtNCEihfb5iqOzV5xyA== X-Received: by 2002:aa7:8190:0:b0:575:62f8:be3 with SMTP id g16-20020aa78190000000b0057562f80be3mr45051940pfi.23.1671521172728; Mon, 19 Dec 2022 23:26:12 -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.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 23:26:11 -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 08/14] mm/gup: Break COW PTE in follow_pfn_pte() Date: Tue, 20 Dec 2022 15:27:37 +0800 Message-Id: <20221220072743.3039060-9-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: 8bit X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: B58A080007 X-Stat-Signature: yao8n1xnb9iyzr78bqxxu5xqgpjgfha4 X-HE-Tag: 1671521173-978610 X-HE-Meta: U2FsdGVkX18oRy/CvZ9zkdePWlyhY1PjQ2HwH58ujdx2k9neSvlWaR26TRNdiQfOqO+ElGQtO9CY1Qewv9XZytE4UB9ZNRaxv8yxLbS4BuoGG6vYl6a3frQ/aangtcjbcbK95tlfwp+29b6vZpTQJNnqtpGqPU6PZ1JxcbIwiqVz54KAsifIKf5tsb28lMVWZO9s1jVKnqqBKtW+bEjFXlaxRCmYq9jN+Fm/g5wCieK9nOxOxOFnsurEP1J4Rfi8hq8semrPpk76Mws7ojL/3/Qr0vRYRZwf666EfEX9jgB94hyuWSRHalodAiFCQ5RDenQFxoZaGipAtdF1yXHEJaEPcTR8bsO3yrc7n6yUjMhR9OwIBnZhahIx6vI1KF18T4v3ZuSJCsr+Yp2WpIGyX9qaDGZrB6W1V+bPX5CwC75GSYR8eriydBe48sYBF3NdkTH53vrQuErEIHu2PLQWTtAr64YfuVse+8UCYiFUmSmYbUg9aYr68tIXSWtmddNU2SuKLGrAb0WeEbvVLxpzBmuftbyWg4gYqqefRZCGv+/O2H74eR7ONwJAxqsGVhVyu5u4U5evgpWO28U1IW2g//b+0flQP5pRTdWyL2D83l4hrom5EBCw84x4azL2uUEP0tU0UwRe0OddXah4HheB+ismm4NkaF++aZ1s4IN/Fj+ETzVuecwAPzPJPs9Cmty0T8Fh8kdidVrLGkkEYUMl9DmdJK2pe27S2G+9vAjUiacfYaeIdq+ofZDVD0seM/ZuLU3ITQ04WvdhlTHmrrMfBh/9pY9cJ2N/RiuaSIXDOAKEePnG5ne+yfKX6qX1bz9q3lzDzzyOjZ75BfdIpxYtiErYRgrGYoZQ4WgwTRdmvtf1T/4rPQ9zIV4MnqlJ7Qm/6mlSk4Iz/+t8KVhSkPUDzzwme1sFCaQRCrEfY1VbX4NyIdMhrRhZJIvRxC9ahA8q39TBY4uhBF0TmgbLDGG UXl0JBp2 rDPBDTuuq2z90yxsCfTa0rT4qSfsa2fosmQuh4nWzFDurW//oByDfqf99EiKu4yvbOl5TphJdPspKFeSyS2+3m8ncAioMGm6WVxxNQRsHXZ4HN3f6HocqGxaRmqmLn77Y8lqWmqF3xwspkJTSOeCcemY7QrbDHLzdT/dGh5mRK3lddpJ7hly4YrXsCEBGw/yGIgAqVE5LVaIE8JOhTEP98Ep0QSwsYpfM+INCIlrLrel96QA5Ds4hYPNxxM8ZFNgdvqXe0sG4j6Xfwl/nl7xowAC/BA== 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: In most of cases, GUP will not modify the page table, excluding follow_pfn_pte(). To deal with COW PTE, break COW PTE in follow_pfn_pte(). Signed-off-by: Chih-En Lin --- mm/gup.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mm/gup.c b/mm/gup.c index fe195d47de74a..cd72010ba0e6d 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -476,6 +476,8 @@ static int follow_pfn_pte(struct vm_area_struct *vma, unsigned long address, entry = pte_mkyoung(entry); if (!pte_same(*pte, entry)) { + if (break_cow_pte(vma, NULL, address) < 0) + return -ENOMEM; set_pte_at(vma->vm_mm, address, pte, entry); update_mmu_cache(vma, address, pte); } -- 2.37.3