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 88E44C636D4 for ; Mon, 13 Feb 2023 20:39:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE9146B0072; Mon, 13 Feb 2023 15:39:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C98966B0074; Mon, 13 Feb 2023 15:39:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B60C9280001; Mon, 13 Feb 2023 15:39:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A435B6B0072 for ; Mon, 13 Feb 2023 15:39:10 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 77BF3C0704 for ; Mon, 13 Feb 2023 20:39:10 +0000 (UTC) X-FDA: 80463433260.16.FEF51C1 Received: from mail-yb1-f174.google.com (mail-yb1-f174.google.com [209.85.219.174]) by imf26.hostedemail.com (Postfix) with ESMTP id BAB92140053 for ; Mon, 13 Feb 2023 20:39:08 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=GZerrGPz; spf=pass (imf26.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.219.174 as permitted sender) smtp.mailfrom=vishal.moola@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=1676320748; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=A4qT7huLWH3xBc9w2Lw0FZ7sN5ty5lO9E/+HZ4g6C48=; b=EUryd9BNi+l1tfmkaEj8yM7oqivx7wAvB/TR1Rzn2qz3VO7HlgUw7XZkRMdiOsGy7Pzr/0 34ggOFPqydp87WLG6XJlr+L1urjMor2h17UBonXtssydUUil0Ly3wvCQfSXLJLpRl4AsPO DtpfUY9hkS1HfvQ8Edn11XKdjKXGHs4= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=GZerrGPz; spf=pass (imf26.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.219.174 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676320748; a=rsa-sha256; cv=none; b=Ng374j+bwABdF/5hQYGt8Nhv7laarIFgPymCWfjKpuLLzDPJ4mTSBGPBTna91yhLFvgB4E l1kdtt9uo/AycxMmdXCFCxLO8gFR92Gp4Qv6BD5QXTJ3XjFsknzbJ9x6Penj0k/Ym5urCn m9eqR5Gw/rgBDfkzEuOsp5IWX2vgeaY= Received: by mail-yb1-f174.google.com with SMTP id x4so15885340ybp.1 for ; Mon, 13 Feb 2023 12:39:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=A4qT7huLWH3xBc9w2Lw0FZ7sN5ty5lO9E/+HZ4g6C48=; b=GZerrGPz9L5aS4y4DzeGl4KhI3k/zt1Goa2EkKqjrIPms5dn8Zlhs0PNZsTlDs80gp mXaBpXC3b8LBWQWH727JmeIk3fQXpOlx7xWHQ7tglWzjW8OjyixRN/ctLscj7juKOl7F Ty2xuVImuJh2xkyfRzgJ+bFKkcgh1KRbQTqdRwaNKvsJKAZi6mqlArAu5DNaEqCFqkDJ X2LjaHAAvk64rNzDv3I0zkg/EmV2G3QTRT7C/Y0Bt0IMKanqBy3izPr54IXOsVvtMJaZ CQZtBWKICEvUrOCOjs0RjEjd/+h+zh/BIPTqu+qv2Iu1Y6prB45Lv4a2NV3bHPb8hOFv 3bBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=A4qT7huLWH3xBc9w2Lw0FZ7sN5ty5lO9E/+HZ4g6C48=; b=BwrOQhb+TZBcbkLzMO0a5zIeb/ZRU0NL3zU4oJ3atswnWk6bmLSxdlqlEN2HyjgPvt rlUscJaE5MOP+SejBJE1/SePybnc6/QvYMwb+hDXQCroO4SnlRO0TACjVIrVrh1fN77h 652qTJv89zBbVi9jcA/+QzBsE8/kLNn92uULplV9I/ErB6WLokhivCVx7T/pX4jgO9YX Op6TPBplzVFOTWcvxLBPQTHQvYgaG0Qka51u5IlvWVbn9EERj6DXBiE5e2DfTr7YUkkS Y0+IpNU7Rw+4awdP7cajlwO0BwGY/tpymPr1SP4kVE81xycmp07dP4LsP7k3/r4QELaE TYGQ== X-Gm-Message-State: AO0yUKU96Zxpzha36GE8SCtEWvFABMdV1vg6HpAYp2YUa7QwQ3RvBxTr YjJKyURmKJZOoskAgvATPHYhSpgH5a+jhi+RHog= X-Google-Smtp-Source: AK7set+HiF3QrlhAhYWDAHEXRfOGMJmUeHtnsUfqtGMNqqqrUZFtAiYCSZ7EfkUpoMkTpCHD5MmfJculEimHJ8iSQfg= X-Received: by 2002:a25:e907:0:b0:80b:b818:e841 with SMTP id n7-20020a25e907000000b0080bb818e841mr26357ybd.94.1676320747833; Mon, 13 Feb 2023 12:39:07 -0800 (PST) MIME-Version: 1.0 References: <20230114001556.43795-1-vishal.moola@gmail.com> <20230114001556.43795-2-vishal.moola@gmail.com> <3a3457b1-60bc-a97b-0042-432790d3bbbe@ghiti.fr> <707cd2b6-4350-4171-1e0c-f63ea5db7ece@ghiti.fr> In-Reply-To: <707cd2b6-4350-4171-1e0c-f63ea5db7ece@ghiti.fr> From: Vishal Moola Date: Mon, 13 Feb 2023 12:38:56 -0800 Message-ID: Subject: Re: [PATCH 2/2] mm/khugepaged: Convert release_pte_pages() to use folios To: Alexandre Ghiti Cc: Matthew Wilcox , Marek Szyprowski , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Mike Kravetz Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: ga3ihh651xbadse3x9bmos3kqwpk7i5u X-Rspam-User: X-Rspamd-Queue-Id: BAB92140053 X-Rspamd-Server: rspam06 X-HE-Tag: 1676320748-967500 X-HE-Meta: U2FsdGVkX18+E4BYQSUqlRnp06E4Z0EIy8Z8YxpjvNZq6uI32pVDrTczO6VqwcPiZ3AGJhdtVWWA8DPNIoUE2TDvglelrqfXPeX4hJmsEAyELxbquULMx+xlmqeOv/uPgoYW+dB51HBOyo5RSrAePyJ0SR/NiBRqyyVMYYE1fNXR6t25bVhWTaQv4/er9iY6k7e8rTKVbsyWILvbV0Y0MZbOFXArabHEA/2ddsnbFwJXXf/RSWYlQdK5Dmyt5JkcZptfU7onARQLZ0arO/aFxZRmwDHOriIGEX16q2BO5pBEKZKf43QpmSo3b1Xq6iSzRLd3jWa1UJF8ERE2ZsXR/kA3rx5CGOW5l1c0EL1CN1kWuJ3CzeTArfi2JB1vZRPHMUEAnGCkl+wPOrRA/CHRDsQ6w0w6ZF+fdJ4gXLvQyvNT9iylrxCZbjUg7J7R+Q0HYe3LWSEu9WTKfpimr1uFdbyahIXxNXFmU6+9B87xvVug6uMs8oJ96ACYEiCkps4qUPVsxl0bMM5XkXySvR+mSwD+Spg1Qvv4xa5+K+8PZXi5zHepKPYEJLQSzqt/4S3GHxBTRZJimq8Ct9ETqgYWEbnyo6OpJn5qghhoat9JLqVBy0Y6eYZedwBBm54VkccZmxuDEJvELzMHHpKRXeI8rprEUz8213voEl4iCxYcNShZ2RwT+198Q1OGJ+EXFi4Tx9xBTGl/rfcAkcSS+BtoRMrvq6UuY+NZVQ0FrBz+UAO7qPNuVSeQh4FzlEk4slhQgyE+AW3L8wZ3GmF6GesO4HpeQWSv8bfCZLEKCKEeJ2qwBlcZ+NEQcgCxAhQEU5v6b2WdkTY1F5DxqrDeWQ12jJjY1d55Sl8Ym+D57zfk0J1t2Ru+/ay+Bxdsk+cAn+1W7f4K7ZKXf1F9adqjNg/sZoqHu4TaxrEOxBwZEu6q1NkB6af2BEO/6w5fyuJUDhHd7XN7gAU+OcJuYfdhGru dDSk9RBw DeB+Q+6P2lkq2NnvcLtpK7GoVKy7ihGHLxZgrTSz+FWP8Lul23KTrW14AjF1fLm3r8wtc+KLOiM/UTNHVLOJrOuLfefB66M877A5uzaubBWT/e2wacHLtCwc7yBPOuvjbYzbA19UstD1D5N2EVvZQ0uI+E+w2kY0BYTDtPvHzqP7adetA0R1lVx7niPX9hxwRp2MbJ6GBXD+bAzYetkFPentkwsGqSbMSGfdirGoD/Gcoze1ZMjEDlOJyVtQWL8IteJ84hXMPO7rzJIv3m5YTB12gmfzvK0EuKDs3V9/t0IuxJ4189kFDjJ4fBYKOIDhxYUOeCFX+OUbsEwD9uCso/3jVLYbVPe8oxRDnkpk9lKOfRr8l1r6NmwVoNDGn8ZCROIHtljtmv9OMpNdk5QrOMoMzTgg9ZVQx2jozkXsXusYpF4krZ2+iMU1HI3OFRkXI344/ 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: On Mon, Feb 13, 2023 at 7:55 AM Alexandre Ghiti wrote: > > Hi Matthew, > > On 2/13/23 16:50, Matthew Wilcox wrote: > > On Mon, Feb 13, 2023 at 04:28:05PM +0100, Alexandre Ghiti wrote: > >> The issue lies here: before using pteval in pfn_folio(), we should test it. > >> The following patch fixes the issue for me: > > Thanks for debugging it. I'd rather see this written as ... > > > > pte_t pteval = *_pte; > > + unsigned long pfn; > > > > + if (pte_none(pteval)) > > + continue; > > + pfn = pte_pfn(pteval); > > + if (is_zero_pfn(pfn)) > > + continue; > > + folio = pfn_folio(pfn); > > + if (folio_test_large(folio)) > > + continue; > > release_pte_folio(folio); > > > > makes sense? > > > Sure, that's fine by me, I can send that or I'll add my tested-by on > what you send, whatever suits you. Thanks for debugging this! I'll send a fix patch using Matthew's approach later today. > Alex > > > > > >> diff --git a/mm/khugepaged.c b/mm/khugepaged.c > >> index eb38bd1b1b2f..fef3414b481b 100644 > >> --- a/mm/khugepaged.c > >> +++ b/mm/khugepaged.c > >> @@ -514,10 +514,12 @@ static void release_pte_pages(pte_t *pte, pte_t *_pte, > >> while (--_pte >= pte) { > >> pte_t pteval = *_pte; > >> > >> - folio = pfn_folio(pte_pfn(pteval)); > >> - if (!pte_none(pteval) && !is_zero_pfn(pte_pfn(pteval)) && > >> - !folio_test_large(folio)) > >> - release_pte_folio(folio); > >> + if (!pte_none(pteval) && !is_zero_pfn(pte_pfn(pteval))) { > >> + folio = pfn_folio(pte_pfn(pteval)); > >> + > >> + if (!folio_test_large(folio)) > >> + release_pte_folio(folio); > >> + } > >> } > >> > >> list_for_each_entry_safe(folio, tmp, compound_pagelist, lru) { > >> > >> > >> @Marek: could you give it a try? > >> > >> I can send a separate patch if needed, let me know. > >> > >> Thanks, > >> > >> Alex > >> > >> > >>>> if (!pte_none(pteval) && !is_zero_pfn(pte_pfn(pteval)) && > >>>> - !PageCompound(page)) > >>>> - release_pte_page(page); > >>>> + !folio_test_large(folio)) > >>>> + release_pte_folio(folio); > >>>> } > >>>> - list_for_each_entry_safe(page, tmp, compound_pagelist, lru) { > >>>> - list_del(&page->lru); > >>>> - release_pte_page(page); > >>>> + list_for_each_entry_safe(folio, tmp, compound_pagelist, lru) { > >>>> + list_del(&folio->lru); > >>>> + release_pte_folio(folio); > >>>> } > >>>> } > >>> Best regards