Re: [RFC PATCH 00/18] use struct ptdesc to replace pgtable_t
From: Alex Shi <hidden>
Date: 2024-08-15 06:32:15
Also in:
linux-arch, linux-m68k, linux-mm, linux-riscv, linux-s390, lkml, loongarch
On 8/15/24 12:50 AM, LEROY Christophe wrote:
Hi, Le 30/07/2024 à 08:46, alexs@kernel.org a écrit :quoted
From: Alex Shi <alexs@kernel.org> We have struct ptdesc for page table descriptor a year ago, but it has no much usages in kernel, while pgtable_t is used widely. The pgtable_t is typedefed as 'pte_t *' in sparc, s390, powerpc and m68k except SUN3, others archs are all same as 'struct page *'. These blocks the conception and code update for page table descriptor to struct ptdesc. So, the simple idea to push the ptdesc conception forward is to update all pgtable_t by ptdesc or pte_t pointer. But this needs widely knowledges for most all of different archs. Common code change is easy for include/ and mm/ directory, but it's hard in all archs. Thanks for intel LKP framework, I fixed most all of build issues except a bug on powerpc which reports a "struct ptdesc *" incompatible with struct ptdesc *' pointer issue...Can you tell more about that problem on powerpc ? Which defconfig for instance ?
Hi Leroy, Thanks a lot for response. The detailed error and code tree is from LKP: On 8/3/24 11:26 AM, kernel test robot wrote:
tree: https://github.com/alexshi/linux.git ptdesc head: 3735e634f8feb67c941d17222b53906ace2fd2b8 commit: 8ac2ea5f299444d065b292043aed0a1e94996159 [14/17] mm/pgtable: use ptdesc in pgtable_trans_huge_deposit config: powerpc-allyesconfig (https://download.01.org/0day-ci/archive/20240803/202408031130.UnwgnuLS-lkp@intel.com/config) compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 423aec6573df4424f90555468128e17073ddc69e) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240803/202408031130.UnwgnuLS-lkp@intel.com/reproduce)
In file included from arch/powerpc/include/asm/book3s/64/mmu-hash.h:20:quoted
quoted
arch/powerpc/include/asm/book3s/64/pgtable.h:1372:52: error: incompatible pointer types passing 'struct ptdesc *' to parameter of type 'struct ptdesc *' [-Werror,-Wincompatible-pointer-types]
quoted
Another trouble is pmd_pgtable() conversion in the last patch. Maybe some of arch need define theirself own pmd_ptdesc()? This patchset is immature, even except above 2 issues, I just tested virutal machine booting and kselftest mm on x86 and arm64. Anyway any input are appreciated!Can you tell on which tree you based this series ? Last patch doesn't apply on 6.11-rc1:
The code based on akpm/mm-unstable tree, not upstream, you can check the code on: https://github.com/alexshi/linux.git ptdesc Thanks a lot! Alex