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 B6D09C5475B for ; Thu, 14 Mar 2024 09:25:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F55980092; Thu, 14 Mar 2024 05:25:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 17FCB80073; Thu, 14 Mar 2024 05:25:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F3A0380092; Thu, 14 Mar 2024 05:25:06 -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 E0EE880073 for ; Thu, 14 Mar 2024 05:25:06 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id B29ABA06C5 for ; Thu, 14 Mar 2024 09:25:06 +0000 (UTC) X-FDA: 81895110612.03.F636F38 Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by imf25.hostedemail.com (Postfix) with ESMTP id EC086A0009 for ; Thu, 14 Mar 2024 09:25:04 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dl4MTIwp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.222.175 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710408305; 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=ocCihU80Xv40gzd79kv18kcNVazvWx00n3HGC6M1AO0=; b=D+rrVSr/XnTNe7kXAUAuW8VsPasly543tAnPkiA+PlyOd9wIDTdmC0Zk+HZbDUNcNXO/SI nN2oeXSXO0r+HRJsfpscoLJUSRJaESI76egTrp0f29Qc+CNOx4B5e4EETsHYrhWaiXh5nu 6MpZ18HZFRgICodT+bhmEIWoNu+KuU0= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dl4MTIwp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of nphamcs@gmail.com designates 209.85.222.175 as permitted sender) smtp.mailfrom=nphamcs@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710408305; a=rsa-sha256; cv=none; b=Wbr6cCofv30tswwBQASOF81sfd+fp1q0q1/Rj/HJZFm3f1jmCH7fIQ/srmbIqgOWyBqMOW sw6LEOBmPDtpZwrqwbaMgz+eD7aaNdX/P8UVkj/SY2OBVqxmoQ0f8fanRB3Ilz0TZZ4wwe kMjO+izMYKmwJ7iNIInFVJM7UNwhU+A= Received: by mail-qk1-f175.google.com with SMTP id af79cd13be357-789dbd9a6f1so8400185a.1 for ; Thu, 14 Mar 2024 02:25:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710408304; x=1711013104; 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=ocCihU80Xv40gzd79kv18kcNVazvWx00n3HGC6M1AO0=; b=dl4MTIwpLpuMldMIePEsZMNm2yRAFns8a8gFv4sDADuJ9lIAHJB0yDjRCxOzTphcYQ 3SZ4QfOMhj9ZTN480XQ8KJZz5KBP4daJs0/XOLzqlHbGpU4IZ2bwoQ6Imxtwb3/vZxHv 4JAE3l9bUwoPN48cjiq3kOQSJY60tCWiqdPgocE4izne84IUX49B9loifi9jK2s1lLvT h6s2RJFIz750GTEBb1Bya9OugD8UmB3aWXu7Vl3YgRbqVA9KSZ9ZmwJ1f+RCQIli3nMd nSO+41M764/08o5/84+3mM1si+CTK9gXLbdEzLd0O1Ki4ASXnP3T3o+c+LmwkvU9XA3M 3T3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710408304; x=1711013104; 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=ocCihU80Xv40gzd79kv18kcNVazvWx00n3HGC6M1AO0=; b=RXI1McbB0UWUkWAj8jN5FitgaC8KSVyaHDkB/hpAji6Ks9TcSWR3Lry5rTO6wZBXIA w+PFMYx9NvvE3N+x8ygQD88KopEkM6qxrl/rL88mV4t7M/JtWpbGTBSqMss9ubMsA+FP bQhXOkHCRvnuTRvVx3HghOL8aMgJ8DMrcLHcmVzZPxc4qq99glvkIt8e8x3NnnW9ushW IH9Iikheu1F+SVB+AxNSIhTIrUwykTFJpQlT6yqUOHDLyh/BQx847TT/slFTXXoXKbMv lPr5+8EdG676KRcaFA72ce8hv3TAAhgZX9T3RTo95lVJemhTDiwLRIpKdfLHJ+cindFG TN/A== X-Forwarded-Encrypted: i=1; AJvYcCWzDtQ7AQdeyyQyEXZkhvOTDshPc1EN8uorlSYdGvwwo9nUP1VZ5s8WhM/kANw9+1O3ejD+VuEfU9whEccQUJY+r+8= X-Gm-Message-State: AOJu0Yy4HQwzceokgroGyq7oFfI+InC3XUlVmf+F11RA0QR6rE8AZsjU sEykqG7W5xiH5RQPFvEP3Zj3W/xy9pgyNe1nZTie0J+lneVSLFN5oQ0REOGLHol+sue15JHApej U+5kOCQjRHNdghG6UtpPqRJQL/oUUlvkCZnwCbQ== X-Google-Smtp-Source: AGHT+IFwd0hzTsYhw29iN2nwcK1sLtRv9RFdHPdubmJUBwzbzsvkBwHQn/1zikC66NLG0Z9cQD77SclDmWUhTSyctQk= X-Received: by 2002:ad4:4e70:0:b0:690:b66b:c43c with SMTP id ec16-20020ad44e70000000b00690b66bc43cmr126685qvb.24.1710408303975; Thu, 14 Mar 2024 02:25:03 -0700 (PDT) MIME-Version: 1.0 References: <20240312-zswap-xarray-v6-1-1b82027d7082@kernel.org> In-Reply-To: <20240312-zswap-xarray-v6-1-1b82027d7082@kernel.org> From: Nhat Pham Date: Thu, 14 Mar 2024 16:24:53 +0700 Message-ID: Subject: Re: [PATCH v6] zswap: replace RB tree with xarray To: Chris Li Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Yosry Ahmed , Johannes Weiner , "Matthew Wilcox (Oracle)" , Chengming Zhou , Barry Song , Barry Song , Chengming Zhou Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: EC086A0009 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: z4er3zqnr5jmsbf7ppx7hd3x9s7hna5n X-HE-Tag: 1710408304-118569 X-HE-Meta: U2FsdGVkX195HQ040BlglWHl0n1Emjjsq+vInBd6y42jmAsqp6N8v/SywakDheqHqeDlFX3436FSXh85+F7MZHXvt4rSfSUFOt9Z7cVav66CHQSap+vpZ+wiK6iMzKY8TUXNw+wTBiNefeJoXmsEBrzgjbi6jWv+fXddvrMSwd9CYa3O/CghZtvmFdJhQjTixm4fdmABT71lyPt1szs4MkAAbYET/D4ncOtieheT5XYcGUco5l5Zy0WFxfFgkp2pAmBPdUkWLfH8MT9l1K89LhCZg+NEyTl/WZxsqFf0Yy8EN37/x6uFM3v+UJf+Pmm1N4XUWKNM0YfJ2mFKBK/aHN0QrO/E0j5dRDvP+QjDrqiTBY40c3JYzJmgw9Gr2hslWmEZZ7M5NGBd73ndDyi2zb1vTOZ++jwUq9kMKhVtcVMPE9MuCHaW4ZrUopXje0iGDeX3fX2gZ7wnOXDWrg76tdQ8utgNzL6uNBnAO0Z0PDfXvVN+xYMu3C49NyiOtj8MoJjSOT9EFIL5RYInUbWDV/zqbaZ6Tf0rd3RDzEn0+tTVuug2tykpZGPXuSzscgTQfxuPAY0jH9HT+rWIGi+eDYQf49r5cy5mRXgLqXzhe0v7iQ5T6robXyoxSFfAoNbXKhAJ/il62kVXkM6fvsoOkQ94DhQtz6lLU6yJrp7ULxOYObCthKk0PNUMXtf/kFU6LjXlUaFAugcUxr5U7VM3pwxUlKzAi+AybiOjLW41qNA/Sz5XhcFryralOychwiPdVLYzXOI29+aGTeXjhqyGgjI2acUgEzzSLhG2bbFZbC1UslwdtwxZnqdbhVhJD1wDhNX2OZQ+fgFsvJ8MQma8r5jpyGcaZf1KhhqnOAD2hIGBxShvhgdsvWZWcAu8K6heHaKu4A42K8f/1uVL4HUmO5YKzLQ6nuuDWH93yy1piilFGqEJhCMkC0+IJzXYV7SbXilNxIwrNWkzRg4ay8c MBl9yU92 Q3TYhPQ033Y/2guPEjJdsUS5bta/+jPsw6ueLa4f/BlMofNQbF+DFWuM4kZWjXD2H3EkE+hJaJoe01nbGhKsKkbzVEdUNzIstyiZkhw7UjIkhoDH6w+cQtVTok+iMgzpNAKuKWwO1/nSkJJ9ivZRiHiYV1KzQgLKMO/NGVKOq7lpIatPr94/4QvVYnbqrstPpB/iI6kAgEjAGMpZ1gCyWXWXyNkab6G3loO/lK/EDOuK4n/8TAzWeEwoCGxtXquao9asGvpOQ2YwY5GZ1CjhRM2yJmmg3fR95gJuAE9VXy/mgtTSFGV/Uc2IippIay+4R3NK0ixvqFDIib9VwAycQd2JtjzLO7EYh5CuPl82N2oNxYDhx85Qex4x4SGB7UEyIr9tXjPy0YNhUSfUmevRK2WCe3C6Xxr9k3E7+tPf8uTCC/42+FPbtwmyycOfc2fi/71OLeEtnA05t/vw= 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 Wed, Mar 13, 2024 at 12:31=E2=80=AFAM Chris Li wrote= : > > Very deep RB tree requires rebalance at times. That > contributes to the zswap fault latencies. Xarray does not > need to perform tree rebalance. Replacing RB tree to xarray > can have some small performance gain. > > One small difference is that xarray insert might fail with > ENOMEM, while RB tree insert does not allocate additional > memory. > > The zswap_entry size will reduce a bit due to removing the > RB node, which has two pointers and a color field. Xarray > store the pointer in the xarray tree rather than the > zswap_entry. Every entry has one pointer from the xarray > tree. Overall, switching to xarray should save some memory, > if the swap entries are densely packed. > > Notice the zswap_rb_search and zswap_rb_insert always > followed by zswap_rb_erase. Use xa_erase and xa_store > directly. That saves one tree lookup as well. > > Remove zswap_invalidate_entry due to no need to call > zswap_rb_erase any more. Use zswap_free_entry instead. > > The "struct zswap_tree" has been replaced by "struct xarray". > The tree spin lock has transferred to the xarray lock. > > Run the kernel build testing 10 times for each version, averages: > (memory.max=3D2GB, zswap shrinker and writeback enabled, > one 50GB swapfile, 24 HT core, 32 jobs) > > mm-9a0181a3710eb xarray v5 > user 3532.385 3535.658 > sys 536.231 530.083 > real 200.431 200.176 > > --- > > > Reviewed-by: Barry Song > Reviewed-by: Chengming Zhou > Acked-by: Yosry Ahmed > Signed-off-by: Chris Li Apologies for the delayed review :) LGTM FWIW. Looks like you're sending a fixlet to address Johannes' comments, but I assume it won't change too much, so feel free to include: Reviewed-by: Nhat Pham