Re: [PATCH RFC] mm: arm64: advance pte for contpte_ptep_set_access_flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05.09.24 09:20, Ryan Roberts wrote:
On 05/09/2024 04:27, Barry Song wrote:
On Thu, Sep 5, 2024 at 3:50 AM Ryan Roberts <ryan.roberts@xxxxxxx> wrote:

On 04/09/2024 16:13, Will Deacon wrote:
(Adding Ryan, since you're asking him a question!)

Thanks, Will!

Afraid I don't do a good job of monitoring the list; I'm guessing there are
automated ways to filter for mentions of my name so I catch this sort of thing
in future?

It's not your fault. I just realized that, for some unknown reason, I forgot to
CC you.

No worries. I was just asking if there is a general approach that people take to
monitor mail that they are not explicitly cc'ed on, but I guess that's a bit off
topic.

I do something slightly different: I filter mails based on keywords. For example, whenever a patch contains page_mapcount(), folio_mapcount(), folio_mapped(), ... it gets put into a separate "mapcount" folder :) Same regarding file names.

For you, it would probably make sense to filter for contpte or sth like that :)

[...]


The code is correct and working as intended, AFAICT. But I accept that this is
not exactly obvious. I'd be happy to Rb your proposed change if you feel it
clarifies things.

If this is the case, I'd rather add some comments instead in v2?

diff --git a/arch/arm64/mm/contpte.c b/arch/arm64/mm/contpte.c
index a3edced29ac1..55107d27d3f8 100644
--- a/arch/arm64/mm/contpte.c
+++ b/arch/arm64/mm/contpte.c
@@ -421,6 +421,12 @@ int contpte_ptep_set_access_flags(struct
vm_area_struct *vma,
                 ptep = contpte_align_down(ptep);
                 start_addr = addr = ALIGN_DOWN(addr, CONT_PTE_SIZE);

+               /*
+                * We are not advancing entry because __ptep_set_access_flags()
+                * only consumes access flags from entry. And since we
have checked
+                * for the whole contpte block and returned early, pte_same()
+                * within __ptep_set_access_flags() is likely false.
+                */
                 for (i = 0; i < CONT_PTES; i++, ptep++, addr += PAGE_SIZE)
                         __ptep_set_access_flags(vma, addr, ptep, entry, 0);

LGTM:

Reviewed-by: Ryan Roberts <ryan.roberts@xxxxxxx>


Acked-by: David Hildenbrand <david@xxxxxxxxxx>

--
Cheers,

David / dhildenb





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux