Messages in this thread | | | Subject | Re: [PATCH v1 3/5] mm: ptdump: Provide page size to notepage() | From | Steven Price <> | Date | Mon, 19 Apr 2021 15:00:14 +0100 |
| |
On 19/04/2021 14:14, Christophe Leroy wrote: > > > Le 16/04/2021 à 12:51, Steven Price a écrit : >> On 16/04/2021 11:38, Christophe Leroy wrote: >>> >>> >>> Le 16/04/2021 à 11:28, Steven Price a écrit : >>>> On 15/04/2021 18:18, Christophe Leroy wrote: >>>> >>>> To be honest I don't fully understand why powerpc requires the >>>> page_size - it appears to be using it purely to find "holes" in the >>>> calls to note_page(), but I haven't worked out why such holes would >>>> occur. >>> >>> I was indeed introduced for KASAN. We have a first commit >>> https://github.com/torvalds/linux/commit/cabe8138 which uses page >>> size to detect whether it is a KASAN like stuff. >>> >>> Then came https://github.com/torvalds/linux/commit/b00ff6d8c as a >>> fix. I can't remember what the problem was exactly, something around >>> the use of hugepages for kernel memory, came as part of the series >>> https://patchwork.ozlabs.org/project/linuxppc-dev/cover/cover.1589866984.git.christophe.leroy@csgroup.eu/ >> >> >> >> Ah, that's useful context. So it looks like powerpc took a different >> route to reducing the KASAN output to x86. >> >> Given the generic ptdump code has handling for KASAN already it should >> be possible to drop that from the powerpc arch code, which I think >> means we don't actually need to provide page size to notepage(). >> Hopefully that means more code to delete ;) >> > > Looking at how the generic ptdump code handles KASAN, I'm a bit sceptic. > > IIUC, it is checking that kasan_early_shadow_pte is in the same page as > the pgtable referred by the PMD entry. But what happens if that PMD > entry is referring another pgtable which is inside the same page as > kasan_early_shadow_pte ? > > Shouldn't the test be > > if (pmd_page_vaddr(val) == lm_alias(kasan_early_shadow_pte)) > return note_kasan_page_table(walk, addr);
Now I come to look at this code again, I think you're right. On arm64 this doesn't cause a problem - page tables are page sized and page aligned, so there couldn't be any non-KASAN pgtables sharing the page. Obviously that's not necessarily true of other architectures.
Feel free to add a patch to your series ;)
Steve
| |