Thread (24 messages) 24 messages, 4 authors, 2024-08-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help