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 811A1C4332F for ; Tue, 20 Dec 2022 07:25:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DC25D8E0003; Tue, 20 Dec 2022 02:25:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D721D8E0001; Tue, 20 Dec 2022 02:25:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC43C8E0003; Tue, 20 Dec 2022 02:25:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AA6B98E0001 for ; Tue, 20 Dec 2022 02:25:58 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 84A52160761 for ; Tue, 20 Dec 2022 07:25:58 +0000 (UTC) X-FDA: 80261850396.23.DF88916 Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by imf14.hostedemail.com (Postfix) with ESMTP id DCCD210000D for ; Tue, 20 Dec 2022 07:25:56 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=bZlL202+; spf=pass (imf14.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.215.170 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=1671521156; a=rsa-sha256; cv=none; b=KSAQNXEl+Ok/YKppa4Y74mMoLmOVS4IVcEQXWSceAA2pDJv1VcBZjT381gbji1iFhSJWWn vPfB7avOXF5Pdm24NKV2l8Ohf3Vo4/9m0xLEU83kn4t6QAMdITSfbyK1Tbv6f6cYirNfen vD1DcS/Y9Apg9L+EukeXIHFZZqlOq1w= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=bZlL202+; spf=pass (imf14.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.215.170 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=1671521156; 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=XyF9JuxS6b1bMIxmIDmo5YIppyUDgtVjeA/J5ZBy/Sg=; b=k93Zhjb+BCzs/OFYv1PGx2fbNHNdFWwSUBmTHFSuYGxH0c7aOiqyhdvWjvD/xqWUcVipTM 4vAuY/1+ILLFL4c97ihz0GAUNkFrW/LbuB1DTFnY/AfVLLIlmLHi1VQBYx4oX8zXXr+Yd0 XGST+6HN/l484GI9tpQ0T8cdr4bnUuI= Received: by mail-pg1-f170.google.com with SMTP id v3so7786786pgh.4 for ; Mon, 19 Dec 2022 23:25:56 -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=XyF9JuxS6b1bMIxmIDmo5YIppyUDgtVjeA/J5ZBy/Sg=; b=bZlL202+3g/lBUVxaTio6INJ4AnCFIK4K1tm95ryvusKHLN4qgv8Xdg9fQcsvNbRgY HuZ3lt2jYcmxhGdFgyZxc5l7Rqj/TwgybpEfpzllnB3CohJAJsellYQL5vo3f924l65W A7zJKiwVcGRuKChNh49XsLYRRty/AZrL4S8mxYRVyK6u1kHnTOdMkohZkYsHZzbi/RqH PMjn3PNK/k/rhQCAVgVR1xUvQizCi83l55O3/YvA0tfLQuotemf78cIKorMHrcrJEFgj hwGPkM0YbCUspKAISFNqg2mZCsXi1CY6Ia82TlREDiqt/JcEwXq353qv9J09cDq3UAfh wzUA== 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=XyF9JuxS6b1bMIxmIDmo5YIppyUDgtVjeA/J5ZBy/Sg=; b=yKW+a2wi7yK5iKZmixU1WyL5WJfw8y7vjwwuzd6YHyLIOFJ18GTQDRXV4/VoTrKJdA noxbqXiPxc/nNVKQ8Jk7lCNJ8m0htmzBuKzhL0CEr6ApxxvfE90yXM7uiqnmsXmW9n7n HWM59quQnpbEiB28F0dIC2yaIqI4DXsvoryUN1zM7IhtTywGh/y2RFUOHkjV1NJACWQl Logu0Zff618TWWkxqDCYxh5kaFELVoolfSCiHUjnAJrHmSsopFax3XcQw2WJB8Ffhtvm bqKyz9yHAncy1rzxTWufBbbmNOr6pJctuEICLocTTFvuL1BYG9MCIMHp+jCrV1GghSlS H2Iw== X-Gm-Message-State: ANoB5pnLhw0fN8MRxBTN64ihZI1EUhbdccg8nI0Ok8opNxGWK7P4+M7S EDKAXexGahoUyKWvy5BMdtU= X-Google-Smtp-Source: AA0mqf5HNABnkdJTVab5ykwjMWNSwkewL4JhDHIv8ftE7XKfaXPk26d71RZVeX1DPtdPy2jxjzxsXw== X-Received: by 2002:aa7:82d7:0:b0:575:a4f5:7812 with SMTP id f23-20020aa782d7000000b00575a4f57812mr45041888pfn.4.1671521155748; Mon, 19 Dec 2022 23:25:55 -0800 (PST) Received: from archlinux.localdomain ([140.121.198.213]) by smtp.googlemail.com with ESMTPSA id q15-20020aa7982f000000b00576f9773c80sm7865544pfl.206.2022.12.19.23.25.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Dec 2022 23:25:54 -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 06/14] mm/ksm: Break COW PTE before modify shared PTE Date: Tue, 20 Dec 2022 15:27:35 +0800 Message-Id: <20221220072743.3039060-7-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-Queue-Id: DCCD210000D X-Rspamd-Server: rspam01 X-Stat-Signature: twk6ojjz674r7xs39wf36eufmks6r7ce X-HE-Tag: 1671521156-170123 X-HE-Meta: U2FsdGVkX1/n/vn+qMYuHeTkN5rlPuCT4GnRPeygW0dveW0BkXvpO18M3G1CcjfaQab0wihtJJ9kCAUEN7gwHL8ZDrSbVJp40AYymUTcW8ebiVkb1Li5vx3pPAycG5VSWnR9/pl3oJLrsN14BcYVziC5heYmXwZNAUiEd/B5J8qkPFSeQg+2GebcjT1AQycIrOFBOIt4FmEBivxuL+bI6c3/8WlrC37llKtBGowAL0ASnlfy1V6BZEPUFNXFY2NHc2C/9VE6d4yJwT+WKAPTVkK+9FwkiP3jNgMgaf+eUCqGYmchWlhNEYHH6UFpvsMknmxckyfaaaRMGD5+B/zheJLTpBC8GARjL7s9iCZIiLVvkj+1C41EWxyLqTImsTlpR2+JLfMRgS1UQS3uYMwDNw+p3vKSZXXidBM4Ch45EjB7gIOjWaHHFVziuUMSCuao6FRcQXymumogqk7/K69zWNbzb/i71A69W3XW4QaE4ibvwBq7NdrmVZAYZEgn22p+t6TSgHkedL1kIBiHqGrCE80XpMVYpZNa7o3IaPUt1T2kxk3IDsxEiJ7XO2GulnQOgGawpS0Nd9nfwmh84Kpqjh6qy2o5QqIKy6OcUt14GuY3n2/MJxVMyGF3fE99SVJXiHSn8upfs153V8apMwWxi0Igs5wCJ1YqxnphU400h3CvpqyFn+77G/cBn0Zwc1hFS317asoRoG79sk/TQlKq5UAJclDHptFs0/LjrfKAnnRfaxWoRQK8LH83ONOPyYOfjMxsa0TlkQvmET6yqvo+W9MRO41ZVam4+cbT1i97YLD7sMIZ4/vw/zXZeTCcL0M3MyTBAIy3PFkilx+UOTHTG6DWRMJN9/RzwV2h4YOu2jbFdxz/6dg+JztjBdEnZLts5sF9cNawCqA92v4V7e9l9eD8mdoe9Ltjr4aAazSIC7Oy1V+7GcMPVNFoTaZvmrK0LGLL6qLgRUc5jn9Dhuf 2N2ujxfM ELEIL363S/IcKjeU8xbiFH/pArlUdFPSFkqhZSohaw46svJMZLr6snrk8usoVTXXfb+omT3WIlnuxSnR5n24ZihhiVWnPGo+vUCCrSYZLsPNK3bEui4Q8i23WHV4hT0mNH2RI0sPDPV0I5eE9Ixc3f+qqRd0K+la9X8AA4d5I5eHRK8mWMbAXBvSbrqc+AnQKjnsdn4+MYqgtXLHpYRl2Sy70pNam38MpRcNOwTe4SYZATBE= 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: Break COW PTE before merge the page that reside in COW-ed PTE. Signed-off-by: Chih-En Lin --- mm/ksm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/ksm.c b/mm/ksm.c index c19fcca9bc03d..896a14c44a858 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -1017,7 +1017,7 @@ static int write_protect_page(struct vm_area_struct *vma, struct page *page, pte_t *orig_pte) { struct mm_struct *mm = vma->vm_mm; - DEFINE_PAGE_VMA_WALK(pvmw, page, vma, 0, 0); + DEFINE_PAGE_VMA_WALK(pvmw, page, vma, 0, PVMW_BREAK_COW_PTE); int swapped; int err = -EFAULT; struct mmu_notifier_range range; @@ -1136,6 +1136,8 @@ static int replace_page(struct vm_area_struct *vma, struct page *page, barrier(); if (!pmd_present(pmde) || pmd_trans_huge(pmde)) goto out; + if (break_cow_pte(vma, pmd, addr) < 0) + goto out; mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma, mm, addr, addr + PAGE_SIZE); -- 2.37.3