Re: [PATCH v2 2/2] LoongArch: Skip address pairing for non-exec sections
Tiezhu Yang <[email protected]> Sat, 1 Aug 2026 11:29:13 +0800
| Newsgroups | dev.linux.lists.loongarch,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 2026/7/31 下午3:38, Huacai Chen wrote: > Hi, Tiezhu, > > On Fri, Jul 24, 2026 at 2:07 PM Tiezhu Yang <[email protected]> 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 for >> 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. > Please just drop this patch and make the first one better. 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