From: Hao Ge <hao.ge@linux.dev>
To: Suren Baghdasaryan <surenb@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
Luis Chamberlain <mcgrof@kernel.org>,
Petr Pavlu <petr.pavlu@suse.com>,
Daniel Gomez <da.gomez@kernel.org>,
Sami Tolvanen <samitolvanen@google.com>,
Aaron Tomlin <atomlin@atomlin.com>,
Alexander Potapenko <glider@google.com>,
Marco Elver <elver@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
Vlastimil Babka <vbabka@kernel.org>,
Michal Hocko <mhocko@suse.com>,
Brendan Jackman <brendan.jackman@linux.dev>,
Johannes Weiner <hannes@cmpxchg.org>, Zi Yan <ziy@nvidia.com>,
Uladzislau Rezki <urezki@gmail.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linux-modules@vger.kernel.org, kasan-dev@googlegroups.com
Subject: Re: [PATCH v11 0/7] alloc_tag and module codetag section fixes
Date: Fri, 9 Oct 2026 19:30:21 +0800 [thread overview]
Message-ID: <839d13ef-8ca3-4e58-9bd0-84137f2d6866@linux.dev> (raw)
In-Reply-To: <CAJuCfpGAZUcQnursYh=rvp+EzckvDmXX_KveJvEuyjzzG=9mww@mail.gmail.com>
Hi Suren
On 2026/10/5 02:37, Suren Baghdasaryan wrote:
> On Wed, Sep 30, 2026 at 5:25 AM Hao Ge <hao.ge@linux.dev> wrote:
>>
>> Hi Suren and Andrew
>>
>>
>> On 2026/9/30 10:39, Suren Baghdasaryan wrote:
>>> On Tue, Sep 29, 2026 at 8:44 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>>>>
>>>> On Tue, 29 Sep 2026 16:20:07 +0800 Hao Ge <hao.ge@linux.dev> wrote:
>>>>
>>>>> With profiling toggled off, the overflow check in
>>>>> reserve_module_tags() did not run, a module could load with more
>>>>> tags than the page flags can address, and re-enabling profiling
>>>>> then silently corrupted /proc/allocinfo. On overflow the fix shuts
>>>>> profiling down, releases the reservation and returns -EAGAIN, and
>>>>> the codetag section lands as regular module data in the same load,
>>>>> so the module loads without profiling.
>>>>>
>>>>> Review of the earlier series by Sashiko turned up more problems.
>>>>>
>>>>> One is a race. layout_sections() and move_module() both asked
>>>>> codetag_needs_module_section() where a codetag section goes, and
>>>>> mem_profiling_support can change between the two calls, for instance
>>>>> when another module load overflows the tag index and shuts profiling
>>>>> down. move_module() then copied the codetag section to offset 0 of
>>>>> its regular destination and clobbered the first section placed in
>>>>> that region.
>>>>>
>>>>> v7 reworks where codetag sections are allocated, on a prototype by
>>>>> Petr Pavlu [1]. The allocation runs before layout_sections() and the
>>>>> placement is decided in one step, so nothing re-asks the question
>>>>> and the race is gone. The retry is gone too, on -EAGAIN the section
>>>>> is laid out as regular module data right in the same load.
>>>>
>>>> Thanks.
>>>>
>>>> Seven patches, all cc:stable. Why is a backport proposed?
>>>> Documentation/process/stable-kernel-rules.rst gives guidelines - does
>>>> this series meet them? Does Suren have thoughts?
>>
>> Thanks, I've just gone through this carefully.
>>
>>>
>>> I think vmalloc fix in patch#2 should be posted separately and clearly
>>> quialifies for backporting as if fixes issues Hao found at [1].
>>
>> Agreed. Patch #2 was added to this patch series because vm_module_tags_populate
>> suffers from the same issue. If we want to be more conservative, I'd prefer to keep
>> vm_module_tags_populate as it was in V10:
>> https://lore.kernel.org/all/20260915070001.113559-3-hao.ge@linux.dev/
>
> I disagree with this approach. That means we are introducing an extra
> code inside vm_module_tags_populate() only to clean it up later.
> Instead please post Patch #2 separately. That posting should have your
> current patch that changes vmap_pages_xxx() to clean up on failure,
> followed by patch(es) which remove unnecessary cleanup that some
> functions currently perform by themselves. This patchset should
> definitely be tagged for stable.
You are right. Sorry for the confusion - my earlier deviation came
from not fully understanding the rules for getting patches into the
stable trees.
> Once that patchset is accepted, the rest of your current patchset
> fixing alloc_tags can be posted with correct assumption that
> vmap_pages_range() cleans up its partial mapping when it fails.
>
> I know this sequence will take longer to upstream but I think it's the
> right way to go.
Make sense. Thanks for your continued support.
Best Regards
Hao
>
>>
>> Then we can submit a fix for __GFP_NOFAIL retry loop in __vmalloc_area_node() as a hotfix together
>> with our new patch #2. While at it, we can also check if there are any unnecessary calls to
>> vunmap_range family functions that can be cleaned up now that patch #2 is applied.
>>
>>
>>>
>>> The rest are also bug fixes but their size is concerning. I'll review
>>> them first before advising on which ones should be backported. Some
>>> fixes address issues that happen very rarely and if a fix is too
>>> complex it might make sense to leave it be or fix it some other way
>>> with less churn. Please give me a couple of days to review them. With
>>> the upcoming LPC I'm trying to multiplex between several projects.
>>
>> Thanks, sorry for all the hassle on you folks.
>>
>> Thanks
>> Best Regards
>> Hao
>>
>>>
>>> [1] https://lore.kernel.org/all/b8005c24-ecac-45c4-840a-fd282f9693b5@linux.dev/
>>>
>>>>
>>>> Also, Sashiko has been busy again:
>>>> https://sashiko.dev/#/patchset/20260929082014.160587-1-hao.ge@linux.dev
prev parent reply other threads:[~2026-10-09 11:29 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-29 8:20 [PATCH v11 0/7] alloc_tag and module codetag section fixes Hao Ge
2026-09-29 8:20 ` [PATCH v11 1/7] alloc_tag: move release_module_tags() above reserve_module_tags() Hao Ge
2026-09-29 8:20 ` [PATCH v11 2/7] mm/vmalloc: undo partial mappings inside the mapping functions Hao Ge
2026-09-29 8:33 ` sashiko-bot
2026-09-30 10:12 ` Uladzislau Rezki
2026-10-04 17:42 ` Suren Baghdasaryan
2026-10-09 8:23 ` Hao Ge
2026-10-08 6:53 ` Hao Ge
2026-10-08 8:09 ` Hao Ge
2026-10-08 8:13 ` Hao Ge
2026-09-29 8:20 ` [PATCH v11 3/7] alloc_tag: clean up the populate failure path Hao Ge
2026-10-04 17:55 ` Suren Baghdasaryan
2026-09-29 8:20 ` [PATCH v11 4/7] module: introduce SH_ENTSIZE_STANDALONE for separately allocated sections Hao Ge
2026-09-29 8:20 ` [PATCH v11 5/7] module: allocate codetag sections before the regular module layout Hao Ge
2026-09-29 8:20 ` [PATCH v11 6/7] alloc_tag: skip percpu counter allocation when profiling is disabled Hao Ge
2026-09-29 8:40 ` sashiko-bot
2026-09-29 8:20 ` [PATCH v11 7/7] alloc_tag: fix the /proc/allocinfo lifecycle Hao Ge
2026-10-04 18:23 ` Suren Baghdasaryan
2026-10-09 11:16 ` Hao Ge
2026-09-29 20:44 ` [PATCH v11 0/7] alloc_tag and module codetag section fixes Andrew Morton
2026-09-30 2:39 ` Suren Baghdasaryan
2026-09-30 3:26 ` Hao Ge
2026-09-30 8:34 ` Uladzislau Rezki
2026-10-04 17:42 ` Suren Baghdasaryan
2026-10-04 18:37 ` Suren Baghdasaryan
2026-10-09 11:30 ` Hao Ge [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=839d13ef-8ca3-4e58-9bd0-84137f2d6866@linux.dev \
--to=hao.ge@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=atomlin@atomlin.com \
--cc=brendan.jackman@linux.dev \
--cc=da.gomez@kernel.org \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=hannes@cmpxchg.org \
--cc=kasan-dev@googlegroups.com \
--cc=kent.overstreet@linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-modules@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=mhocko@suse.com \
--cc=petr.pavlu@suse.com \
--cc=samitolvanen@google.com \
--cc=surenb@google.com \
--cc=urezki@gmail.com \
--cc=vbabka@kernel.org \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.