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 21C3FC369A2 for ; Tue, 8 Apr 2025 15:16:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A3B66B002C; Tue, 8 Apr 2025 11:15:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 02BF46B002D; Tue, 8 Apr 2025 11:15:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E35776B002E; Tue, 8 Apr 2025 11:15:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id C829D6B002C for ; Tue, 8 Apr 2025 11:15:56 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id DE3D1BAEB7 for ; Tue, 8 Apr 2025 15:15:57 +0000 (UTC) X-FDA: 83311226754.18.6B1F15F Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) by imf03.hostedemail.com (Postfix) with ESMTP id 05F502000D for ; Tue, 8 Apr 2025 15:15:55 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fqJ24MsX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.181 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744125356; a=rsa-sha256; cv=none; b=thGOaMYU8O57JX7h0MsG3Rd1Dd2rboMGeutl7V9pUso2d7vIfosoZNz0epJzLyWl8jyirM XQMgZsV0N1p8y3G6EQcMLdvw8Qc81zI/wEWZYwh6c6NJ3lkvP6rwKaMLvyo7QqXVMIpcfr jLR/oQMZc2tZF39FfX1jNXqq3SpC4Z4= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=fqJ24MsX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of urezki@gmail.com designates 209.85.208.181 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744125356; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=C987dsaCFSnQpOspzfFowBGnUvHHdcohVT9+02heJfk=; b=DTrKIAzN3lQv5hxu9KoEOWX/vVOl3QyLd00kziVJaJKTM9lcjtQrBzuf08lU32Z4nuQmjd 8eEM6GfOUi8CLEeyxaIGO8lay3hZ/cis3Sr68pB7SF3q+4+bOHEnpSJcytwyK2vcCnUSgr lreoea2gGjg6Ed6N/rLeS+6iWeL9PkI= Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-30f30200b51so15991261fa.3 for ; Tue, 08 Apr 2025 08:15:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744125354; x=1744730154; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=C987dsaCFSnQpOspzfFowBGnUvHHdcohVT9+02heJfk=; b=fqJ24MsXqHqt4SdJvPPxGNVL9IGDEBDh93Hv75YSI8H7L7sLfwMm3zfdytYgJtVP14 JtXNNgmJywiBuiDpQGo1QRLawrRV1uMWQgQEQJu+aWd77R0BPzxt0uusk3NmHg2VCwJo C8N0fylgxngWJJ4o/uDGoNo49ac/iEKtLG2qTkEdXTb9Rew6xND8w56hDFRomkJeHxLh JwrQwXwYejzLrceuhs3U14y1a95w3+4hieXxMOTOnDDg9OamOSzefhbGrTK/QHz8PFYz JSgKAhRYmpIwE/mwn9qZHnNNuol9vA06wpTpTTMI5M0g/d3S/nMppbh8uPD0mwpY/GsA BqBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744125354; x=1744730154; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=C987dsaCFSnQpOspzfFowBGnUvHHdcohVT9+02heJfk=; b=s/+2y7PHIZIH6HXyx/8EcrPyX+Jgl18N/GtGiEH2o1rDbKE31YjLrvQCc+NDp6r5YY oew/BwbKDnHUMX+/CYN9/+RVy4/4SYuYPGEQ7oAcEbP6MfffHjt/3L30/qcJ1/Z729BB ybwrb8q12ZEW6yfU5F6RefhMD70cmQodr+RVt0sgZlrc5sO5o0JBPGXl608oQJGHDFjg cd9jKlkXv0/Uk6lZs+NDpxIU+9mNBKly8tyZY6x0gju1DS2mLKk5buTu/lXSt+VS/le7 1WBKP47FG7o88gY9ESYjT87LwhpwA448E6MAFx33HDPXeda1cQHnKkY7iwGlhO9RLYnK M52g== X-Gm-Message-State: AOJu0YxBN03Gml8chsDYlPYxYkGLSRJHVBVWhaXW1uoERK+Y4GJwgeU8 A7p55nmkvRAhyhX9/H5O8NGyF8JtQXYaHTwXSKY2tUpkrjLCLzAC X-Gm-Gg: ASbGncv9CAS99kWDL2s4E8JtNcyw8uQ7rGZ1PIb1ukcvwC7hqRhry1u2YXufRbdhdMI 2BgPQZhld6yi0gli0ZOR/rVLUxep7+ibRIHc90o/d7dhrXtpSXQRkBZFE438Ao0eLFnswj+9yPV S6adIN9Gr7B+7LFUg5EzinxJXBLtRJgl/XyvpzlLni1fWxsmNfcbcMeT/j9WDCocMOG2rvDYGdz nuzp8QIl3hw5BPgaBulwhy/27ez6kXGePguiOWuycMS1DWEgRVql+vP8JkZyXzCorLxSasf3JFv VennZ4Kw7x/ozTjJJ8/n7DN/P2of6wdpzfOruh2F X-Google-Smtp-Source: AGHT+IGSF2HnP3yRze+As2thftbPhIbuKmnguOUsoyY3r1XcM9ZtXg/ca94vPr1eGcrAnz6wMQyT7A== X-Received: by 2002:a05:6512:1154:b0:545:2f0c:a29c with SMTP id 2adb3069b0e04-54c23346c48mr4241134e87.36.1744125354157; Tue, 08 Apr 2025 08:15:54 -0700 (PDT) Received: from pc638.lan ([2001:9b1:d5a0:a500:2d8:61ff:fec9:d743]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54c1e65db49sm1548603e87.206.2025.04.08.08.15.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Apr 2025 08:15:53 -0700 (PDT) From: "Uladzislau Rezki (Sony)" To: Andrew Morton Cc: linux-mm@kvack.org, LKML , Christoph Hellwig , Uladzislau Rezki , Oleksiy Avramchenko Subject: [PATCH 3/3] vmalloc: Use for_each_vmap_node() in purge-vmap-area Date: Tue, 8 Apr 2025 17:15:49 +0200 Message-Id: <20250408151549.77937-3-urezki@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250408151549.77937-1-urezki@gmail.com> References: <20250408151549.77937-1-urezki@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 05F502000D X-Stat-Signature: 7d6shoxkwdq3h8bed114mtwr4swfyy4r X-Rspam-User: X-HE-Tag: 1744125355-815088 X-HE-Meta: U2FsdGVkX18O4DWUgBBJkABQd76r+dJJSQOXzoX5pWi1rzsFCi4fEOyNCKnE9yrW2eo+zp9ByJFkW0XefDW7npa1BQm9rQbKQAptutUDWQvW+uxn4CtwnBbXfWBS5eIEAWgsPgEx9jz7u3EK/0FOjTAwtkps4WVmTzHt/D4cRVKGh92K+K0DG8zMCSzqBdG3L1yQ5MFKOCzZUyXt9uU/9GoTMP1HQHI1OV+3gGrcdhvrhiCJXm3pITFcRQm/EjLXLGme7aavOljOYzRyOcXHULsYrDHKmfqF51Qx3T80iIVevNonm/ZKLJlL1db1dxMihaVgmaMPQ4uAQLNSZynUfPP1+p9hYHKJ4ZBWVSmIpyCMCYqDOQI3fHmjbuHc4C3CGC7Z9I9/uAn12oeZTkJASn3qLbYF+scEyjGjjkTDB4UGi41plElhhrEZvtYKvuh6EoBU4W87IcING8EZQhg3Fp1n4H1KzH3HUUUmOY+x+mKRizSugvbRkYrzmNJVsW+wemitbgzQsBtwUvVOnoJlb6dZnVDgHHbuFA88sTwhg1Ung/aIbiBFPuhl6o7TVO+ss7P2HS667XHIsevLVTZn4mzlvCNTOx7fol+5NFwtmDt3mXaXHfjJgZn/M+fLIFOun6bvd81JFz1j2YS/uJCCpMLN1ZBDw7uO72EkPVOWt5zv1Bynv1d+fCIq1+HHAwzoT6Yrc3fRuadu9M2i1I8EFu1ByJTCAq5WvFPI89yWYOtolLJjBO5V08V7yJO7ikYpmz8YjXq7mHpxnednN019EIS+czfVXrb3opGbvOxncT/SFt7gIpji1I21zqtefRCh6MjSrTRl8KifhMPVak4vtniSE2sHNNF9hUqt5xGCOfphm7Rje51IAXZ7AtkNZ3pN0vYKmaqiuoRi8WeHD0S91/kpc5e6zyKRw6RLd3gcOdLQAXbPW5M7AmzUrOxrols/2x5mPMjzH2FohwRu8OA GjTdyyqN VCpTWcBG1yiarjUPRs0iXDTOshE/+BT35aLSrFrBXfX9kGUEz0qSUt5/UxCYlPBYfFqjgTWuoa02jmbeSCB/Ln2KN0O9eX1qC2IPZtONppXbcYWibaUsoeWJeVqdTTCtA4knstcbeadiRL3oYTxppFU+nGULOmp5EA28/EaIcvHf8NZ9uVLtj/y6G+c4vr1DpG1K99TCqoGgeetinFdcuuvJsH+7R0mw+Gah9iKiBaI3aiv52X6owUC8rFZ5YqC1QltE3y6rCRTX3WUeTNmsLfaUCD+MdBYL96+PQewTlSIWrbTJlITTyTMNDLH1WNZy32Sl9g3ToThdlIKzsnNVXmtgjHltPOBt9Kk4+kBjXDQdqSshFGIB67HHp13dOmPvpymjA0WuEz50bpVzX2MAP83bGe4CdXZcJOG8SSffK/ENf+H9sNWQSW9KyroJJlpD67i/OAzRGaVejB86bRLAFpbWF52x7cw75XUZ9 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: Update a __purge_vmap_area_lazy() to use introduced helper. This is last place in vmalloc code. Also this patch introduces an extra function which is node_to_id() that converts a vmap_node pointer to an index in array. __purge_vmap_area_lazy() requires that extra function. Signed-off-by: Uladzislau Rezki (Sony) --- mm/vmalloc.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 3ff9acd64c077..409b8f372647f 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -923,6 +923,19 @@ id_to_node(unsigned int id) return &vmap_nodes[id % nr_vmap_nodes]; } +static inline unsigned int +node_to_id(struct vmap_node *node) +{ + /* Pointer arithmetic. */ + unsigned int id = node - vmap_nodes; + + if (likely(id < nr_vmap_nodes)) + return id; + + WARN_ONCE(1, "An address 0x%p is out-of-bounds.\n", node); + return 0; +} + /* * We use the value 0 to represent "no node", that is why * an encoded value will be the node-id incremented by 1. @@ -2259,9 +2272,7 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, */ purge_nodes = CPU_MASK_NONE; - for (i = 0; i < nr_vmap_nodes; i++) { - vn = &vmap_nodes[i]; - + for_each_vmap_node(vn) { INIT_LIST_HEAD(&vn->purge_list); vn->skip_populate = full_pool_decay; decay_va_pool_node(vn, full_pool_decay); @@ -2280,7 +2291,7 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, end = max(end, list_last_entry(&vn->purge_list, struct vmap_area, list)->va_end); - cpumask_set_cpu(i, &purge_nodes); + cpumask_set_cpu(node_to_id(vn), &purge_nodes); } nr_purge_nodes = cpumask_weight(&purge_nodes); -- 2.39.5