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 0F6F5C54E41 for ; Wed, 28 Feb 2024 05:29:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 602578001B; Wed, 28 Feb 2024 00:29:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5B2C18001A; Wed, 28 Feb 2024 00:29:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 47A668001B; Wed, 28 Feb 2024 00:29:14 -0500 (EST) 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 343938001A for ; Wed, 28 Feb 2024 00:29:14 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id B3388A11F2 for ; Wed, 28 Feb 2024 05:29:13 +0000 (UTC) X-FDA: 81840084186.17.1816EDA Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.51]) by imf09.hostedemail.com (Postfix) with ESMTP id D8BEF140008 for ; Wed, 28 Feb 2024 05:29:11 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=XLxIeJnP; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf09.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.210.51 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=1709098151; 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=Xmmc3lSEBpnb8JOhy5dmt1TkGfOTvRv7m9E2Kxyp/to=; b=uL5pOkzbeDafYNNY/ZgRxtJa3My7zrswi7BvuPpn8ZgxINWqh6qmMDHIvj2R1F4uQSsTOM 1jzipo7tv9l+6Nkj43oGQ60yWoRruAgxEZza5Jt6Dp5GxQ4wiqzGgiq2S0nN0vnMhpDp8A ykCdmK/5PJ3IT1r4gVGA6L7sLZtei6s= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=XLxIeJnP; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf09.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.210.51 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709098151; a=rsa-sha256; cv=none; b=uRQhyEN+IbDhRU+Q3yzxpW4ZLdjajbHatIAU+kINzVsJ5GCgHxyS2A7EHdW4zkrYw0l8mX 9+5Rm8nHM3NbAbIrTS/TQGSkTcQ3aOIl5RSj5QcIsgKRsGZZ8UGQlMAUWlDDE+9k+b2dLd 6g9Lz7Rq74r+cJO0dRhlqBYr5enJQf8= Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-6e497a1481cso1099417a34.0 for ; Tue, 27 Feb 2024 21:29:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1709098151; x=1709702951; 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=Xmmc3lSEBpnb8JOhy5dmt1TkGfOTvRv7m9E2Kxyp/to=; b=XLxIeJnPDuidBmWz7Hx1NfBHxMbofWalhnlAkvb9Fzn+ADj9Y5YuKMIOmru2fJ92vv lvL8t7UBGkHYvoDtKOKk442Kk3d3+k/GwqYTBsVLMBa0583OXXHVoABndtwvyxhKCBHp 508T+IYmqVbRpHhCjDFg2ffIWhves8cSm/Zoc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709098151; x=1709702951; 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=Xmmc3lSEBpnb8JOhy5dmt1TkGfOTvRv7m9E2Kxyp/to=; b=p/UHMBblhGLb5ao/w4nO1M6Th1jmBVEyN9H+ZQCwHhQtXIf29WUWZq1bajf76+eZ23 IO6yco2Ss7iWuGIorUBX+KSJka060YthE3YN90RnhOEyg0I5j1oyE4Z3ftBISzFL3O1w mhsNWYSS0bP6kLoTs0UcEdUruHMPEYcyc/ven8CPHNc4C5y+qnml2Zb3T/3XOpsV/fc1 LOXKpNY2QP2q+j6YPNMmXgKF7RHWkmhE2zIRYwl5B6HV3CTHSS2sZD5sdM2uLTMiCFwi xtEJxSyAqhTVOy0VltNQxgMHmKWfHTVFF6mv7xCnbAKq1ym+Opa1YPcrV4oD8uFo8ITi wurw== X-Forwarded-Encrypted: i=1; AJvYcCUsYfi8wqEqFkPcc35uYiBC8hOEGmOo4D4nwQVa0Kj1lgyuMjc7nLFC9PHITYN8Elr7mlM+rSZprSlR8iHAILGlb7M= X-Gm-Message-State: AOJu0Yys5nKTIcFGpyzuJUFb3uchmybq9bXia7uPx1Uv2ReCLTNFB0J9 pJVv1PVtwzt8b6eDd1twGbyW3HiI8kUUgjoY4xV1ZCTQ13QaH6wHyzWS7Vx5RQ== X-Google-Smtp-Source: AGHT+IH+DD0XmnpARsicdXrncyIxsAW7NXvLB3VQEMd/cq4Y3AnNu4PK07nBXV6d2cSB2AbtnlsuOg== X-Received: by 2002:a05:6808:1a1e:b0:3c1:adf7:c169 with SMTP id bk30-20020a0568081a1e00b003c1adf7c169mr4598680oib.4.1709098150902; Tue, 27 Feb 2024 21:29:10 -0800 (PST) Received: from google.com ([2401:fa00:8f:203:50c1:1ad2:3268:cacd]) by smtp.gmail.com with ESMTPSA id du15-20020a056a002b4f00b006e4bcdcff43sm6905919pfb.78.2024.02.27.21.29.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 21:29:10 -0800 (PST) Date: Wed, 28 Feb 2024 14:29:06 +0900 From: Sergey Senozhatsky To: Chengming Zhou Cc: Sergey Senozhatsky , Chengming Zhou , yosryahmed@google.com, hannes@cmpxchg.org, nphamcs@gmail.com, Andrew Morton , Minchan Kim , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 1/2] mm/zsmalloc: don't hold locks of all pages when free_zspage() Message-ID: <20240228052906.GI11972@google.com> References: <20240226-zsmalloc-zspage-rcu-v1-0-456b0ef1a89d@bytedance.com> <20240226-zsmalloc-zspage-rcu-v1-1-456b0ef1a89d@bytedance.com> <20240228043358.GF11972@google.com> <5a556476-05b2-483e-8875-eeb3e2a51151@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5a556476-05b2-483e-8875-eeb3e2a51151@linux.dev> X-Rspamd-Queue-Id: D8BEF140008 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 7pmyemu3sjgsixb1acgjcud898p6tqqu X-HE-Tag: 1709098151-505286 X-HE-Meta: U2FsdGVkX19BvmtZVd4CBvCI6C0guwAETh5QJTYEKCIhrSNbCCfKJdCFpHJTA7RQNAJBwwR8KBuJDEHuIflRLeUpGHlfcB/5Aeuiqnqx8B9fx3NDQJCMlAVe6id+1NsclHUNRNSyxLOkfVs1ghmroOFnmLeuEvhhNhf3U6sSk89GLuQx4ZeSY7DaTJi6ur6IOoMUf7eoxFM8Rh8q/xTaBI1k5kuF3yq4x+rCK0Grp018xNG2/KJf8GZAPHBK7ZPzmMTabQEWrTFi3HQYDN6ldmA46MxmTazH4HO2nAo79Lkgp4GajIqYJX+lb6WFM9xFl60a5bkwvSwv4tH9qyMO51zA0W+P1gXW5M9eEER+sHzumaTkdBA+NQql64dqNE2MKDxq+kSXpP9b+ojXFuZjjapinvQd6hWpQoVq6SadXWBfPINHlz9BVNstndqFUaOYxX6g/ghTwNP3E0Ieth6YRFH/GQM2QDaJ3vsx6Dn0C9Pmj95JYr41JMn3BXMxxALpS/mrDtso+oR7EcFIDumVkCNeo9ahk9OKeCjWKVAOzVVgn+eZYtclg+TfDWf4ZcMfXMVWZPo6n7rz3Z7y/VWASARzaHJLIdNQALnyvSB8MGXEV6diypPl5coaEw3WY6QF/F63vbqpagkeNbOqpqmaHJchcgQx2xNBN6XbCOeGRWbAemRZOMgfhIhzoSGE18cwVYdcYYWabwGQtcQPTfpEH0puGlUs+5V881pbd86UNs7gtA5rhYUbbByFax4YQDrIGm0AGP9SmEyO0+4+nBzj9go+YrHYOH8+Dqd6pOo1SPkc55JRz0NaZvY0Uc3hcDKVxdND53V1WOl8jes0mmYVtVYB0lV+bHiTB9ja5uWLVSc6ji6WKLRvqtdE7PxouupIxlh2cIdrLGb0tGLjt7qprjB8IXfXZFyUbRNmpQdFcTkm3VwuH37Wca7XaxPGidncWfxtyntqQxhqfEvQ+Zy kRJ5SIOy ZcU+HJMMse1uRAYFkwv3x/BuQA6dXXo6gsp2WM4B4jTQTCGMqupTAms5eBqIz/JxXwexJMgkGeLDdK03chegjNFBKoAxpreJCsJ9OVjgwO8bd5URzK+umAEqeTCcUeq9mZrgsdwVwagL/GX8c2FyWAsj3sIZGMSkDpw2lR1pefW1WGO3K0lsMfp7RWFDiVkimcae1Fli3bURPjj6y0UjqSJEtU4HsZxy61r5rcX/Z/OGayd1ou7iy/D7Td2LvuI+SWnCt1tb7oEteRPuRzlsvWwUg0IsF8g3SP8NSXc2Hq0Y/pAeHcJOvWbJvLQVJz7JuoyZUUSfda9FizCtsle3N8p+Td0F6Vop/kT/TSra9lHmmBGIYT+m1IqWMpA== 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 (24/02/28 13:14), Chengming Zhou wrote: > On 2024/2/28 12:33, Sergey Senozhatsky wrote: > > On (24/02/27 03:02), Chengming Zhou wrote: > > [..] > >> @@ -978,10 +974,11 @@ static struct zspage *alloc_zspage(struct zs_pool *pool, > >> pages[i] = page; > >> } > >> > >> - create_page_chain(class, zspage, pages); > >> init_zspage(class, zspage); > >> zspage->pool = pool; > >> zspage->class = class->index; > >> + /* RCU set_zspage() after zspage initialized. */ > >> + create_page_chain(class, zspage, pages); > > > > So this hasn't been tested, has it? > I have tested it in my test vm, but it hasn't KASAN enabled. I tested the > kernel build in tmpfs with zswap enabled using zsmalloc pool, not sure > why the kernel didn't crash then... I hit the problem on non-kasan-enabled kernel. KASAN was enabled later on. [..] > > So when init_zspage() calls get_first_page() it gets NULL zspage->first_page > > which we then use in is_first_page(first_page)->PagePrivate(page). As far as > > I can tell. > > Thanks! I will fix it and test throughly before send an update. I'm curious if we want to add RCU to the picture, given that zsmalloc is quite often run under memory pressure.