Re: [PATCH v2 2/2] LoongArch: Skip address pairing for non-exec sections
From: Tiezhu Yang
Date: Fri Jul 31 2026 - 23:29:26 EST
On 2026/7/31 下午3:38, Huacai Chen wrote:
Hi, Tiezhu,
On Fri, Jul 24, 2026 at 2:07 PM Tiezhu Yang <yangtiezhu@xxxxxxxxxxx> wrote:
On 2026/7/21 下午5:06, Tiezhu Yang wrote:
The module loader currently runs expensive address pairing logic for all
sections blindly during relocation. For massive modules like amdgpu, this
causes the loader to waste lots of CPU cycles analyzing non-exec sections.
...
Using the section flag check reduces the operation to a single check forPlease just drop this patch and make the first one better.
massive data sections; otherwise, the loader would have to perform six
redundant type comparisons across the if-statement and switch-case for
every single relocation entry.
OK.
Now the first patch has a risk that the distance between .init.text
and .text of the same module exceeds 128MB. I solved it and you can
verify:
https://github.com/chenhuacai/linux/commit/f87f9d82869ebc71dca4c02bdff1cd203913a98f
Looks good to me, I think it is safe.
static int module_memory_alloc(struct module *mod, enum mod_mem_type type)
{
...
if (mod_mem_type_is_data(type))
execmem_type = EXECMEM_MODULE_DATA;
else
execmem_type = EXECMEM_MODULE_TEXT;
ptr = execmem_alloc_rw(execmem_type, size);
if (!ptr)
return -ENOMEM;
...
}
Thanks,
Tiezhu