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 44C35C433F5 for ; Thu, 19 May 2022 07:10:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D46616B0073; Thu, 19 May 2022 03:10:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CF6768D0001; Thu, 19 May 2022 03:10:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE5356B0075; Thu, 19 May 2022 03:10:15 -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 B13176B0073 for ; Thu, 19 May 2022 03:10:15 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 906AB32CF6 for ; Thu, 19 May 2022 07:10:15 +0000 (UTC) X-FDA: 79481618790.17.0D1C2BC Received: from mail-yb1-f170.google.com (mail-yb1-f170.google.com [209.85.219.170]) by imf02.hostedemail.com (Postfix) with ESMTP id 2DFA58000F for ; Thu, 19 May 2022 07:10:14 +0000 (UTC) Received: by mail-yb1-f170.google.com with SMTP id v71so7495826ybi.4 for ; Thu, 19 May 2022 00:10:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=konsulko.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9PYUOJAahsitVbIpvNcD/gQehbdmdTLlZnbyHBi5Wk8=; b=DixNg2iwHsCb87oTKd00gG4y4PtOei2M0rvk2ZvAAiKWoUUH64dI1lLowWxpzxyFVS qpS8Mdw81N+tnEXF0tPRGmVnxvnA0BQvav60mCgPyiIs2YQV83LuCNQVWZpnqzCzzPse QowLhwdTloLQR877oY2q9xQiq4DyhiMG6tSWY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9PYUOJAahsitVbIpvNcD/gQehbdmdTLlZnbyHBi5Wk8=; b=DXuu3zg2QUP0bNJBneJ+Y5HyesPJhVsmbvMUgYRf6TDwClID/1Lg/wyCXFCh2AWYJJ axHeUvs8VtakAIm21ijf9uDOmb4JwbV8mUEfSUcH068g9o2zHmVRUajIezYmJmNNtyhZ lLNhrQ1194GhKSUlvQQHo7OGdgMCoam/0Iz/7drARQvnWDGy3kasve5yCXMmwqZuxRqZ Lzeb3rAfSEd0Vj6aQSIBwdZ/Ui48SoP/NuFUbYFyo8D9GgkfnFXszdnz63NhL70APfMW PAePnJ0vS3P9KEzK0iWFECb1AK1fMtT3zaSCrjZcs0qZhpm7ZgBgY95hMrMByKoYtEhD aO9A== X-Gm-Message-State: AOAM532Wt4FuhsetJj8B1i9mNjZv8t4ATHs/sgR+aHONZbPH48yTQwfG re2/U1B/aL178gCGe7esYeowc6DJ57OoajalQrAj8bKJWKw= X-Google-Smtp-Source: ABdhPJwWutBdsJKd70SSTJQfb7qJen0UtR3se0WON605rlfXnbYysBkzw7c/nIy6U/FdwQFpm1DzXGo8E6dGdShBVbM= X-Received: by 2002:a05:6902:1407:b0:64a:ecc7:aa2 with SMTP id z7-20020a056902140700b0064aecc70aa2mr3051875ybu.645.1652944214392; Thu, 19 May 2022 00:10:14 -0700 (PDT) MIME-Version: 1.0 References: <20220429064051.61552-1-linmiaohe@huawei.com> <20220429064051.61552-5-linmiaohe@huawei.com> In-Reply-To: <20220429064051.61552-5-linmiaohe@huawei.com> From: Vitaly Wool Date: Thu, 19 May 2022 09:10:03 +0200 Message-ID: Subject: Re: [PATCH 4/9] mm/z3fold: throw warning on failure of trylock_page in z3fold_alloc To: Miaohe Lin Cc: Andrew Morton , Linux-MM , LKML Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 2DFA58000F X-Stat-Signature: k415uuscsd95ztz61sfry3q8635p15jb X-Rspam-User: Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=konsulko.com header.s=google header.b=DixNg2iw; spf=pass (imf02.hostedemail.com: domain of vitaly.wool@konsulko.com designates 209.85.219.170 as permitted sender) smtp.mailfrom=vitaly.wool@konsulko.com; dmarc=pass (policy=none) header.from=konsulko.com X-Rspamd-Server: rspam09 X-HE-Tag: 1652944214-666324 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 Fri, Apr 29, 2022 at 8:40 AM Miaohe Lin wrote: > > If trylock_page fails, the page won't be non-lru movable page. When this > page is freed via free_z3fold_page, it will trigger bug on PageMovable > check in __ClearPageMovable. Throw warning on failure of trylock_page to > guard against such rare case just as what zsmalloc does. I don't see how this is better than what we currently have. We can check if a page is movable before calling __ClearPageMovable instead. ~Vitaly > Signed-off-by: Miaohe Lin > --- > mm/z3fold.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/mm/z3fold.c b/mm/z3fold.c > index 4e6814c5694f..b3b4e65c107f 100644 > --- a/mm/z3fold.c > +++ b/mm/z3fold.c > @@ -1122,10 +1122,9 @@ static int z3fold_alloc(struct z3fold_pool *pool, size_t size, gfp_t gfp, > __SetPageMovable(page, pool->inode->i_mapping); > unlock_page(page); > } else { > - if (trylock_page(page)) { > - __SetPageMovable(page, pool->inode->i_mapping); > - unlock_page(page); > - } > + WARN_ON(!trylock_page(page)); > + __SetPageMovable(page, pool->inode->i_mapping); > + unlock_page(page); > } > z3fold_page_lock(zhdr); > > -- > 2.23.0 >