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 34F8AC47DD9 for ; Wed, 28 Feb 2024 04:34:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 93C4C6B0295; Tue, 27 Feb 2024 23:34:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8C4086B0296; Tue, 27 Feb 2024 23:34:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 73DC66B0297; Tue, 27 Feb 2024 23:34:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5D9126B0295 for ; Tue, 27 Feb 2024 23:34:07 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id E869EA0C04 for ; Wed, 28 Feb 2024 04:34:06 +0000 (UTC) X-FDA: 81839945292.19.E1664F1 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) by imf10.hostedemail.com (Postfix) with ESMTP id 0E84DC0005 for ; Wed, 28 Feb 2024 04:34:03 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Q7ewL9BJ; spf=pass (imf10.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.46 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=1709094844; 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=8g7nV4bObI1u+NR0MdOCXyTkPOObxNO/D7LB7657tSo=; b=6Q/ZMD3/Vva2B3yw4nvVQgtRBqJfQP2tdhUO3cGGVTt8XKdZKJbvpELi93JLBMgVB055hS RyydIddoChLJ+mzqCsKoMloHmPluY9tm5KolFbYtlJTI3uJwAxODV5qCtR0H34/kcSxT+3 Tbiamqwj+/jLijQsih+UamOCdivdWP4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1709094844; a=rsa-sha256; cv=none; b=GHFcdhAjjoBldIopml73brZ9WGXz7yz9h2b4Cibb9mlwgU/v0p/Zkau7fx+asI+CxbLtmd 1pqm6DRUUljZgxG83IXRo5yp9iAD79CW7zZmzC5mjIlgTOZw0o+hWEnmutSSkxASZjtr5W 1AnCftNiit1kIFhCY90Sns9dMrDYSqE= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Q7ewL9BJ; spf=pass (imf10.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.46 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-29a430c3057so2937205a91.1 for ; Tue, 27 Feb 2024 20:34:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1709094843; x=1709699643; 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=8g7nV4bObI1u+NR0MdOCXyTkPOObxNO/D7LB7657tSo=; b=Q7ewL9BJvxpUTctIalPS8aj3Sfzo5osNwaborgcN/O7uReD89TyRCcoP+dvBHux8mf SAp8mpkUJuwtdHrUP2bWul8hIpwpNnX1gUI7RD0uPhkNEToDvnNCwqggt5NIK7gFVm4D 1X7qa+5hjcMVVxbJU1Q1nP8kh88ViXnIgIJkE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709094843; x=1709699643; 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=8g7nV4bObI1u+NR0MdOCXyTkPOObxNO/D7LB7657tSo=; b=aEq6Fbj+cCfKXS1mRRNtdxBLdLFGSRpt8YjgLtsNOvwFd8SIAN2oXGJ7+lhqZpTn6/ 32CLfPhphnMd8iMn5BZTGwLDpUtSD0n+UsJXmL7pvB4J9BcBjIQtJIa4sA0lW42Mwi1o tlVoXnBgTswhVB3OZO41dS+pNvizpYGDnLBUW6tHFy56XVOrOhQkdq1yyKUegk1bHERC s80PmUxXAQQ4wX5zdNUJDoGUJwgetm3Uzm5KXGl5xdV/mPxuX510hekWN2GTtsQR7tW/ 1wWTFGLm7MqTpbw7Amg8bd9CPSLIoGNiRb+nN63BVlu2crYyhu7bu7FbYlqtOT3JA++I e4Kg== X-Forwarded-Encrypted: i=1; AJvYcCVk6qVGhLhKoVRVu+vk8xi/W5NRAdjul7S7nNVnMkdX3wfhMWkN+SbAd8V1rLLAatpKEVh66ogzSGQQdldm52Kal3I= X-Gm-Message-State: AOJu0Yx7li8Pq13AXzz0bmUXt3JVa0zkgx2riuYnAu2TJ6iaD0fI8ZCM OTlNiAsZ7CuqoYtHbp0H4KrLTnMiQ/ajvwLt3hybCFqFsoKGAKBRLezvoGCtMA== X-Google-Smtp-Source: AGHT+IH8xhC1KwkLdQDQu4LfLXKYj+xTx3KtqrAondDNU4DzvJcfALCq86tdS8GT32oCif3SNJtZYw== X-Received: by 2002:a17:90a:7408:b0:29a:575c:7d90 with SMTP id a8-20020a17090a740800b0029a575c7d90mr9949643pjg.9.1709094842793; Tue, 27 Feb 2024 20:34:02 -0800 (PST) Received: from google.com ([2401:fa00:8f:203:50c1:1ad2:3268:cacd]) by smtp.gmail.com with ESMTPSA id c7-20020a17090abf0700b0029acce2420asm424101pjs.10.2024.02.27.20.34.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 20:34:02 -0800 (PST) Date: Wed, 28 Feb 2024 13:33:58 +0900 From: Sergey Senozhatsky To: Chengming Zhou Cc: yosryahmed@google.com, Sergey Senozhatsky , 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: <20240228043358.GF11972@google.com> References: <20240226-zsmalloc-zspage-rcu-v1-0-456b0ef1a89d@bytedance.com> <20240226-zsmalloc-zspage-rcu-v1-1-456b0ef1a89d@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240226-zsmalloc-zspage-rcu-v1-1-456b0ef1a89d@bytedance.com> X-Rspamd-Queue-Id: 0E84DC0005 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: yzz58xggfq99kyx4u1je6fkafi5gf5nh X-HE-Tag: 1709094843-60857 X-HE-Meta: U2FsdGVkX1+krKvwRwbUdUtxP12l3A8LYSffku1uhmkNwOb0rBVWTaH6g2qmwFwy2dDXMuEa57fEJQi9/AR9i4HfEsMjWxqLtEUaO5oJa+IxXjg9PaiJ5M73mlVwOLVACWOVpYeqsV2Dc16TPEBdueeaXNLMnMI39ZJPkuZzh62eaxj5HwqsS9kMg5HueOWFdmEbQf47ZBA/ylXThVhbqK3niFrq8J1LdFfiwX3wgGyVeTJF+lkuODdl3h67E79z1ltY1i7W/6bipPPxAnv0Nz5w8RrZIcN/Z4BqGMz4B7zJ+qMnoZHzQsGeKWVBZdTUgha/9M/1J7/UJd500CjYNlnhhuKGiuSLfl3AaXsW3AHuAl5oV/EOh7D4sV3hWDseivDi/f8eKGlT4++jCeHKP2+mlNsCy+E3MRFpmMcV/c1hHMvnTrj3QDcII3AdYOm6xv75rex2FOzvPTADiiY2twY03BlQj1/+QDyPCgu3RyfdthtPnywh1hc6/m+ELBRXJ8h1NJKyhIsmf5a0fpgu2gGlT+iDLtxQvTDlQkAcG+xgGwO4lMikLg1GfOSVWPZmRth0hF00VlhVJHQ2CjAWlK8lcCikWXVF0P2QNFHjDnelGLWcD9rASCtgF+vLPcTu/AHAIqNthT+3QKHmVPz5WGSqKOQMwD88r8sJAxg1AE5AYLZG/doOBzD6J12JffiyxNK2W9qsMr4d8H4Wem5rmmLHWTVfzFut4MMAtU+7J+TvTCo/i9Uo3XhA+SBjwKbVGpbGOhmaWIWWs+2ubjQENcwDczMhzT8g4ATSJhaNkCt/lLQt+iWw7/w78rr3KX0h4JKdDAEeBsbre0llhEerNUnR81L3TrGsNYMTiCb0Y1qpNiSXoNXzZoOt/TrdHc5CioXgGkCae1K47meNhd+ccd3vdhj/RUgahEl8KcNxJybwgQFxyrwQLdeXFfzl0ZYN523cQ1PCFZNJ7LKBw8w 9prreEO8 RqKZtcs2aDkrdQ0n3kpXG6aCjT3D5drHItCl9UA9RfbQHLvSpwTgCn1EECXfIPHI8yszGkvlAhHfthYarKP09dXxqKOZbnmvwh3SxEs9iEZxz4zuIsX5lVQAv0Beiis+DtFNwfBGN5gSLp83tVxEfEk7hAZc302WZvqVeg9raRGr9noPMeKn8yAGk0beoY6uu9qg3C40HBLu4bz1px4DvSSEFiEGDrFMjlZAMXl9bAv0VRPZmGNhWUkV8nTZ1xdq2elh3Nhj/Ei663NQBzXsmTECOqCBnTingk2fgVXClEkzOv3h965dL9jme8D1XYmskx97JBE0HzsR8Cg1UNoP1gzaWDph/UBMsgnbPBtr0BY8Z3nkTspGEzBlHtyAbZ0oOyJzgEyh097sHWOa9EyS1gqvWvkWvy5DhqYtkRofTOPQSCud28+1eyml9jg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.003543, 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/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? init_zspage() does not like to be invoked before create_page_chain(), because we haven't setup required pointers yet. 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.