From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E92541D22A for ; Mon, 17 Aug 2026 12:43:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786970587; cv=none; b=dIDtFxyNVQhtuS1b3p8Ob049pROUqtufgH8z2IVJo8/3KsyDx05X1cLr86qN/g8uw+lbEN43BFMu/W/bEU+4CN78T+OlRNrxFqXXJ8ezs0gDQMv+2Bpn0ycFTw02LyX+PeVHNNcZxYoU+X5fR2rpA/2Y26coAmEgOisyAjJOpJY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786970587; c=relaxed/simple; bh=KUMLl8Nlf4ganKmUfRpSqfk9SbXFsUXlAZxjeBAClCg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=b83cNULEGdAi/JApJ+eVmHlSke4dxEpG+lTIxERixE3L8/hit/W6q4fJ1ogQb+/Bm7IAsu2YF1RAWiDyhGWwktmm1X5DmWDqTKygJT05406oP8o5g73G1vDKa1Sh4GGEII6dZOpA0c45Vnuk9iWOg9xB2aRfnbhUcV8XCcOOfwU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=P+EUHASL; arc=none smtp.client-ip=209.85.218.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="P+EUHASL" Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-c1c52d920b8so445131266b.2 for ; Mon, 17 Aug 2026 05:43:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786970584; x=1787575384; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=mbEf3V3BeedaNXPvyc7QWrrndht5k6QHT5mMZYzozBE=; b=P+EUHASLaJsC32Wtu4NSGGADf8mrBCWB6iwSloohBBNp+mZN9Ui5nFwK5nYUmVmww2 CxusxVoV9oXGRrOyrAbuHwWyy4cbgTXKFbdyzxdBIulf092nsBZvzKh+DX/ud704nLQJ FzJCiFVtyIXsAFNM22xNreZTDRqJ5QcWo7sP8aWsLYn3BdAM7vgmZ3o/IruYhwVzrxof Qsg+awPBC2aVmtWz3xlgqbTiUTMiQ7fegcQmmLapp5nWhIMHVcKRat8dSc1ST4LPT3VS DCmSgVBddlFOlCgkaDGuRx1vrft/5DV0aE+Fo8YaLtwZlBMeypPYu87lwuUH9yw03MSV pXyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786970584; x=1787575384; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=mbEf3V3BeedaNXPvyc7QWrrndht5k6QHT5mMZYzozBE=; b=RjH+2mmRYrA3b0S9BUrZdxZTw9nrkO8xqhtfd+VpOsI7JNVNfeJDBEWztYHL6LlrBR P4ZQpqEV96y90/tPvfHsVV5T8Vz1jSMhVCElJ/3J+tK3SxLOEv9WoN+1CzFY2vSXglOH 4W/GoNphk9UIvWqbF+WxsMa53mhPzWZrfL6h2C+XKPsQsahCnmHIgiUGLazX2m2A5bNd k0b9wBRGlGmlpHo+uZ2Fdvm32hoYq4lP9954KFeJBNL202v0ItDP3dp+Hdhz8SEg7Jp1 t5bL28X9lYCBGYn85jdBuKrNpbw5CucLRDOcSpQn4LoUjyX/N2cJQsd2tDKmaGu2q+NF 58lg== X-Forwarded-Encrypted: i=1; AHgh+RqdNmUiYPrVVAYhDTKqzGFDS90X1CeUDElzLKLCRvq4KZZ1Ik5MHlHSC0ceyRPPAZLA17Ilo6m8SSgPDVg=@vger.kernel.org X-Gm-Message-State: AOJu0YzOhwwSdX+LSe7L++fmOvp2okgmmtPLC3647jIW6rPCzilcuMPY ckaaPyiH9cDgp9UpTMrSQnSTPwCOKAESGrjLzhlwlwrj3gkVZtDP9IHp X-Gm-Gg: AR+sD105KGdpoCqFYYCFqgytUS3uJqEJXUd8dS7LzP0PbRlNil1Bkhbe26O9kMLBs2m YSTqZZLzGMo+Ij+GluFEhZPkEr3OCstMCfc42783MFg8G6NdMYxZ07XoSxD5fPzBoNgw56X1PtZ HSx+EmBbmKCQE32sBtALoNruF9fGFeyehfmVblgPYMj97s9o98+onXEJbxYZuU6jQWlXhV3dWDz yQgup9u5f/AX1axNdu3YieAlWW2jHz2zuLFfG1fg6MTyxmI7BDaQTshptmq4kck7LUx+Da/lfOw f5tjfWSYSV2RoGVgMlqWbrqqTfHqSWnno4tJTQouXtzKp4C6gNLc12z4mq4I9zCnzrWt280zOrA U7x9QCUtfncQQqpFmLcP8xnAKlS6eerso1GKdmkGFrmj4dvcL2Yb2CJKLFL3NA3vXt5qUF1DJ6i ZRri5ldvY9z+VLlwLy0nIO9zFJJohT+d8xAw9hE1a8xHIPMWHBKQ== X-Received: by 2002:a17:906:f183:b0:c21:82bb:1105 with SMTP id a640c23a62f3a-c2182bb1689mr70810566b.22.1786970583773; Mon, 17 Aug 2026 05:43:03 -0700 (PDT) Received: from [127.0.0.1] ([2a09:bac6:3861:1e5a::306:a]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c217feb99d4sm52626266b.22.2026.08.17.05.43.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Aug 2026 05:43:03 -0700 (PDT) From: Caleb Kan Date: Mon, 17 Aug 2026 13:42:44 +0100 Subject: [PATCH RFC 4/9] mm/kmemleak: print trie-backed stack depot traces 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: <20260817-stackdepot-trie-v1-4-53870ca1651b@cloudflare.com> References: <20260817-stackdepot-trie-v1-0-53870ca1651b@cloudflare.com> In-Reply-To: <20260817-stackdepot-trie-v1-0-53870ca1651b@cloudflare.com> To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, Vlastimil Babka , Alexander Potapenko , Marco Elver , Dmitry Vyukov , Andrey Konovalov , Oscar Salvador , Caleb Kan , kernel-team@cloudflare.com X-Mailer: b4 0.16.0 From: Caleb Kan kmemleak stores allocation backtraces as persistent stack depot handles. When trie storage is enabled, stack_depot_fetch() cannot return a pointer to contiguous stack-record entries, so leak reports would omit the saved backtrace. Use stack_depot_fetch_into() with a MAX_TRACE-sized local array before formatting the report. MAX_TRACE matches the save-side limit, so every valid kmemleak trace fits without truncation. Preserve frame order and the existing report format for hash-backed handles. Signed-off-by: Caleb Kan --- mm/kmemleak.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/kmemleak.c b/mm/kmemleak.c index 8fa409a4f9fb..c42741a88bd4 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -378,10 +378,10 @@ static void __print_unreferenced(struct seq_file *seq, bool hex_dump) { int i; - unsigned long *entries; + unsigned long entries[MAX_TRACE]; unsigned int nr_entries; - nr_entries = stack_depot_fetch(object->trace_handle, &entries); + nr_entries = stack_depot_fetch_into(object->trace_handle, entries, ARRAY_SIZE(entries)); warn_or_seq_printf(seq, "unreferenced object%s 0x%08lx (size %zu):\n", __object_type_str(object), object->pointer, object->size); -- Git-155)