From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: Christophe LEROY <christophe.leroy@c-s.fr>,
npiggin@gmail.com, benh@kernel.crashing.org, paulus@samba.org,
mpe@ellerman.id.au
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH V3 1/6] powerpc/mm/book3s: Update pmd_present to look at _PAGE_PRESENT bit
Date: Fri, 21 Sep 2018 15:56:05 +0530 [thread overview]
Message-ID: <e64affb4-858b-1424-e850-07442fd45912@linux.ibm.com> (raw)
In-Reply-To: <71b953af-5063-2440-62aa-9c3a7a738dc6@c-s.fr>
On 9/21/18 11:25 AM, Christophe LEROY wrote:
>
>
> Le 20/09/2018 à 20:09, Aneesh Kumar K.V a écrit :
>> diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c
>> index d71c7777669c..aee04b209b51 100644
>> --- a/arch/powerpc/mm/pgtable.c
>> +++ b/arch/powerpc/mm/pgtable.c
>> @@ -188,11 +188,10 @@ void set_pte_at(struct mm_struct *mm, unsigned
>> long addr, pte_t *ptep,
>> pte_t pte)
>> {
>> /*
>> - * When handling numa faults, we already have the pte marked
>> - * _PAGE_PRESENT, but we can be sure that it is not in hpte.
>> - * Hence we can use set_pte_at for them.
>> + * Make sure hardware valid bit is not set. We don't do
>> + * tlb flush for this update.
>> */
>> - VM_WARN_ON(pte_present(*ptep) && !pte_protnone(*ptep));
>> + VM_WARN_ON(pte_val(*ptep) & _PAGE_PRESENT);
>
> Why not using pte_present() anymore ?
>
> Also, you are removing the pte_protnone() check, won't it change the
> behaviour ?
>
> If we can't use pte_present(), can we create a new helper for that
> (allthough _PAGE_PRESENT exists on all platforms).
>
> Christophe
>
This patch update a page table clear to clear _PAGE_PRESENT and mark it
invalid via _PAGE_INVALID. The pte_present now looks at both the flag.
That is we want these transient clear of pte to be considered as present
pte even if _PAGE_PRESENT is cleared. What we are catching by the debug
BUG_ON in these function is we are not using them to set a pte where the
old entry has a hadware valid bit set. This is because we don't do any
tlb flush with set_pte_at.
So the reason for pte_present -> pte_val() & _PAGE_PRESENT is because we
swtiched the clear to clear _PAGE_PRESENT and set _PAGE_INVALID and
pte_present now check both.
The reason for the removal of pte_protnone is because we dropped that
set_pte_at usage from core autonuma code long time back.
Now Considering we are calling this from mm/pgtable.c With your approach
of not using pte flags directly in core code we could switch this to
pte_hw_valid(). May be we can do that as an addon patch?
-aneesh
next prev parent reply other threads:[~2018-09-21 10:26 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-20 18:09 [PATCH V3 1/6] powerpc/mm/book3s: Update pmd_present to look at _PAGE_PRESENT bit Aneesh Kumar K.V
2018-09-20 18:09 ` [PATCH V3 2/6] powerpc/mm/hugetlb/book3s: add _PAGE_PRESENT to hugepd pointer Aneesh Kumar K.V
2018-09-20 18:09 ` [PATCH V3 3/6] powerpc/mm/book3s: Check for pmd_large instead of pmd_trans_huge Aneesh Kumar K.V
2018-09-20 18:09 ` [PATCH V3 4/6] arch/powerpc/mm/hash: validate the pte entries before handling the hash fault Aneesh Kumar K.V
2018-09-20 18:09 ` [PATCH V3 5/6] powerpc/mm/thp: update pmd_trans_huge to check for pmd_present Aneesh Kumar K.V
2018-09-20 18:09 ` [PATCH V3 6/6] powerpc/mm:book3s: Enable THP migration support Aneesh Kumar K.V
2018-09-21 5:55 ` [PATCH V3 1/6] powerpc/mm/book3s: Update pmd_present to look at _PAGE_PRESENT bit Christophe LEROY
2018-09-21 10:26 ` Aneesh Kumar K.V [this message]
2018-09-21 10:52 ` Christophe LEROY
2018-10-04 6:14 ` [V3, " Michael Ellerman
-- strict thread matches above, loose matches on Subject: below --
2018-08-24 6:00 [PATCH V3 " Aneesh Kumar K.V
2018-08-24 6:02 ` Aneesh Kumar K.V
2018-08-24 10:29 ` kbuild test robot
2018-08-24 10:34 ` kbuild test robot
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=e64affb4-858b-1424-e850-07442fd45912@linux.ibm.com \
--to=aneesh.kumar@linux.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=christophe.leroy@c-s.fr \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=paulus@samba.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).