Re: [PATCH v4 0/2] alloc_tag: fix undetected compressed tag overflow when profiling is disabled
Andrew Morton <[email protected]>
| Newsgroups | org.kernel.vger.linux-modules,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 10 Aug 2026 17:39:53 +0800 Hao Ge <[email protected]> wrote: > v3 was a single patch. After discussion with Suren and Andrew we went > for a more graceful approach: rather than failing the module load on > overflow, let it load without profiling. Once profiling is disabled, > codetag_needs_module_section() returns false, so on retry the codetag > section is placed as regular module data. > > A new patch (1/2) is added to move release_module_tags() above > reserve_module_tags(), since the overflow path now has to call it and > the helper sits below it. Thing is, [2/2] has cc:stable but it requires [1/2] to be able to be compiled. [1/2] doesn't have cc:stable so we're asking -stable folks to backport a patch which doesn't compile. Resolve this by using the same Fixes: and cc:stable in both patches. > release_module_tags() is what module unload calls to drop a module's > reservation from the maple tree. By the time reserve_module_tags() > detects the overflow it has already stored that reservation, and the > -EAGAIN return skips vm_module_tags_populate(), so the backing pages > never get mapped. If reserve_module_tags() returns without calling > release_module_tags(), the stale entry keeps pointing at that unmapped > range; when the module is later unloaded, release_module_tags() walks > it and panics. AI review had a lot to say about this patchset. Some pre-existing, some not: https://sashiko.dev/#/patchset/[email protected] offtopic: alloc_tag isn't getting allmodconfig build coverage at this time because: 1: MEM_ALLOC_PROFILING depends on !DEBUG_FORCE_WEAK_PER_CPU (why? I can't figure that out) 2: x86_64 allmodconfig enables DEBUG_FORCE_WEAK_PER_CPU, despite it being for s390 and alpha. In fact it might be alpha-only. Adding depends on ALPHA || S390 in there fixes this.