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 801DCC54E60 for ; Sat, 16 Mar 2024 13:33:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A10366B0075; Sat, 16 Mar 2024 09:33:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9BF7F6B007D; Sat, 16 Mar 2024 09:33:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 861606B007B; Sat, 16 Mar 2024 09:33:12 -0400 (EDT) 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 70DD68015F for ; Sat, 16 Mar 2024 09:33:12 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3EF12C0DC3 for ; Sat, 16 Mar 2024 13:33:12 +0000 (UTC) X-FDA: 81902993424.20.F8E3E6B Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) by imf09.hostedemail.com (Postfix) with ESMTP id 30CC0140019 for ; Sat, 16 Mar 2024 13:33:09 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=P6SDA5bU; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf09.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.210.174 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710595990; 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=A0atnVohOpgRx9cMpkzV7i4jL/M6ojDIx6wxbLSFf78=; b=b0SNv2qpL24xmm4DrUKQIObcTkGx6UZ4Ns2PKZZnaGYa1iLh32d3AcbOSwmyQ8jekyg+ES onv8hVZoU4ZJS6E0S9G8ZRWK08/Dskne7g5upMZYAX1EgRgEQFYO0PedzkhdVx8pJqHcVo NfsePGDsjmPQOHkanDYJntIKzV+hx6g= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=P6SDA5bU; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf09.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.210.174 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710595990; a=rsa-sha256; cv=none; b=GfKiX6FyznOMRr6Uh75nlOVDw7ZKZFnuIzUCoMrrYyJjSvCJ+bDWENHksZv2s/LNXKQw8s o7Ko7Saab9AiFqdXW6C4r0a9Z7Hr5E+uo13nAkOfMBLOAQteQd+hiRwpLtrUV+pF2CFDNj cjM69paNIjtZF82mLfCfdbuimAsRgr4= Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-6e6a9fafacdso2527711b3a.2 for ; Sat, 16 Mar 2024 06:33:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1710595989; x=1711200789; 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=A0atnVohOpgRx9cMpkzV7i4jL/M6ojDIx6wxbLSFf78=; b=P6SDA5bUtMau4V5Cnb9yNV3h916qJPJdFOSNh4JFiw/1R4D+9yTaUNTZtAzM7Xo3EK ZNkGyUQVyRpiAz7g4hJuu6ShsH7Oi3mlR2ILTH8LwWofa8wr+gUrChEV+OmjgPLbXieR pZmcqhOZo0wBHYGUfsDYfKHfwiSR9a0/YZm3q++zeSzGJB0wrTF6jBnx/64fYx0nUlCy 8cOchp7PX9zY+a9cLEgWGm/9RKVASqD6u3co0jVjjgVizW6lGyhfOh5g/mKfDUkZxvVW Q9bf5o3nWkRSkqvxqmFceP/x8OiDSWuivEs8pQdFfdGkBxTJgGemQIdVe94NSlvHnpcj qk3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710595989; x=1711200789; 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=A0atnVohOpgRx9cMpkzV7i4jL/M6ojDIx6wxbLSFf78=; b=c/brdpWMz9Nb3R3ROMvx+3OesK1rCWV0Rv496oVpKFR7SF5ctXdYA7IicaqgDHi1mE pTDrPV8HCbNX8YJmnFvim8GTa5EqCyRdqOSq+py7OMZxNueBbYUPG9P0Mzzs+h9JhqUE owdENxt0WFepCMXo7wJ5rwUHDMzSQt+NcIS+oibVj9qLuvDrgRoVEiUjh6aJrOePnyki QtETkbNag0DDzfPmfDl108UOkDQ6ibGgSWIKQAJRX94pOiEGxgfVvHro60abOEN4CWw3 xYK5giZ+N0DxxbfaqOsskCrwkphn/YX0bsYQk443S3tdH6hf7b3w3lhSPMI0rxzC8kOe UZMw== X-Forwarded-Encrypted: i=1; AJvYcCVuT1R+yNPGkT8ZmMxbVrR4pwYeEdF4PNHFjjM8lIyJPkJbwdamxW3QUGGVBCOT/FlLJz9eYs1MmdpOq3j7E9CBwxc= X-Gm-Message-State: AOJu0YxTHt9hYKh4WYmnRyAwV4sjy2o7e7c+P9oOJT6F32h9gTcrdklp bJ49Od//fWo89bck3kzBfLuFlDeBgQVCMSFIfMh2CNdGO6I2r0PmQ7IK8N7yHB4= X-Google-Smtp-Source: AGHT+IFDED0rPeVrrktx5cE7FyttQSxpxrMVZIivfj60Ggu2ysrt+2qHIrQn5CUkM8a6O4ihBsOgEA== X-Received: by 2002:a05:6a21:3995:b0:1a3:5c60:112a with SMTP id ad21-20020a056a21399500b001a35c60112amr188068pzc.36.1710595988767; Sat, 16 Mar 2024 06:33:08 -0700 (PDT) Received: from localhost (2603-7000-0c01-2716-da5e-d3ff-fee7-26e7.res6.spectrum.com. [2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id sg3-20020a17090b520300b0029f746c8789sm996009pjb.1.2024.03.16.06.33.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Mar 2024 06:33:08 -0700 (PDT) Date: Sat, 16 Mar 2024 09:33:02 -0400 From: Johannes Weiner To: Yosry Ahmed Cc: Chris Li , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Nhat Pham , "Matthew Wilcox (Oracle)" , Chengming Zhou , Barry Song , Barry Song , Chengming Zhou Subject: Re: [PATCH v6] zswap: replace RB tree with xarray Message-ID: <20240316133302.GB372017@cmpxchg.org> References: <20240312-zswap-xarray-v6-1-1b82027d7082@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 30CC0140019 X-Stat-Signature: h1jyozskfaj8ei6d48pswmobp74zthh4 X-HE-Tag: 1710595989-727690 X-HE-Meta: U2FsdGVkX18ffDUUKdZi8sP9qeEDrsvXgX3bnhgBKfa3beblWdMX2tIK1GEXMaDPrcPKOXHetmn+cZRPo+iPxo7/RmZ7FoTjSd9sXAyS10CFCTVKyWNoebasg4UKMiWAuc19WBU2VQu+TNZ7FEWZ7kaNeF7zZer060KBhqTR06uMKuR7AveSXyx3mYwJCec1yt1jA+IOjfMBSpQjCYgeuY0S3/Qg0tkjaoWE9aGYuKv+elQZ6ZCVpHS/gy5Kj8thsVRLM09yTWm5Up20hXidNW6tyBIqXL4g53ayuA8631oi73iXH13p+Gcma7uUltCGl6r+CaT4k1kkuQ1xVLC5ZQba6JsCBnydd2JVzVMRsywQAwkihXNwYsKkL5p2ELds+pxrj959ROIbyVW/uWrLt3vTXj/kzvZsLpKVi+l7vMXYvSGsJr59GGcyggyZkGW1TyYGmJ5I56wgOsoUcET0IM4XqCSD/f+0L8/sM7WhvS1CSB2t3sT3SyexWs8AgQqJBwWLJRYJVj4VR6CT96NoscTHDMUAIoG0RVognKeACMRRNNbkwDVqJmxzgCV5SWa9fCmnYG1V2lFz8copAYZrsYHVZ5kDdkijWUK3E23m5+dy99z6hQdnh8548de5q55kjcCM4mTmS2iNf4LeGj1D68bD5HyrjDz53zPtHD0DLbRt0B0V4W1qQUwWyEd0pRXLeapRRkyJ9hh/fXU7Pnv0QVZKMNcQZINLHuWnjjvkLgVCQEIaDHlz3rJ8Onl5/RbACJdCci/lmnbSd4GGxHwo22N3/RdQnR2O9VSxg5qTJRhSxwIO0RtWN5jEnFw86diLUE/D7knRfhdfvhgwjSgVRKzoXc43jlrhY6YV+R6DqMHgfMeZBQyx4ucJPpc4kCGWI7Pp58N+zd7t08k4cjLHzCxXmbraPTHtJKMHYlNc7GY5NMJobY/xJwxb3Gu1WSSjmT2ubc6dnJQzCDwNzll MIinYEPf D+6s9EPyKxUlg0NW7yWZZt0E7hBzMasPHXI34vnW5PAYT0TG8fKJ4nUqxJDrkt31FJXf6P4ifkhZKwD5UXnHEZWkMQc5kVEudc3um8poal0oI5wIgcJl0TJ4ae9aYnAJkXVv1fmgqVYQimvc= 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 Fri, Mar 15, 2024 at 06:30:37PM -0700, Yosry Ahmed wrote: > [..] > > > > @@ -1555,28 +1473,35 @@ bool zswap_store(struct folio *folio) > > insert_entry: > > entry->swpentry = swp; > > entry->objcg = objcg; > > - if (objcg) { > > - obj_cgroup_charge_zswap(objcg, entry->length); > > - /* Account before objcg ref is moved to tree */ > > > I do not understand this comment, but it seems to care about the > charging happening before the entry is added to the tree. This patch > will move it after the tree insertion. > > Johannes, do you mind elaborating what this comment is referring to? > It should be clarified, updated, or removed as part of this movement. Wait, I wrote that? ^_^ The thinking was this: the objcg reference acquired in this context is passed on to the tree. Once the entry is in the tree and the tree->lock released, the entry is public and the current context doesn't have its own pin on objcg anymore. Ergo, objcg is no longer safe to access from this context. This is a conservative take, though, considering the wider context: the swapcache itself, through folio lock, prevents invalidation; and reclaim/writeback cannot happen before the entry is on the LRU. After Chris's patch, the tree is no longer a serialization point for stores. The swapcache and the LRU are. I had asked Chris upthread to add an explicit comment about that. I think once he does that, the objcg situation should be self-evident as well. So in the next version, please just remove this now stale one-liner.