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 194C1C4725D for ; Fri, 19 Jan 2024 20:04:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 794146B0082; Fri, 19 Jan 2024 15:04:48 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 743DD6B0083; Fri, 19 Jan 2024 15:04:48 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 659066B0085; Fri, 19 Jan 2024 15:04:48 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 4EF336B0082 for ; Fri, 19 Jan 2024 15:04:48 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id F35881A0789 for ; Fri, 19 Jan 2024 20:04:47 +0000 (UTC) X-FDA: 81697138614.23.33D96C8 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf15.hostedemail.com (Postfix) with ESMTP id 7FD0FA0011 for ; Fri, 19 Jan 2024 20:04:45 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ZEwr7WIk; dmarc=none; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705694686; 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=u2Ngzertxgs5wbvnUqRoc+yVez0IqvvAyWKyMwIxbh0=; b=eeHjVo5xhNSDUfCBN7DvY9ogyalhSz/3A9WEJwHeN6PJc3pdtgQGGfNKUZiavbK16tP2Ht jO04DyjRSvIpsaLjMauRoiYAN28DsYDppVlEtURkCMDzeZC82Mw7fjKlV7bcXHveoivADT Fr3Oo4WeZn2tgy+Yc92xIH+5IHbev2Y= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ZEwr7WIk; dmarc=none; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1705694686; a=rsa-sha256; cv=none; b=kJnkxQ4T+L5D0Y6AtWlkhaprqwgo6o9ahHQU5lXWPT7Y/1tkPort++MFP6isj/Q6JCCZLf r9qlHHuWYX/jb1N8s5dV2mm/InYDwXt57L+Y6pNI4H+R2fYpj7DMSn3khW+pT76BDhLleM hJNYtw9X4mDtBXHT4T40l2SqFi45s40= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=u2Ngzertxgs5wbvnUqRoc+yVez0IqvvAyWKyMwIxbh0=; b=ZEwr7WIk9ZlwFowRWogNHvF9ce HkQAUSB9FvijMpXdW7VWoHMyVoqz2QvsHCseEsdCjSKBYqemQ7dOQbOGElE1I/iTebJK0wFNnfc0a ar3IIrh/m1qezdYgMIPIlwELmOWJJ5IVYVbv8GxW0QOUNHphM16vu/8l8nvHukkJNdFseWaeATu9f 6TFhR3AR6mU3RotDjMJkT7rPzyAWEi7GlVdGoEq3L6Y3p1ol90hJMdaEZTm8HQiPKS2mBlPwfPvjR MrwHh4rIwKrMDXW9iafpZL5RlJavkguUpNLInO0tYVbvbU1/insRWQX4TEdFrraiE7LRz3x/m/zmP G0qMV1MA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rQv6O-00000006SWw-1SEY; Fri, 19 Jan 2024 20:04:32 +0000 Date: Fri, 19 Jan 2024 20:04:32 +0000 From: Matthew Wilcox To: Yosry Ahmed Cc: Chris Li , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Wei =?utf-8?B?WHXvv7w=?= , Yu Zhao , Greg Thelen , Chun-Tse Shao , Suren =?utf-8?B?QmFnaGRhc2FyeWFu77+8?= , Brain Geffon , Minchan Kim , Michal Hocko , Mel Gorman , Huang Ying , Nhat Pham , Johannes Weiner , Kairui Song , Zhongkun He , Kemeng Shi , Barry Song , "Liam R. Howlett" , Joel Fernandes , Chengming Zhou Subject: Re: [PATCH 1/2] mm: zswap.c: add xarray tree to zswap Message-ID: References: <20240117-zswap-xarray-v1-0-6daa86c08fae@kernel.org> <20240117-zswap-xarray-v1-1-6daa86c08fae@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: 7FD0FA0011 X-Stat-Signature: 81tg73afnq65z7h8fbaeeqnuh7yx65sr X-HE-Tag: 1705694685-564235 X-HE-Meta: U2FsdGVkX1+HjgTuIMYdnKBG4LWDqtDivWnbPNzM1qX1iXfs7KcDwsPHrrQ+l76G5sdS9fhy+WlpNHNnxtCU8WsYvsm/HF29XI0zGnlaWG/RAnYy7fz7QGZ8r5vc5c7NTYDRf2rjgjQ9v1vt8eJKVf1po3m8ym6VbF8WVVZRZTAE8IzYizX6fHovGAGPUBBxPWybQgeRPufuNxJy09mRQrR8cAEMICEMpT8NbqaMwQ++T08mzvf4Ty2B0kHrcsOYqlYE8LuwPv7cDhhZTDBZLY371WOK368/F2aAYzKGwtqQOueqLKu4kssnptszMxPVZyFfFhKXr9Tm2vcczrOGStPXQAntbtdkNTyM+r8OP7+BVAUu9CjEtEKZsH5OV5Nk2fuZyxCmKh9LbVavQDG9pYzNuIrXqNCLYKXk+qS19kQZeHPq+tYBFeW+dr9XNHxy7eLqZ2z2ZyNOJMgGi7ebrRfRLXngZGrX5d90j7ow0RZTtIAqITL3Jap+b5JS+AaI9yO4+ghzL4x7caZ3xXDayCDw0VKSQE96ADdY794kiu9MYqW384ZMlb3v7jzLMZhaUjVcb31EwWtAoUtmYuWa1BeoQjJFoPoS1X/53uXuYBFnzoicLx5IWGz6jYzjkyZ81XVg1rPhbEHEKneRsZI88hzRrrO3rT+qjNS/VBKLIXbaYUeVZPIjk67ynQ8DggDWXb3SHS/B665tb390oB8XE0zsAAatotIZJ21k1wFcpagLzFyogGXmljRbV46v8FpF6V0oSJ7Z3kvaYxsrEoOU6dCFnBQu8f/Ru7mJMBZbAAX2H6hWFnfXbReTpdv4vBrzEV4M9zPNiT4VUuHo1+C8XnGSCKJrS2BENmLIuYHa3OEn+5PqZB0oCz0S7hrwQsVI8rB5qQFE92WyQPAUPK7A3VZnuutn/9S/Q5WM8qDrjsU9pqxOOl/APXzAsJ08PSNKq1p4uUk49PGSgdnn5vK ZnwZotez 1kGjZyxuXlbH1hIX6wm/KVrA+1ToqN8IPRFsbxqhcPsfXZT0eao/f3cy+T0/fnDa58nkNPZUFBr4v7JzIML0GVNhRM94E+PlNCbGN2LiuMpkLChyuQ6h4zbrhEHZz4bnZtLmVFYNgiwT2VeM= 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, Jan 19, 2024 at 11:29:42AM -0800, Yosry Ahmed wrote: > I see, but it's not clear to me if the xarray is being properly > cleaned up in this case. > > Do we have to call xa_destroy() anyway to make sure everything is > cleaned up in the xarray? In that case, we can just do that after the > loop. You do not need to call xa_destroy(). xa_destroy() exists for two patterns: first, that you're storing values, not pointers in the tree, and you can just delete the tree without leaking memory. second, that you do xas_for_each() { kfree(p); }; xa_destroy(); that's more efficient than xas_for_each() { kfree(p); xas_store(NULL); } as it batches the freeing of the nodes to the end. if your code is naturally structured so that you delete the entries after freeing them, you have no reason to call xa_destroy().