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 ECC48C6FD1F for ; Wed, 22 Mar 2023 08:59:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6B1BB6B0075; Wed, 22 Mar 2023 04:59:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 63A666B0078; Wed, 22 Mar 2023 04:59:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4DDB06B007B; Wed, 22 Mar 2023 04:59:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 389966B0075 for ; Wed, 22 Mar 2023 04:59:15 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 0A7AE1403BC for ; Wed, 22 Mar 2023 08:59:15 +0000 (UTC) X-FDA: 80595935070.12.BCA3957 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf14.hostedemail.com (Postfix) with ESMTP id DCD1E100005 for ; Wed, 22 Mar 2023 08:59:12 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=none; spf=pass (imf14.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679475553; a=rsa-sha256; cv=none; b=GHQlTlrZ+mIvh6Rjpq4n1EL8DLPITGRdF6Py5v74J8ggVZ/5v+txX2BMOgUugWNvrhpe3s Ek9o2h2vV8HvbDhNnN3ZlQDY4zVtWVEL4iaZdaU9tf3Cc4Afh5zmuw3KuoLouzhUe3LBq+ 9erEWS/WFKiwueJhtGcEwpYp4V02yFo= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=none; spf=pass (imf14.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679475553; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VK7D5zvRe3oKg6cZCBJdJTnb78XMoaJf35Qplg98OxM=; b=y6g5yqnfJgOEDzPDoj9eVh9q/Bphh+jcwOSYbmcAMWbiTXZJPeISZ1NuWW+Q4telxs5hST G1AzyspYj+YQ/wXi4Qz9htAmEKZ7ZVGHhLc2jVXH7af25+HNpQjLB0WYRxZKpu+CHfZiUx SLu8KMJg+P42g9nSxadv0IAgH3po8hY= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D02B64B3; Wed, 22 Mar 2023 01:59:55 -0700 (PDT) Received: from [10.57.65.162] (unknown [10.57.65.162]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id F2D8F3F6C4; Wed, 22 Mar 2023 01:59:10 -0700 (PDT) Message-ID: Date: Wed, 22 Mar 2023 08:59:07 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [RFC PATCH 6/6] WORKAROUND: Don't split large folios on madvise Content-Language: en-US To: Yin Fengwei , Andrew Morton , "Matthew Wilcox (Oracle)" , Yu Zhao Cc: linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org References: <20230317105802.2634004-1-ryan.roberts@arm.com> <20230317105802.2634004-7-ryan.roberts@arm.com> <2fd42826-9399-46a9-6d21-7e8b011fca18@intel.com> From: Ryan Roberts In-Reply-To: <2fd42826-9399-46a9-6d21-7e8b011fca18@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: DCD1E100005 X-Rspamd-Server: rspam01 X-Stat-Signature: hzsnacruuxtihoubu6cppc9bcih4tzet X-HE-Tag: 1679475552-445466 X-HE-Meta: U2FsdGVkX19XfFbYCzt82/aadfT7NeOkY5Mrt/yk2Xv1wOBkx8ie0U+aeWOz5kZKt8zAPzhN6DWYZn4JS5qW7R9m/FmWYw+VbMDIEi1Ll8EEl2G2HpP+gsKNF6YtR5WhXgB1EEboDAnEh8kFpzmGHQkzpCeCnhxnMTe7yLDAC7LoHr8WyIDuC0hKIJfTf66oM/SPjAfUSfIuf4pmXZr3qbV7tMmVG4+lyr0ke1qAyupdYFzm1m2qFhpa7R+PtpCIfQma2x+xUVsaSnEJDxyW/C8AOgrz8LwQ8mOlmVtbZE2e80YsqamKiGJSnrN4vOyk0DjtBLwElCbAI+jymjC8gxCtoOJrYCHinWg6MGbHJgjNHV54cM3B8eVjmzBu8jw8ezlCbl7IDFsB1yDTbUXggMzSBzoVsiXkcMaX5JtDqQ5an+F2tMmnitkHAW1M97cfEps444/PB1JAscrVWk+e3fuH768cg9T6m0fycBSAJZv4vQ/IQVUSt+3OrAa8OuVDOeOc4FUoLQ1n5aIfh9gpMlzngW1gPBFiSLjmmuVuiXF/9Do0wcneAg5ZmugGFTKF0vD0y/M1WVRrY4504rfsVSW89SwEbM1iXsWTHaykpvazqHuz4676ys5QsPufG8sd2dyXHsYRcR7muDgFxO+Rinmg/L3J+CZMMzCG1WbCBC3EQpv5JdXCEOCW06bDHigGywNG9HBFIY3x3Q5qz+lYFRuwEbM+cYyl6VgzOuUSjgdM0fAusCXVol/hItRpQNQGQ57jtRMyGDvr0NVGEdt28CX0OYz9vvTng1+KAJsG8y83+r5S8P1r2qYBqO8FqA5o4D7g4KnT5RkCIbZsa4lGnjZ+Am75oq+RANbTm+wySJhVYcaFyWafBZ9oqhTXf9H1Gu9nNzwjxlj3uUyiPOP1hnlHT+6JsWzN51ZPs/B+qBppJecM+EV4Ogm8yRNdSxR8Ax6vRL4ov4eQu+MYhOr GZQHEJtX A40iUYblbcPzZbmMX/qayWsFxz7En4EIHEP0aaGIMmLlUzb8qkK6Ri5rBgQCxDVBSMSewPEnNhv79rrozRQ+gWGASChTvA35hNirxyAlKq6xovgujaibyeM9/fyyD8KVAfAvn/u4WK6v3EOyG5UGYe0xEJsxc/Yq8Via8DBJfJDlDhVVcKocaK+QbGw== 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 22/03/2023 08:19, Yin Fengwei wrote: > On 3/17/23 18:58, Ryan Roberts wrote: >> Signed-off-by: Ryan Roberts >> --- >>   mm/madvise.c | 8 ++++++++ >>   1 file changed, 8 insertions(+) >> >> diff --git a/mm/madvise.c b/mm/madvise.c >> index 340125d08c03..8fb84da744e1 100644 >> --- a/mm/madvise.c >> +++ b/mm/madvise.c >> @@ -447,6 +447,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, >>            * are sure it's worth. Split it if we are only owner. >>            */ >>           if (folio_test_large(folio)) { >> +#if 0 >>               if (folio_mapcount(folio) != 1) >>                   break; >>               if (pageout_anon_only_filter && !folio_test_anon(folio)) >> @@ -469,6 +470,9 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, >>               pte--; >>               addr -= PAGE_SIZE; >>               continue; >> +#else >> +            break; >> +#endif >>           } >> >>           /* >> @@ -664,6 +668,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned >> long addr, >>            * deactivate all pages. >>            */ >>           if (folio_test_large(folio)) { >> +#if 0 >>               if (folio_mapcount(folio) != 1) >>                   goto out; >>               folio_get(folio); >> @@ -684,6 +689,9 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned >> long addr, >>               pte--; >>               addr -= PAGE_SIZE; >>               continue; >> +#else >> +            goto out; >> +#endif >>           } > From this workaround change, you hit an case that large folio has > 1 as folio_mapcount()? Can you share the kernel crash log to me? Thanks. Yes I do. I'm not sure why the mapcount is decreasing. I thought perhaps it could be due to CoW or explicit munmap, or something like that. I've been trying to find the reason that the mapcount is being reduced by using the page_ref tracepoints, but its proving difficult. The crash logs are somewhat random. But I'll send some to you separately. Thanks for taking a look! > > > Regards > Yin, Fengwei > >> >>           if (folio_test_swapcache(folio) || folio_test_dirty(folio)) { >> -- >> 2.25.1 >> >