On Wed, Dec 7, 2022 at 8:54 AM Christophe Leroy <christophe.leroy@xxxxxxxxxx> wrote: > > > > Le 07/12/2022 à 16:36, Thomas Gleixner a écrit : > > > > The "use free space in existing mappings" mechanism is not required to > > be PMD_SIZE based, right? > > > > Large page size, strict separation: > > > > struct mod_alloc_type_params { > > [MOD_ALLOC_TYPE_TEXT] = { > > .mapto_type = MOD_ALLOC_TYPE_TEXT, > > .flags = FLAG_SHARED_PMD | FLAG_SECOND_ADDRESS_SPACE, > > .granularity = PMD_SIZE, > > .alignment = MOD_ARCH_ALIGNMENT, > > .start[0] = MODULES_VADDR, > > .end[0] = MODULES_END, > > .start[1] = MODULES_VADDR_2ND, > > .end[1] = MODULES_END_2ND, > > .pgprot = PAGE_KERNEL_EXEC, > > .fill = text_poke, > > .invalidate = text_poke_invalidate, > > }, > > Don't restrict implementation to PMD_SIZE only. > > On powerpc 8xx: > - PMD_SIZE is 4 Mbytes > - Large pages are 512 kbytes and 8 Mbytes. > > It even has large pages of size 16 kbytes when build for 4k normal page > size. IIUC, these customizations would fit nicely with this design. I will see how much I can prototype with powerpc without the actual hardwares. Thanks, Song