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 7AF98C4332F for ; Mon, 17 Oct 2022 05:34:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 618DC6B0072; Mon, 17 Oct 2022 01:34:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5C7A76B0074; Mon, 17 Oct 2022 01:34:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 468028E0001; Mon, 17 Oct 2022 01:34:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 326336B0072 for ; Mon, 17 Oct 2022 01:34:45 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id DD2A9807FE for ; Mon, 17 Oct 2022 05:34:44 +0000 (UTC) X-FDA: 80029326888.15.E5AE13E Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by imf28.hostedemail.com (Postfix) with ESMTP id 83A83C0036 for ; Mon, 17 Oct 2022 05:34:43 +0000 (UTC) Received: by mail-lf1-f48.google.com with SMTP id b1so15828675lfs.7 for ; Sun, 16 Oct 2022 22:34:43 -0700 (PDT) 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=FbGjBODuQ2aXd0SxGNOvscm2oLYVXviHbbZBm/YkLLI=; b=WmlvmBDXm0Zg0nD0h/VDt7tmRL2ZZOsHNGNIlOFNuMXPEktuQyJaKBT+JrFnE9jZVc UkdCK3V/YQzAazPVDvs5CAdWbLq+4SfjipHveGsms9K6YK849CLDfEhz7tBRC6i7zK/Q m1v/5IIv7rdDoMXbcOqVKSXg+QCPIZbZAbL1GX8NFiYk30DiWqS/Z+U/XGBeTt9adgye MJ2Op4VqgbhyRCvVBcQ/tfgeeBB3p1Z7X3lawXI2yOxNnApPbUSjbFnI4PILBrPy6H3/ K5k7d50pri3imhOk55WvjUQzhXFHXOTvULrERTOrv02/Qb/XvJaIoVKy86HZQeSdRIQb Yumg== 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=FbGjBODuQ2aXd0SxGNOvscm2oLYVXviHbbZBm/YkLLI=; b=yNfNx95mKawbG/x2EUZ3qYpj0TTOtqv5w7OQb+BU1cVpxbO+KLvGs2e2tP9vU/Nbyc WabecL6FK4X5jh2AQ7fNFlvMSfN0htUnUqp6oTG12hQGN3V69dsNsC8BT+hlfwVSSINu D/judlMpukh+BonMLHz24mvabmkTitq1t/xSF9qSMWQ05hWPkWsQ4smi4KUP/C6SYEUJ g/BBbRLBLG7TdQKCH5X05iN2Le+t1OBCVxnD0sZBLd2HViiJzfHxhrOKQ+Hl9H7VQzS9 y9zZSoj6nJCkkeJcmMfAMkr+EVkNaMWdgU0vuvUA17A347Wb0soopJyAo8SqjI7v+5+1 Uqjw== X-Gm-Message-State: ACrzQf0v3u80C2oVtpi9PInMCkkm1785n2GDV4LZk7cg6kCTthdgCnPD nqCUNSUjNz1EcyqE9ZaIWeah1w3vJK8KtchhlXU= X-Google-Smtp-Source: AMsMyM5g7nhgl+u9DmZEBWIvXoHJssCFJkbsMC88BnPI1GPO4J70FVEDMb6R5M8MpukkxBkTs10c9ojlKokmOGe2Lxo= X-Received: by 2002:a05:6512:224d:b0:4a2:7710:9b8b with SMTP id i13-20020a056512224d00b004a277109b8bmr3109060lfu.128.1665984881754; Sun, 16 Oct 2022 22:34:41 -0700 (PDT) MIME-Version: 1.0 References: <1665725448-31439-1-git-send-email-zhaoyang.huang@unisoc.com> In-Reply-To: From: Zhaoyang Huang Date: Mon, 17 Oct 2022 13:34:13 +0800 Message-ID: Subject: Re: [RFC PATCH] mm: move xa forward when run across zombie page To: Matthew Wilcox Cc: "zhaoyang.huang" , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, ke.wang@unisoc.com, steve.kang@unisoc.com, baocong.liu@unisoc.com, linux-fsdevel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=WmlvmBDX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of huangzhaoyang@gmail.com designates 209.85.167.48 as permitted sender) smtp.mailfrom=huangzhaoyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1665984883; a=rsa-sha256; cv=none; b=GWUOkSpK+sp2tFfXiBwW+cS2hkNt9Dta9iWonAEnCrrh9WufM7flSrAeCkl6G1iyajFBR7 2Q9cDHfZ2kaXexeZ01WNHEcTbedDYUCNxaK+YRkpMIV0VXI62HVXhrr7jb0EQENw8C5dZS jIOTN4Ylc9ixLMbWMBgoi1W2wtbIbOg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1665984883; 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=FbGjBODuQ2aXd0SxGNOvscm2oLYVXviHbbZBm/YkLLI=; b=AO0bxH1L0h0djz/I6U1NgB/uMxQVmRAXjBcTzbcB7T9H80cn2vPsuS1IhJ/RNXQ+Sk/eLs apgT70NMABmlagIzPjlE70EA7/h8FvPx8n0BU1cd/Ah/TWf/HoGgjQgeEkH1+6NPG0TDdu S+AbNBmYpHHraFROSbZ7HGom7syaggk= Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=WmlvmBDX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf28.hostedemail.com: domain of huangzhaoyang@gmail.com designates 209.85.167.48 as permitted sender) smtp.mailfrom=huangzhaoyang@gmail.com X-Rspam-User: X-Rspamd-Server: rspam06 X-Stat-Signature: mp8kkkby87aghh9auyirsiq9sg4exsam X-Rspamd-Queue-Id: 83A83C0036 X-HE-Tag: 1665984883-476898 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000338, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Oct 14, 2022 at 8:12 PM Matthew Wilcox wrote: > > On Fri, Oct 14, 2022 at 01:30:48PM +0800, zhaoyang.huang wrote: > > From: Zhaoyang Huang > > > > Bellowing RCU stall is reported where kswapd traps in a live lock when shrink > > superblock's inode list. The direct reason is zombie page keeps staying on the > > xarray's slot and make the check and retry loop permanently. The root cause is unknown yet > > and supposed could be an xa update without synchronize_rcu etc. I would like to > > suggest skip this page to break the live lock as a workaround. > > No, the underlying bug should be fixed. > > > if (!folio || xa_is_value(folio)) > > return folio; > > > > - if (!folio_try_get_rcu(folio)) > > + if (!folio_try_get_rcu(folio)) { > > + xas_advance(xas, folio->index + folio_nr_pages(folio) - 1); > > goto reset; > > + } > > You can't do this anyway. To call folio_nr_pages() and to look at > folio->index, you must have a refcount on the page, and this is the > path where we failed to get the refcount. OK, could I move the xas like below? + if (!folio_try_get_rcu(folio)) { + xas_next_offset(xas); goto reset; + }