mirror of
https://github.com/torvalds/linux.git
synced 2026-09-14 16:10:02 +02:00
kmemleak reports an object the first scan it is found unreferenced. Its mark phase runs without stopping the rest of the kernel and without a write barrier, so a live object whose only reference is briefly invisible during a concurrent RCU update -- e.g. a VMA moved between maple tree nodes, or a page-cache xa_node -- can be seen as unreferenced for that one scan. Because an object is flagged as reported only once, such a transient race turns into a permanent false positive. Track how many consecutive scans each object has been seen unreferenced and only report it once that reaches min_unref_scans, a new module parameter. It defaults to 1, leaving the behaviour unchanged; setting it higher (e.g. 2) still reports a genuine leak, one scan later, while an object referenced again before the threshold restarts its run and is never reported. min_unref_scans can be set at boot with kmemleak.min_unref_scans=<n> or at run-time via /sys/module/kmemleak/parameters/min_unref_scans. Link: https://lore.kernel.org/20260713-catalin_pto-v1-2-5b93b1131089@debian.org Signed-off-by: Breno Leitao <leitao@debian.org> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Cc: David Hildenbrand <david@kernel.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Liam R. Howlett <liam@infradead.org> Cc: Lorenzo Stoakes <ljs@kernel.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Rapoport <rppt@kernel.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
||
|---|---|---|
| .. | ||
| kunit | ||
| lkmm | ||
| autofdo.rst | ||
| checkpatch.rst | ||
| checkuapi.rst | ||
| clang-format.rst | ||
| coccinelle.rst | ||
| container.rst | ||
| context-analysis.rst | ||
| gcov.rst | ||
| gpio-sloppy-logic-analyzer.rst | ||
| index.rst | ||
| kasan.rst | ||
| kcov.rst | ||
| kcsan.rst | ||
| kfence.rst | ||
| kmemleak.rst | ||
| kmsan.rst | ||
| kselftest.rst | ||
| ktap.rst | ||
| propeller.rst | ||
| sparse.rst | ||
| testing-devices.rst | ||
| testing-overview.rst | ||
| ubsan.rst | ||