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 83BBBC02196 for ; Thu, 6 Feb 2025 08:13:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 039946B0089; Thu, 6 Feb 2025 03:13:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F2BD86B008A; Thu, 6 Feb 2025 03:13:31 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DF2F06B008C; Thu, 6 Feb 2025 03:13:31 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id C1F4C6B0089 for ; Thu, 6 Feb 2025 03:13:31 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4C4EE1A08B0 for ; Thu, 6 Feb 2025 08:13:31 +0000 (UTC) X-FDA: 83088805422.12.8FBDABB Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf29.hostedemail.com (Postfix) with ESMTP id A22E1120040 for ; Thu, 6 Feb 2025 08:13:29 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b="Oe/tJGi3"; dkim=pass header.d=linutronix.de header.s=2020e header.b=oz+jz5G7; spf=pass (imf29.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738829609; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=DSHPctppgFx2T7kb8w2YlXg5yJ2iuC5dB380kfJlnXg=; b=qjPu3uKMph/QLFJksGVBuDzkLZFeNIdioOqMh2SnjOix1w/5dIDcLdc25TBb152HMeO20k EojORjNy3WQtWodeVcGcTtRMiv4OONvv5m16KTFtYikt76Oe9cOdMliv+g/v3KCYY8PyY0 h0VK7k3tQ94qcxpGpWq+H/yusZGmMxk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738829609; a=rsa-sha256; cv=none; b=TTZV4If/AjxgeLX04tN38kf6RrvWXeVFvjx9vWHhTxK+/MIBR2qNs9YE1weRzAPzIg+KS9 cH0h+eAfzswcRtcL9sukEYRzT3OPKjjs2TcCD/4xybeG4FbXuBjntR54Bcz8uNyomkhzoA /B0th18//BckdoEPZagyozLfoaup1D0= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b="Oe/tJGi3"; dkim=pass header.d=linutronix.de header.s=2020e header.b=oz+jz5G7; spf=pass (imf29.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de; dmarc=pass (policy=none) header.from=linutronix.de Date: Thu, 6 Feb 2025 09:13:26 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1738829607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=DSHPctppgFx2T7kb8w2YlXg5yJ2iuC5dB380kfJlnXg=; b=Oe/tJGi3G1xy7Z8YgIulGWCc3RaKrVWsdv8Pg3wJjyZ8YqrhPwzvPMYPVwAN8T7ZvuGMzX IAqov2Mxcm2LTv8/1GEO7chMBJ1HjYuCUsec8yxqE+/Ur/lEzBL42JxtV6FmoAtNS0R5WV X/hcwQQSog62ZbOFSqSUqbaCrGTvRFLck2+7ZAhWx/4zGXfmf7mC34pnZJtSMuYtaUwBZe V09VrrvvcNzpt3JkMroH7PMFzW3hh56souMN43VXZXkcT/rxrcosFGsrCoWT+/05mKEgeb Tzpjf2oivnEP8ORvkTmL2TXibJGDR8QhDhCtb0dF7DhAXNpDlX+BMIoVxDBsvA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1738829607; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=DSHPctppgFx2T7kb8w2YlXg5yJ2iuC5dB380kfJlnXg=; b=oz+jz5G74rb08mjGxe3fYTOBQCbcntiJJY1do5B5WkmVq0/LVjfZ0lR+6LeHzl5Pfn2mCE LxbepFgS7bk46TAg== From: Sebastian Andrzej Siewior To: Sergey Senozhatsky Cc: Andrew Morton , Minchan Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Hillf Danton , Mike Galbraith Subject: Re: [PATCHv4 01/17] zram: switch to non-atomic entry locking Message-ID: <20250206081326.xMa5Z5oJ@linutronix.de> References: <20250131090658.3386285-1-senozhatsky@chromium.org> <20250131090658.3386285-2-senozhatsky@chromium.org> <20250131145536.d7a0483331b0ebfde80a5754@linux-foundation.org> <20250206073803.c2tiyIq6@linutronix.de> <46ttdyaiweca7qou2t3mx5jy7hefg3htrv4covt5htcex7zaq4@p6is3ukmtbhy> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <46ttdyaiweca7qou2t3mx5jy7hefg3htrv4covt5htcex7zaq4@p6is3ukmtbhy> X-Stat-Signature: 364bwimnm7mof7zsszerxefnf3icgzb5 X-Rspamd-Queue-Id: A22E1120040 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1738829609-394770 X-HE-Meta: U2FsdGVkX1/5u+3DRY5cfJXPer7lQi2Wlz4+2EarVBV08k44DBOEMlyBaq/7xyC8ZU4eubspXit9CRYq/5T1GvBwH4kC0JzV+E3WguMCwDBbG6kc9UjKsJE5BeZFiSkTtf28z3R8ktasMcu1JCt+1rn9CjVZttOHO+9S5SoYI8RIw8+rbSqrc9LCL6C3zH4EUdTCg/vVPNaS3TRxr9HW7w8HGFpY3CA3fBH3Vu97IM2rRb31pqzXoQQX5RmZZzlLkqnEYMIWV5/dk7Rjn2Gv+TobKnGGJreEcopDgtbHWvJBALSkY3UuVM+iILtTL3veBzDq18xxPr7XjTLAL/+UqeG3v9ZWzgLdWqD4Nmi1DBGLpSZlFjtg2VJRMuCqStWj1nM+JIsiI1bb7bjIuu9zPLWX+s3fAHftmVhCjW0aSaCgVTZMzjhadmZidXFTe7/Vbeh7RVSJTHGDitucRInrjklNEo5FQ35M18aUDO4lfoKG69vMlpyh/KJ1iuBo5LHRSRg6086QHmFyQgVagURGJrNTjHuLax5j3vf6Hj717SIQO+YW8cW9MG70fvbDVZ3hUPFrZDqMtYyYPdMYx/gODq19Ju1ZGGXaalKib7ennAOhVa4BRBy0M2ScoLkTaFDPacKoYwQ4Kvn1oCQGmGXQWLPNx5vVheDiYPdTI9nal//13AK94etSNApXjQtcj3FnEo0B+L5CfFnyrFNBaXRmsmQgR1hWlnnJ/frx4uSRWEnZnVNO9ADrW+H4uUf+5Ofk/afPNBQ36KNBFdiForvvhRgaKt1bkXgZGuoyd29pFwK+bkD/NWyNU9aBAuW2wJC48RG07WKH5bysUFeSKBcSe8TpP8oe43GxdwAZL4UZZnK5YXH6RO15jRyJ8mxFMSygZ8ACm23nf5USF9KTALeTZ2uoZh4DA8dfzrkduXNzmSpELTDOEXj3SRlbq95d1maQBQ80KMlOqqrX3Q0Pvjs KH52xtL/ 5lIIz4b7WfymMJB/AoBsiYshIRFjFTTFQmD7/AJISI2LtoavBQkawccsrx7IryN7qqxQxSK/9DmRGfgCfPZzfwf63qmAgLRT2IrmnmhhSDLa8ufu5p2NF5Tmb3k7wEjDhU5YgM1IlzQx/XlcCwpUdUSAtpzPj++ZyzJ99+te1mExZ5llVyeZqSjILIkAlAymL2RwE 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 2025-02-06 16:47:02 [+0900], Sergey Senozhatsky wrote: > zram is atomic right now, e.g. > > zram_read() > lock entry by index # disables preemption > map zsmalloc entry # possibly memcpy > decompress > unmap zsmalloc > unlock entry # enables preemption > > That's a pretty long time to keep preemption disabled (e.g. using slow > algorithm like zstd or deflate configured with high compression levels). > Apart from that that, difficult to use async algorithms, which can > e.g. wait for a H/W to become available, or algorithms that might want > to allocate memory internally during compression/decompression, e.g. > zstd). > > Entry lock is not the only lock in zram currently that makes it > atomic, just one of. Okay. So there are requirements for the sleeping lock. A mutex isn't fitting the requirement because it is too large I guess. > > > static void zram_slot_lock(struct zram *zram, u32 index) > > > { > > > unsigned long *lock = &zram->table[index].flags; > > > > > > WARN_ON_ONCE(!preemptible()); > > > > you want might_sleep() here instead. preemptible() works only on > > preemptible kernels. And might_sleep() is already provided by > > wait_on_bit_lock(). So this can go. > > wait_on_bit_lock() has might_sleep(). My point exactly. This makes the WARN_ON_ONCE() obsolete. Sebastian