Message ID | 20250303022425.285971-17-senozhatsky@chromium.org (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 3D8CAC282C6 for <linux-mm@archiver.kernel.org>; Mon, 3 Mar 2025 02:25:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C1C54280013; Sun, 2 Mar 2025 21:25:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BA501280011; Sun, 2 Mar 2025 21:25:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9D14D280013; Sun, 2 Mar 2025 21:25:56 -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 7C542280011 for <linux-mm@kvack.org>; Sun, 2 Mar 2025 21:25:56 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 3D7D81409EE for <linux-mm@kvack.org>; Mon, 3 Mar 2025 02:25:56 +0000 (UTC) X-FDA: 83178649512.14.5B8544A Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by imf14.hostedemail.com (Postfix) with ESMTP id 5BED410000A for <linux-mm@kvack.org>; Mon, 3 Mar 2025 02:25:54 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=MQIpBaxs; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf14.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=1740968754; a=rsa-sha256; cv=none; b=y0oP86ELn/lQ2Gm6Ma0Pl44XiJa0tyYON2Ey2sps14gI/f4HUDebiTcBerQIk5ZvkT+JAH +u61G5paBpblAuhDDF1XS3v+IVL4uwgkBRoRt7q9XbW69T3s+zo/r1Dp7udJ1ySt6+ou5X t0dBqmhwrTpVABBy+1CuO54jFGknWco= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=MQIpBaxs; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf14.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=1740968754; 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=m9V04z24we0PKbaMB+rapzgCCE9wJRDyCG7EP1iiRhA=; b=U5B6nI48jJI7ZVzBCbpYck+R71kQbMoCILJJsD0660IKWNBYZBemXg/jYlGpKgqD6rOsCp 1yAjquqg06w7EUyTYx3mDBmWSKPCN8MZdv+yZrJczdHiqjsOPuEjaIkuryMZ1zqYGCX6Et h0ugeZGQa7H3KQg9YRL2XYvBNw4B/yY= Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-22355618fd9so63397715ad.3 for <linux-mm@kvack.org>; Sun, 02 Mar 2025 18:25:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1740968753; x=1741573553; 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=m9V04z24we0PKbaMB+rapzgCCE9wJRDyCG7EP1iiRhA=; b=MQIpBaxs1cwiR65pwpZNBVUVG+tU5jUdKVdxUZZZ8dvdoursQbw8Pxsm9NO+XoGghO t0joh5ByaFaXT26Zijf82g39RhAA8r/G5YFXwV6+hZb01wzs9VfwCijz7dUBIhV1T3G4 mGix5LXgEMv1+28Ay4TKdgH2hPpiJkXQP9Kss= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740968753; x=1741573553; 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=m9V04z24we0PKbaMB+rapzgCCE9wJRDyCG7EP1iiRhA=; b=qR+CGRlW4/2hW5VnX5ZmPmaxIwblsFJo+fnFFlZDHdW45wT418QOSt4/EfgMvZLpdx 9JI1aV1lgl/D6zm+VJ8BN4AckGJVul40W1BQRh/sqvDE5UPwEzC2dplDUF8HzY3b4dOB W+djl4dEFpn3flthuPhO765UxSKXpnptBFKW+Cdmhjce4DrDw/esmgFRtFWZ1SYB9fAy 125u/Y3/1wsNaX6jJz7Ihcqj02uzV6XUMSlAckF6IIK7T4oBHBg4q+8btMbRkrGp+brD syybVQQnlX3xliRASdQGhSp+FYr+4d2Sg7jpflQlUyPvz/jifItXX6XBRAR+SEu7709R QBmg== X-Forwarded-Encrypted: i=1; AJvYcCXUzZQu0JalM2dSF1fScczRK5KIIbzqZWKBjFs2GSMoACAxhj1TFbTinq7PU+IpkJsw4V3ygfZ2WA==@kvack.org X-Gm-Message-State: AOJu0YyfiDNgNXsNVg/zUMarBy9IOwi+Fye7Cx0AQA1N23lS42UhicQv qtIDh3iPgPSDDGjoFNV94jxiIUkcoHU+mVcnIub3uLXE1LV7ewfx1k038UIPiw== X-Gm-Gg: ASbGncujVxt2nyhX4wYUcWHcUkz/wuMl7n3cOcgTXZDH9kFNYFvYzmbABnfcqPeZkuC 37nLhUdLFjnQJaWXRsnhDKqYak+1vUQptA+udhFvg13ORRPX7GfxBvJu6Kyzsh/o08+7+xuXvAi ZVRaUSI5H++jeFOkpvL4mucIwSM182Qzn1ZdSBM9A8H99isYQhIi82s6YNHF2VkAwQwGgxad9Bz lT2pOjEzbU02uqBNK+eeBnR8jNvhbsZDWcTF2ARC88ZyDWWIdkySOSDVNDo8DcO9R6QsmrjvWJi lzI2ZsXdEq+/VyBCubK+X8m9asI2CN1KESk1Y1i+ZHaSLnM= X-Google-Smtp-Source: AGHT+IFRGkg4HAVHTSk7P/5WiDLiMFVD4ws7CbIAd4dpZ2NPws7biEyrBHhEpztlue9ApQq6yVEBhg== X-Received: by 2002:a17:903:32c8:b0:223:245a:11e2 with SMTP id d9443c01a7336-22368f71ed9mr148206025ad.6.1740968753298; Sun, 02 Mar 2025 18:25:53 -0800 (PST) Received: from localhost ([2401:fa00:8f:203:1513:4f61:a4d3:b418]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-223504c7f12sm66879285ad.122.2025.03.02.18.25.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 02 Mar 2025 18:25:52 -0800 (PST) From: Sergey Senozhatsky <senozhatsky@chromium.org> To: Andrew Morton <akpm@linux-foundation.org> Cc: Yosry Ahmed <yosry.ahmed@linux.dev>, Hillf Danton <hdanton@sina.com>, Kairui Song <ryncsn@gmail.com>, Sebastian Andrzej Siewior <bigeasy@linutronix.de>, Minchan Kim <minchan@kernel.org>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sergey Senozhatsky <senozhatsky@chromium.org> Subject: [PATCH v10 16/19] zram: permit reclaim in zstd custom allocator Date: Mon, 3 Mar 2025 11:03:25 +0900 Message-ID: <20250303022425.285971-17-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-Rspamd-Queue-Id: 5BED410000A X-Stat-Signature: giwhxyncicnfdy18ahp7eta8faij4hmo X-Rspam-User: X-Rspamd-Server: rspam05 X-HE-Tag: 1740968754-747250 X-HE-Meta: U2FsdGVkX1/Y6eqaAiJibkXjUxcOvIw3+WZ2MgIxI5DxxZZinmDTvc7kmy/uT4UehXYWNKBAaG/GvykwW/Jrf4/RoDqhlgRRifRfMRt92VlnbZNiwEsq6gaymEau90ud5Sshu6OUbPO9akt+iy2dLqT542FMz2ie3pHHbje3rkkpM0yi8Tr7aPMtlxnBprSZGkJ04Pb/rNoipcLjLS3CGu4c1Qb1Xnb+WA8fgFVhgJbh4ibCxeA8qebeZZELV/0Mm3a1ruydFVIF0EsbRDH2mEtaQJImZdlIP2rHUq/U0G9U80o0O2mfiIsZ0kSymscqx3XmxMZYuOro+d5OUBknsqDgyFGUlDR7cfkmFRhCgLJdBEZUJSmLyGnao30bDV3UbK90FMnBaNPcuUvyRBdoHxjHU0Mgmjp5rF4E6IazXN3qDni8yZb6OuiGmzpUwMrL3aVqkSv9yi7O6XcCRxhevwJbq5MgxpBw8s1pIeiBGViMHI5aSvPR0CTlV32IYGlPMOQ4/zZkc6nrHibvB5/mRAzxkwtkEFrYoKrg5t8Y/K4migp9hfPoKah7+djrK8DrVqh+XLrKcuLuvu9UeVw4T2ihYzzuy6JgrN1wyZZZrMqxshT555bnoOF/QymR5xE1VGjPSazjQ4duv8FkDK1ONgP5gb8ZG/YAb1NjXbz6XqKpzLK4dkUcj/HHAqWtgRAxi7eewM+IPyGJDcYWfci/sSizastkA7IrXmHU8Htlpa4NO3DwffOenfXOvMAokFXswPZM2PMUJfKY/s+fUBq1zLjVgG4Cpu+b5Pr0fMHKUw8XTQyXVFQOBbhQg0NXjePwhZlQ4j9sAWcaymyVaqCm5nvUb58UFl4yu+9nd1LpBrijwoLUiQWITROOwVA9pqTTtYzgtN5ok2N+M0q9oWGwyPwBcJn6G76/H/JQz0vs1HAoo+JQWpNm8H/4Eh6wWp3gQncNUNlz/ges7kWky5k WmE1wYSq 5xaOVyXyGky4AptYd8/LQKV4txybMMisu/lOl0TMGkk2fYZqgmEyB4PDkE5m/1twvuesHSDAoXPHewjmD0klky0q53LoiUl2VqxzPX7jRc9f+sWRP3tS6eXvkH30df8F+ufc1ZyUJ5TxCgAk0MD0KuHhlQuza/gBvBa774ftxDkjOg8Af/wKEQM0M+khXFpa0s9t/D/HDeCD0vpNPxKI/xBOwYGXTf2qJFwmsCUHKrmcS0e3BIsBVoULoME2wMzCjCrOMQouGddoseOUO/blWkDuN7pNM2RhuxZH8JCGt7X344iW/rd2SQMLbEQ== 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: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
zsmalloc/zram: there be preemption
|
expand
|
diff --git a/drivers/block/zram/backend_zstd.c b/drivers/block/zram/backend_zstd.c index 1184c0036f44..22c8067536f3 100644 --- a/drivers/block/zram/backend_zstd.c +++ b/drivers/block/zram/backend_zstd.c @@ -24,19 +24,10 @@ struct zstd_params { /* * For C/D dictionaries we need to provide zstd with zstd_custom_mem, * which zstd uses internally to allocate/free memory when needed. - * - * This means that allocator.customAlloc() can be called from zcomp_compress() - * under local-lock (per-CPU compression stream), in which case we must use - * GFP_ATOMIC. - * - * Another complication here is that we can be configured as a swap device. */ static void *zstd_custom_alloc(void *opaque, size_t size) { - if (!preemptible()) - return kvzalloc(size, GFP_ATOMIC); - - return kvzalloc(size, __GFP_KSWAPD_RECLAIM | __GFP_NOWARN); + return kvzalloc(size, GFP_NOIO | __GFP_NOWARN); } static void zstd_custom_free(void *opaque, void *address)
When configured with pre-trained compression/decompression dictionary support, zstd requires custom memory allocator, which it calls internally from compression()/decompression() routines. That means allocation from atomic context (either under entry spin-lock, or per-CPU local-lock or both). Now, with non-atomic zram read()/write(), those limitations are relaxed and we can allow direct and indirect reclaim. Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org> --- drivers/block/zram/backend_zstd.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)