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 CCAC9C3271E for ; Mon, 8 Jul 2024 13:45:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 503176B0082; Mon, 8 Jul 2024 09:45:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4B2CF6B0089; Mon, 8 Jul 2024 09:45:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 305576B0099; Mon, 8 Jul 2024 09:45:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 10CA96B0082 for ; Mon, 8 Jul 2024 09:45:03 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id A72EB1C2B95 for ; Mon, 8 Jul 2024 13:45:02 +0000 (UTC) X-FDA: 82316706444.20.F408666 Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com [209.85.219.173]) by imf16.hostedemail.com (Postfix) with ESMTP id 5120F180005 for ; Mon, 8 Jul 2024 13:44:59 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Mto4FyZ5; spf=pass (imf16.hostedemail.com: domain of flintglass@gmail.com designates 209.85.219.173 as permitted sender) smtp.mailfrom=flintglass@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=1720446285; 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=CNklU3B3LCdHJNFvg0ZFjz1p4iX08ixeg8SfmCVM7gg=; b=akGHgIMET7M8JsLbPCk4fnfNXt6oQN+bRyDoyHJY4SJKgCXXXCH6b7jrCQJm9REf4O3fIa R89fcFx3Bqx+NFEEzW1AVwRe0AbRX/5TEa3E+R1WGvOayjSfUXCIoeOTR5ODTXZn9Ax2lB Ob+ZYn9YcVGAjtLMY068CaSpG3lucWA= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Mto4FyZ5; spf=pass (imf16.hostedemail.com: domain of flintglass@gmail.com designates 209.85.219.173 as permitted sender) smtp.mailfrom=flintglass@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1720446285; a=rsa-sha256; cv=none; b=x1rAkM9H8f9wKVxOoXfGT1HbFo7mindb1blBbac92HtWftSvD3/1aijw2F0LbC5C9Yj2M7 7+ocXIfMU2eLJ0nN9xHGCuG8/TaSinPo+PPraojyfLt/De0LfYuCsjzI61YYXmTONBYGL3 fRQE8XXPG7jEuQAG7gM9uZbXp/T/IY8= Received: by mail-yb1-f173.google.com with SMTP id 3f1490d57ef6-dfab4779d95so4190975276.0 for ; Mon, 08 Jul 2024 06:44:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1720446298; x=1721051098; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=CNklU3B3LCdHJNFvg0ZFjz1p4iX08ixeg8SfmCVM7gg=; b=Mto4FyZ5Klg/Vq0EyOeVBc+eTb6Kuf0g29sNtAzYLxaL50vnwZ7WBbxmZON53Hp0I/ FBwcCX7f2Iv/FLKDm+sd2JzUaWaGa7Y5AKVFbg315TmaBZvBI5H1wpASHOepKnax1C9D NX6GGyUI6G3C1w8Z5nQOT/bYXgfAG0qJRE5gLo6jeIgG/BJH7x/GjpRkoNocvyvAVfkz 1I8dq+OfJP/aKSuHQtuvoL9eof12Fjp2bUMPrGq2RFhzwaoALmP5fIBfVzaoLy0Ev+sh ZQfzHQB3ZNGZnWN34qKOw6hgqAJcipFHGiuUKm+hsE54I8Hf95gT4ECu05BZfmN6WVEP 1wrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1720446298; x=1721051098; h=content-transfer-encoding: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=CNklU3B3LCdHJNFvg0ZFjz1p4iX08ixeg8SfmCVM7gg=; b=EEP+EV7p/pFyxd02LyrU1U4Vk8H2Xz5eUpQ1rzw6CiHYb0j8On4KY0WVFaIK8dlQgc CogO9GgRhOciv0nPF9Zm2y+ED46T0Kp2fjGeA97Np4F6Jo9031FfJsF00E9bt4vkgi+R CmzTzjp97eUDLmP/n22F/Lvtz3gtWYsDkeM1VXbR5lVsolryePJnd+RqdoasdT/59BQB GvH1djUEx1py0QweTLv97UM54F1OS2SliH+vRzc3c2577cJC5R81QFZxjrFePaPHqUDa JVTuo1ntRKKCN/Hmv3naTvX1CLEIFAwk+UztBdEMLMMo5W6DJc2wfgwSrxaso+Za64ZH m3bA== X-Forwarded-Encrypted: i=1; AJvYcCW0I4XdYheCBq0O5m/WURA3uHxRceeT6UBbBq8KgBWFeaNllk0jGC7owDGhoan7wxmidAcP1rnd6Zrt8G9h2C24Nuo= X-Gm-Message-State: AOJu0YwAOWN3lo6hmcsrESBtxvyO7nm3Uxt8VQPkHR9HRbz1yeeJFgDC I43WQzRS2hXtyYMkOzjA5UgNuGXb5qdRpVrJH4iM6/vMkPFhhQuRe6lunNrZbaQYVQccVTjIw4a So7WL0o8jcpIry407ahXmDwwZuJc= X-Google-Smtp-Source: AGHT+IG5pai14Ca8ZcqWdXxJhzsZ+YHnwUk7ftYSJ9kAfE0rgLhoSEmET5QIX/7olaCy1Gi7HDL+KOrFes0D/JETECw= X-Received: by 2002:a05:6902:1185:b0:dfe:fd16:cbc6 with SMTP id 3f1490d57ef6-e03c192b9c2mr18529559276.14.1720446298355; Mon, 08 Jul 2024 06:44:58 -0700 (PDT) MIME-Version: 1.0 References: <20240706022523.1104080-1-flintglass@gmail.com> <20240706022523.1104080-6-flintglass@gmail.com> <0afc769e-241a-404e-b2c9-a6a27bdd3c72@linux.dev> In-Reply-To: <0afc769e-241a-404e-b2c9-a6a27bdd3c72@linux.dev> From: Takero Funaki Date: Mon, 8 Jul 2024 22:44:47 +0900 Message-ID: Subject: Re: [PATCH v2 5/6] mm: zswap: store incompressible page as-is To: Chengming Zhou Cc: Johannes Weiner , Yosry Ahmed , Nhat Pham , Jonathan Corbet , Andrew Morton , Domenico Cerasuolo , linux-mm@kvack.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 5120F180005 X-Stat-Signature: 75f4cix4mfysizxstpsqgh7r9gyqm5zt X-HE-Tag: 1720446299-107254 X-HE-Meta: U2FsdGVkX18lhUhXShsOZNImA7tiX7xiDIiC9u+MnX7Hs4s8RLdGM8qEySni66d0jmUpXXzPGOLddl06zUhLpbvOxG9PEaTIH91ffhqK15tpPZnXizZOLiak21W6Vf8sxCwPIll7kz9MPiXPXCrG8jaK9mZzcL5c8JilXjhQUly5CptZAUyWpzAdPOCNDyWVCUZmzidYIgBzLe82arI1wltEfhwyHYRuwOxeFm5/K+U1kSmuOwm4uCEJUzsvCf8Y5OzjXNbK9hYZgxfYsguJ+fp+f8JZryZ7E8MaPbf+uGujjkRauLDF35XwRlB5f9wPBUq5zZTNWwjOgtF8Rx7rje3i2gRdlN3ia+hMw+VbBmwmjUYNtulpnP2PqIoiiTfGwqg/rZCIvRZ518pFLyyFsbKu0JzDQ7U/ODIqPzW67hMG6qgN66oxDvSQOs+KkGKHy/+Od9qeaMZ7k2nJtm6dMoDddWEXjbz6xkXETF9RSKN0zgnpAhlGnQm/jhABV9UsPo+FR+vtmmR7y0FeUuR4ovLqrLl6JORFRaRa6AeSuVlwQhsPjWSPs+kG5b5/k+yhStLxzHPVzrLgc/iw9P3ASOOMbIR70RAp4uL4GHhNTgj6w63V0hNmbJCMlcgyFSZvFE75qlNO3Nc/qXmEdwQ2ChjNeSIDbUbh/E2UlNn1vuEkKIvZcb2cF69gXRX4LI1qwLrvllH6iK6/VbZA8qXuCp5zXOzT1K9kvJzB7nZukRVtndNI5kJglJEfOSK+uK6SY1TC19XCLr7GBgQPdFNcEq/6Zn8CfgH+1GPplzpYBSJyGgtaOUXx0LEfUGIsPbCY18nkMC2rzldX+kcw4cy5kr4YszBhPHOfaaP6qpI9RcfNCEZHwUB5WCZNj/kNQd38htmOxWEqbuY606heMvdd/IdCfSCjIFQTUXR1kYWerpB/oLrgTVGc81lWsPFOU+g0qJ5JTpwEO3i0ijM8p5V HlDqdv1r kKaY/Pi6aUI5Kj4uFlRkLYFlYz0g0KaMoStuS6EplV07myUcVRAsph/SdDprEGaXDcp7lWuWw4jK5Zif9sb8ie4IqMhHBlF+0mx8YKKZRuTTmB6sOrETbSp/meSnC7XyVuZXRDHJWk8mBEaynRkJLi69C8jqAIIAqdnOR1TA85HQCdmqAzI2uWR4HPENBcGYd7ke3k4zMYqsxmElEuGqQHvY3sY93zMbKhkbPIKfLuss9h3SF5BOJIDLtlc1Gc9fTeOt4xlP3m5lrB7IN2rrnSVPaWxsuFYO4YjTe0Hyrcet4SBw= 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: 2024=E5=B9=B47=E6=9C=888=E6=97=A5(=E6=9C=88) 12:56 Chengming Zhou : > > comp_ret =3D crypto_wait_req(crypto_acomp_compress(acomp_ctx->req= ), &acomp_ctx->wait); > > dlen =3D acomp_ctx->req->dlen; > > - if (comp_ret) > > + > > + /* coa_compress returns -EINVAL for errors including insufficient= dlen */ > > + if (comp_ret && comp_ret !=3D -EINVAL) > > goto unlock; > > Seems we don't need to care about? "comp_ret" is useless anymore. > > Just: > > if (comp_ret || dlen > PAGE_SIZE - 64) > dlen =3D PAGE_SIZE; > > And remove the checkings of comp_ret at the end. > > > We actually don't need to hold mutex if we are just copying folio. > > Thanks. > Thanks for reviewing. For comp_ret, can we consolidate all possible error codes as incompressible data? if we do not need to distinguish -EINVAL and the others, diff v2..v3 can be like: @@ -62,8 +62,6 @@ static u64 zswap_pool_limit_hit; static u64 zswap_written_back_pages; /* Store failed due to a reclaim failure after pool limit was reached */ static u64 zswap_reject_reclaim_fail; -/* Store failed due to compression algorithm failure */ -static u64 zswap_reject_compress_fail; /* Compressed page was too big for the allocator to (optimally) store */ static u64 zswap_reject_compress_poor; /* Store failed because underlying allocator could not get memory */ @@ -1043,10 +1041,6 @@ static bool zswap_compress(struct folio *folio, struct zswap_entry *entry) comp_ret =3D crypto_wait_req(crypto_acomp_compress(acomp_ctx->req), &acomp_ctx->wait); dlen =3D acomp_ctx->req->dlen; - /* coa_compress returns -EINVAL for errors including insufficient dlen */ - if (comp_ret && comp_ret !=3D -EINVAL) - goto unlock; - /* * If the data cannot be compressed well, store the data as-is. * Switching by a threshold at @@ -1056,7 +1050,8 @@ static bool zswap_compress(struct folio *folio, struct zswap_entry *entry) */ if (comp_ret || dlen > PAGE_SIZE - 64) { /* we do not use compressed result anymore */ - comp_ret =3D 0; + mutex_unlock(&acomp_ctx->mutex); + acomp_ctx =3D NULL; dlen =3D PAGE_SIZE; } zpool =3D zswap_find_zpool(entry); @@ -1083,12 +1078,11 @@ static bool zswap_compress(struct folio *folio, struct zswap_entry *entry) unlock: if (alloc_ret =3D=3D -ENOSPC) zswap_reject_compress_poor++; - else if (comp_ret) - zswap_reject_compress_fail++; else if (alloc_ret) zswap_reject_alloc_fail++; - mutex_unlock(&acomp_ctx->mutex); + if (acomp_ctx) + mutex_unlock(&acomp_ctx->mutex); return comp_ret =3D=3D 0 && alloc_ret =3D=3D 0; } @@ -1886,8 +1880,6 @@ static int zswap_debugfs_init(void) zswap_debugfs_root, &zswap_reject_alloc_fail); debugfs_create_u64("reject_kmemcache_fail", 0444, zswap_debugfs_root, &zswap_reject_kmemcache_fail= ); - debugfs_create_u64("reject_compress_fail", 0444, - zswap_debugfs_root, &zswap_reject_compress_fail)= ; debugfs_create_u64("reject_compress_poor", 0444, zswap_debugfs_root, &zswap_reject_compress_poor)= ; debugfs_create_u64("written_back_pages", 0444,