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 36543C4828D for ; Wed, 7 Feb 2024 05:46:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7D3E16B0074; Wed, 7 Feb 2024 00:46:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7847B6B0075; Wed, 7 Feb 2024 00:46:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64DA16B0078; Wed, 7 Feb 2024 00:46:24 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 521BD6B0074 for ; Wed, 7 Feb 2024 00:46:24 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 1B29740573 for ; Wed, 7 Feb 2024 05:46:23 +0000 (UTC) X-FDA: 81763922646.21.13025C0 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf10.hostedemail.com (Postfix) with ESMTP id 51E50C0016 for ; Wed, 7 Feb 2024 05:46:21 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=l+XHw9G9; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707284781; 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=kalDtVLZWTvATUBZIpX4S68OWyGb0GfwWS+1uj6sqPM=; b=DkRTxOTaRSVC1195FttQCgAfP5sg0HUhYa1Ft4zVwZCqJdiVdciF7Xl3JYf/TB/cZWj+aN Vk4AmB3paqxJQacL42VTY+MGZ6QjHSkut35sNWcgO2+LhBw2Lc0P6sL5isaGSXdYkXPZBe Ny44I6mzA5k8FptYDbzd6NDMg3oKLho= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=l+XHw9G9; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=yosryahmed@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707284781; a=rsa-sha256; cv=none; b=73ow127oGdF65MZCBsk9ixxgjsMcpSQBSy1hCqr3ghdHjkSbSdIJi1mWVvP6kws0lcfJ9x 9NaH0mlHEiXMYZZ5yzza6eQHwnpy+xQegkPh7mIhdtUI78j4Zm/st6ESaPdbokgOyuUBRb 7Jk9vLRXHoYdM8z8J/tjhDS6o3eGkxA= Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-a385259f0a5so134032266b.1 for ; Tue, 06 Feb 2024 21:46:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1707284780; x=1707889580; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kalDtVLZWTvATUBZIpX4S68OWyGb0GfwWS+1uj6sqPM=; b=l+XHw9G94GqKUsWZfydj75ThrF7BnW/O8XGPAa6GVUucm7bvOeFrZRPeVUlz3mkzQU GK2wwsOEJxidA+mCLMlgZqueqeeRe4iPKIM3HnREm8iq6YdtIS6l+kqiVYH8D5luo8G2 Dy9qKW7mMIDmzvy6PuChCGRXjqRDIqOhj6lc6Sga0evFJ68eDlvmZhljtkan+PooYewm yQZE2VcqIKa+Uywu4RCk68zibyAElwEteMk+zeSzRYQigwJoXrw2Qfguw978AKEMzNaL Dd5SHXO5hgW4uiKCs1LSIstcjcwzSghGWdmM1whxunipOawXatXreyXCMXrimzCxFv4c xtEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707284780; x=1707889580; 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=kalDtVLZWTvATUBZIpX4S68OWyGb0GfwWS+1uj6sqPM=; b=Hsd5CAwrpTLzJIqDA56tf00YGp3h3OYotxyluOap7svllL5pHFUPpqVTt9E0l87iba E4/rQ5uFh6v4YaFgFcrhAP6y9emNrSNyIpyy+c8GdZ0f13qWMY976qUyt+25YYd7b4+d wERYUtWaWhXR/h8+MDzC641qjUQgL1lT0kSoEYfHf4Z3EyJMYUwS99mXtDSsDoUj1Bwn TYhkU+druNa/RCOmfGfIaI/UVEtVKLqTXvRwlS9+qdy7t2NDobYuzq34LJTM8sfh1cFg bWnNh9C5Squ4t4AMVXgw0xjGQwkwf9xU8OcWxbV7RPYEDWc4LcwPm8uP0pmVoGOt58KU uwuw== X-Gm-Message-State: AOJu0YxdvcjMbExR+TPdfAXNYOpD9LzPUAa/IS5dzOVquxg1ZJx9B6ld vauYhrhJSTyyjTXDQOgcR/BTk/rFZJ0lWC3bB6mQNYb4w8zmmef4X1+HwxFjQLgI7PxeJrdBc7D Fz19gHnPRe/N2Cl8CEMGuCXGmKnZbXcx5tH2P X-Google-Smtp-Source: AGHT+IFrLEabmaF36oojZfoiOrcXwVRBSuGaGdzZQae/d43gq43MN9/eZpjPs0LhyOJ5wi57hxk+MUec9DV2G9tNc+g= X-Received: by 2002:a17:906:310b:b0:a38:63a0:5947 with SMTP id 11-20020a170906310b00b00a3863a05947mr995896ejx.20.1707284779457; Tue, 06 Feb 2024 21:46:19 -0800 (PST) MIME-Version: 1.0 References: <20240207033857.3820921-1-chengming.zhou@linux.dev> In-Reply-To: From: Yosry Ahmed Date: Tue, 6 Feb 2024 21:45:41 -0800 Message-ID: Subject: Re: [PATCH v3] mm/zswap: invalidate old entry when store fail or !zswap_enabled To: Chris Li Cc: chengming.zhou@linux.dev, hannes@cmpxchg.org, nphamcs@gmail.com, akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Chengming Zhou , stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 51E50C0016 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: fwigtnb8qo6dmriyoc4az8s31qea1tkc X-HE-Tag: 1707284781-498476 X-HE-Meta: U2FsdGVkX1/LBIohqr2gBPpbIoXZC5x1QREdMrynMKFac/FnOexMt90VPKHYfdUcBoZ9mmDAXeR5e65g0RTx8TVXOlzB4QMs2hF6pbBn8U8qX14k2kth835/hyE4dfiMIBBzU5bYdDX5P1MFAf4b07wRMcbqQnbD8WLyCFXXPc1PiARDzKcMSZv6osJaFtEDF41tTViupsCbZ+4e0E+1M1IhGO9P5XYpp6m356c5GnuWApOsdwtv/5w/UM9d4n+kgGkHB3Ut99wPso55BXeWU1rXJ5llDi1wDh5gaHarvEBWVZUmfhfjRSeYvY4TgY3SA+InLa6VsiBbth6fQTkLn8oRSCRBmevg1yiNU2gYzUdv6XxvUWCiYtty7RpQkoByIVo6IcaDWQ1BrfU75HfV3UVCmN+eglqkd2RxOxfIpWR7pqh/qx3VX+CLb/nJjRZ2PmQFwkjYwhuJJnNkBLILpcIrHvZDBXJgxj4vO+JhcJNHOYHw0H7jF5OJwN53Qw+UmMmu9hHZQtci/INVYohhlSzNJDX7h1uPKpkBET346X31NaANS8yTAufdAdIiuDqGTNGn0IGWMZ1MLrsxt+Fv4EZWWh1N3LZ+XBAw8O6tXYzX9aHd7DxthPe1MQuISJNiss40J1/s74HeG2WKixts3WrLAVfnFdPxZ9pqc6uALrvWxRntVY/5XmT29KJ7R4P6x6gIujjo43h1S82YR5+q6AnvlkMSQ6sdpz0u9L87XomYyPqufPK3F/ACKhUOGuTp0ahddTwzR7JACqBKI3wYo378dhrFcjYxHxE/ciVd9rpPLqzUedxtsZ1ysEIjS1RtHJoDkgdgyiUYHkk5vFaG9SsTs2jLCoKRo2aRd5lvQS2e/GVARmtONJF3CQ1G6nO8qmt+O2X1ZJphtfdxsd/usNXbfvZy2wQxEysoj9T0hkq7hro9WmwikkexIQTsQAtqXxBU48cwPCjJrzeFSGm nPR3Raxk 1+k48m5vuLqwsPxL7E7+PPNnwUzWfvdp55BRuov7L3Fh3Q7isZ6AuxEWzEc0YqJVegJYoxdAXz9dyobd5vDjQ6kPuyhmkkBp+moFeUOS/SpcuyKNm8o5pug9NfJePAJTfI/aQPA8gI4LMdhuatNBySwRvAQogwyR5fr+cwnEkpAEvXHdArwOeGZz90YfAi0KCTScf9hPH41uHt87u1v3KD78yjbcK9Tn3dmRUkC67achtvAv+lgmRp48QV0w2zoE+NqF40UbDSpWwOvyhHJP611DCcD/4SENn69F3ATu3D/Sx86bEqyAFfLcSMx5l7XLlmiRhdzg09XbpotwTAHWCk9mjFC2VxWssQF7WXgjzIdsDJTIehkqoIY/49wusOubZiho9H8X+k35i0Q4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000049, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > > @@ -1608,14 +1598,12 @@ bool zswap_store(struct folio *folio) > > /* map */ > > spin_lock(&tree->lock); > > /* > > - * A duplicate entry should have been removed at the beginning of this > > - * function. Since the swap entry should be pinned, if a duplicate is > > - * found again here it means that something went wrong in the swap > > - * cache. > > + * The folio may have been dirtied again, invalidate the > > + * possibly stale entry before inserting the new entry. > > */ > > - while (zswap_rb_insert(&tree->rbroot, entry, &dupentry) == -EEXIST) { > > - WARN_ON(1); > > + if (zswap_rb_insert(&tree->rbroot, entry, &dupentry) == -EEXIST) { > > zswap_invalidate_entry(tree, dupentry); > > + VM_WARN_ON(zswap_rb_insert(&tree->rbroot, entry, &dupentry)); > > It seems there is only one path called zswap_rb_insert() and there is > no loop to repeat the insert any more. Can we have the > zswap_rb_insert() install the entry and return the dupentry? We can > still just call zswap_invalidate_entry() on the duplicate. The mapping > of the dupentry has been removed when zswap_rb_insert() returns. That > will save a repeat lookup on the duplicate case. > After this change, the zswap_rb_insert() will map to the xarray > xa_store() pretty nicely. I brought this up in v1 [1]. We agreed to leave it as-is for now since we expect the xarray conversion soon-ish. No need to update zswap_rb_insert() only to replace it with xa_store() later anyway. [1] https://lore.kernel.org/lkml/ZcFne336KJdbrvvS@google.com/