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 E0544C636CC for ; Tue, 7 Feb 2023 03:53:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 80D736B0071; Mon, 6 Feb 2023 22:53:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 796FB6B0073; Mon, 6 Feb 2023 22:53:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E9DB6B007D; Mon, 6 Feb 2023 22:53:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 45AFE6B0071 for ; Mon, 6 Feb 2023 22:53:52 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 158A140A8E for ; Tue, 7 Feb 2023 03:53:52 +0000 (UTC) X-FDA: 80439127104.07.7C573C3 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf02.hostedemail.com (Postfix) with ESMTP id 2DEF080006 for ; Tue, 7 Feb 2023 03:53:49 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=bmOC7XUP; spf=pass (imf02.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.214.181 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=1675742030; 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=P2hiqzbHJQraqi9uwlHzBIrzOyDxCP/J3GJiV5ChdNY=; b=25tSdKz1ZdM1O9d4BkZe5mlc76CgAspkFxF8ivoDn4lNXG/LWxRhtu8cvN20ffryfvhn1k i+6OQ8IHlRvDzM8/EgAUxAPXvGXpiEmQUfozCwBrHjE4+U26pMRsaUiGInNgTcHITjAZYB /KVhX4IHGVXmH0eIleMLG0g8ewsNwvs= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=bmOC7XUP; spf=pass (imf02.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.214.181 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=1675742030; a=rsa-sha256; cv=none; b=ieXQMRRIwPqtcbI1T/FWmlB5LE/3hpo2uaOlpORWfDmGgDagbyLQ+BUFXoCsnl1YHsqjwY pCjgIQ/NDdRqDwhg00WZMBuQjADbKoDfq/V53HAUIJWq0JNIwZI2Kr1zMVA+y4pU5ee35r m65Tf51iooU0f4BEaLgC8qdOiy4ymDs= Received: by mail-pl1-f181.google.com with SMTP id z1so14354795plg.6 for ; Mon, 06 Feb 2023 19:53:49 -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=P2hiqzbHJQraqi9uwlHzBIrzOyDxCP/J3GJiV5ChdNY=; b=bmOC7XUPYoB8TNQF7f0wYym0XRU34TbLiGrQ4u3lU2iawbK3M9Yxa2YG5f2unStsBz Gl7fnqxofqZfItKUqy/uxWj4gKzfqEHOiZpN3jsLN+pXOzyJRlfM6RG1F5aqeUQD56rm PfpHbRAv5wRzLb7GbK7Dtvb20vGmVB8yYws60BRLU39ZhuDrjQjtjXkww0bx9kbB+KiN QLE80k9KYlUBvl3ALbdcdlXaSO/lIoktoU+FuFkbrp/+L0s0YiAKRSdpxRqHHhIKiXS/ w+LEABWKYLafPT81g2ZVH6IIUA2YjdTap9V5QJ406//JaGKHHilBqrDZ0tSmNSWU2W/P LSbg== 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=P2hiqzbHJQraqi9uwlHzBIrzOyDxCP/J3GJiV5ChdNY=; b=DNFm3hYCONIoYmMQRl4Qz2p9ZyYQgJemelja5Akoo6OUNtodCqhgssOW1eSBytKE7l IQnLYniLGN5j832HKserwMmLvqGGRsyP9xy+omC461yEaeuDX7Qq/HanN+pkdbalvLdI mvFxAfuO2Lktfqiuy+VwSjuD4QLaxeukTcqvNYzgRh9F2GcyCtQx/HS9ywIBVBsoYVu0 /StlLFoiNnTe1wYYAKGPQVec3drNSe96X4bvZQTV3VTmhxxmtmWUWslLEfhaFvD00D8D a7sYGY9UszGAlv5dqFn25MHbTk2xJiCgjD2rhFaqB8cNGuNiB/XVPuB+Au6CrhyEpQZO lwDw== X-Gm-Message-State: AO0yUKUM8nTQFXuuYEIPYXKbUkXmX1sw42uVSv3QXOOdWpwX6UVe4rkg sdBWfCCdF3RiWC5kOWpnCMk= X-Google-Smtp-Source: AK7set9XER72kqQ2uHZQ9Dv9OhzTxcotdKJFhFXMKaajUQO56abILAuY/kvBJuFI6YmYXpde35qWlw== X-Received: by 2002:a17:902:f691:b0:199:2f45:14fd with SMTP id l17-20020a170902f69100b001992f4514fdmr1033089plg.31.1675742029047; Mon, 06 Feb 2023 19:53:49 -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.53.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 19:53:48 -0800 (PST) From: Chih-En Lin To: Andrew Morton , Qi Zheng , David Hildenbrand , "Matthew Wilcox (Oracle)" , Christophe Leroy , John Hubbard , Nadav Amit , Barry Song Cc: Steven Rostedt , Masami Hiramatsu , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Yang Shi , Peter Xu , Vlastimil Babka , "Zach O'Keefe" , Yun Zhou , Hugh Dickins , Suren Baghdasaryan , Pasha Tatashin , Yu Zhao , Juergen Gross , Tong Tiangen , Liu Shixin , Anshuman Khandual , Li kunyu , Minchan Kim , Miaohe Lin , Gautam Menghani , Catalin Marinas , Mark Brown , Will Deacon , Vincenzo Frascino , Thomas Gleixner , "Eric W. Biederman" , Andy Lutomirski , Sebastian Andrzej Siewior , "Liam R. Howlett" , Fenghua Yu , Andrei Vagin , Barret Rhoden , Michal Hocko , "Jason A. Donenfeld" , Alexey Gladkov , 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 , Chih-En Lin Subject: [PATCH v4 06/14] mm/ksm: Break COW PTE before modify shared PTE Date: Tue, 7 Feb 2023 11:51:31 +0800 Message-Id: <20230207035139.272707-7-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-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 2DEF080006 X-Rspam-User: X-Stat-Signature: h8iwoommfppiiqdweytgpewmowqnkcrc X-HE-Tag: 1675742029-777274 X-HE-Meta: U2FsdGVkX1/0PEuCsWddkBC2shpNOD9u/xoKOaPrPZzjMpGO2HdqmiVhTd9dL0/7ll2XWglBjkAuByRKVKSQdgPqrmyLIxjiwmo5zjIFDF+l7G03rXwkbnHgTfWOHXV1T/NwzFmyjG3Lmac18Jccc1i1vxwQJAzDaT3zib0fjdndkfomawSB0x7WgRCT0nJKqpDe0EuB1F44h096Phjj3cTsadiPeR7Rm+cfwJ/0KtAYc1VW8kQJrIwLc9rpl4p0VoZ8osNoHK5aB4mbNYzk7+nkH9uvYJrMK0che5fFrRIDtKoMY5tJowXbFAgdGoX5hq4d7GrBfrilYrkTU0Tdl0Fy9IOwTuaumX2C/FzflZzZ4GDiuQb5pfk0yKKfTINgImv250XSIhUD2mHRaSoUE7ZhwlnZb5rm5bFzPawgX2JD5lDZ/sAg2ACR3QEHJn1c2BMDLEZhq0uzdQhcrIWJP9k8wB9ScqY8hvWhQoP40mVXzWhZiz79NGzHdr7+euXIiP8gm1iQlcPoQRjLaQYWF9JIqLASpbQp/SrDIvYh1rySqrCybjiO8HTHqc4Ioj0tFydR3ZtDQcuV+KbUjGhPLRwhLLcBPQncRtQT1KdFfqy9+dHxCgbsomM27/2KrN481oBD0XUc8PGexQDcFzkyqXpST7kDpar9HsUfWWi+2eXinrAF/lvh68hnLXyAyo3usXjNkrdvbeL0vzZrKS6RU4xeXxASN2CyK3Sg8I5AW/1eNEypwGobS21D/nDpME0F3r2AyGyLRH3YdEyBTDV5p1FTgNpEheLfnLKc3OcIoUfydYgK+CNhTnLU60eH/nKhfRQaeaD7ZbUUd8SR15glidFcMsR8wBRnAfhAphOGcjETggdll036biM5p4CFXS2Q2NW+XBiCNitp90G3RX/yu6udZN8c8Pcq+hSub26QaCHpFLA6otbYTVyAsfIonMmQt2kqu9GqUHJbNYqkxN3 x51kVGWz wxEJkJ/X2XVLxAhAVgtmJGydNrwutaJ2PaEeOUH02orCpe2X/gHGb/+3gJgBZdUY14KozUcgLvQQGPYlBMue6qLDYT3WJGyE3cZLkXc2TfVEFF7zbfyva6Swxug/hQtc/KK3ZwVO+U7UzOsWb+XA0v2SgVQGYk76Ct78esUGUNchiLrPGNd0rzN5Qv3KGQtpY+Uj0BSbHuvj/CYWd5iI6Hq/FJbu+qUnu9J3cbkPkyOUCbPq1WJ095+FIGmgIGo1zKuhDWPXzll2UXAPgsj4umPA1+rUgzlF4AgP+Dvl4k4jkV+jjjp8t+a7MAJDjfSW9qncuap8sAF2aFi0Rb+MLNYz4Q0yY/I34fwRYDRn8Xn0th6+3DHjNPQH11Nz6lvdf8Z+wj5lu6Cv4B2JGzMmvmGipOBvbATHNLjv4gQ7h33m6P6GU0oJtVVRTeAG/cIjR9eg0HHcUulj+QFg3O34PWnKZzu/FFcH4Dxqsv6nJID86UPZyiJQA0K2rCJzVMkhIIkzmP0qo0UQy0QA8jN9sMg5lkBGm1CODb+I7uDItfdYUWhHya0+NozVs8w== 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 dd02780c387f..ce3887d3b04c 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -1045,7 +1045,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; @@ -1163,6 +1163,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)) + goto out; mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma, mm, addr, addr + PAGE_SIZE); -- 2.34.1