From patchwork Wed Feb 5 09:27:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 13960701 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 359DCC02192 for ; Wed, 5 Feb 2025 09:28:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C19C228000B; Wed, 5 Feb 2025 04:28:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BD241280006; Wed, 5 Feb 2025 04:28:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A691428000B; Wed, 5 Feb 2025 04:28:09 -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 8522D280006 for ; Wed, 5 Feb 2025 04:28:09 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 45A4EC096C for ; Wed, 5 Feb 2025 09:28:09 +0000 (UTC) X-FDA: 83085364698.30.AB0F3A4 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf13.hostedemail.com (Postfix) with ESMTP id 7CFB020006 for ; Wed, 5 Feb 2025 09:28:07 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Brfr4VAg; spf=pass (imf13.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738747687; 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=LKc3fZumFCD/91JO2q/vgJ8rLFG0/4maedUYtaTx5XI=; b=2QDwZ3tyzKLluKsABhCp9Lisx6kOLckedjMWgWSXSMoBx48ZAOlteyBXiwrKe4pt1LeGJl f3C9RdmT9NHZtf/2TpLaIygtlFnO7qi8vkNmjKN69EhYjomUlfxwSyzhNyUsrK9U7iBAKW vM1XRF8NbL0MUXv0K5aeapjFgGnSZxg= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Brfr4VAg; spf=pass (imf13.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738747687; a=rsa-sha256; cv=none; b=n12LSae9sJdiMn7IRilk1eXPI+WzLlsagO7oV1NKkEd+BR1WoScHOUM+hHEq1tQQPVuOFb eBDj60U9roHqPPTklzysnDEqRmBdvlTtjry3tVgLgZ9tbJnVXaSZcePEpkQf9Z9PlzKRmk m7VoA2/lDybYvMK7Suvq4i4o+GA5d/M= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1738747686; h=from:from: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; bh=LKc3fZumFCD/91JO2q/vgJ8rLFG0/4maedUYtaTx5XI=; b=Brfr4VAgaalv/1jPsVYluE059fWnHJsZzo7jelDs24h9GgIBzS5INrYbaXyON6eWM7HZze 2vEmwjWg94QHd8qClAiphf34Omx6RL7a4jUc5DXMeTjdW18kJRj/AhM+oMu8LlDU9QpukO rPUxcRwpoVw1A54W+xHkfRL0h8Jp+eE= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-111-EEDgiAEAOjaQS-4j2v0Clg-1; Wed, 05 Feb 2025 04:28:03 -0500 X-MC-Unique: EEDgiAEAOjaQS-4j2v0Clg-1 X-Mimecast-MFC-AGG-ID: EEDgiAEAOjaQS-4j2v0Clg Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 5172E1955D83; Wed, 5 Feb 2025 09:28:02 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.72.112.190]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 9B0A2300018D; Wed, 5 Feb 2025 09:27:58 +0000 (UTC) From: Baoquan He To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, akpm@linux-foundation.org, ryncsn@gmail.com, chrisl@kernel.org, Baoquan He Subject: [PATCH 07/12] mm/swapfile.c: optimize code in setup_clusters() Date: Wed, 5 Feb 2025 17:27:16 +0800 Message-ID: <20250205092721.9395-8-bhe@redhat.com> In-Reply-To: <20250205092721.9395-1-bhe@redhat.com> References: <20250205092721.9395-1-bhe@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 7CFB020006 X-Stat-Signature: ud7fco9htxy86j4pnu48rpms65qginbh X-HE-Tag: 1738747687-155232 X-HE-Meta: U2FsdGVkX19Wb6uuTKBI9/F57HprDgCJRAQSHXD/QUfsOk59BymhWFvv6WvtPUvd1CoYBFHfMmyjKDXVcLy4EL2ee9FNvZO5vnW+DHKek2J1UejkmY9AdPaI+Kimlt41tkUN4Mi7Y/9tagZwaRiKPAGrzB1p9BdUZ+bNKOcnQXjVjc6oUjeuPD1oSLZjMJD8yAI+p+t3EFzJRrrMNi2tlTD1SkSbQbN0c7MrFHLjRTbf8AaQfHaInVMt4Vm6CyIaoHL82PUsBfZiTlKrKrbrwMyQmmAqTybWNax4AgRyov5Oz1/yzY3k7WpwTVi/kCz0SjW/rLDh+i1xfX1SNVu17le0t2P1dWouh4qDCtcPHORM9z9pzreSYnAUJqhQzuwrMo/Zw5hBvVEuS/Cnn45BfHTyrMaxIhuYS1vIFS18vGvFayfwak4HacMrRSTNb2EFdKPmRGEIkPKplIRosvDVPbfTYOvGLy/0P4gLkqOfed+H5oVovRXpt62XvdthAR0m7mEtCpJ4rYJVmBeOSmmIFbKHpk9TuhZdp20o5GFhWWtlu8ajTCK0peKCcXA9DLxi2MToiuGWgfXZIrl/iZCkgRFkG9JQVzWbXG35P5OLpou6gtXNU0nTa8grjebyodgy96FxveFDe0aIf1558GaWNT+SFcsrIIEjMmzJI5jyfahmzBUNpT+okomCGkvk0xIQwW0sKPRFkkKObi97UXe3dSxIVRo+ZfVy4WZmPeSye2mXU0ze1FrpL7J4XmWZFOvOmaynKjDQvscBQOcGa9Hd6nySESwltL58GDakMF0fo60YyrFW1Xgyxs1EwDklD0/yS5Wt+Cj8iVreETJT1JXHi/FAhj8XATb+ab3GIHSlJhNDC7ED5fNbQoXwroMu9ZZdrJBg/nLSEjGko6Y0WIdchl+Gfyxja4w7TRpqIjwhWNWGWBuFtlpZXD4ESJF8XooCNQLOYMHs8xoFLMhWq/5 KM/PJIrl GP1j6KfiZER1+tvDhoeWrwR2DMHFuW3Ylbeq9NiL7ZRERSfV8r0zWAY3HwOifexHQAWSjuERiWxOAQDX/7+DKcDwHzSiUpfKg8ePDC5e7c1nn5n6oKfRoMG4aAz+kVbgx5DdbtpSX3ezFHprshGwDeTCoGoYGqRHFkSwb6ZCpbPCz+Qk4UvYoCxJWHt00y3Am1+VNfJOk8dECHNBNnSawFKgyMO9FnwU/VjYlBQ3j92AgeLpCXE0rlVz4QtRvAgCBaD3WJmSTMl/B5BT3Z5ACkLV1OSG+C7r2yywHqyp6zb3aoHeUgVx7doIMfQwkPNzFCpjyB9v6yMmxxrBVasziR7uj9RZ00rAsuLYJFe707tMOb8MyprQcqI30sA== 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: In the last 'for' loop inside setup_clusters(), using two local variable 'k' and 'j' are obvisouly redundant. Using 'j' is enough and simpler. And also move macro SWAP_CLUSTER_COLS close to its only user setup_clusters(). Signed-off-by: Baoquan He --- mm/swapfile.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index 9ee2238042a5..78b7329ad2c7 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -3123,13 +3123,6 @@ static unsigned long read_swap_header(struct swap_info_struct *si, return maxpages; } -#define SWAP_CLUSTER_INFO_COLS \ - DIV_ROUND_UP(L1_CACHE_BYTES, sizeof(struct swap_cluster_info)) -#define SWAP_CLUSTER_SPACE_COLS \ - DIV_ROUND_UP(SWAP_ADDRESS_SPACE_PAGES, SWAPFILE_CLUSTER) -#define SWAP_CLUSTER_COLS \ - max_t(unsigned int, SWAP_CLUSTER_INFO_COLS, SWAP_CLUSTER_SPACE_COLS) - static int setup_swap_map_and_extents(struct swap_info_struct *si, union swap_header *swap_header, unsigned char *swap_map, @@ -3169,13 +3162,20 @@ static int setup_swap_map_and_extents(struct swap_info_struct *si, return nr_extents; } +#define SWAP_CLUSTER_INFO_COLS \ + DIV_ROUND_UP(L1_CACHE_BYTES, sizeof(struct swap_cluster_info)) +#define SWAP_CLUSTER_SPACE_COLS \ + DIV_ROUND_UP(SWAP_ADDRESS_SPACE_PAGES, SWAPFILE_CLUSTER) +#define SWAP_CLUSTER_COLS \ + max_t(unsigned int, SWAP_CLUSTER_INFO_COLS, SWAP_CLUSTER_SPACE_COLS) + static struct swap_cluster_info *setup_clusters(struct swap_info_struct *si, union swap_header *swap_header, unsigned long maxpages) { unsigned long nr_clusters = DIV_ROUND_UP(maxpages, SWAPFILE_CLUSTER); struct swap_cluster_info *cluster_info; - unsigned long i, j, k, idx; + unsigned long i, j, idx; int cpu, err = -ENOMEM; cluster_info = kvcalloc(nr_clusters, sizeof(*cluster_info), GFP_KERNEL); @@ -3236,8 +3236,7 @@ static struct swap_cluster_info *setup_clusters(struct swap_info_struct *si, * Reduce false cache line sharing between cluster_info and * sharing same address space. */ - for (k = 0; k < SWAP_CLUSTER_COLS; k++) { - j = k % SWAP_CLUSTER_COLS; + for (j = 0; j < SWAP_CLUSTER_COLS; j++) { for (i = 0; i < DIV_ROUND_UP(nr_clusters, SWAP_CLUSTER_COLS); i++) { struct swap_cluster_info *ci; idx = i * SWAP_CLUSTER_COLS + j;