From patchwork Tue Apr 15 02:39:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 14051348 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 5A3C8C369B8 for ; Tue, 15 Apr 2025 02:40:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7390E280085; Mon, 14 Apr 2025 22:40:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6E993280075; Mon, 14 Apr 2025 22:40:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 58A56280085; Mon, 14 Apr 2025 22:40:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 364B5280075 for ; Mon, 14 Apr 2025 22:40:07 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 774B7C0AE0 for ; Tue, 15 Apr 2025 02:40:08 +0000 (UTC) X-FDA: 83334723696.28.FF03CD6 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf09.hostedemail.com (Postfix) with ESMTP id B1367140006 for ; Tue, 15 Apr 2025 02:40:06 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=QsYyQx4j; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744684806; 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=abWHD7HGRJypdiZsKpqwwuf0n8E4BGzV2LjQF8XVdqk=; b=AGeQfzktHM6gfvkXUHx+mfQBkf2c6HkOVEDtMvbkUGmBBet3VfJkXCm4jQcsMoGboERmY7 Y8jLgDZPV1QZ9LdYrKPT4OnVoi7ZyMT+LURvK77jrEe3Sl1/3VWFeUduNgidhFpmtYOn05 4UkHfHMYbsO8mtv2FmgVZJwu5HwsuYM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744684806; a=rsa-sha256; cv=none; b=ZQbPbCbqXpRQ99auZAPweX6u0OwfvVi0TvqmPcBwfSfw4oRzuLoEfADfUfodlvhzeFGydo fyZ64fpW40zLuonKWTcwAcF079GsFEKrte6gNnqLng8/c/9nmponoWfPXK8rDuGSgt0Hbo +X34Msr7ILecO/PTbHJ4RxtMi3u6YVk= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=QsYyQx4j; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf09.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1744684806; 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=abWHD7HGRJypdiZsKpqwwuf0n8E4BGzV2LjQF8XVdqk=; b=QsYyQx4jFBqvq9hzIEWJWxCoH64pDFXFhAalVm+DAdb+4sgfyJISs0X7nYW7IM5BQF8Y3B haRC8dAo60VV/XILjfTYjnbnaxeN6rFBXdGNYtl2sq6L36485qiQbX9SEzoUwY0lDeaP6P V6kGof912pkm1erFfK/0FRE33AuvqSk= Received: from mx-prod-mc-01.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-390-O-XFv-pgMZmdIzugaGbJaA-1; Mon, 14 Apr 2025 22:40:04 -0400 X-MC-Unique: O-XFv-pgMZmdIzugaGbJaA-1 X-Mimecast-MFC-AGG-ID: O-XFv-pgMZmdIzugaGbJaA_1744684803 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 5691219560B0; Tue, 15 Apr 2025 02:40:03 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (unknown [10.72.112.37]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 85319180B487; Tue, 15 Apr 2025 02:40:00 +0000 (UTC) From: Baoquan He To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, urezki@gmail.com, linux-kernel@vger.kernel.org, Baoquan He Subject: [PATCH 1/5] mm/vmalloc.c: change purge_ndoes as local static variable Date: Tue, 15 Apr 2025 10:39:48 +0800 Message-ID: <20250415023952.27850-2-bhe@redhat.com> In-Reply-To: <20250415023952.27850-1-bhe@redhat.com> References: <20250415023952.27850-1-bhe@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: B1367140006 X-Stat-Signature: ug91ga3ko7mr9pmn94n7fh1ocskc16y7 X-Rspam-User: X-HE-Tag: 1744684806-454128 X-HE-Meta: U2FsdGVkX19gWMA4yScui2ncBZhqdB37S+OPg8okvvFZ/vcdk2SuElDBDBIIn9I/RAAzm5j6/7SWtN5wFTTXyEjJGiwOaqufXNyLGouwk0/pl8dpIh6gDZdepIJQkctQAsp/s2R7zvwXrvNKgHRaZq1weiHvME3uA+yZBpx/Y5CGDwhIS5A/j4c8aKi0FLihtl/DcujUwy+feUijS77DW3t4IU8OWas5VVDmyUuKIQhHhfRYJkqt2cx+lV2+YOnukfeeLHDNyU86/8h5Aw48jxioY+4Gb+uwlrOBFHNhtmBRhuLJ6h+Th4ZF5d8D+bp1gncvXgmqkZuRLSkcoQ2QnbpnzN0Sq6xWGsrPRtrdNv1IBrURwkHYq3I4lUtHCasKQHhAjrJQ+hxwL88+fBh7BziasTB7EN0UmAgUyjoSHrOKvO2Zw4wz54vqN2l40ivG2SrxLtcKccEVcCAarKt67Av/cjkpm5/L8DX0yXx2UBc35VH2k96iWNNbK6o3s/oXu8zgm71+BLDdBKEU6CGNgH5ryCobRxuRGuISogL/4FlYm6G/ZQe8HQf5HsyZ2LrXzTzk7AJ8BbmZpNplORsMYfpM12GcFjaxZPxejqNrq5kF4dowtLXDLdD3NAM/r7/7/TP+ZOUjZuVhrbI/Vy7pl0kh4TI1kEkBSeLTqNfiFftKoMroTNBcFafEYQLTDBid8G7dsdhJE+0P8G1syojTYbHUjnEFJoY4neFf3X99Hr0xG03+0YdIIGEkncktT+3wVrbvhII1gYvzOoCe/wWO9LYwIkU7E2PZwjdyxbMtWhV5VMQVu7TCT9lRDy9x360xTv54C1Q9w/drUuApDAoClGktZ2itsAMhAJYdzsK9vK9ZTtpfYUwj9W6W3Nyesw7chu9BbUEXL4vKznZBDxeVqcPXgEz7enZ6H6GWY0EN2HL/et3/ewc5sOpCiIN4XTCwTmx2UImruJigJe4LPsT pyFfx9Ps T/Gh+7R9IJnzChejf3l72HJ3fQEYk6sMZ/+6D2SY687zILlTTRvKOd3bp6BaZzIaeF72LIYLIV43qjdxCBsfg6ZAzkSALbagpYx2u9zTyc+0qFGDrM+lyJFZEgwwUDVlpHOL8g+JnhANAS38bsX0Kojwp5/VX+01cJAHy2RwS4iTObKVZXgmUK1Npl+f+kwIiphWlbRD3lQzi7uk8+S4iOU54ZvcaV/cHw2uYVH3qv7xoZO9/zEArAvUN30u4ArBeLKzOdJqS/cVrcP39+DgE6q/HRmQyfHTUnhbhEu4uoqQgvh/nmVEptfIKdBEpqj1OYRCBhTo9/guX4y5oDcTj30oCL5tWSiaORlkQ4SHPWms/UUemPoCqFMnkaA== 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: Static variable 'purge_ndoes' is defined in global scope, while it's only used in function __purge_vmap_area_lazy(). It mainly serves to avoid memory allocation repeatedly, especially when NR_CPUS is big. While a local static variable can also satisfy the demand, and can improve code readibility. Hence move its definition into __purge_vmap_area_lazy(). Signed-off-by: Baoquan He Reviewed-by: Uladzislau Rezki (Sony) Reviewed-by: Shivank Garg Tested-by: Shivank Garg Reviewed-by: Vishal Moola (Oracle) --- mm/vmalloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 6ee7fc2ec986..aca1905d3397 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -2128,7 +2128,6 @@ static DEFINE_MUTEX(vmap_purge_lock); /* for per-CPU blocks */ static void purge_fragmented_blocks_allcpus(void); -static cpumask_t purge_nodes; static void reclaim_list_global(struct list_head *head) @@ -2261,6 +2260,7 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, { unsigned long nr_purged_areas = 0; unsigned int nr_purge_helpers; + static cpumask_t purge_nodes; unsigned int nr_purge_nodes; struct vmap_node *vn; int i; From patchwork Tue Apr 15 02:39:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 14051349 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 C71FBC369B4 for ; Tue, 15 Apr 2025 02:40:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 96C3928008E; Mon, 14 Apr 2025 22:40:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 91F2B280075; Mon, 14 Apr 2025 22:40:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C19A28008E; Mon, 14 Apr 2025 22:40:12 -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 5CA8C280075 for ; Mon, 14 Apr 2025 22:40:12 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B2ECE140AC0 for ; Tue, 15 Apr 2025 02:40:13 +0000 (UTC) X-FDA: 83334723906.28.644BFCF Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf21.hostedemail.com (Postfix) with ESMTP id 07DE61C0006 for ; Tue, 15 Apr 2025 02:40:11 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=LbG90SIh; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf21.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744684812; a=rsa-sha256; cv=none; b=2qLrreso5kVXjjp/Alr4bTDRyMNG8zmBJQKjVWqTSBK99MLfckRnWHz/wBXhCGk5McBt0w 0uKm2ri9/NAk4Eoz7tjQ570C3N/ErFcUggQd2ze862R8As80paSobKpVmmOBn6bGa/iJ1C Udh9sq/ZUh32O9ldvU/kJ3wJ4XLCVH0= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=LbG90SIh; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf21.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744684812; 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=xaA7QUljbHhdtc6rrmuJ0uIfqNU2ZokdPYOHiaV6YkU=; b=YN9HxfrN34vI+xrIPbeb2amNgb7PTTrWdIBSb/LLlQ/VWmPWQGCRQXXEYgvOT5O4V4BFJZ XhiZL9hEQx6QKvdvvpb4otSVhzKhzuPrbNjcjwueiFYEE6oAAO0DWbzBouOJjV4HUOMLSV u+OfOr1pINyIEAjNTnJHImnUvFpK33M= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1744684811; 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=xaA7QUljbHhdtc6rrmuJ0uIfqNU2ZokdPYOHiaV6YkU=; b=LbG90SIhCrI+JZjPF2cT55up8+S/zIwVy3OFVHxQA7QcjAdrytDYAe0MWGA4eA8Qx+zEtB nQuwOU9Wvp4a/Nx/t3kiVatN1wIUAlNqzQWaasyhyCgYtrN6rXVG1lA9PqbOtS4sUD4z1K 1tnvoqlsYTCYOGxA+5sM8eqlNeS8exM= 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-614-pzPVa-zbM5GJ1NFvad52Ig-1; Mon, 14 Apr 2025 22:40:08 -0400 X-MC-Unique: pzPVa-zbM5GJ1NFvad52Ig-1 X-Mimecast-MFC-AGG-ID: pzPVa-zbM5GJ1NFvad52Ig_1744684807 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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 8D3CB19560B6; Tue, 15 Apr 2025 02:40:07 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (unknown [10.72.112.37]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id AB498180AF7C; Tue, 15 Apr 2025 02:40:03 +0000 (UTC) From: Baoquan He To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, urezki@gmail.com, linux-kernel@vger.kernel.org, Baoquan He Subject: [PATCH 2/5] mm/vmalloc.c: find the vmap of vmap_nodes in reverse order Date: Tue, 15 Apr 2025 10:39:49 +0800 Message-ID: <20250415023952.27850-3-bhe@redhat.com> In-Reply-To: <20250415023952.27850-1-bhe@redhat.com> References: <20250415023952.27850-1-bhe@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Rspamd-Queue-Id: 07DE61C0006 X-Stat-Signature: hgg7y5zm1q558muyhxycyb1dp1se9dfr X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1744684811-527942 X-HE-Meta: U2FsdGVkX1/ApcF+hAmFn8/4ZkMJrNJ1atF3s5aNgb+VKgSWpa4XCPEuC7CMGa5eGVMS9ibQCRF5QEI0pqS32801P2QdCNfaTdJOr/9jGDkapZ+CVTbEUDaVTQr7jo4CuTbSw5kjFHDv5ev43tIVq/DgMJxN8usjm8CkCh/YZtg52Wp55Wt/30H0W+DJ6UB80g5zBB6QYOf6sUrZfAtMavQdq4sPR71fk4WbEZrzXulBFrjAKjVBqK+A8RPtHkYovc7IpvBDWnG3DgilYd9iwq5/JSr/c9/JAJMGJqvsIJbrWz2OmvpqvXOIqp+uEXgeJo1QDuL87FZAhyGm0M53KFXL2lzXSLEv0Kv9UsfeVRef4TJtQMRE8IHKZawsCUGepvKXHkBsmoIzFTNG0L7ZGjxujOrzP01dTavavIhTyr6O8W+7isdgEQe+x9X7VKWGSVhQjom+J3Cb4/Qc1eGn1WNfV/BRGbI8j9P48SzqOY6GIajzmnRTZlSW9o1o1SJ6lALQ32EZcDw5gh00uhED0Zw3g/g6iYtnAP33y1FobQ6a1bvfeySi8iIvAr4F9YMKKWTzsVAqjudANHXWyBDkgbqDOSRihDX0TKQNXReX+gG8tQQjvCJhpwf9zddeYmih2Vy9wOoUCgWm27l42na9AOYWSRiI4vzWzkl39pPaGWUs/cePKn1rn6BrNZM3Dv1uOjSM7owIdMJlyaT+dnEc7w+Tc3Lqkp9QLjYxb3+RTO5auvIGRMYEbvErK5csM+1Tw/IqbLb5+vm1DvlqOH+k6RBKHKLYrvf2nygHmocdAVYXIr6G9Gf6mVE/+Yb6yzgNgUXeGxSaGsrviY15HMXSro3HfuI1ffUA0SN9ZvLR3b3o7c7V/7m97ojjLvsVIb2td2oTJlWegqP8ZYsuKPzLxmpWJ9Yzba65RSgSHDo5YWXP7Pkw935yyqJBYghImXpZA5eabDzx2Fm5FtJH5kj oNq+R2HA +H52sDXY40pfJDijikOaixoZDaNP6D9r4KGsdURuOL7/jRG2Xag8tTs2Df3ZT1A88t3ZvhnnnmUV38KKGElyMO7dn+a3bf6if2oF+4vCOEpwQLwgya83eis6ndyLMLtxBVeHvcSm+3BkY/9Ij4MWguRg53yJ9Gx5pBrpjYIkWSWqP80oaYXeTwInkBm6yhb6BD2Ged8v/wiq7Sc/mr4+8f2ugxFBgi+BaLBxdFi4mDkEJOOgkBcBP682w1TwVHCaxW++p3v58KLGkoYYwMPnuO00MTLvxwk1yBLOi7a6Ffy1FaZ4MnTbWkMGLEMJ4Ap9ZFZvx+HNxUw6MC+QkiZ12GxOAC1jAzjHL5HoJ1HOi7cmVbHrdFOs+N0voLg== 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: When finding VA in vn->busy, if VA spans several zones and the passed addr is not the same as va->va_start, we should scan the vn in reverse odrdr because the starting address of VA must be smaller than the passed addr if it really resides in the VA. E.g on a system nr_vmap_nodes=100, <----va----> -|-----|-----|-----|-----|-----|-----|-----|-----|-----|- ... n-1 n n+1 n+2 ... 100 0 1 VA resides in node 'n' whereas it spans 'n', 'n+1' and 'n+2'. If passed addr is within 'n+2', we should try nodes backwards on 'n+1' and 'n', then succeed very soon. Meanwhile we still need loop around because VA could spans node from 'n' to node 100, node 0, node 1. Anyway, changing to find in reverse order can improve efficiency on many CPUs system. Signed-off-by: Baoquan He Reviewed-by: Uladzislau Rezki (Sony) Reviewed-by: Shivank Garg Tested-by: Shivank Garg --- mm/vmalloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index aca1905d3397..488d69b56765 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -2436,7 +2436,7 @@ struct vmap_area *find_vmap_area(unsigned long addr) if (va) return va; - } while ((i = (i + 1) % nr_vmap_nodes) != j); + } while ((i = (i + nr_vmap_nodes - 1) % nr_vmap_nodes) != j); return NULL; } @@ -2462,7 +2462,7 @@ static struct vmap_area *find_unlink_vmap_area(unsigned long addr) if (va) return va; - } while ((i = (i + 1) % nr_vmap_nodes) != j); + } while ((i = (i + nr_vmap_nodes - 1) % nr_vmap_nodes) != j); return NULL; } From patchwork Tue Apr 15 02:39:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 14051350 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 86631C369B4 for ; Tue, 15 Apr 2025 02:40:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 496BD2800BB; Mon, 14 Apr 2025 22:40:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4456A280075; Mon, 14 Apr 2025 22:40:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C1112800BB; Mon, 14 Apr 2025 22:40:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 05267280075 for ; Mon, 14 Apr 2025 22:40:17 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 36BCD120B19 for ; Tue, 15 Apr 2025 02:40:19 +0000 (UTC) X-FDA: 83334724158.17.FCA01D5 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf20.hostedemail.com (Postfix) with ESMTP id 76BAB1C0003 for ; Tue, 15 Apr 2025 02:40:17 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=g2pAhOLz; spf=pass (imf20.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744684817; 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=aHl/Z9s4nujmOJmJ3+sr23NFZCZ38U3X11XyM8VuKPk=; b=snwAPqvLVw/gARUti4Frb/3EkOWxnzRaw5D8PtoKnwTFo/vYR0WmG1zXtfnnUArgERv6Ut 0KECTXMrGr6V4DeGU36TsTI+cgtcRvY5nIDnU19baYjPQK3nc1AyWxD+eTfaowig+Dh9e+ 5vy+vhUxG0X4px6jwpeGQGWrqF4bwC4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744684817; a=rsa-sha256; cv=none; b=F5kijbHfLYy7TfTAQOLeA2PxjwiUwsV9WMKV3EV6N4VL4NTn5gbjzM9oMkeuhofbYqZDTd EswS9G7mbtp25TM9knjzw1fUYU+rgDfiKidPdm+hVSnBEbQ4NV9EfBUGvyc3lCuuAX922t PKM1g5f4xSZ9k7F9Y+UlvMaVp8B9ujU= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=g2pAhOLz; spf=pass (imf20.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1744684816; 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=aHl/Z9s4nujmOJmJ3+sr23NFZCZ38U3X11XyM8VuKPk=; b=g2pAhOLzA1h6i64ebfLAUdZjScB3BmpYcvDMxk2h7ZH356BeCRBYqC17YFTvQnCuh+FFEk dbfq0Hp81t6df4yzMdpSHRoOWK4F6Iz6O9mrzoiTT9dLtVKT29NDLhCPpVtwmHTzaooD+Z xSPAfqS6jvBF9zAi8fTr2TjR1ozKBo8= Received: from mx-prod-mc-04.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-618-Y0MOwrwTNliPZTXflYU4iw-1; Mon, 14 Apr 2025 22:40:12 -0400 X-MC-Unique: Y0MOwrwTNliPZTXflYU4iw-1 X-Mimecast-MFC-AGG-ID: Y0MOwrwTNliPZTXflYU4iw_1744684811 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 4425419560BB; Tue, 15 Apr 2025 02:40:11 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (unknown [10.72.112.37]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 4D45E180AF7C; Tue, 15 Apr 2025 02:40:07 +0000 (UTC) From: Baoquan He To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, urezki@gmail.com, linux-kernel@vger.kernel.org, Baoquan He Subject: [PATCH 3/5] mm/vmalloc.c: optimize code in decay_va_pool_node() a little bit Date: Tue, 15 Apr 2025 10:39:50 +0800 Message-ID: <20250415023952.27850-4-bhe@redhat.com> In-Reply-To: <20250415023952.27850-1-bhe@redhat.com> References: <20250415023952.27850-1-bhe@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Stat-Signature: 8jb3ynj3e9btrb5e6hpoh8bp4e65w8qc X-Rspam-User: X-Rspamd-Queue-Id: 76BAB1C0003 X-Rspamd-Server: rspam08 X-HE-Tag: 1744684817-845300 X-HE-Meta: U2FsdGVkX1+QP6pmv3GeuFfysoxOXDKhH1Zhc3t3O/raqCrjCo5sOF88c9vqdPHvF3cFyHx2zm30kKaCcpm0r4tSJdu7a8tYyE88HwK7Pf3DQEA9fREBMPsbbIq0ta3butdO3NE/eQsDV0wUaReow+ifKHRhTIv1be96RF2qYgARxrIs4xR38dh30BGu5CR4yBt9kR3vzvA5cJ/qUumpWOkFFy04OjQBkplxpKFH7pd7ax5KkE1wRP/w96oe/IzA/QQbv85sd0H1ILZ+JwAff3WPE33F/GoJmLwu+hocQ5IZcfXAVMrEeuyHnMumDtMrG5zBJIje4ft0KM8Zad83+onh9QX79tJtRSpSjXCL0JKFDpLI4vwHm1uC0sZRxzI/eJSr0NgA3CFWlWP0z9qyE8T7TgaedjZDAQtjFvuuIikqI8t2gRkQP0gTmb0jyLC0HHJztXrs9oyoRuZfRxjwfpjjeVMaVdrh0aZiL7pBkBwCddApLEkaXMwX1NvSYm4jhsqdaaOcu1y+yVmsMu6rDPS6R56xL1ZuSOIGbl3uoaEVfBq6ZlPu27nxhfYBeUExYRbc2bvfwuobRJFkktWw73mfI1asdnNBHJH42LTfOFeC30EK1NUZHzqmz52wA1I7InYseQ9LIFYBVYYFANxleIIQ4UpRok6Q/evgPocAjAz+lWOh8lx697iYsCzmGEWrOTzBVQZvWKHpec1L6Kz4XHMrXjHSlmN4hj+9BBF+JZAb2k4O7vB2fgI7njSW649oCzIvceP92+ATVAqk/9Boz5w6Zcpobzvd8OUqAcdAG70HimXBNeyKI0lVL11JcwecnoZyTWD6eZI3GdI4COqxYpkYV3M7cEZGLRF/gAlaZvhwwh+J0aEheU/2QyZVB96jIsaPvlfeT1GWWfwdmYZrCRasMfIpk3eWMnktYgNEG14ujhwoy6iaMR2FhNmj83YNFEHXR62IFpLzzrNE/uC sj0DN3TQ p7FLw5HO5SLu0+JR2u64wnFrSWv6WcXi1PkYX0qmGlI4nQOo+O9OAeG40hSLNqN8OgUYfmArim2JctmpF9a2it17wscmx6ewflWfxfsoLCOIoAjD3wo30TpeBEHY75orq0IMTHDRSviFa4o/wp3XCA0v7OBk22nw4CUqeGoAV6gy4zjGG/PG6i+P7PvstQrXLBRVZDJU+J7oSUFbkFbmSRv+2p4O3X8OH43/yMQfdSz3JFcbGkLkKjxjUp/2BM80ZNWl1+xM6DAsYegzdA7BpbT5Xxm87nMOl8SMuVlIkPb7RMycahNicI4R7duuHAb+6Dn5IAEyY7MrJakhaVjCgCbFJ9hrJwx+Zjs7VaTVve0ur7FI2mYvqOi6QkGsiyBCjcIXTIO67ZDVC4tzoRLLY2UYvLqVawKV6Bg6z 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: When purge lazily freed vmap areas, VA stored in vn->pool[] will also be taken away into free vmap tree partially or completely accordingly, that is done in decay_va_pool_node(). When doing that, for each pool of node, the whole list is detached from the pool for handling. At this time, that pool is empty. It's not necessary to update the pool size each time when one VA is removed and addded into free vmap tree. Here change code to update the pool size when attaching the pool back. Signed-off-by: Baoquan He Reviewed-by: Shivank Garg Tested-by: Shivank Garg --- mm/vmalloc.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 488d69b56765..bf735c890878 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -2150,7 +2150,7 @@ decay_va_pool_node(struct vmap_node *vn, bool full_decay) LIST_HEAD(decay_list); struct rb_root decay_root = RB_ROOT; struct vmap_area *va, *nva; - unsigned long n_decay; + unsigned long n_decay, len; int i; for (i = 0; i < MAX_VA_SIZE_PAGES; i++) { @@ -2164,22 +2164,20 @@ decay_va_pool_node(struct vmap_node *vn, bool full_decay) list_replace_init(&vn->pool[i].head, &tmp_list); spin_unlock(&vn->pool_lock); - if (full_decay) - WRITE_ONCE(vn->pool[i].len, 0); + len = n_decay = vn->pool[i].len; + WRITE_ONCE(vn->pool[i].len, 0); /* Decay a pool by ~25% out of left objects. */ - n_decay = vn->pool[i].len >> 2; + if (!full_decay) + n_decay >>= 2; + len -= n_decay; list_for_each_entry_safe(va, nva, &tmp_list, list) { + if (!n_decay) + break; list_del_init(&va->list); merge_or_add_vmap_area(va, &decay_root, &decay_list); - - if (!full_decay) { - WRITE_ONCE(vn->pool[i].len, vn->pool[i].len - 1); - - if (!--n_decay) - break; - } + n_decay--; } /* @@ -2188,9 +2186,10 @@ decay_va_pool_node(struct vmap_node *vn, bool full_decay) * can populate the pool therefore a simple list replace * operation takes place here. */ - if (!full_decay && !list_empty(&tmp_list)) { + if (!list_empty(&tmp_list)) { spin_lock(&vn->pool_lock); list_replace_init(&tmp_list, &vn->pool[i].head); + vn->pool[i].len = len; spin_unlock(&vn->pool_lock); } } From patchwork Tue Apr 15 02:39:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 14051352 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 3A609C369B2 for ; Tue, 15 Apr 2025 02:40:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 64AC9280075; Mon, 14 Apr 2025 22:40:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D6EA280118; Mon, 14 Apr 2025 22:40:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2CA87280075; Mon, 14 Apr 2025 22:40:22 -0400 (EDT) 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 0EAA32800BE for ; Mon, 14 Apr 2025 22:40:22 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 772F31A0861 for ; Tue, 15 Apr 2025 02:40:23 +0000 (UTC) X-FDA: 83334724326.12.C055D74 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf03.hostedemail.com (Postfix) with ESMTP id A0E9420003 for ; Tue, 15 Apr 2025 02:40:21 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=KTQa6Tt8; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744684821; 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=Tuu/lyEGrQ5huyvs2A1U9HCIOm5LTsOq/3jwVMuJmBY=; b=mJ8xGlzmwH53Qfs6V9dHb9CEYbWB45m/tgdE16IDFMhOEZx/OhQ2mz5ell+iPeXG2aGuof chCVYSXKh1RJSnec6SdhFm/2/IYyxZrai5rdO8SgehdRQWkm7k6qyLe0LY+SzYbXnELSYy Wk8THdfhv4lYJdRsokEl97IWOOoAVNM= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=KTQa6Tt8; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf03.hostedemail.com: domain of bhe@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=bhe@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744684821; a=rsa-sha256; cv=none; b=StAa3a3LFVnpjE8vhyo8Vp/4hRLWy0ihNewAZUjtzNw2jTRQPeHVRPliL/EYYhL85s34TE 3xH9cwBIEtCwI0ZQU+0L+frRX9g38pG9xk4ka5LPN5WTC7664gJvTOt5pq/mrNIEtjr6YR Big6YHG3IPOHU1jYysbzU695kZQ+utk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1744684821; 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=Tuu/lyEGrQ5huyvs2A1U9HCIOm5LTsOq/3jwVMuJmBY=; b=KTQa6Tt8YjpN7ztKb279cHl9RhQL5vyS8XJ9ztmPg+QzpYyywSZUOb67/C+rmusmRoRYLJ x+fBKcToMtwTJug/IPUF7TdTDywOeWaj7NC1OgC0n45iK6jsEOdpQ5NIaB6HCpqbp7SyJF K5rarxKBfuruJfpYIaOwE8E9RyIQDJE= Received: from mx-prod-mc-01.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-301-a8lRE-JPN2Cate1uTDxBig-1; Mon, 14 Apr 2025 22:40:16 -0400 X-MC-Unique: a8lRE-JPN2Cate1uTDxBig-1 X-Mimecast-MFC-AGG-ID: a8lRE-JPN2Cate1uTDxBig_1744684814 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id AC72319560B7; Tue, 15 Apr 2025 02:40:14 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (unknown [10.72.112.37]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 03A6E180AF7C; Tue, 15 Apr 2025 02:40:11 +0000 (UTC) From: Baoquan He To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, urezki@gmail.com, linux-kernel@vger.kernel.org, Baoquan He Subject: [PATCH 4/5] mm/vmalloc: optimize function vm_unmap_aliases() Date: Tue, 15 Apr 2025 10:39:51 +0800 Message-ID: <20250415023952.27850-5-bhe@redhat.com> In-Reply-To: <20250415023952.27850-1-bhe@redhat.com> References: <20250415023952.27850-1-bhe@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Rspamd-Server: rspam01 X-Stat-Signature: bni8tnntz8p16m6fcqt8qogtcjjiu5t3 X-Rspam-User: X-Rspamd-Queue-Id: A0E9420003 X-HE-Tag: 1744684821-373466 X-HE-Meta: U2FsdGVkX1/JNKbts0xK6jWKZxVtNRWRfRQy6uKS5ZQpUp/N3J+mw/ElOVYKDNAWUBDXJWX5uNzpDai5GrJCzWtftzMxhgIobXFPAjOLoNp/fkFuVbAaCk1Re5XUzORUiJjltNdNaAbPdERaBkG6TYE0oKVk6WMmI20h3aDyOomEYe/O1DlQmfTUSfxaLJ0uGiRWfUeE+D99tTE1K9tbv7SkpRIgxTWfM9SPue/Jvp0Xiv8cMRhYxthc2eFeDUeOF5s7aM6SrU/4eOZOTMrER9SVX4nLDyzempRvDXt2Yo2q+hsbOsgZ7y9kh33skx8L61mawuezA7DCgEFQ10Y1AjK/0cErf813HNvDHHMdmVGq5HyVm9wZF/WOA+G8cuzCaPw5ZEsa/MlQHnkBfNAUvRBFsJl7Z45n5chScCkNYN042RnObvZrXfCy5Tni0cLW+Wdjt6AA8ehUZTTe9smpIbV9xW1hQPLtGNBtI9fqRt3DOeXgDqEaY/FuptNeLn+XgSL5tptMElIsmT66mvIVORxw6ahHIzaniP4M5xvKprZKsdQCE10fCV17R+cc+5YYMlYTNiA/JmJygq+NNPLfLxuxkrkh5V8q+7LR1igY0Olvzs+sniI11yRote2wHMjh/BDHA9x6/vszMmY1komUG5YVTOlEjyeiUExObPtvAtMhnjUjJvoQrEl2E824Ui8g+NsDE5y6k/NIbV34FQdGee2Fi3fOgQ9gnANvFG1gdzLXqJxFC5yxMXGqo8DceaYx5jpwld1uHH43ugk3ifME2qPXbNvgrkwfcUs3n56BvIQV6bxA37SbM2L92jxO8TvKLMsRJc7Q+zRRgUjEgDGewopY8UQJQ7BCaYpsY6RZqEqThtDwwZmfR/WeS68mYdmMyU5zGv9LMTq0pIyyN4E2erYoclRlIaXNlxGoV3Te3isu0XjFbIdrKXpiicSj26NfKSXqMI7wSpjEiWgYD+L /4U0bpMK ax8dAMBFXZDR04uKsyogXars4WvdPpS+QWSKBRGKZ1QL+tqYXY7NzbmiiforpeDNXI3gfDWciBI8ptvrhUvDLAVMkJcVAxiUJFHSygKd38UDOQXUB42uodFKD8xipKGzLSp4WDqXm1OsE0NRqKGBBPAoRSQhZZ5jOp0e91MWiYUDGHc7UTJJrZ6I17TiUQnCKkeg8ZSzwKZa8ScwuzE5X9DIUq/NuhT0yKLhXX13p4yfQB0Y2k10lGcF2hbVKzBPUSSyLu6l+6pK1yOeTbA9HNhx8a12TTSNGi8JZsMOHV/1gXjf+HNv3QtmlrI7deIQ9ZDcS8uuehtrwY5hlkRowWBGYgcjVt1CM6pThuMrw9PXm94ZGUFpAVdWVWQ== 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: Remove unneeded local variables and replace them with values. Signed-off-by: Baoquan He Reviewed-by: Uladzislau Rezki (Sony) Reviewed-by: Shivank Garg Tested-by: Shivank Garg Reviewed-by: Vishal Moola (Oracle) --- mm/vmalloc.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index bf735c890878..3f38a232663b 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -2930,10 +2930,7 @@ static void _vm_unmap_aliases(unsigned long start, unsigned long end, int flush) */ void vm_unmap_aliases(void) { - unsigned long start = ULONG_MAX, end = 0; - int flush = 0; - - _vm_unmap_aliases(start, end, flush); + _vm_unmap_aliases(ULONG_MAX, 0, 0); } EXPORT_SYMBOL_GPL(vm_unmap_aliases); From patchwork Tue Apr 15 02:39:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baoquan He X-Patchwork-Id: 14051351 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 8A253C369B4 for ; Tue, 15 Apr 2025 02:40:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 403A82800C1; Mon, 14 Apr 2025 22:40:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3B1CE2800BE; Mon, 14 Apr 2025 22:40:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 22D8D2800C1; Mon, 14 Apr 2025 22:40:22 -0400 (EDT) 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 02989280075 for ; Mon, 14 Apr 2025 22:40:21 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 2D4C380B51 for ; Tue, 15 Apr 2025 02:40:23 +0000 (UTC) X-FDA: 83334724326.06.A921660 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf01.hostedemail.com (Postfix) with ESMTP id 5C37840007 for ; Tue, 15 Apr 2025 02:40:21 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=EkiBYZez; spf=pass (imf01.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744684821; 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=BiTd6gkzO3xlq1GH+oaUM8JNSi1IBXTiwuoOQeUrUeY=; b=7pl3XPDkPvpMYxAS4+8cu0Rj3iUJY+z2dPchv/pH1vdy2FMRY/frYfM2L/3ICEPCF+daUq AA8DEvwFc5GrxI2qhMRUP5A+b1JTaFbA47/AQc/gDt0xMx0bIbxOpCdi0zxAbvuk96npkn u16pJf7z5JfbwkHxJJoxEe7LrDbMPmg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744684821; a=rsa-sha256; cv=none; b=SJNmCFxWErkANatMOM3pUnSfWHW3Y2mCs9sbdtBKvKZDKVX5eDm71Wgj1L1WgBmS/OhhiD jjAp4z0ZeXpsvtMK5yN1M67XK74EQ978+3wALf8rw5xfI5HwkfQ/INdmSKXyV7YITSdDuL gKvyB36ob/96YISWJ+AlqFZljYc3S9A= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=EkiBYZez; spf=pass (imf01.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1744684820; 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=BiTd6gkzO3xlq1GH+oaUM8JNSi1IBXTiwuoOQeUrUeY=; b=EkiBYZezB6N7cdYR7P8769mgom/UNryU7BQJ6Q/s9sA5GbrsIP1Kfv/0jEosbBlD3qfh03 uGptXhv8Je5kB5dGZ5o1SWmcxZdT0jW1KWE1JrT8GnVm4p0POG8RoMW54Rf6WnfI7K3iz3 a7uu3xwPnRyRzjQSrH8GsrbFXzSxyTY= Received: from mx-prod-mc-01.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-54-QAQo5PuTOp6H9Q-QuYLKpw-1; Mon, 14 Apr 2025 22:40:19 -0400 X-MC-Unique: QAQo5PuTOp6H9Q-QuYLKpw-1 X-Mimecast-MFC-AGG-ID: QAQo5PuTOp6H9Q-QuYLKpw_1744684818 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1AEAC19560B3; Tue, 15 Apr 2025 02:40:18 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (unknown [10.72.112.37]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 6F3B8180AF7C; Tue, 15 Apr 2025 02:40:15 +0000 (UTC) From: Baoquan He To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, urezki@gmail.com, linux-kernel@vger.kernel.org, Baoquan He Subject: [PATCH 5/5] mm/vmalloc.c: return explicit error value in alloc_vmap_area() Date: Tue, 15 Apr 2025 10:39:52 +0800 Message-ID: <20250415023952.27850-6-bhe@redhat.com> In-Reply-To: <20250415023952.27850-1-bhe@redhat.com> References: <20250415023952.27850-1-bhe@redhat.com> MIME-Version: 1.0 Content-type: text/plain X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Rspam-User: X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 5C37840007 X-Stat-Signature: k8iojzjebz143azjg3etphgejhgqx58b X-HE-Tag: 1744684821-874390 X-HE-Meta: U2FsdGVkX1+vsWsFirDtDkhCQd0BZW7ucFMemhE2x698LWJh6XGPwdA8giprSzZP6NmB6n+EMy1UGBYkGQxUe6Brx+iC68KDtl89FDavK/bq6cQXpCiMyclT98ORhjz6vxB0/22Yu5mtABylsANhjbS0mhLWa/JlrfJSp88e8eQ92UCuNzJu88b9No8R3+K15fQjefsj+I9jy1baYCgz9AVzM2++hd0a0eZQCKItWjHZnNLoha1EJoUCiSjtAr1rnXQdjiNNhJWEwLcVWdKoac+Z4DkgEjtpS5GPOHYjoVeiXCSLOSzMopqgVfTg07az4Oxudc6XY0A7cHmn0G0oLIU0II0hw3+nwEkpoUrvl1sEO+3Dd5y5oJptsCIcizY6IcHqzPe5icdj/DPoFKMfLFQgpgdIWo7yRxujxpdvF4PCA/nalXTWdG/lQD3/82EWr464o18ncVxxrsji6g27C3UEu82dOGPuUBVsVfhGflUgigjGDC55IRUjNB3DXDG7McmzBe6oHqCgt0r2Vm50cpdxBFRe35ZReHBNxoqapeqaxbmq72s4cTImrGQQm5qwKZ70aOTVo0Zg/yzweXJOQCsb/G4eX4GhCxbovS9vwTO7lH8kYm6pR6cZDXsANIMChZ5yJ5MuWavByU1chrBjJ1HlBN0NQDFSItxWVZfHoT428ASdHwN5qoZauK+qZESlGEgA/e75ujbGHuecoMURDQfspunh5ob+SE9Mh/lEtc/ynjNomv13S+80JlX48pjjSOFJVjE+lSbaSNCMHE8nSiTAVWtithmVJJ+8+6fudriFfnGeMmCs2X6V0ipHGiq1QjUv5Hgv17/w+iKAYWtkzIxlnKZ6tPQPfI6SqrZX2IOF0TBymQOid0rbiVJdJy2UNB0b4hRBZ4BjBwbg7FDJffmp4Xn1M6dA8X2ZjQoVy5v3cvr6j25hiZ09rMeRG1/Dal4J4+xv+3jREDOPRES JajIM56A uU4j9WpUoUInowmtlSi5fowFeZ2PQXtrPDFyIM9yk+CX7dZmCXQKy8MH9ianmSZNxB57Ro/r0+c4IKjcL1uFx3EEs7JHqvjlav1JYbcJzUsp/KfStLM6oU8Fg0+BqUoFXOuC9kuEYFZkkowj3wBFvm3Tc/4I2TA8ve2d0xAZo181Z/Mcnpugfvu897yil+YvyjKA9WjLv1i7wTgkZFjGdFK9d6XjhC8fCsGve2glsMx115UavKsA+BFIAEfwDD5KHI1hXN+QlmlgUZB08TMHgna6F0+YEDZU4NqxkWnqmgz8FYJBPB9nE2NJ52CO0XbCiHqVRfMYMYzOfRAULH6euMs2QnxcLzBYhBLyPsjDycL6yMe1vqsjPLrrogg== 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 codes of alloc_vmap_area(), it returns the upper bound 'vend' to indicate if the allocation is successful or failed. That is not very clear. Here change to return explicit error values and check them to judge if allocation is successful. IS_ERR_VALUE already uses unlikely() internally Signed-off-by: Baoquan He Reviewed-by: Shivank Garg Tested-by: Shivank Garg --- mm/vmalloc.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 3f38a232663b..5b21cd09b2b4 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -1715,7 +1715,7 @@ va_clip(struct rb_root *root, struct list_head *head, */ lva = kmem_cache_alloc(vmap_area_cachep, GFP_NOWAIT); if (!lva) - return -1; + return -ENOMEM; } /* @@ -1729,7 +1729,7 @@ va_clip(struct rb_root *root, struct list_head *head, */ va->va_start = nva_start_addr + size; } else { - return -1; + return -EINVAL; } if (type != FL_FIT_TYPE) { @@ -1758,19 +1758,19 @@ va_alloc(struct vmap_area *va, /* Check the "vend" restriction. */ if (nva_start_addr + size > vend) - return vend; + return -ERANGE; /* Update the free vmap_area. */ ret = va_clip(root, head, va, nva_start_addr, size); - if (WARN_ON_ONCE(ret)) - return vend; + if (ret) + return ret; return nva_start_addr; } /* * Returns a start address of the newly allocated area, if success. - * Otherwise a vend is returned that indicates failure. + * Otherwise an error value is returned that indicates failure. */ static __always_inline unsigned long __alloc_vmap_area(struct rb_root *root, struct list_head *head, @@ -1795,14 +1795,13 @@ __alloc_vmap_area(struct rb_root *root, struct list_head *head, va = find_vmap_lowest_match(root, size, align, vstart, adjust_search_size); if (unlikely(!va)) - return vend; + return -ENOENT; nva_start_addr = va_alloc(va, root, head, size, align, vstart, vend); - if (nva_start_addr == vend) - return vend; #if DEBUG_AUGMENT_LOWEST_MATCH_CHECK - find_vmap_lowest_match_check(root, head, size, align); + if (!IS_ERR_VALUE(nva_start_addr)) + find_vmap_lowest_match_check(root, head, size, align); #endif return nva_start_addr; @@ -1932,7 +1931,7 @@ node_alloc(unsigned long size, unsigned long align, struct vmap_area *va; *vn_id = 0; - *addr = vend; + *addr = -EINVAL; /* * Fallback to a global heap if not vmalloc or there @@ -2012,20 +2011,20 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, } retry: - if (addr == vend) { + if (IS_ERR_VALUE(addr)) { preload_this_cpu_lock(&free_vmap_area_lock, gfp_mask, node); addr = __alloc_vmap_area(&free_vmap_area_root, &free_vmap_area_list, size, align, vstart, vend); spin_unlock(&free_vmap_area_lock); } - trace_alloc_vmap_area(addr, size, align, vstart, vend, addr == vend); + trace_alloc_vmap_area(addr, size, align, vstart, vend, IS_ERR_VALUE(addr)); /* - * If an allocation fails, the "vend" address is + * If an allocation fails, the error value is * returned. Therefore trigger the overflow path. */ - if (unlikely(addr == vend)) + if (IS_ERR_VALUE(addr)) goto overflow; va->va_start = addr; @@ -4753,9 +4752,10 @@ struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets, ret = va_clip(&free_vmap_area_root, &free_vmap_area_list, va, start, size); - if (WARN_ON_ONCE(unlikely(ret))) - /* It is a BUG(), but trigger recovery instead. */ + if ((unlikely(ret))) { + WARN_ONCE(1, "%s error: errno (%d)\n", __func__, ret); goto recovery; + } /* Allocated area. */ va = vas[area];