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 6A203C282C6 for ; Mon, 3 Mar 2025 02:25:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB4D8280009; Sun, 2 Mar 2025 21:25:16 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E1703280006; Sun, 2 Mar 2025 21:25:16 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8FE7280009; Sun, 2 Mar 2025 21:25:16 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id A8E2B280006 for ; Sun, 2 Mar 2025 21:25:16 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 394E7A30F5 for ; Mon, 3 Mar 2025 02:25:16 +0000 (UTC) X-FDA: 83178647832.06.8276D02 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by imf01.hostedemail.com (Postfix) with ESMTP id 5BDBF40005 for ; Mon, 3 Mar 2025 02:25:14 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=RhqU63Qv; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf01.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.182 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740968714; a=rsa-sha256; cv=none; b=plCBiPI/qrPeFi9R+gYI5crDnFaVKCJrEbAG70tswbKoL/vTXk+5cRe6Impy+/W28JDZSq o4CMjx5LyCG/z8PttOmSNa/OIh0LqoxfxcsE5zIeyImr3ap+VHl4ADQfpquvyndrSyL9jt r9Fwnmzzfap31Q+Kn3PqbvMqx324jKk= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=RhqU63Qv; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf01.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.182 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740968714; 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:in-reply-to:references:references:dkim-signature; bh=eo+gLdw4ALzCaj1nm0+nyzWVeAdZV8iG/qfb0LErfSY=; b=0bdzu8lC0y68eWtxpkH1nC9u3nthuT40n0YzgKbsf0X5Q9ZPfpAUcroaJ3A/Qh+VeXu157 y76JnGNVOLyZdP3iSQk598KWMZON+UQwW6ukxOTb6Ou2iMS6qtATxXHjvN4/ABqaIVeK4Y uM1EIdMdYW2A1A3qLQFQuQZJFWuVULI= Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-22337bc9ac3so72883525ad.1 for ; Sun, 02 Mar 2025 18:25:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1740968713; x=1741573513; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eo+gLdw4ALzCaj1nm0+nyzWVeAdZV8iG/qfb0LErfSY=; b=RhqU63QvKFl8jtGUC8Moi58XRJUuPzPAV8889ZyzhHxXzOAotFLLLIrX+W5bMQNrkW nk9/LhRQX3gLiHu8dMqgRkRwv4F41mkOPhXT4Az4gxvDDNZgj8LCtdn+aKBfGoEAo6fy tr9OJBhfzu6o8pc+VlNfq64xHxXb+XPSc8MFc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740968713; x=1741573513; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eo+gLdw4ALzCaj1nm0+nyzWVeAdZV8iG/qfb0LErfSY=; b=Huh26IokxRmooCtccy1f8S+Seo3cyyFuHfkujai+KErUn6l1/yx5VxyAkj/IYfqauC TN02SfPHh30so0xyfMA4pJI6gye86CsdKgwXA0Rl6zjtkbZz1VnA50IkDMfE9ixD7nNq YN1/gL4cUb68lXPacJ29wpaWXgeFSBEGuO6CbKLKQhlylaOKMGC9c2GSBoPnvPziLjmV hdDglM8sBVP54lR6TyfSNfnpLEuisaB5A4U6uLobCk2Lp9WV0YBAWZgu7+K3n1NNR/tA WFOpWRD62vBgX/cejffmT0+Hq9KLXE5zUsdMMARKlMmrA0HuZsQePM21FCKTod9aDgXt NPyA== X-Forwarded-Encrypted: i=1; AJvYcCWC49Dr0oGIigBsOrghg9PBvHYUyUnsyvii7xMzrzOnAd5NzWgr6rtAnJTStpoDisugPsBgjEZaYQ==@kvack.org X-Gm-Message-State: AOJu0Ywgy4NFaKirD12JeURdG9daFwiUpwRU8dT9Bda1ttVE9Dyzxg0C +9M5mXqrc7BXtI7/TQAqTwvrgtJ4pHBXesT4DaIR/kMnEozvotqdZ/nZcoYwgQ== X-Gm-Gg: ASbGnct3+Ur1kOUrnvK8oI7g9Kct9pQqy/n3475avSjIjYMpc8SnqYDV2p9EooJXdeb GZP0zDZhdtAaMY3WNauBdQbU+O4ipeg8QV9yLDqjDkhqO0ZC5bFdOvGvwXACpP5D+RWzpvbnyyj AriSCIMQ6Q2Z73HkGsqJcM60dpnA3+xiwIheMa11Dgd3Cd4ru+qfPpv8IsGvD+A5m+STDuUdlup rhwS6cPUOBvVbH0Neh5Z48gSxD9/+RRloQzrmQVO1bmuxkRBaHvgc12UMOpKSehREScJcGxQU86 x/1pHzVmk6eGi0YhsZqJj5tKliA86OkJRa2po7ycGmMiVdY= X-Google-Smtp-Source: AGHT+IFnUy2t+MQbv/ON6Qzd6lspOJ7em303a/vGQ6h5MRjg7inxZUPbfNYd5XTa2AnmAT9Ovl5HQw== X-Received: by 2002:a17:903:1983:b0:223:5ada:891e with SMTP id d9443c01a7336-22368f6a1d9mr130419345ad.7.1740968713338; Sun, 02 Mar 2025 18:25:13 -0800 (PST) Received: from localhost ([2401:fa00:8f:203:1513:4f61:a4d3:b418]) by smtp.gmail.com with UTF8SMTPSA id d2e1a72fcca58-73638e4ab93sm3434904b3a.103.2025.03.02.18.25.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 02 Mar 2025 18:25:13 -0800 (PST) From: Sergey Senozhatsky To: Andrew Morton Cc: Yosry Ahmed , Hillf Danton , Kairui Song , Sebastian Andrzej Siewior , Minchan Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: [PATCH v10 08/19] zram: limit max recompress prio to num_active_comps Date: Mon, 3 Mar 2025 11:03:17 +0900 Message-ID: <20250303022425.285971-9-senozhatsky@chromium.org> X-Mailer: git-send-email 2.48.1.711.g2feabab25a-goog In-Reply-To: <20250303022425.285971-1-senozhatsky@chromium.org> References: <20250303022425.285971-1-senozhatsky@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 5BDBF40005 X-Stat-Signature: r56s3kap76ib4iiqpmoa7sh5bh95kmw1 X-HE-Tag: 1740968714-130701 X-HE-Meta: U2FsdGVkX19TWhqwd8pf+PGbCAHY5sBg5Jw7/TsdaG7Z8XhgfGaEFNm4t4UO3K7MRc7yGlRQIw43qvI5MZIS6SK2IJ8LFA3a9awTsJE57tLKVGAgbbhEC1MftKm+MdLeqggM6AWvZGYV9BCgg8yuOqk0VW57bsff0Q0zuDFTu+SYF6WY7vbVQVnAkR/7HP43Q5tfs6Bzz99KjB+264onFrjwXiMFVWXzYznOnCKJa//khpkI2Xv/cXb5xxk2qMSPaw7rYuJU0m4k9oka15NapxAC5Ccu9zGtga4qoEsLHS6PmnR87m+s/KWj8m3hp8B7bHaIlK+Aq+wik9qlkWMTkHyKoQxZ8dE2te4+Yz5cHKgevlCpHEiHRTqz0GqbaJwFMF7vu2iLPcnFDb6XHb5pnJx140Izjmd2NuYGq43JDa22ajLlJTkvyOxJFhizHB2acf9T5cm3G2OdE0TuC1ugQtFsURfehi/WUBhoajN0neP0fyCExbTpHaRNmec0NE49ixSnWryj6ZFHlSX+DmuC8DtTUeiOaAJixWu8b6SNHE9pUDMW0bQb3Ct3TCQ0f736UrZAaEnUEQ92vFluu3LFDHhlR4o3jth9HvobSuV08UminPj0+nlM3EhVcHLodE7dgZYdOHJGyld1paMQ5SwrAktgxtf8MrCWNLsWnrEPjrOeMQJmJl7BelJQ3pMJZ8+MlGxf+AkVPnc8oOR/g5G3KLKzVD0sj+Uw91l3S4LW8/+/dVliijHd5Tptxeq65TitP/8m+41AJteLbvk47Az5+VCakIqsaIMpg7UPWKVBdK0O4ZAGNxFCeJljWvrkMYWYWT0+cxwPAyCzom26+dEbIZ+MMCGaepthr+C1xqETvUGouJU31+7d0yF2pqy+ZcXbFfba+9ZHhWp1YD7Im7N+qj12Qbe7gm9tX5DyC5o5moYAzqkgR1tTzVPmXDHbzzup13QPPl2/upY4vH/4gPb y6+LjVe3 feDIyRnSBWL22OuLUMOAykI6i9q3kNkA/5aQUiMjAvR6IfLzOimiH4diPTYE1tF7AgEimE6mFKUvVE47+GF1MnUs0YuR1Kdhsl9TSx00JCzccQSXi433Jor3Kqk2jmTiwWNPBPJnLVwT3TtMJnb22dz/V+qZfLa8MS7/uAcktVPWSSrhcAEMGpfEtOa/pcpAFnkymAN1Aepf3TIN47TFPUrYSn28nr8hLh6R0MK4nNcgjt+hwh+nPxrBcYa+p8/u5K5kLqHMeWqrbmCxje1omFMeBuMzUf8mUlpDAeUP+3NaapsE5gRV8rOVWNmtmQd/cFFYYLTCqnbqNSJinwuEh80R/eprHubguKQNAbUlGz9fMnYE= 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: Use the actual number of algorithms zram was configure with instead of theoretical limit of ZRAM_MAX_COMPS. Also make sure that min prio is not above max prio. Signed-off-by: Sergey Senozhatsky --- drivers/block/zram/zram_drv.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index fc9321af3ef4..776c31606eec 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -2027,16 +2027,19 @@ static ssize_t recompress_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t len) { - u32 prio = ZRAM_SECONDARY_COMP, prio_max = ZRAM_MAX_COMPS; struct zram *zram = dev_to_zram(dev); char *args, *param, *val, *algo = NULL; u64 num_recomp_pages = ULLONG_MAX; struct zram_pp_ctl *ctl = NULL; struct zram_pp_slot *pps; u32 mode = 0, threshold = 0; + u32 prio, prio_max; struct page *page; ssize_t ret; + prio = ZRAM_SECONDARY_COMP; + prio_max = zram->num_active_comps; + args = skip_spaces(buf); while (*args) { args = next_arg(args, ¶m, &val); @@ -2089,7 +2092,7 @@ static ssize_t recompress_store(struct device *dev, if (prio == ZRAM_PRIMARY_COMP) prio = ZRAM_SECONDARY_COMP; - prio_max = min(prio + 1, ZRAM_MAX_COMPS); + prio_max = prio + 1; continue; } } @@ -2117,7 +2120,7 @@ static ssize_t recompress_store(struct device *dev, continue; if (!strcmp(zram->comp_algs[prio], algo)) { - prio_max = min(prio + 1, ZRAM_MAX_COMPS); + prio_max = prio + 1; found = true; break; } @@ -2129,6 +2132,12 @@ static ssize_t recompress_store(struct device *dev, } } + prio_max = min(prio_max, (u32)zram->num_active_comps); + if (prio >= prio_max) { + ret = -EINVAL; + goto release_init_lock; + } + page = alloc_page(GFP_KERNEL); if (!page) { ret = -ENOMEM; -- 2.48.1.711.g2feabab25a-goog