Skip to content

RFC arm64: change PoC D-cache flush to PoU

Ashok Kumar linux-arm-kernel 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 RFC Latest2 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2arm64: Defer dcache flush in __cpu_copy_user_pagearch/arm64/mm/copypage.c+2 -11 reply
2/2arm64: Use PoU cache instr for I/D coherencyarch/arm64/include/asm/cacheflush.h arch/arm64/mm/cache.S arch/arm64/mm/flush.c+32 -41 reply
2/2arm64: Use PoU cache instr for I/D coherency+0 -00 replies

Reviews trailers per patch

1 of 3 patches has a Reviewed-by or Acked-by.

PatchCatalin Marinas
1/2A-b
2/2
2/2

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [RFC PATCH 0/2] arm64: change PoC D-cache flush to PoU

For keeping I and D coherent, dcache flush till PoU(Point of Unification) should be sufficient instead of doing till PoC(Point of coherence). In SoC with more levels of cache, there could be a performance hit in doing flush till PoC as __flush_dcache_area does both flush and invalidate. Introduced new API __flush_dcache_area_pou which does only clean till PoU.

Also deferred dcache flush in __cpu_copy_user_page to __sync_icache_dcache. May I know why I/D sync is needed in __cpu_copy_user_page? My understanding is that any self modifying code in userspace is supposed to take care of the coherency using the respective cache flush system call.

Ashok Kumar (2):
arm64: Defer dcache flush in __cpu_copy_user_page
arm64: Use PoU cache instr for I/D coherency

 arch/arm64/include/asm/cacheflush.h |  1 +
 arch/arm64/mm/cache.S               | 22 ++++++++++++++++++++++
 arch/arm64/mm/copypage.c            |  3 ++-
 arch/arm64/mm/flush.c               | 13 +++++++++----
 4 files changed, 34 insertions(+), 5 deletions(-)
Signature · 1 line
2.1.0