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 3E27FC47DB3 for ; Thu, 18 Jan 2024 17:00:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 787756B0075; Thu, 18 Jan 2024 12:00:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 710476B0078; Thu, 18 Jan 2024 12:00:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5B0D06B007B; Thu, 18 Jan 2024 12:00:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 482C56B0075 for ; Thu, 18 Jan 2024 12:00:38 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id A57531403E4 for ; Thu, 18 Jan 2024 17:00:37 +0000 (UTC) X-FDA: 81693045714.21.67BA22B Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by imf08.hostedemail.com (Postfix) with ESMTP id 43298160031 for ; Thu, 18 Jan 2024 17:00:34 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=s0fLH0Gx; spf=pass (imf08.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705597235; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8kjrBGDaeevj+9jk3sVLGectZbotvZgvQYBHMTvFb5U=; b=mYZxHk0zcDrNzYSRLXKVmOYkfCoWT9nMar2h8iCk8od9VpxmCWg2KV9i8+4RbkIi9JihP/ MzCpV0Cu5Z9Jo0Gx+KmT48TTgr1aaoV9DeyZyoPIJwSogw2wePPZ0fi8st513AjvpYd8hT fnv66YXgTKKe3kTRmTXWd41hajJIM/8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1705597235; a=rsa-sha256; cv=none; b=rrnaDWtIiA1vfXipPJjJ4f5S5j2jPcyyZh7k2+uPdNIPGw2ZoT4/dmva1Hk8Ou1YW0bxtg 5amJQ9HUlU2uxOID/wliaRTLOpwa+Z6dPxuu6yQw+XY4MSjZp4dplJD+xPHmU20CEMCpwF KEG1JBBItImG68IaaxcM3NZNu2rzefQ= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=s0fLH0Gx; spf=pass (imf08.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.53 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-a28da6285c1so186958166b.0 for ; Thu, 18 Jan 2024 09:00:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1705597233; x=1706202033; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=8kjrBGDaeevj+9jk3sVLGectZbotvZgvQYBHMTvFb5U=; b=s0fLH0Gx8eBGMjMuE52X2Cb0qkSo3ZdT76tKOFDS5kpUkxYDGPGKaG7oiEZJKou2sj YhpO4eqof9Pqb9yby4ENTfMiCrwRfCTk8ohEvzhrcMZa9jrc64dqAs8RIo+QOXcUVxqy idR0n5dQy50EypCnDAjPM48XtPlFUEAdezvVxkJN6O5Ql0GE+3e+DIRIyevMa8hPpJ9+ o69kff/I5LSkkyqNH+WqSF+3sVf0FvXby1u6lSo0ug/lFwf+922UFt+qLXW93+tAZHAV emTM2O9PR3N0AZiERmWyP/ibCILTO+02cAl1vlSIAjb/e+mnV8XoIs29mV8rFGQ3J8kL doiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705597233; x=1706202033; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8kjrBGDaeevj+9jk3sVLGectZbotvZgvQYBHMTvFb5U=; b=MR5d54n8XxV+K8Dwo3JuDk+2dt41IbCfjZKF/yB8zhDCy2jPAr6Z1MxyG6c6xHQKMm eu3mOquWoySWyHTZ07uFNjZvPQ82KyBQQIgXhoMAA3WbjP6EgjL9jQFNGrdGzHxty4jV LIiUgP+IqsaHu6CNOLF3hicneUAVWDO46AdGBR8WtY6APrnsBW/tUHnp1cjsP615e0Z3 vpQCcJmq5eBWCW+NzN+tYoabLTntL8I3qZzfxDHxvHACwbiUi/mS+v4PNZ4bkdIs1Go2 EFexPspsOVtbIy2tCRJY6TEkYGxAflWhuWNCXT6HsP2bsIsfT9CDk3B4LjfDNKbvvGo7 XNXQ== X-Gm-Message-State: AOJu0Yx1EnzRvK97X4MzVp9ciLjDepKvZJd6f7cYTiKlCoMLZDIzBc0V /8TktFXnYfysPKiZg1kU3f89KDwW/aVBZ3yydYvt29AMe1DHDCxHK5RCkC5zOqByrvHqhl8zKxv Tf5/eN2KtpZkjYu8J1HZiSE0JkrJ+kGwGVtax X-Google-Smtp-Source: AGHT+IEY7bH4EZyhQcqbaeJB5aahjldR3PVHe/EF5sQKj6HHgdkvOZdE0UuKm5RU377WEgOy+N+2DVi3r3gxBrmCQ3M= X-Received: by 2002:a17:907:3c0f:b0:a2b:a4c1:52ef with SMTP id gh15-20020a1709073c0f00b00a2ba4c152efmr1065632ejc.3.1705597233504; Thu, 18 Jan 2024 09:00:33 -0800 (PST) MIME-Version: 1.0 References: <20240117-zswap-xarray-v1-0-6daa86c08fae@kernel.org> <20240117-zswap-xarray-v1-1-6daa86c08fae@kernel.org> In-Reply-To: From: Yosry Ahmed Date: Thu, 18 Jan 2024 08:59:55 -0800 Message-ID: Subject: Re: [PATCH 1/2] mm: zswap.c: add xarray tree to zswap To: Matthew Wilcox Cc: Chris Li , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, =?UTF-8?B?V2VpIFh177+8?= , Yu Zhao , Greg Thelen , Chun-Tse Shao , =?UTF-8?Q?Suren_Baghdasaryan=EF=BF=BC?= , 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 43298160031 X-Rspam-User: X-Stat-Signature: kigd4e6asgfizcsq8mx5c7d9b35jsfnj X-Rspamd-Server: rspam03 X-HE-Tag: 1705597234-936390 X-HE-Meta: U2FsdGVkX19irKfOYxXAliC+ttpnGfJ7BWpIRtVVN3PlUqLA3m5KPfIKlkiD5eGVchgtjfjJr2iy1DcdfnO090K/mb7CWtPxNIzgcZxDIu6jvnOoqd56ITAVVHW/XR88aRpmmHhyGPTdL/OhZZ8dfUgAA8tt8283HaXtlomRHku7a+wrRp9YHX7bRy3Vs27DlQrgyRq/WR3texJlZ2duJkLbps4ieSMhoJMbxa4crUUles7qExiPawq0kOgE5aStXc/qAb94udkLyUlrnqJFeVeLwcmthbZAkI3Maif4DedYPo3WKMvnp+zeQkgt0zNKkTQQ/SFLhj7/6J+bUNaHei18C7HeXYlx+UhkR6be3OUspdzIFFzDl5JPD45hrd2I7pl8tz1uY4c32EH6Aiqsld7LzTIrTkwET3tS6VqNasI+bvcqvFh4fjQSaUeAT0nc9isNjupJDsTOaPuBd9WhUtwo91VtA93jAbc57Ho1LAauBsx3dvhI/FIODPx4u40rzVps6JkZ0qtsKpMVBE4SzJKCt1Dp5gyUrWQ0BKr7FlhabIgVHNUuGn6BfutNKHG6meydFJPH5x6zIPf/Wr1Fn6RNcQ4RQ+ikz/Bb0sENY1m0HFTiLowuM0lokZJ0OocDCK8NWtbT5WjXv5G1u28wbuTypGDKBH0/JLkAnsx5J1ClbzjHuJ/4gMgi+UmPQaonk+PP+ypCfL1TSA4JbTSW8nAxgYB8qMD4oJEujE0OO8uBX8cQf2QRZOxdz60XWESlEiKPPb8O/jTXZxKD9TWZ0KZShCoDi13YyzHMp0PdhWMY4bg+4QuduuHfTSFobRSjj+dJskyi0qzLFAfO5e7CDwm9jE961TQOjP7CYDVvqFwXJOeLysitv+HrUtJ4YVWk4W+gsmCJgytRzVmesrhHWgaBjBx5JSWI466R0foiBmgpEu8CKXgJvfhkOuHyQTJ8rQt1ZWTr6dyj7Yb53pU yNxvOiM4 gfGJsilvR+I6QNeF7dYNC0rCxCHVtLNuWX9NaUxeG5rNTYAKWIBzDHP+qw9b58iaJoA56Qp13Vo0tv3/ejjNQ36Dn9AYlyoo9PMTKnKlx0CAyy65D0E58CHN1GQcAKdgtjtJIS+RxT+4BKRLZFm36HKXHXPfl+O/ayh7xS7Yms+ON0ZAoxFVI9aAWdgBA9lIag2ZG9VDRIm6XYKulsPua4gUAUc+7B+tuwT0g3/bB2z97yk2d4wXVf5ptoTTqpPBEmlbd/xbh7HsfOPsFCxPk+S1VyOVRR2rm68jZgxHDRTJvzm0xaQTSRNLd4w== 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 Thu, Jan 18, 2024 at 5:52=E2=80=AFAM Matthew Wilcox wrote: > > On Wed, Jan 17, 2024 at 10:20:29PM -0800, Yosry Ahmed wrote: > > > /* walk the tree and free everything */ > > > spin_lock(&tree->lock); > > > + > > > + xas_for_each(&xas, e, ULONG_MAX) > > > > Why not use xa_for_each? > > xas_for_each() is O(n) while xa_for_each() is O(n log n), as mentioned > in the fine documentation. If you don't need to drop the lock while > in the body of the loop, always prefer xas_for_each(). Thanks for pointing this out. Out of ignorance, I skipped reading the doc for this one and operated under the general assumption to use xa_* functions were possible. The doc also says we should hold either the RCU read lock or the xa_lock while iterating, we are not doing either here, no?