From: Steven Price <steven.price@arm.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org
Cc: "Mark Rutland" <Mark.Rutland@arm.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Paul Mackerras" <paulus@samba.org>,
"H. Peter Anvin" <hpa@zytor.com>, "Will Deacon" <will@kernel.org>,
"Liang, Kan" <kan.liang@linux.intel.com>,
x86@kernel.org, "Ingo Molnar" <mingo@redhat.com>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Arnd Bergmann" <arnd@arndb.de>,
kvm-ppc@vger.kernel.org, "Jérôme Glisse" <jglisse@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
"Andy Lutomirski" <luto@kernel.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
linux-arm-kernel@lists.infradead.org,
"Ard Biesheuvel" <ard.biesheuvel@linaro.org>,
linux-kernel@vger.kernel.org, "James Morse" <james.morse@arm.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v17 06/23] powerpc: mm: Add p?d_leaf() definitions
Date: Fri, 20 Dec 2019 11:53:44 +0000 [thread overview]
Message-ID: <e99a9857-e9f4-588a-ad12-4d5f3a9de739@arm.com> (raw)
In-Reply-To: <877e2smt6r.fsf@mpe.ellerman.id.au>
On 19/12/2019 11:49, Michael Ellerman wrote:
> Steven Price <steven.price@arm.com> writes:
>> walk_page_range() is going to be allowed to walk page tables other than
>> those of user space. For this it needs to know when it has reached a
>> 'leaf' entry in the page tables. This information is provided by the
>> p?d_leaf() functions/macros.
>>
>> For powerpc p?d_is_leaf() functions already exist. Export them using the
>> new p?d_leaf() name.
>>
>> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> CC: Paul Mackerras <paulus@samba.org>
>> CC: Michael Ellerman <mpe@ellerman.id.au>
>> CC: linuxppc-dev@lists.ozlabs.org
>> CC: kvm-ppc@vger.kernel.org
>> Signed-off-by: Steven Price <steven.price@arm.com>
>> ---
>> arch/powerpc/include/asm/book3s/64/pgtable.h | 3 +++
>> 1 file changed, 3 insertions(+)
>
> We have fallback versions of our pmd_is_leaf() etc. in
> arch/powerpc/include/asm/pgtable.h, eg:
>
> #ifndef pmd_is_leaf
> #define pmd_is_leaf pmd_is_leaf
> static inline bool pmd_is_leaf(pmd_t pmd)
> {
> return false;
> }
> #endif
>
> Because we support several different MMUs and most of them don't need to
> do anything.
>
> So we could put the compatibility #defines to your names along with the
> fallback versions in asm/pgtable.h, rather than in
> asm/book3s/64/pgtable.h
>
> But I see you also have fallbacks for your versions, so it probably
> doesn't matter either way.
>
> So I'm OK with this version, unless you think there's a compelling
> reason to do the compatibility #defines in our asm/pgtable.h
I was thinking that (assuming this series actually gets merged this
time), the p?d_is_leaf() versions could be removed and replaced by
p?d_leaf() in the future. Since the fallbacks are in the asm-generic
code it makes sense for the pmd_leaf() definitions to be next to the
non-fallback versions.
> Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Thanks!
Steve
> cheers
>
>
>> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
>> index b01624e5c467..201a69e6a355 100644
>> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
>> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
>> @@ -1355,18 +1355,21 @@ static inline bool is_pte_rw_upgrade(unsigned long old_val, unsigned long new_va
>> * Like pmd_huge() and pmd_large(), but works regardless of config options
>> */
>> #define pmd_is_leaf pmd_is_leaf
>> +#define pmd_leaf pmd_is_leaf
>> static inline bool pmd_is_leaf(pmd_t pmd)
>> {
>> return !!(pmd_raw(pmd) & cpu_to_be64(_PAGE_PTE));
>> }
>>
>> #define pud_is_leaf pud_is_leaf
>> +#define pud_leaf pud_is_leaf
>> static inline bool pud_is_leaf(pud_t pud)
>> {
>> return !!(pud_raw(pud) & cpu_to_be64(_PAGE_PTE));
>> }
>>
>> #define pgd_is_leaf pgd_is_leaf
>> +#define pgd_leaf pgd_is_leaf
>> static inline bool pgd_is_leaf(pgd_t pgd)
>> {
>> return !!(pgd_raw(pgd) & cpu_to_be64(_PAGE_PTE));
>> --
>> 2.20.1
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
next prev parent reply other threads:[~2019-12-20 11:53 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-18 16:23 [PATCH v17 00/23] Generic page walk and ptdump Steven Price
2019-12-18 16:23 ` [PATCH v17 01/23] mm: Add generic p?d_leaf() macros Steven Price
2019-12-19 11:43 ` Michael Ellerman
2019-12-20 11:48 ` Steven Price
2019-12-21 10:35 ` Michael Ellerman
2019-12-18 16:23 ` [PATCH v17 02/23] arc: mm: Add p?d_leaf() definitions Steven Price
2019-12-18 16:23 ` [PATCH v17 03/23] arm: " Steven Price
2019-12-18 16:23 ` [PATCH v17 04/23] arm64: " Steven Price
2019-12-18 16:23 ` [PATCH v17 05/23] mips: " Steven Price
2019-12-18 16:23 ` [PATCH v17 06/23] powerpc: " Steven Price
2019-12-19 11:49 ` Michael Ellerman
2019-12-20 11:53 ` Steven Price [this message]
2019-12-18 16:23 ` [PATCH v17 07/23] riscv: " Steven Price
2019-12-18 16:23 ` [PATCH v17 08/23] s390: " Steven Price
2019-12-18 16:23 ` [PATCH v17 09/23] sparc: " Steven Price
2019-12-18 16:23 ` [PATCH v17 10/23] x86: " Steven Price
2019-12-18 16:23 ` [PATCH v17 11/23] mm: pagewalk: Add p4d_entry() and pgd_entry() Steven Price
2019-12-19 14:25 ` Thomas Hellström (VMware)
2019-12-20 15:35 ` Steven Price
2019-12-18 16:23 ` [PATCH v17 12/23] mm: pagewalk: Allow walking without vma Steven Price
2019-12-18 16:23 ` [PATCH v17 13/23] mm: pagewalk: Don't lock PTEs for walk_page_range_novma() Steven Price
2019-12-18 16:23 ` [PATCH v17 14/23] mm: pagewalk: fix termination condition in walk_pte_range() Steven Price
2019-12-18 16:23 ` [PATCH v17 15/23] mm: pagewalk: Add 'depth' parameter to pte_hole Steven Price
2019-12-18 16:23 ` [PATCH v17 16/23] x86: mm: Point to struct seq_file from struct pg_state Steven Price
2019-12-18 16:23 ` [PATCH v17 17/23] x86: mm+efi: Convert ptdump_walk_pgd_level() to take a mm_struct Steven Price
2019-12-18 16:23 ` [PATCH v17 18/23] x86: mm: Convert ptdump_walk_pgd_level_debugfs() to take an mm_struct Steven Price
2019-12-18 16:23 ` [PATCH v17 19/23] mm: Add generic ptdump Steven Price
2019-12-18 16:23 ` [PATCH v17 20/23] x86: mm: Convert dump_pagetables to use walk_page_range Steven Price
2019-12-18 16:24 ` [PATCH v17 21/23] arm64: mm: Convert mm/dump.c to use walk_page_range() Steven Price
2020-02-16 16:25 ` Ard Biesheuvel
2020-02-17 10:01 ` Steven Price
2020-02-17 10:16 ` Ard Biesheuvel
2019-12-18 16:24 ` [PATCH v17 22/23] arm64: mm: Display non-present entries in ptdump Steven Price
2019-12-18 16:24 ` [PATCH v17 23/23] mm: ptdump: Reduce level numbers by 1 in note_page() Steven Price
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e99a9857-e9f4-588a-ad12-4d5f3a9de739@arm.com \
--to=steven.price@arm.com \
--cc=Mark.Rutland@arm.com \
--cc=akpm@linux-foundation.org \
--cc=ard.biesheuvel@linaro.org \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=jglisse@redhat.com \
--cc=kan.liang@linux.intel.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).