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 0ED85C3DA6E for ; Thu, 28 Dec 2023 06:23:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6C75C6B0093; Thu, 28 Dec 2023 01:23:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 677966B0095; Thu, 28 Dec 2023 01:23:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 53EEF6B0096; Thu, 28 Dec 2023 01:23:50 -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 4247E6B0093 for ; Thu, 28 Dec 2023 01:23:50 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1BBCA1C0F86 for ; Thu, 28 Dec 2023 06:23:50 +0000 (UTC) X-FDA: 81615236220.29.55A040E Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) by imf02.hostedemail.com (Postfix) with ESMTP id DD7E880006 for ; Thu, 28 Dec 2023 06:23:45 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=TwiWEdP4; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf02.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.215.178 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703744626; 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=4L0J6IAq2APjdUKKeH3JLxAKHcZMoOhhJDivXxlnDvg=; b=L78A3HtbG2qB1sktZ1BhQxLSV4dlk+2FjN9sDfgvq4+o6byXmyXZdUcWjOALlAbilunQaa UnImip0pNovKYCEg9l9SAMfgbUdbZjHT4k15REPOZ0xvzko6Q2XWNLwUbfDnCiaUODMDJq xEna007HH0/HfjJ3FUpRPsWhFN59Wmc= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=TwiWEdP4; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf02.hostedemail.com: domain of zhouchengming@bytedance.com designates 209.85.215.178 as permitted sender) smtp.mailfrom=zhouchengming@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703744626; a=rsa-sha256; cv=none; b=XwS4faEAkYdAAUQbsn54qlcCOZ8MdPk6gGH/CjVZEPbNb/4GgdvFsysxY6Kh/v1AQZwzPI plbfA8NsfC0PkNXYGkF/KXkus9F7iuvZZbkGBKsqXdJGFIzXi+pem+f81vW/73YNAYvOGt PcFZRokuQw92x4IfhPSGkXpAsULyRVU= Received: by mail-pg1-f178.google.com with SMTP id 41be03b00d2f7-5c6839373f8so3613382a12.0 for ; Wed, 27 Dec 2023 22:23:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1703744624; x=1704349424; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=4L0J6IAq2APjdUKKeH3JLxAKHcZMoOhhJDivXxlnDvg=; b=TwiWEdP4tj+lJJsbQ8jMJ2L/q4djobZ7NGtWFrDseqi90ILKyhn5J9t1wUXfIwSQ5e oODuP10+iWu8fI5i5jXvL7mXIbCZnlaez1IlDwceFQDt6+ObiTeI9Fakd65xZJosUZGw NI6eYTPW21io2k4vNMla8KciasAJtLLIbSTIdVOJbkRvEg7nY20rWbTemCfSNLV81clt qyuf2rA7SyRpiVpqoRzfxxz779hmnzomJlzdWUh9T5fQgtgjr5sGBy16EGNMJaIsjs7A FAJ+3LzBSETLgt+I/mauUCi13isY0EnplA4FAG9CQQjmO6IxKCpUj8CdeRwQOzciANXx EYNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703744624; x=1704349424; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4L0J6IAq2APjdUKKeH3JLxAKHcZMoOhhJDivXxlnDvg=; b=axGVilvRN3we+7Ta3QrAsPDC6J6UCmz4W0gFA4pSyH7kic1dBXe9DpthmqENpTFgE7 GrDkPUU8UAbuFr7lDC9gYKsyQjD/ss1LK1xr46t69BIw3Mp298mnJCZh8monELbnSPjl QCZdzb3FK551he8CcHZXgdLxwaEb8biyJJ9q66Macp3VYgJ8wSwBrjrtfkSa6e2V2W+q c1OCwED9z9AsEuxBHcyUvyNyxSDvdU4nLrDbMs6Lu7sSi3YCIh1G8nqviN8D3LIZO0oK zSuJu+2m3pksITN6D1Oyzo5BxPJY9hRPIyyGRym5/t5+98hFV5ElZx5PzJeGuqtLrEjh tZbQ== X-Gm-Message-State: AOJu0YwHQT/oHN0tzVbpwyQL1awAl+NKXlkePwmV8emBPXaZUN2AgqqX 0zilSgPMQtlyFXbrx4KBBx1zkjoimRRGYq6CZUMdykywbH4= X-Google-Smtp-Source: AGHT+IGffleblaI/voDXqru8EukQ5i5A7OfLsh/joK7c3bWjEtLxD8paiReE8u243nnUnBT54bP46Q== X-Received: by 2002:a05:6a21:1a1:b0:195:d8a3:b1c8 with SMTP id le33-20020a056a2101a100b00195d8a3b1c8mr5645795pzb.12.1703744624351; Wed, 27 Dec 2023 22:23:44 -0800 (PST) Received: from [10.255.185.101] ([139.177.225.235]) by smtp.gmail.com with ESMTPSA id w26-20020aa7859a000000b006d9ac481eccsm7938970pfn.220.2023.12.27.22.23.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 27 Dec 2023 22:23:44 -0800 (PST) Message-ID: Date: Thu, 28 Dec 2023 14:23:35 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: zsmalloc: return -ENOSPC rather than -EINVAL in zs_malloc while size is too large To: Barry Song <21cnbao@gmail.com>, minchan@kernel.org, senozhatsky@chromium.org, akpm@linux-foundation.org, linux-mm@kvack.org, ddstreet@ieee.org, sjenning@redhat.com, vitaly.wool@konsulko.com Cc: linux-kernel@vger.kernel.org, chriscli@google.com, chrisl@kernel.org, hannes@cmpxchg.org, yosryahmed@google.com, nphamcs@gmail.com, Barry Song References: <20231228061802.25280-1-v-songbaohua@oppo.com> Content-Language: en-US From: Chengming Zhou In-Reply-To: <20231228061802.25280-1-v-songbaohua@oppo.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: DD7E880006 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: cy59n6k3gaag8dwhpjti6cmiok1at6u5 X-HE-Tag: 1703744625-24141 X-HE-Meta: U2FsdGVkX1+AVSZr9I3VRl93GRa06DrYfyIoxuOxHvZlXzoB1qswooSSk2cMoisD8D08WpIckf4YX0hVFhg6BpUFsVjS/+hV+73SHvQKkM76NgK03MzgfJnU5Y99Ukxh/plPyseTlB+SkSem8fTZasL/KKjG6+PtmguibYgtgnouP+GZ4t8pNrHNPNKtpWc8R2vyPs1UNS4yD9XVidTuUNu1Qgjk8FFapLrYcvx3AhN/FPDG7CmgkfflfcXJpIDCFG4FvRFwlij7zbvX66FrgZiMAXJlhqCuzZBWje4PJstiQuHRyCWttTWSO4MM6HxNny2rnLvzsE7W13QHiKVAaJa3FGRBGvoTByi47P/Icikr5rn1qT8ODpELussrDAdbbqUWG4jH2HuQcp0h0u/SDjQL9Co/yNPQrPvOKmpGszTA3Ru/oQhkJnTCc/YfwCcXmLe8JOIRhHW9lwSLI0i9JncGjn/vxE7T0Lb2Ntis6zBNqoqBcmYo82Q/IGLtnSjb+cU1QZdUhLs8LCI0xQ501VdnlcL4M9AwAv1bE+K6XZMk/pQR3xsXt5W8T+RQ8t4SDwPzLKq93xdpU1CFASZlMVNJV5wXL1j0HCl0r7kUtckP6ugRtYXlEO+FRir22GYzxGvVWAuDOt3YoCIpKkNYowXOUz9cwCgpofBQg7qS0irTrrmyAg9crYJyOjMjzgAchEz1xMR6UHJ4iyc0UziL4ioL29L4OVgsliCqBzrvuvTQEIayIctGLBk5zRAZ9ZW6bp5LWap/FWqOCHqlYwSeAVzI4FezjCgWlodjc/eva1ztk9jxMGEnMZCSRbEb3A+3hnKH349ojzm5UrzrtoflJA44ooFFca4l9ra/nMuOzza1xxILYcbjMnQW7yCxl/a31caOl4dmmMZi3GwvS4hQau/xZc8HwqluD/W4KbzifKExwbZl6nkzp8rupamtN03bR68wQR8/Mw1XS7KhpAp xp5lIeui arpz+kkqigMKX0uJf8jryNZdcjKI4qIlMbWwRV7cOMHJ9VZoOqB9XlBTqD8gF3HOdyWtyr9SN7JYg2lefKv7CrN7BHKDLfi1w14HZfeonJ8A/OfjMWgkUiaDWHEJRLs0GhIKoBucGe/7gwkMGyhdEunFKRM9f55gAwbCRldfDSrdHjwTEXg7r58Hw5qJBaTeiHQ4uJlh6JxJAk5x85oIkrArGKBGiXyVTvvnBuY4sbxRazRPGzsJXQxn4SP8mJ9222srmMULokut0/bz1d0thDjToxr2hiz09nIDNAi+FbDiywjGQkRXGASiTyo6ZeQf5eLKDJYfsJp/1HU1u41leQaYnnwi0zPbAYIjgnHkPMCB5UxHfsRpk5oz5yxMAZXKJqA4m7ZRuN85edqJ3rQgPnZR7La250oTDmwGMHE3KvOpBr3qA7rSlaJ8wShPc5WEdYSd2zHOriCWCl2GCbYmLccDBFAKODF3ODmlGfmJ5hMUq2OIv4Jg5nlqT/tCI7UZVBS+TBRNBj8Uxk0MQ7FfeLcX3kHSssi6csPSMgfRzJBcpMwBDQ2V9SEqZdQrxQRFfK/GU 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: On 2023/12/28 14:18, Barry Song wrote: > This is the case the "compressed" data is larger than the original data, > it is better to return -ENOSPC which can help zswap record a poor compr > rather than an invalid request. Then we get more friendly counting for > reject_compress_poor in debugfs. > > bool zswap_store(struct folio *folio) > { > ... > ret = zpool_malloc(zpool, dlen, gfp, &handle); > if (ret == -ENOSPC) { > zswap_reject_compress_poor++; > goto put_dstmem; > } > if (ret) { > zswap_reject_alloc_fail++; > goto put_dstmem; > } > ... > } > > Also, zbud_alloc() and z3fold_alloc() are returning ENOSPC in the same > case, eg > static int z3fold_alloc(struct z3fold_pool *pool, size_t size, gfp_t gfp, > unsigned long *handle) > { > ... > if (!size || (gfp & __GFP_HIGHMEM)) > return -EINVAL; > > if (size > PAGE_SIZE) > return -ENOSPC; > ... > } > > Signed-off-by: Barry Song Looks good to me. Reviewed-by: Chengming Zhou Thanks. > --- > mm/zsmalloc.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > index b1c0dad7f4cf..c937635e0ad1 100644 > --- a/mm/zsmalloc.c > +++ b/mm/zsmalloc.c > @@ -1364,9 +1364,12 @@ unsigned long zs_malloc(struct zs_pool *pool, size_t size, gfp_t gfp) > int newfg; > struct zspage *zspage; > > - if (unlikely(!size || size > ZS_MAX_ALLOC_SIZE)) > + if (unlikely(!size)) > return (unsigned long)ERR_PTR(-EINVAL); > > + if (unlikely(size > ZS_MAX_ALLOC_SIZE)) > + return (unsigned long)ERR_PTR(-ENOSPC); > + > handle = cache_alloc_handle(pool, gfp); > if (!handle) > return (unsigned long)ERR_PTR(-ENOMEM);