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 DEA54C02196 for ; Thu, 6 Feb 2025 08:17:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3BCA628000E; Thu, 6 Feb 2025 03:17:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 36C83280005; Thu, 6 Feb 2025 03:17:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 25B3828000E; Thu, 6 Feb 2025 03:17:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 08AA3280005 for ; Thu, 6 Feb 2025 03:17:52 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A22D24B46A for ; Thu, 6 Feb 2025 08:17:51 +0000 (UTC) X-FDA: 83088816342.21.D9F9C12 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) by imf29.hostedemail.com (Postfix) with ESMTP id AE70F12002D for ; Thu, 6 Feb 2025 08:17:49 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=KVuGJ6aL; spf=pass (imf29.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.50 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738829869; 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=9oe91G9hNaSNgYF503OR+S362GbG5+I1hQS7YeBtShE=; b=a8Q0xTVUfXYtYO201cjA1OxKDTGEiXxf48O86EVDGhcCrhoYGlbOSLfBN84z7Yxfxs0ZDN lsAEatQ3vZGfJ8PqUsry9NXQv/pdTeuJPq0Rq3e5zBMm0Z3pYs/yhA534fKqgEYl8bdYCG 6pk36FA8MUiSiYKpqyMiXnNMGwCO1O4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738829869; a=rsa-sha256; cv=none; b=G/EdN7Zf717Evw5njTlcL5eIp7yjd6xkOyP3/S3+jlvA+neGg2L12x5uqr1iN6IpCGrcQA cb5aMNtuXHvLom7fqrbYW0FJMg7HPZcWHg/2ZaFe4rTIxxBXcEvBM2273Thb/TEerR68dX R7x0Q86dU10JQ3aaqztSIvwVlHV49uQ= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=KVuGJ6aL; spf=pass (imf29.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.50 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-2f9e037ee4cso842390a91.3 for ; Thu, 06 Feb 2025 00:17:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1738829868; x=1739434668; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=9oe91G9hNaSNgYF503OR+S362GbG5+I1hQS7YeBtShE=; b=KVuGJ6aLk0g2oZSWpE/4WS0/1PqrtB6Sv3779EfsbgQux+9AnaVDVVsU4FDTBOBqvg OEjjw0hykdUK+/6zrNYz0ml7/mmiFzjcFifmdAEhvbjQqGjR0U1KIzU3PB7bYxCyqkIG c3Pm/+9Pm2ccGp3L8fdIUyuNcxfgzsCpvVhIw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738829868; x=1739434668; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9oe91G9hNaSNgYF503OR+S362GbG5+I1hQS7YeBtShE=; b=hCvAESnl1jL5ukYjL9gpD3aLbLskuJEP94BBwNrxsYY38xfgc3G+wWcRLDDOz8a25F VHrRPoH+XUP6vTe4TA5/t2/gewTnzjqmHkLGNv00k55WawMZXkZ6NR8P7rLAOoAo+Uxj epU80Gxq2L1mDBYle28/aClb7q12x7uq31O0Wp0K75J6FtJyq5w/tQUkPC/HLWDdaUUU svddnLmcAr190nUj5YpbhwWUPEJ8KhM+JV4b9uB0qZNQzVTaS4gk7Hu46CRwQE2+7Yhm hNbb8Kwy9VHSOtQGsuf350i39Fde6FGZLHqVPGpdguP3ngfQ39sQ7Htp3T8YsFUWM3P1 0R6w== X-Forwarded-Encrypted: i=1; AJvYcCVdXXgAXPjvNHM8KT/mp7j8RvluyhntnWwPXOdYhxF0jAVJ6d/V0rWurCO5/EhMl6ejKOk7bItJQg==@kvack.org X-Gm-Message-State: AOJu0Yx3Rz5O9Z5x9ve80ExYcY+e7cwmbqTMLjPAOXPo0pzonprWmMJk FLuIzlSyTsCAykmqi5k1AqOizckChfq5140qthdpqXE7pSzmrEK6llrP5X80hw== X-Gm-Gg: ASbGnctrdWCgklYqX74jCKlbvK8RVwDxY/ey6JIxvXtMtbWpIELWeVZBJdP1fthXau3 pCIVmlkl+Db/9JaTYLuDW/m6kob+GtKLkJhicS6agr5gaAiITTulsOY6ekiACYsAUOg60mnsg5X +oQbkr0DvQYalQEE7OUUued4gg3Qz2x3h7pCLatYT3F7ZmQp9vxa7L3g/3scMO4gUA2HhZwSayF n11vHDkVivxwtSI0DS96+YVG8vrM7//isiTZga41nK1jjW4er26JlGXZAs8kK45biDb8CYNM//+ tBVgz51mOK01wiXv/aA= X-Google-Smtp-Source: AGHT+IEk4LAp45w4mBnPz0SZo6Gix5e57Ek87byk1GF2LNYFwZOzzfnGW41X9gquKkKnPHTSNDoewQ== X-Received: by 2002:a17:90b:3a88:b0:2ee:964e:67ce with SMTP id 98e67ed59e1d1-2f9e074c8c0mr8662855a91.3.1738829868521; Thu, 06 Feb 2025 00:17:48 -0800 (PST) Received: from google.com ([2401:fa00:8f:203:28ab:cea4:aa8a:127a]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3687bb28sm6783035ad.162.2025.02.06.00.17.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 00:17:47 -0800 (PST) Date: Thu, 6 Feb 2025 17:17:41 +0900 From: Sergey Senozhatsky To: Sebastian Andrzej Siewior Cc: Sergey Senozhatsky , 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: References: <20250131090658.3386285-1-senozhatsky@chromium.org> <20250131090658.3386285-2-senozhatsky@chromium.org> <20250131145536.d7a0483331b0ebfde80a5754@linux-foundation.org> <20250206073803.c2tiyIq6@linutronix.de> <46ttdyaiweca7qou2t3mx5jy7hefg3htrv4covt5htcex7zaq4@p6is3ukmtbhy> <20250206081326.xMa5Z5oJ@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250206081326.xMa5Z5oJ@linutronix.de> X-Stat-Signature: xanq1s54c6q87cuiqpr9oz19dow3fkcr X-Rspam-User: X-Rspamd-Queue-Id: AE70F12002D X-Rspamd-Server: rspam03 X-HE-Tag: 1738829869-635574 X-HE-Meta: U2FsdGVkX1/ZZ5K2g5Vj33NBAZMwApIWUq0qFVRez6GKZ2X3dz7PWUEQNuKBZGkuoB0KZX9FAhnaMbyVnD/xWJ+DsSNOwGYGjNVg2BJpVeOvpWMc31PU8ReMCwLTqRjebxZPnPo20ntLEJorew5WY1umOznqQmQZOQleYjCNo+W3AI75zIyGQE/Yfm4r4aK2zQC9sP1RLQdao90DfEumDjinHPmwcg23bdZaICnyr0odq/K5Fey3NhOESHMuBbJQ5sevKKEMeKfZVniVyp0g2NzuE+3QqAM89yGEUCh5ZqPof9wmHqYXKwihaWW0UavzmzcstRkrrz0mzSJtlH95L37i1MWuW1L5C2R1hIH17djnrLs5ZFfb1SdRjANIFupVRzBLqhTu6HjqheLr7F5q8ty8hCiy/eR28H8gvaQYdhTG27IgLFFCg6A7vUxVrnjHhhGWwcrNGRc00JZhVdfJSUsjtDYwNRuaftbwbIQ20/u+uZeIkAjM5QMo7zm8JkDVy/czrd+9sG7N4Uuky9NtbNMS5Ak8o8Y52VTwJHD7BP/xEYLr6gYKRGnGbghY1Qvh1jcLR7i9hZiUwfCoM6z/h82yFN9MDARd2O3s9gTlsOG04YGDbbrnVMjRurM2OFqH9aw+t2LQjm5l12SZ3gl5KkI7OseAWlfidF9cQnLnMf7y/Bywlhg5L+OGxf5lqfoHpYdreN7GzLLXnlE2+NiHkR8fBc5yKrN9UepQiDE5CkVAGm7smPS7zN/2oBfT3T0L0u81KvJtHRIUZav7tvhQF0fZSYvzsZWFdUKL6IYcuXo/QisLxth/nOc0NF02e/uXAKFtoLHq/PaO5T64GaAY8xA5hFT1s2kOx8K9wShvZ0+Kvvn6C9f4AFjpGObHFXPyN51Drw1eIfEWXERjxgThc/bIQNIJdEeVtS4bnAUR6ArvHBTrGpS+/1Fbf3IdYvCaisbhNUZheo38OSBL7vk lQVlyes/ OyDciRH4Q8YAnMcr6WmszNbBg0+G6HqBKWCtbNbjQtjMTOxKtwFn2RHGfzL1DgimnVAUHk+U63VefH7usj49hs9DfbqGYQ0hhv9FRqO8GyVfj7TVkLzZ2dgA6h3RgoXFh/rMOXPhpibMDNDZrDVgKZZ9xFI6SwOkG9pH3BvpsO0rWu0UmJYeu8m/+cFZlKDYOj7atPyMWWV2wgzcb3eLts6DQ6YY6ThBdU/+cDilCUXG+vui01AxjfHkK+OAHAyo7E+AzgIOx5KOjZHejCsP/k21MZXYSH8gU3qoX0zeF2GA80yLzaY3ULpKCx/Xv5QVeDt7MTHh0UrYOey/pbVoeUtKYTErF9rvvGIk+2X3B6Yfikfo= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000247, 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 (25/02/06 09:13), Sebastian Andrzej Siewior wrote: > 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. Correct. > > > > 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. Right, might_sleep() can be disabled, as far as I understand, via CONFIG_DEBUG_ATOMIC_SLEEP, unlike WARN_ON_ONCE(). But I can drop it and then just rely on might_sleep(), should be enough.