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 4EE59C77B7F for ; Tue, 9 May 2023 03:00:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9FEA5280008; Mon, 8 May 2023 23:00:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9ADD9280001; Mon, 8 May 2023 23:00:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89BFC280008; Mon, 8 May 2023 23:00:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 79B1D280001 for ; Mon, 8 May 2023 23:00:40 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 40F5F16010A for ; Tue, 9 May 2023 03:00:40 +0000 (UTC) X-FDA: 80769213840.21.AAAA88E Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf16.hostedemail.com (Postfix) with ESMTP id 561FC180007 for ; Tue, 9 May 2023 03:00:38 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=fsVVedA2; spf=pass (imf16.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.181 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1683601238; a=rsa-sha256; cv=none; b=xNRLZdQbUoVKni0bavN1MVKPUoV19S7+om96CdtA0bnd9RMo7QoDf0evOM0yV9Jd+00URD NbpbOA5FIHZqX5QwRPxVgAlz7x2X4Ac5g4k0U0YXQma/DbED43E6iQxAaFD+BZg3ToBzk3 NJaHGfzSZMnRBpduw8gsfE4dGI0DDQc= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=fsVVedA2; spf=pass (imf16.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.181 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=1683601238; 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=3phbqPGzhNPYYPhsWx7YPm9EYaracy7lqNtqwFBF8dk=; b=LfAIQAX6yiznipMi6F5I278kn+nukyuC/f19zcskFokXoGYNFoOQO3WxRbou92Bp9A2rMS PE74G1IlLn1N7+1/ByxKElnKmWnU3hXRA2KxKLeNl9z1FmjNHK2TR2qpr1Vp+aMxT8xOkI kUorH8LQgK1/lKpuaLKmDn8VRntKNV0= Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1aad55244b7so40347605ad.2 for ; Mon, 08 May 2023 20:00:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1683601237; x=1686193237; 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=3phbqPGzhNPYYPhsWx7YPm9EYaracy7lqNtqwFBF8dk=; b=fsVVedA2apC3Zwx4eC3AIpOOxsOGHvoknhNN70P/GS7Q3peLiOzmbn0GS0fUPnxzNb Jz/+OOpzreMBDFQJ9rk9R0+QIe5zOjI+vy1RthktXwi017Rva+uorTv/659QgdcmEeju dlxQF1y87bc3bfCoXxx0q4s2e3nJeu9dX7doc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683601237; x=1686193237; 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=3phbqPGzhNPYYPhsWx7YPm9EYaracy7lqNtqwFBF8dk=; b=Xe6kV8T5oA4QQgGVh2elek5rZelkcpFFy6N0+p4pDbl0arVmE8dxB12FDbrpr53GHe joTHE1EG4te1khcYe0jmd3FW11Ifi1JRJwrqge8166q6iQ5SD/IoC/LwF8QhJ5fRwSsm kMkGMW7jUSq39d7Wm7GWjzrSSQoZOU8QmqA2nP9L8DHmgBvxRCQsVueh8gQE9CENiflu 6apMM5zoe7FNuuUY7bPtQqGSJLap2xmcxvZ3xj1pwmr1QRH3er4IlmfG6io2gtrbkJ0a QUoSfVfQE8L+E9FNR/t6kiEz56dIDu/WszVcwYDxDKxj3Ci1uHtEMwUeo6m/m3Xc8Rit slhA== X-Gm-Message-State: AC+VfDz2pS5lNX7Wbs5E1p0BOXEy5bOEiiT/RwEZ65z5IxZRe0Q8wzPl AdRPXElM6mJx7WBpqOojQBVLpQ== X-Google-Smtp-Source: ACHHUZ7VO14EfGnAsrK/2SWhtKCwybMTOQUZPsLY2bmoy1RQjJM4E/eqUXIVbTgnvm0i9LeUdkW4Zw== X-Received: by 2002:a17:902:7d98:b0:1ac:7b13:de71 with SMTP id a24-20020a1709027d9800b001ac7b13de71mr5748984plm.37.1683601236934; Mon, 08 May 2023 20:00:36 -0700 (PDT) Received: from google.com (KD124209188001.ppp-bb.dion.ne.jp. [124.209.188.1]) by smtp.gmail.com with ESMTPSA id fh11-20020a17090b034b00b00246aba3ebabsm5112610pjb.45.2023.05.08.20.00.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 May 2023 20:00:36 -0700 (PDT) Date: Tue, 9 May 2023 12:00:30 +0900 From: Sergey Senozhatsky To: Nhat Pham , Minchan Kim Cc: Johannes Weiner , Sergey Senozhatsky , akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, ngupta@vflare.org, sjenning@redhat.com, ddstreet@ieee.org, vitaly.wool@konsulko.com, kernel-team@meta.com Subject: Re: [PATCH] zsmalloc: move LRU update from zs_map_object() to zs_malloc() Message-ID: <20230509030030.GD11511@google.com> References: <20230505185054.2417128-1-nphamcs@gmail.com> <20230506030140.GC3281499@google.com> <20230508140658.GA3421@cmpxchg.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 561FC180007 X-Stat-Signature: pfznw4whjkt9zzckzk5793ptu3ig7pe7 X-HE-Tag: 1683601238-925769 X-HE-Meta: U2FsdGVkX18fasnCQNo1Z0xjEdQvhWVrAxMJKw6oHkjUnD8MT0wluXHLcZq+hNChN7RZze4P/YR3VJBSv9dKkL39ep2V94SKR3ObEjr9v9kOE8Bq+9bplmw9arKtZA96sMW9DA+vzeoiXlAvy3+Y/KzS7BuZUIjAH0oYXPzcXOHzXx4GdZ4zeXEYqQk3ko6rUwJheYPiJ/HQIE1WC+13CUu+pwWWn+rZBVrFZyYsbcm8FsAF3VjTB/enmnENphpvbxR8KMp9KdLPoBE3GxpzRmmsbdiTSffoPSXXh//XuW1nwfndPUgvJfrBjAYxP5bNvseVeE7R3fzPSHnO5g1IbcBClL73nuViFWPU8RVl8niZSf3Mij9WyITpBg5HkBzLONG4mG9pkvq1MmpZNszcS13rZrVSTOywVkOokKDbQDPOWM1mhedq/4sq4DojiQ8WLvTBaoFDTrjnvTWfzdKV3La5mYluLE1UzdwmQFL4YrpMVIacLUP6phShz5+Ty4KXvwzpxanXK/8TAPBJAoYP3bu+p+b0A8rqqKrk0FRT9omw39nqegbSS09KSG2xGshZO2YiVxz4Dw86WrOG3DQZ4IfvGsQqnDyKDR8giI4JEI+J9KJvo+p9G1VKTwLvY8KB0X0FPLBrRpcIAcePZkuRkCKRo56jpopjiLHDl8fErfOpC/7Zu4edK9Rn0r1pGyd3vQOAjdLnuxGQOBPOAg2WMV6OAjhgQapeoGMJudYrQTUCiKqKGjEHY/hZd4U8I4Zdb0Bslv3v5dC9FA8IS9p2i1dDF0kFjk+KdkMMP6wc3rdCpphfl157bGTJposRQI7LJaiPakiMtk+9Nk5vwsGndnex302FKsuyf0K/KgH4fud7Qnfh2lLRbhg2g0/E2PSkaGUK8n+O7YvHZSnQZ5vqlWz5wcx4dBk5xExKDwaYTJqqm0BAYfe6KuBsvA6OKG/WTTYQVpylxlghXzGg+wr Ql3jNrRk Qm042zwhUQ0BQI0b33QWahd/3DtLLpmAibPfOs5hhhGzpkZT8A+3PjmKO0yiQ82I1cZies+3WvQRTyADQt1kLPcZul/EXmiWFFuIrMHTKcdyG+i6CAkmVoeG4CdZynMCmIrbVbR2uWYLl9dhSV+BYM0Vnfj4GksIgtC9w+byor7Y7kN+BDDrrJdsn0oh5+Ak+TFPfyaadg6mcDJDLl3pmJLblnG+0WFETBmhAjRHiHA8G0IyLZ8qOnCfIvmUWYl3qVKDKdOzHmTMKQkly7fqSY0lgqY6shavLr8FOV5lGvZYt9QCfnLBiELDy1kkkCZIC33o4VOXeERK3dndcK0YLc10Vqdol/MeTB9ga5jz0FHYg0Rc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.002498, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On (23/05/08 09:00), Nhat Pham wrote: > > The deeper bug here is that zs_map_object() tries to add the page to > > the LRU list while the shrinker has it isolated for reclaim. This is > > way too sutble and error prone. Even if it worked now, it'll cause > > corruption issues down the line. > > > > For example, Nhat is adding a secondary entry point to reclaim. > > Reclaim expects that a page that's on the LRU is also on the fullness > > list, so this would lead to a double remove_zspage() and BUG_ON(). > > > > This patch doesn't just fix the crash, it eliminates the deeper LRU > > isolation issue and makes the code more robust and simple. > > I agree. IMO, less unnecessary concurrent interaction is always a > win for developers' and maintainers' cognitive load. Thanks for all the explanations. > As a side benefit - this also gets rid of the inelegant check > (mm == ZS_MM_WO). The fact that we had to include a > a multi-paragraph explanation for a 3-line piece of code > should have been a red flag. Minchan had some strong opinion on that, so we need to hear from him before we decide how do we fix it.