From patchwork Tue Oct 17 00:35:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nhat Pham X-Patchwork-Id: 13424276 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 CF32CCDB465 for ; Tue, 17 Oct 2023 00:35:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3BF5A8D00DC; Mon, 16 Oct 2023 20:35:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 36F848D00B8; Mon, 16 Oct 2023 20:35:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2379C8D00DC; Mon, 16 Oct 2023 20:35:23 -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 141C18D00B8 for ; Mon, 16 Oct 2023 20:35:23 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D35F51CB708 for ; Tue, 17 Oct 2023 00:35:22 +0000 (UTC) X-FDA: 81353084484.15.BAE77B3 Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) by imf15.hostedemail.com (Postfix) with ESMTP id 2451EA0019 for ; Tue, 17 Oct 2023 00:35:20 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Z9XB3CXL; spf=pass (imf15.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.215.182 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697502921; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=965htGTr4iAy8JWuVwp19hRsc2Rq/cl5JVFnASD2LSA=; b=sbD8sGrY35jb2uP+Uzo12zV5UJHArAZy7giHUQiBAv45ST5AP0QcDbQ0ftBAbe6Xwt4YSM uK3vQAPKUASyShzN3tRBPWnQGJ0hPWzDFm5bW5p9eI4PYeQA6nlRzNCkkjB++hkyvlo5Qf LHUtj2LwdM99sJ5LQse5kWCo0PNOydo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697502921; a=rsa-sha256; cv=none; b=hS6iXUQcpeAxKWJsSnTD7C8FCAhWeFBJvxuuk4KDq2BGGbfWkoWiUDF3ETx3pXyEIGfBO5 9j+bOaaVpM424fABiStVZuYeYl4cg6scrWAkjr4/dKrr/lI03+bwzLyyQmiSRqyuZf1vg+ Vcf0l3cLSqr3VRtVp9e0AVqUnCLkg1Q= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Z9XB3CXL; spf=pass (imf15.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.215.182 as permitted sender) smtp.mailfrom=nphamcs@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pg1-f182.google.com with SMTP id 41be03b00d2f7-564af0ac494so3363361a12.0 for ; Mon, 16 Oct 2023 17:35:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697502920; x=1698107720; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=965htGTr4iAy8JWuVwp19hRsc2Rq/cl5JVFnASD2LSA=; b=Z9XB3CXLRfgl9oo/9oMYCR1oYk72eXMd78RlBjQ45dUUm/HOggOCjCEMK5FdDaXm9c fZldVGkLNOWh3PrMqb4VhFjVW81oguAy0swJtiu/D9G/3/YgaUyxH6fUXBSHGw5T49Lh iQhUTPIQKek2L1qPof45ZwL2dn80/3o8ZdFusFAtrSK6W6I7YuNsGaQe7rnqJAFi8ptG cpozmeNbOJDRPCwJN13m3pVIQj8KTODHWgZ7HzVDJU/b+ouSFYz++XXn6SckgkOXAG+H iw5FK7buaCS+fxjc0MOedCXZ8RB+VsMDGeFTwBO3nff5Epy1ffBDai4Q5xMlpWlX0g8f p/nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697502920; x=1698107720; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=965htGTr4iAy8JWuVwp19hRsc2Rq/cl5JVFnASD2LSA=; b=Lox0k7TP7e0vfrjeuber0z/eiQVv102qNzHaJCJuKWYxVPqCCXUGfE2BvK2gDRIpVI /OirraH5cWbVQWnTPzO2sWYTs1fpFcuxLGFUhiXR90DGvBSt1ecJtbcAy+HH+YD/tLRI ubdXoqFAVLqFRYdaROeSbOumvXcsC6ElZb4NNKjAmbGz/1gNRIfPSItZKfgOADxa9OhG Y4GumA2P8fYSNp3+xBqCCVTjlz4/qy5C3M98j3OTW4CVLUdNVoJnWOKUyjQUe47+qc/A V1a4lwy0Hp+x8ty9Zum8F/VQnbU6rPybrQqxN/CZHY8dd9nE9ySX6rXVKfd96L2J15IO XyZA== X-Gm-Message-State: AOJu0YxTJH/OU27i74wg2ZbjgjfxR+9NZJnejETXxjGCYELzP2xb8LU+ lxwfDxCwHQ3fIRZxCkvvXtM= X-Google-Smtp-Source: AGHT+IElhOeMnJVKNR5ydqILwBP6orMU80/VrnvIVlK6f04yPLgWHamqxk7g7NTvR2mgwowlCrlJUQ== X-Received: by 2002:a05:6a21:2c94:b0:160:8984:6cc6 with SMTP id ua20-20020a056a212c9400b0016089846cc6mr537928pzb.58.1697502919875; Mon, 16 Oct 2023 17:35:19 -0700 (PDT) Received: from localhost (fwdproxy-prn-015.fbsv.net. [2a03:2880:ff:f::face:b00c]) by smtp.gmail.com with ESMTPSA id y9-20020a17090264c900b001c61901ed37sm207894pli.191.2023.10.16.17.35.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 17:35:19 -0700 (PDT) From: Nhat Pham To: akpm@linux-foundation.org Cc: hannes@cmpxchg.org, cerasuolodomenico@gmail.com, yosryahmed@google.com, sjenning@redhat.com, ddstreet@ieee.org, vitaly.wool@konsulko.com, hughd@google.com, corbet@lwn.net, konrad.wilk@oracle.com, senozhatsky@chromium.org, rppt@kernel.org, linux-mm@kvack.org, kernel-team@meta.com, linux-kernel@vger.kernel.org, david@ixit.cz Subject: [PATCH 0/2] minimize swapping on zswap store failure Date: Mon, 16 Oct 2023 17:35:17 -0700 Message-Id: <20231017003519.1426574-1-nphamcs@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Stat-Signature: cwtwedkutnrz8fxou9s4x8pbdwfuhyfu X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 2451EA0019 X-Rspam-User: X-HE-Tag: 1697502920-194351 X-HE-Meta: U2FsdGVkX190xMB+ssyc6dP1C36qhoPK5T6BboBG7noydzf8aUcRvjLqI4qbe4SNHVcPb5r2bRD/+zOPyeVa92ONMOtO6w/yK1lDuXwiA9Itsn9NxiyelcxGvBoeM8TkTJYooK3rGf9Dg3b1QS0sFYJKJhaWULWZCddGV6Li2NQoiIug5wHzuCYDwqV4QXNOAsouPbzvYIiwYgaHTstA6XYQT6igkBPm14Ua4cBcRjZubf+AOXtPT1PK+XMOeb56bk084bjMcGsg0F7MT+zZZ8PAgwZ18XOmGTG1cF/iEH4Jca4kJTzDNdyPPIVuk1AGDn/XQ2NloFwDqokK+bDBwFnG3Xxq545mxeKkvfaCEKhbgQ0+CMmwzC7FWFoB3DQaJfE9YGNLUXTukrBouxEu7a8XksKD6Bs313Xkli1IVAtXsNlbwX1wjHBQGo9VVcce2xd3CKFRy7MtKckvo6tnuWw5BnSbs0YVjoN5l6Oq9JP+VRT1C+ikWXncxSQZlDEJs7L6ofFBKA4v8ZL4qNlNkPEVQdChP7ThzBDf781HMlKFO0XlgD68u23C37c+/oU2IPEd4tLImRE6QkjaZ8u6y7A8saaFCKcRtO2esDNqKiftn0ingseAFWhYVlU5S9AYnmscpgM66WhBbiaHrXjWJjThEquoAiszZe5+bkFxE7OAdYAaGsJlPTMVDEylxeyROlqEp6joBhK4Jl1PJZgKp6E1wMec7cqlFg2Qe8A3wq4WkGiPfsa0KWO8rQ6JiEuCEg/gchYarBBEyFou4Zd8zyOxBVRmfV6tR+mRK+OLUOmfiBe/iPLKP/iKXDebaP2mFfAE/JPMP6ES7TJozmocoMXOkBoGutHCrruDQTWdsAiwFfdFItuMSeF+j9+f36jHwL03c71FZy6vN2SRhz2B9UxaVIZdhN9pGBcbZ0w8lgUJB5nFi0VfFXJCSr8/p+GvaVrZGNxKgSUMlVbVcZ3 dc15i/4J nIO+JVDb2T4HUitZJWL6yJSENdnOl8sk5r9+hjTdHqrcBHvrfRl7S6htd77tlVTY4Bsc0QCdXgnBKXe+QYfAKtBmPefN7vXXEASOLZEH+zmUJiGzLK4iK3nVnRGpiqMj0dEO7berBmAH3IqxVamfp0sxAbiDad/UNKzfhFNUxDrvy5sJK6OIM2SsCtfbcsaTVgDcrfwWsdV9Fe7xaIswUz+1HTc7haLz1owIggDjbMMcs4602kdIQt0M2woTsnD7p3t4cKLkmbOixMaIxc/CiWxbFKD+Kjo1qT3o3T5hQWwyeTf+pE4m1kb8Y4j6osSB/5mJ2Nazyvj64gxQqoGPF/w8Hw4JvTEHKTWmb2Oek6W7U4ba1fwZmf4WPO3YGBECPU8IuqdPGgjLYsYeCzdiuapLWzA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000218, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Currently, when a zswap store attempt fails, the page is immediately swapped out. This could happen for a variety of reasons. For instance, the compression algorithm could fail (such as when the data is not compressible), or the backend allocator might not be able to find a suitable slot for the compressed page. If these pages are needed later on, users will incur IOs from swapins. This issue prevents the adoption of zswap for potential users who cannot tolerate the latency associated with swapping. In many cases, these IOs are avoidable if we just keep in memory the pages that zswap fail to store. This patch series add two new features for zswap that will alleviate the risk of swapping: a) When a store attempt fail, keep the page untouched in memory instead of swapping it out. b) If the store attempt fails at the compression step, allow the page to be stored in its uncompressed form in the zswap pool. This maintains the LRU ordering of pages, which will be helpful for accurate memory reclaim (zswap writeback in particular). These features could be enabled independently via two new zswap module parameters. Nhat Pham (2): swap: allows swap bypassing on zswap store failure zswap: store uncompressed pages when compression algorithm fails Documentation/admin-guide/mm/zswap.rst | 16 +++++++ include/linux/zswap.h | 9 ++++ mm/page_io.c | 6 +++ mm/shmem.c | 8 +++- mm/zswap.c | 64 +++++++++++++++++++++++--- 5 files changed, 95 insertions(+), 8 deletions(-)