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 7F26DC02198 for ; Tue, 11 Feb 2025 02:43:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D0ADC28000C; Mon, 10 Feb 2025 21:43:15 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CBB7B28000A; Mon, 10 Feb 2025 21:43:15 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B352E28000C; Mon, 10 Feb 2025 21:43:15 -0500 (EST) 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 9509228000A for ; Mon, 10 Feb 2025 21:43:15 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 129FC160B2E for ; Tue, 11 Feb 2025 02:43:15 +0000 (UTC) X-FDA: 83106117150.23.35686E0 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf05.hostedemail.com (Postfix) with ESMTP id 9F15D100007 for ; Tue, 11 Feb 2025 02:43:11 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LoZHVeUE; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf05.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739241793; a=rsa-sha256; cv=none; b=tLvooeMuvLqcAHWlv2SVYB1cknu8qvhrObvjwoa3NjnHU4QKTPLB7CLg4+43hvKlOUe2dy 9hvBkNAOcb+puSQjaalgyIfjt/ENNb3jnE8KgllDBWVbcTZaFuxJlX0m6sDLcxxk62ilKI f/28WZgrYTkUPmpZKYM88QcIPy/bUgs= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=LoZHVeUE; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf05.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739241793; 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:dkim-signature; bh=nKziBAtg1HbGc0JeoxKdx+SKqD36Jtb1BCQ3ewTgytY=; b=YFsP61g6fOI7vlpu0xaqZk4XgbxgYxye3soLd9ecyjDPZdZXIRCzYkF/NpsY+xNNADQoNb FmwvGwtdUygpBlJHuX8XZxEB6N/mFPukNdFBN8k0nYviGLBuPy3ux9LJ1MAZ+x57pnHKvU zYZG8MJWX8Uo1xekIHItYQmbVSawhi4= Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-21f6022c2c3so46840875ad.0 for ; Mon, 10 Feb 2025 18:43:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1739241790; x=1739846590; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=nKziBAtg1HbGc0JeoxKdx+SKqD36Jtb1BCQ3ewTgytY=; b=LoZHVeUEUQv/osSjt+AiHQbpMYoEvGUASu+Cu5uup4VhWoCV09waJ6C0UHChKrNsf4 16qR6zm75rZHCx0HZYZIWIlqF6gVMbR66q+YmWwc2reo9E5I5jrdpXDnNDajISXUBPdC ikTaLTsxvWHn06D3Bkp8vSKLjqy2UxXavX/3nb3EpMHhFPcVjoUqKHdaZYLEXyeP6odW ne/085ACKxHbAAbSiHNvSw7+s9tAeGHaVqFeJs8xRHqCFOME5G0twPCCCXSZWoJm9NYy kCzc4acv733r25K09UHfb1+TUggYmG/eIn/gLoCNmmtdcqYo0Fs3nNT7K8MT32OL7B0t HkYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739241790; x=1739846590; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=nKziBAtg1HbGc0JeoxKdx+SKqD36Jtb1BCQ3ewTgytY=; b=Qxb92BdKeaWyuecULEy9Bm2rppzBs6OwEdhiXw+VafXSy7bV4hc+PyOWNcFHKt87ch QsZqBCGg1F4KDKpanhfzwL/T99IGNo7GryNwfqux+JxKmgYfXxDqlfsggxSb4cPrAVrW 89XpbNnTQy9hJrGYgDDuLFbT9f0rMBBKXmv/rkBPmrkmOuRr4hq5bqoSB4M1lJjYFPxI VEkY+jPCQ5KKl6TF9tUJR63eIKr+K4yFHTbXAnypB45KXAweQOQlGVFeO7EYLvtjYDnX B4ON8Theh1bQdK/h7l7eofg3lICkl0HDXIcG+znWWoq2kyytj2s5YNe1jxxL7QHnZ6Eq RKgg== X-Forwarded-Encrypted: i=1; AJvYcCWusHTVUc2GX+Zizx2RnH0SwlzltxjCpEJkGsOejYOtsizFbmcuIxem9FpQc/OGZSITT0P7FNuzEg==@kvack.org X-Gm-Message-State: AOJu0YzowfF64SOuVI1M/rjzhU3Bqgt2hNceXPrvTnja50lo8Y7eewyj /5z9Ape4d7kZu30CTiYfijm0rIJ+Xf46kTJk3vtVFodDNFVRWEv4ZKVnsPt8J5c= X-Gm-Gg: ASbGnctQvh5IRh171PdsPCYd/+161A4e872gsBJv20YRhZ1D+gKrldSOgjBhp61gdhk P9NHmFLpWXfavjO9AonLqZX/RC1jqBO1FlHYOIQJN6UlgFoubZQ6tLRxfz8hphdly2iibmEn4Jv 4QYd6ZHCxk57N783myTOAWM2/a5FHzZ7hqwVhQwfpf/Sv3Cy/9WqooTnROFZz3ApirIihfIZLe6 wz96QkdaGvj4R2/lrTgZ437L5X2mVC9LGwBUn8gTQqRONHNa86AWaStxil5qtG9spdzLQQ9G5o5 i+Y6uH7mbGuF7rft4nqLr3eJbUnRDON0lZWBT6Y/xA== X-Google-Smtp-Source: AGHT+IFlEAc+CgziEvPOi9yauHYGiTs+Qr4sD978MXRUIfJA2SzIAo/wb3fB3Fzd3ri1y7dsaJ0SWA== X-Received: by 2002:a05:6a20:430b:b0:1e1:9e9f:ae4 with SMTP id adf61e73a8af0-1ee4b6eb26dmr2442064637.13.1739241790209; Mon, 10 Feb 2025 18:43:10 -0800 (PST) Received: from [10.84.150.121] ([203.208.167.150]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73089afd0cdsm3307414b3a.134.2025.02.10.18.43.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Feb 2025 18:43:09 -0800 (PST) Message-ID: <7bc425c1-2b4a-4221-afa5-5c7230e85a0a@bytedance.com> Date: Tue, 11 Feb 2025 10:43:03 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: xfs/folio splat with v6.14-rc1 Content-Language: en-US To: Zi Yan Cc: Matthew Wilcox , Christian Brauner , David Hildenbrand , Jann Horn , Qu Wenruo , "Darrick J . Wong" , Dave Chinner , linux-mm@kvack.org, linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org References: <20250207-anbot-bankfilialen-acce9d79a2c7@brauner> <20250207-handel-unbehagen-fce1c4c0dd2a@brauner> <2766D04E-5A04-4BF6-A2A3-5683A3054973@nvidia.com> <8c71f41e-3733-4100-ab55-1176998ced29@bytedance.com> From: Qi Zheng In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: 9F15D100007 X-Rspamd-Server: rspam12 X-Stat-Signature: p3ur9es7hhkf15khpoiubmg5y1cqu5fh X-HE-Tag: 1739241791-983715 X-HE-Meta: U2FsdGVkX1+xSEDYHmCMFGNwK4Om2mu9yJbIWbZdmFmuQzCZmhC5U5ChrMk2ZGyxjCnmyos6GNYhBDjbzFzo/8cwrKSeD1paNM1EtOb7oPA2qZUW23B326FTBrHdp5v4bQ35bRqnvB7TP01DtdDdHvo+CMpzTCYgySIelgJjYCg8DitWEr/CAA49QxyI8b8NxH4F09a88nYeU+6ubB3KzyhvD//gLbPD4JEDSws9NxNqZ/kXMWOxEI58Ahjo/re54WoDycJKHWQLz7M/rdpl+iArySEli8o13/o8/Ixo801nW2ggRbWf+Ux3ZsUMqspNDPrXlrviI7d2ZdssM3b3eYBnFLzJlPUAuFgtmuYBEhyf14FUUwC0e41TXW1zYkQ85/ojPoSdBnhqmOf/MuoW1KLbkby476tP8/nC4hsHTx/fjJorIYhY1wGj3DOC6aJ+Q6MMTydnYjlA9bfsMAM2nTWfvDPAonb2vWDyy3/bOQklc1deSSBpu0Tc1wgD59pfryYN5Vud5ZAjJLQMD+vx1uXtOpB51gs9RPfm7zfgi298x1ARPihgFoJvHiDoEGmfx3GHuGLY1Ihajs8hK8e2XT+qhmtDMCzFyCgA7QPAtwRjZuXYrMrbohjVcZflnTQptQ/FKDveeL7he1eNtVKyUzmKFjj/VXaSfqCGyVPX5ttElsKfJLUEJOC/wbI0ZuENG6XytPKRKws8oURG1dh/N0TzkUuzUqIJE0O2ASsQvea2bq42/4NRTSwMjths3hIiCYP7EQlGOnHVipKSGDlLd7bO300lw+CjLq1qr6QyFFQfOuIsseABnWZ5rK6OmFEFHYr9ALBXhjjAvkql1UIp1FlhKtWCcvHrYvO3kSpxVC5BN5ElL9D1M/lFKfuT5ONiSFW+rK/uPjQZFNm7hadbe1hD/FaaQEmio2ufryAHKmPMYedAV4B2VNmXpuqOAFNqyAdbXsqux3uy6rtBViL C9oI+mZ+ EI1ErtGZfdVbdDT317BTLMXVk8ufhKvNNNTAxdsDkPCjPJ+zxfR+IXcQ1fNLplMvXvqP5yAAEhMri4Vo9EvJrYHWvbVX6e06x+Wai2x5BrTI4sJoAMkSKjEFtDQD9miw031Yv3knBh/ioNGsDISRfGw9rM+S4TnYDQ33iBtu8G+5GPQ3E3eP8ieg5L3b6alN+A+e9o/RClwUKnGoPT4+rVCME72U2K41PdumapI2typ1NH2zMYXaLq9RYq2UL+qOPKxbZOOjWiiiT29xtbl4x94Pi+Oei7LOPlvlHe4oK3VjtWUMMIF2LT7D8HpEpiKLpPkrOIHl2b2KUFEcTFshKr/wBJ6SC/Q6RQdFpwl2x/A8iqZc= 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: List-Subscribe: List-Unsubscribe: On 2025/2/10 22:12, Zi Yan wrote: > On 10 Feb 2025, at 3:18, Qi Zheng wrote: > >> Hi all, >> >> On 2025/2/10 12:02, Qi Zheng wrote: >>> Hi Zi, >>> >>> On 2025/2/10 11:35, Zi Yan wrote: >>>> On 7 Feb 2025, at 17:17, Matthew Wilcox wrote: >>>> >>>>> On Fri, Feb 07, 2025 at 04:29:36PM +0100, Christian Brauner wrote: >>>>>> while true; do ./xfs.run.sh "generic/437"; done >>>>>> >>>>>> allows me to reproduce this fairly quickly. >>>>> >>>>> on holiday, back monday >>>> >>>> git bisect points to commit >>>> 4817f70c25b6 ("x86: select ARCH_SUPPORTS_PT_RECLAIM if X86_64"). >>>> Qi is cc'd. >>>> >>>> After deselect PT_RECLAIM on v6.14-rc1, the issue is gone. >>>> At least, no splat after running for more than 300s, >>>> whereas the splat is usually triggered after ~20s with >>>> PT_RECLAIM set. >>> >>> The PT_RECLAIM mainly made the following two changes: >>> >>> 1) try to reclaim page table pages during madvise(MADV_DONTNEED) >>> 2) Unconditionally select MMU_GATHER_RCU_TABLE_FREE >>> >>> Will ./xfs.run.sh "generic/437" perform the madvise(MADV_DONTNEED)? >>> >>> Anyway, I will try to reproduce it locally and troubleshoot it. >> >> I reproduced it locally and it was indeed caused by PT_RECLAIM. >> >> The root cause is that the pte lock may be released midway in >> zap_pte_range() and then retried. In this case, the originally none pte >> entry may be refilled with physical pages. >> >> So we should recheck all pte entries in this case: >> >> diff --git a/mm/memory.c b/mm/memory.c >> index a8196ae72e9ae..ca1b133a288b5 100644 >> --- a/mm/memory.c >> +++ b/mm/memory.c >> @@ -1721,7 +1721,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb, >> pmd_t pmdval; >> unsigned long start = addr; >> bool can_reclaim_pt = reclaim_pt_is_enabled(start, end, details); >> - bool direct_reclaim = false; >> + bool direct_reclaim = true; >> int nr; >> >> retry: >> @@ -1736,8 +1736,10 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb, >> do { >> bool any_skipped = false; >> >> - if (need_resched()) >> + if (need_resched()) { >> + direct_reclaim = false; >> break; >> + } >> >> nr = do_zap_pte_range(tlb, vma, pte, addr, end, details, rss, >> &force_flush, &force_break, &any_skipped); >> @@ -1745,11 +1747,12 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb, >> can_reclaim_pt = false; >> if (unlikely(force_break)) { >> addr += nr * PAGE_SIZE; >> + direct_reclaim = false; >> break; >> } >> } while (pte += nr, addr += PAGE_SIZE * nr, addr != end); >> >> - if (can_reclaim_pt && addr == end) >> + if (can_reclaim_pt && direct_reclaim && addr == end) >> direct_reclaim = try_get_and_clear_pmd(mm, pmd, &pmdval); >> >> add_mm_rss_vec(mm, rss); >> >> I tested the above code and no bugs were reported for a while. Does it >> work for you? > > It also fixed the issue I see on xfs as well. Got it. And my local test reported no more issues overnight. > > Tested-by: Zi Yan Thanks! Will send a formal fix patch. > > -- > Best Regards, > Yan, Zi