Le 26/02/2020 à 11:56, Mike Rapoport a écrit :
On Wed, Feb 26, 2020 at 10:46:13AM +0100, Christophe Leroy wrote:Le 26/02/2020 à 10:13, Mike Rapoport a écrit :On Tue, Feb 18, 2020 at 12:54:40PM +0200, Mike Rapoport wrote:On Sun, Feb 16, 2020 at 11:41:07AM +0100, Christophe Leroy wrote:Le 16/02/2020 à 09:18, Mike Rapoport a écrit :From: Mike Rapoport <rppt@xxxxxxxxxxxxx> Implement primitives necessary for the 4th level folding, add walks of p4d level where appropriate and replace 5level-fixup.h with pgtable-nop4d.h.I don't think it is worth adding all this additionnals walks of p4d, this patch could be limited to changes like: - pud = pud_offset(pgd, gpa); + pud = pud_offset(p4d_offset(pgd, gpa), gpa); The additionnal walks should be added through another patch the day powerpc need them.Ok, I'll update the patch to reduce walking the p4d.Here's what I have with more direct acceses from pgd to pud.I went quickly through. This looks promising. Do we need the walk_p4d() in arch/powerpc/mm/ptdump/hashpagetable.c ? Can't we just do @@ -445,7 +459,7 @@ static void walk_pagetables(struct pg_state *st) addr = KERN_VIRT_START + i * PGDIR_SIZE; if (!pgd_none(*pgd)) /* pgd exists */ - walk_pud(st, pgd, addr); + walk_pud(st, p4d_offset(pgd, addr), addr);We can do addr = KERN_VIRT_START + i * PGDIR_SIZE; p4d = p4d_offset(pgd, addr); if (!p4d_none(*pgd)) walk_pud() But I don't think this is really essential. Again, we are trading off code consistency vs line count. I don't think line count is that important.
Ok. Christophe