From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51EB432B10D for ; Sat, 13 Jun 2026 17:21:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781371302; cv=none; b=E5v0wkaxHDUWc7xq7RPJ0HpgnVS7uXiBvfeG1NDJ1nDDxYZY7sbEMxO4XSg5GlXV7Oy5EYTNESUk/QgFgLc9hfgVit4f+ZNE4g8gN9p5vPo9j7SmAo4uRzNlkWF2Y1slSfOURw07VukeGL7UYGtqlQ2eDk58OXus6xgwlhcn92A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781371302; c=relaxed/simple; bh=1Wo2lxnikoSv9JichvG4ITxBxFpg2W31gcAukcfik7I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hJEyd1AB14ohE7yFeYPtSQcGP1m+cddFLXj+IY1yxcUfk6IVQbIYJT5hjwN9vL9QwfkkgaEOrRrGPDOpRRtwcV8n303dxprljB2nadbqDHAecrMYhH2irDaEPywosca8O5KJRFnqJUXBFmmDml8HTXk9s72/HraAMYhOYSXekA0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SvBF5DYb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JeRSVPjm; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SvBF5DYb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JeRSVPjm" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65DFB9Rj3121930 for ; Sat, 13 Jun 2026 17:21:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= WFBZitbymj18mEAzAGK9dmr1JcGda6wnYCfgwxi85K8=; b=SvBF5DYbflsHrzFH LzJ9fajfCViGVsueUX7G/m5reswGqPPsm42cLiDvPCNv9GePjUXBEenrHZ6QKLff G4DzPycl+CeTCjOy6d45UjFY7+lHNFTORrRErZ9Y/MC6SIrTp8ZZGx2sNPa/kFWz 9kbcEpB/kmZmp3LHzy85tGeFTJEXwuCaqM87/pTIYM79ET8cju/1G1N+gEBmUK27 ieUADs4vmWASn9626/4wPj8c7RxvPqx33gJ5ubnQHEQFdBfhrdG+NtUJC9tNlvaF iE/5a16R9KLtIAUZhqrxGTD25MO4ZJcWpk5nonzTWbVIS8+EjrxMMwRkDf6WCp8M YR6Rcg== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ery951mmc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 13 Jun 2026 17:21:40 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-c8584e80bfcso951113a12.3 for ; Sat, 13 Jun 2026 10:21:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781371299; x=1781976099; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=WFBZitbymj18mEAzAGK9dmr1JcGda6wnYCfgwxi85K8=; b=JeRSVPjmVv8B+VUmbQkyKKWJY5X5T248SuT6XCBVnK80b8vUQti7NDD/jGWBovUgzC l6ckASd7TSFNEP7lRRp6IQfr3kUboizaN4S9a8UgaiH00eaZuDRYyHo7XiIEySgrz0rN 2JAulwtXiMSUsOT7a4nTJ5V/HrlhNEtLX9fqTUcvwi9mLD3Uuq072Jp9ekYBNKsRwN6T hDwWcRKSdhIgTG2tLyx1OFX06IsVFYtMiCZGcUH9puGDV3fwu+GMRVRbHhFzyF9/j1+1 sn6OEN6PS4Hu4DUyTc+aBB7NKwigSWdeVu94Zdmyg97Woqd2rSkyex08C4CH3vh9rqmC wd+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781371299; x=1781976099; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=WFBZitbymj18mEAzAGK9dmr1JcGda6wnYCfgwxi85K8=; b=IU0/pc9sH4RHZkGqeFtYGt9SqXd1x4VBBX2mEMUBXY/Aen0YfK8siyhRSi06WQ2put lobvsUU9zsAKDdXQ8h2pA36wi00gsNzpysuyEPkSYGlKUeT56nj90tQO/0ZlMMjP+Ryi LTXf8UfRvZlyRVOEebwdswGs3e7DXf6TgeqVhXv9mQpVLMpgBgcrh0BBHHAf/Gov6xii G1BHrz9Be5EcY80PJqoqJ658f2EqkGVQqonsTNYbMj6Yn1NZIJhc2dGaCs6DH0QRRoaC ggZtSsqUxFv7An4cB5sbVoe4+/N8mbIl943Lr0L49zfuwUGRz10WjKneNfPlg7GIFOzG mD8Q== X-Forwarded-Encrypted: i=1; AFNElJ/DlwqhDzHTM1Y7QLRMdnmNei8fdS8Rgc5aTt8q4Xi2p0QG+EbqoW9GhlNrwClpdkC/d67Pea0iY/z09xo=@vger.kernel.org X-Gm-Message-State: AOJu0YxSHNErr+6rBqWSnCnIlSztut1xVzpoCY89ZndChI8x+0p9YXrI gl41mHJq0jY3vbXwQQhTNt4NgsD71r1x678+IDwvH1g87uShiwWo3AQmEHnX42wmi9DWGniosC9 Fd23nz34CkT0rbHB9o59fPFVAA0OsSj0KP8uhoJ8+mvAv+zhUPqIdud/fRSudHSYBB5g= X-Gm-Gg: Acq92OGCFRe5qWKHjLayFAfXGSJ4c21Xr52jGrbz1ukcNvd11jAi18x882CsGDYfBTe d0SCEdVlMFezuWE42zFbxvDEkHATY71twXxxKD8idxN/JuI48fmqaePJGlQTthhtSs7EjBfWdM9 eFkPaJzYl6r4QZcRGA1Nad1eu847On7Wt/cgyCUTBCZ59Cya9WGmMzKyZgyKqcBUhOGJ748pwfm gL64zSRPvw6s0TYP4pEaICvi36EcuuxYQMviIrO5t5wHmnfAllnFIbensD0QjTLTwMLU0XmsL8q SV0l1jfClmHQnYFLIDmUVntw2NiTgWuhCu0HKF03CDq1g69uZ7A9fjqp6cMwbHyn8EZt0FDE2pE dOhfxCPyv3j3/oAHG31104EfMYoEXvUfkkkD/4qZGlL+K+U2ILlTepQ== X-Received: by 2002:a05:6300:218c:b0:3b4:8268:23e8 with SMTP id adf61e73a8af0-3b783f0a3f4mr9239528637.21.1781371299341; Sat, 13 Jun 2026 10:21:39 -0700 (PDT) X-Received: by 2002:a05:6300:218c:b0:3b4:8268:23e8 with SMTP id adf61e73a8af0-3b783f0a3f4mr9239494637.21.1781371298918; Sat, 13 Jun 2026 10:21:38 -0700 (PDT) Received: from hu-pranarya-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-8434accbec5sm5390913b3a.16.2026.06.13.10.21.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Jun 2026 10:21:38 -0700 (PDT) From: Pranjal Arya Date: Sat, 13 Jun 2026 22:49:51 +0530 Subject: [PATCH RFC 09/12] mm/vmalloc: collapse busy-tree find-then-unlink into a single mas_erase Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260613-vmalloc_maple-v1-9-0aa740bb944b@oss.qualcomm.com> References: <20260613-vmalloc_maple-v1-0-0aa740bb944b@oss.qualcomm.com> In-Reply-To: <20260613-vmalloc_maple-v1-0-0aa740bb944b@oss.qualcomm.com> To: Andrew Morton , Uladzislau Rezki , "Liam R. Howlett" , Alice Ryhl , Andrew Ballance Cc: linux-arm-msm@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Lorenzo Stoakes , Pranjal Shrivastava , Will Deacon , Suzuki K Poulose , Neil Armstrong , Mostafa Saleh , Balbir Singh , Suren Baghdasaryan , Marco Elver , Dmitry Vyukov , Alexander Potapenko , Shuah Khan , Dev Jain , Brendan Jackman , Puranjay Mohan , Santosh Shukla , Wyes Karny , Pranjal Arya , Sudeep Holla X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781371215; l=1577; i=pranjal.arya@oss.qualcomm.com; s=20260516; h=from:subject:message-id; bh=1Wo2lxnikoSv9JichvG4ITxBxFpg2W31gcAukcfik7I=; b=spWOO4QH0SPH6dKaihPuUAG1gV/jkwgr4CrTNhi9QWp9XeyW4iqebvtmBC0BAL7LESeXg0rG0 +AxtMJsVJytCUVtXjiAeMTCHd8dC34JkXXxIOXx0OtYDeVjqGqIvmGQ X-Developer-Key: i=pranjal.arya@oss.qualcomm.com; a=ed25519; pk=ymtcTlccEIDsi3ErhpjIoZZHKdPBYWGWW0Lchs5MsbE= X-Proofpoint-ORIG-GUID: 73fUes-GSmSHHNg4XBK1x5LIlfMhaC7x X-Proofpoint-Spam-Info: AW1haW4tMjYwNjEzMDE4MCBTYWx0ZWRfX7EdCSa1GWbNZ T+NAvVu/tR/6DKGz7KZETHJf+BmH3e9IIJn+1VaD8xLMWK2X64vpxuvA7N0AcJOyptKjtot7coO qdKFZXvXdsLR6AdJznt+0urNpCinp4o= X-Proofpoint-GUID: 73fUes-GSmSHHNg4XBK1x5LIlfMhaC7x X-Authority-Analysis: v=2.4 cv=EbP4hvmC c=1 sm=1 tr=0 ts=6a2d91a4 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=qy1EqpzxIlcnHA3QzDgA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjEzMDE4MCBTYWx0ZWRfXy+Kyk2F+cw2J N3s9O1+4Q1xGHduQUv1qNXWi9pJtNUNTxopCqPHHW4M5KLk3pZnGTWyFeEj06Xk7uXhxoEWFQ3o QLp3RnNoi7kqqlueW288K4DUtGk/Bi3hjbwqoQ+UfKurcF0RP+sLwEAIbUx0ynLx99/K8r+F6SG tQTlgAFPTBE1XFrNMGvs4zHtxGvKDepWNAGBkKqbPS2FcOlozMsq5gl+pyqG7Re4G7DtVOFOvSK xxpfsV+gecr0o7MMgZw1PBuHcz05lT3fZ4ZREgb+xaY27O7jaduVoUlxUqZHtL287I178rumH4e VlxX9t8gJYhgrCU6Nc8AgyY64Tpxl/akL6c2uIVQ8nfnMz0S5E2r6Jn39yZP7aFK3MtGhUyhvS7 hmOlOKlu2KtvB/075bCIzY+gKHgDqp+1jsTOcxQfxt5yFddxO0X2Karq/VTVMmnMQb5F7cu8t5S zD1dR6OJe/lMCDTvdgw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-13_03,2026-06-12_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 bulkscore=0 clxscore=1015 malwarescore=0 suspectscore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606040000 definitions=main-2606130180 find_unlink_vmap_area() previously walked the busy tree once (via find_vmap_area_busy_locked() / __find_vmap_area_mt) and then erased via a second walker (unlink_vmap_area_busy_locked). Two independent maple-tree descents, one per call. maple_tree exposes mas_erase() which combines lookup and erase in one descent. Replace the find+unlink pair with a single mas_erase() walker. Signed-off-by: Pranjal Arya --- mm/vmalloc.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 1b73001e197e..463127d5ce58 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -3122,10 +3122,24 @@ static struct vmap_area *find_unlink_vmap_area(unsigned long addr) do { vn = &vmap_nodes[i]; + /* + * Combine the lookup and removal into a single maple-tree + * descent. mas_erase() positions the state at @addr and clears + * the slot in one pass, returning the previously stored VA. + * This saves the second mas_store(NULL) the original + * find_vmap_area_busy_locked + unlink_vmap_area_busy_locked + * pair issued, halving the busy-tree maple work per vfree. + */ spin_lock(&vn->busy.lock); - va = find_vmap_area_busy_locked(addr, vn); + if (likely(vn->busy.mt_enabled)) { + MA_STATE(mas, &vn->busy.mt, addr, addr); + + va = mas_erase(&mas); + } else { + va = NULL; + } if (va) - unlink_vmap_area_busy_locked(va, vn); + INIT_LIST_HEAD(&va->list); spin_unlock(&vn->busy.lock); if (va) -- 2.34.1