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 E0A43C02198 for ; Wed, 5 Feb 2025 17:07:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 222B928000A; Wed, 5 Feb 2025 12:07:37 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1D2C6280004; Wed, 5 Feb 2025 12:07:37 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 09A8828000A; Wed, 5 Feb 2025 12:07:37 -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 DE0F0280004 for ; Wed, 5 Feb 2025 12:07:36 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 8C07F1A0520 for ; Wed, 5 Feb 2025 17:07:36 +0000 (UTC) X-FDA: 83086522512.10.D8791FC Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) by imf29.hostedemail.com (Postfix) with ESMTP id 9B23D120013 for ; Wed, 5 Feb 2025 17:07:34 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=grwkauBR; spf=pass (imf29.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.180 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738775254; 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=A9pzUnI3bZpyKxMnavBeRYl/Cm9qoQVfi6VhDVIZsWY=; b=dw/4fXA8yJxd4haJ/zUX8tOsg4WySvxL0c94CY88Pf1Ul7P08p6IRa3B2Gyh2v4wy+7c29 vtpuSbLLafd5cDHQvrO96BUxei37v1UKpvdHCLyFbNdnnbGEI42XeFsaaTEHEVx3G/W2Ic aie31mgxbRBhcV4G+AVbej6Ke+A9dVY= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=grwkauBR; spf=pass (imf29.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.180 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738775254; a=rsa-sha256; cv=none; b=0kF/QIeJZupJ5rHdJJZOBUAOGX6UM+l5mwwB/WYvEE2nsMmr0RB8Nv7Fx1d1+RiLdiie3I W/A5ZwMdGbkWuEAIYkpDgJNNEqQt+DEqitF6QSMKuD2vEJrzy7Y/gs0vyfLQ/wUTb115YI 4Cehgt/vZB78QIJnvvs9MkQKxhUjExo= Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-30229d5b21cso71841fa.1 for ; Wed, 05 Feb 2025 09:07:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738775253; x=1739380053; 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=A9pzUnI3bZpyKxMnavBeRYl/Cm9qoQVfi6VhDVIZsWY=; b=grwkauBRG2lcBPtJweTPFvSdnoq7/nIWenNZHq/Yk0fERbYUXcFOeNod/BoIXlkohj FYQ3pfIs1+P+3NeC8wba4sbGDITJ+zNcwf5hx6CMHTaGg3LWk5SpCFZwk9wFO2da4P6w BSShBU57/lAhGr8rYaQAwmbgkkBWTR+ZuC+KK0pf7t7BuIKKpNwyygWwvDqjd1zIvRR6 Mm7H6KGEij16fQ6uS/yPhlgT8CiRtwx+CvgaIaKcdR8QepRZuWPADmWZ1+6EBbnZw8GD wKl7kvjXBZgDy2u9sJonoddYUCIO2CoRFdyPA3L22RaarSCR5h8N/0CQ2XX9O11UGOVV zQ+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738775253; x=1739380053; 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=A9pzUnI3bZpyKxMnavBeRYl/Cm9qoQVfi6VhDVIZsWY=; b=th7qIqM4kwjVOUHRFdgeM0eNNiXBdWLzdbdUabNznOQV+ervasOwLYfxcAMAgE3Qhw bz11Mygl9ygrSsgwXdunOSz5hxxeJ3JRcU59P120gVlgYlbQo1s8lMqVto3P1eTRsfbR YmfyN7UNGpGYo2WtlokXgaQ9xIDlb13zXyDL7ecZiARahZjmDs2grCMn58hVlEmSd0Yg AaFDTqaZriSlZhKkiflQprbv7WkDaJT9xjiRrMDPySylq0RI7jk7Ff4DFQ7+LT01KsfR KJx/1h7gkCGh611YCWLDyiUzs/9rbptbNrcJSZ8E8jTwRlb+d0UauTYSX5tC3YzBl1xD mEtQ== X-Forwarded-Encrypted: i=1; AJvYcCUsXq+Dd+JfEFchlVxXldDBICfXBiegr/SZYe0vXoTwWqYmquC/l3fbyNglsIzqNGlAkkjL4xud2w==@kvack.org X-Gm-Message-State: AOJu0Yxe1mOCCsE3i9o6adpwWrDlHWDBJE3y9l+G9MnOho3F01guB1TI TpxbjQknYaXLIZ+qSevjoNI0OP8dV2ruFc0uC7djLDGS33sFEyo01oDTz6SQ1bLY0ze8tXNPT1o GbVXkWLzmIPKiwvAUVP17wmzYCk4= X-Gm-Gg: ASbGnctusem9kgPgnx99OlgYawdsjHmNiLZdEvrDdK6egLaU9UVa5wZdoF609MVRPVY q/wbstUbEquHOsUGgx78NJ9LUDCgfORFtoOhPUwF1gj3sjyBKExalK7v88spKUJlGSYMmtjcn X-Google-Smtp-Source: AGHT+IFGjnhHLKHodIf984gizCKLmKMe7YT6eOLnmzkUks/Hf+ZbBdeTnbF55hu3gaNh8CaCJPekENWFL+E8zYhy7Rk= X-Received: by 2002:a2e:a903:0:b0:2ff:d2e4:8dd9 with SMTP id 38308e7fff4ca-307cf39fa40mr12766311fa.32.1738775252384; Wed, 05 Feb 2025 09:07:32 -0800 (PST) MIME-Version: 1.0 References: <20250205092721.9395-1-bhe@redhat.com> <20250205092721.9395-5-bhe@redhat.com> In-Reply-To: <20250205092721.9395-5-bhe@redhat.com> From: Kairui Song Date: Thu, 6 Feb 2025 01:07:14 +0800 X-Gm-Features: AWEUYZnzzofmPTfLgwnGGoJnYW4s7f9RdzKu-o6rq2ipILrHLFros8h4VJ03nvI Message-ID: Subject: Re: [PATCH 04/12] mm/swap: skip scanning cluster range if it's empty cluster To: Baoquan He Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org, chrisl@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 9B23D120013 X-Stat-Signature: ro3dy6uj5stdspqnty3ejwhgus6ruqe1 X-Rspam-User: X-HE-Tag: 1738775254-619469 X-HE-Meta: U2FsdGVkX1+KAUfMccSY5cRBNRDKH/jgP5BDgNBruHnlz9K1C8jyu8NaQbgEAV6s7sGC4XeCRjtG5Hu3wWwm/JWLvrI0hVjBRVlMmv1Fxun2JJXWrbO4wv0EbzETWtLU9CZRwRKtWE162RPA8NuZYH0iT3d6qBqc+0t5nOT0fxxMQDDZ5VVN4PrglnnvwJ4/zJGn8W8Zo69fdlLf6wUYxIVH2xyGRaoLSM7NSS6WTXYdsr74Rbs0XmhcdTqblcpUiT3KW3HYHjvQ9vBHQbX3EkxhdpGBXP2uYRoWlqUc/QH/HYCP95wdTB1Q2KrkZEn3UAiaz+fNUxXWrS2mpwNb6JNrCiqjxCRFlqpgvbwO17D+cPJTsdY7b3kB2YCUnch9LuvwijFLCgIEFqBNaW2eUYVWW7RoUZ9HquXab8j9KzYG/YwU+3LiLpaxSGEsLg7AH+Bb/PwKTyO8uX2ChSfDM178GwVb11Rucy/87cfMAPH9Vh/PWt4EZZ8pOZPTP59mt6wmTJB3vfPUiUDnobGOfVbM4wgIgCSOo2IdHNHN0siaA7cVSLbaJFOWZg7zIPNrRVUcaUXSNA8Y13VlKqy8DqtX/SEpaQzrttP7zu2PSMp9yF3Unkgz4ZfmtOU3elkkp+6utskrvnAKrx/nBNmXZOM60razgd8o+U/tGP+SJDc2jMZjDmGxg7T7arihKwzkeXlUvWs/aQbqMCGXrY5cOqJq4Jd1jf7t6HweT3/WVBjc97wYYEkx6fbi2ZMK8nqdlGlFHvKZBv63d2ew0CdHSKIHcKTFGo7vxIIeM0e8dJ+fOeN3WK6uKu2vBOGW679rTTn7qagc5F1E/EmOXA/hpSDibCu8EZFlEtuOqpKEsWxbZLyUpUkyQIVesrlz/ugia0Q8Ctbw+EZno3cgjYfEpba3+TLDj8t0Q9wKVeSOMP6FgvsXIMQeOSwZEd5HdK2qQd9A2sWwYy1mAc4ZmV9 aofd4BTS pm/ErWZZLWFlJhobSsLwqQYpblzJI6beTXykNaafpvv/oWd8dF287vIIFylI5JCK8m+xHOb/6QL36yHvMBkzr+EUiXfw40ep2ythZ0fXTzHmx3JlTWlcnlihxC0aQgNVJtTtRrPyilStYoFymSf9P9Oj5Yv2Efn4k8tIumdh5aIWYgwcFwcTkEVkkvQQorfmokutZSaURnGJtlAkAucZ824vH3NkRMhAfRb1n/8IbgmPL1IjVD0kkvczTXn+65j8Ew3ShjDrgRKZigZEFpTB4ClaebSFfnas1j6ncUCvjyjKsIn9T4a2EiJUHvocowBvtDwvPqWGN9SjnTfFgSjo709lfvw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000059, 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, Feb 5, 2025 at 5:27=E2=80=AFPM Baoquan He wrote: > > Since ci->lock has been taken when isolating cluster from > si->free_clusters or taking si->percpu_cluster->next[order], > it's unnecessary to scan and check the cluster range availability > if i'ts empty cluster, and this can accelerate the huge page > swapping. > > Signed-off-by: Baoquan He > --- > mm/swapfile.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index 9c9a4ec6d4c6..61efde853eea 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -729,6 +729,9 @@ static bool cluster_scan_range(struct swap_info_struc= t *si, > unsigned long offset, end =3D start + nr_pages; > unsigned char *map =3D si->swap_map; > > + if (cluster_is_empty(ci)) > + return true; > + Hi Baoquan, Thanks for the series. Most commits are looking great, but this one is a bit questionable. cluster_scan_range is only called by alloc_swap_scan_cluster, and it already checks if the cluster has enough empty slots to use, so this might be redundant. It is possible that cluster_scan_range sees an empty cluster if the cluster lock was dropped for reclaiming HAS_CACHE, but the chance should be extremely low, that this might be a negative optimization.