Re: [PATCH 3.16.y-ckt 072/168] ARM: 8109/1: mm: Modify pte_write and pmd_write logic for LPAE

From: Ben Hutchings
Date: Sun Jan 11 2015 - 19:26:57 EST


On Mon, 2014-12-15 at 14:25 +0000, Luis Henriques wrote:
> 3.16.7-ckt3 -stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Steven Capper <steve.capper@xxxxxxxxxx>
>
> commit ded9477984690d026e46dd75e8157392cea3f13f upstream.
>
> For LPAE, we have the following means for encoding writable or dirty
> ptes:
> L_PTE_DIRTY L_PTE_RDONLY
> !pte_dirty && !pte_write 0 1
> !pte_dirty && pte_write 0 1
> pte_dirty && !pte_write 1 1
> pte_dirty && pte_write 1 0
>
> So we can't distinguish between writeable clean ptes and read only
> ptes. This can cause problems with ptes being incorrectly flagged as
> read only when they are writeable but not dirty.
>
> This patch renumbers L_PTE_RDONLY from AP[2] to a software bit #58,
> and adds additional logic to set AP[2] whenever the pte is read only
> or not dirty. That way we can distinguish between clean writeable ptes
> and read only ptes.
>
> HugeTLB pages will use this new logic automatically.
>
> We need to add some logic to Transparent HugePages to ensure that they
> correctly interpret the revised pgprot permissions (L_PTE_RDONLY has
> moved and no longer matches PMD_SECT_AP2). In the process of revising
> THP, the names of the PMD software bits have been prefixed with L_ to
> make them easier to distinguish from their hardware bit counterparts.
>
> Signed-off-by: Steve Capper <steve.capper@xxxxxxxxxx>
> Reviewed-by: Will Deacon <will.deacon@xxxxxxx>
> Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
> Cc: Hou Pengyang <houpengyang@xxxxxxxxxx>
> Signed-off-by: Luis Henriques <luis.henriques@xxxxxxxxxxxxx>
[...]

This one also looks suitable for 3.4 onwards, except that THP was not
supported before 3.11.

Ben.

--
Ben Hutchings
The world is coming to an end. Please log off.

Attachment: signature.asc
Description: This is a digitally signed message part