ioremap_wc on arm64
Get series with b4
b4 am 20170522142059.GA83004@localhostVersions newest first
- v1 Latest0 of 2 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 2 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/2] ioremap_wc on arm64
Quoted 20 lines · Will Deacon
Quoted 19 lines · Jayachandran C
Quoted 6 lines · Catalin Marinas
Quoted 5 lines · Jayachandran C
From its definition, the device "gather" attribute seems to be a better fit for implementing write combining mapping in
ioremap_wc(). And on ThunderX2, Device GRE mapping has optimizations that makes it much faster than normal uncached mapping.Quoted 6 lines
Quoted 3 lines
I am not sure of the reasoning behind the original decision to make
ioremap_wcuse "Normal Non-Cached" attribute, since all the other variants of ioremap use device attributes, andioremap_wclooks like an exception.The reason we kept it as Normal NC is that
Device_GREdoes not allow unaligned accesses.There does not to be an expectation to have unaligned access on
__iomempointers. I also see that memremap can callioremap_wc(which is a Normal mapping) orioremap_wt(which is a Device mapping), so that is inconsistent as well.
Quoted 6 lines
Quoted 2 lines
Was this added for a specific use case? Also, do you think this patchset is acceptable?
I think it was used for framebuffers. Note that using normal-NC also aligns with
arch/arm/and, since normal-NC is strictly a more relaxed memory type than Device-GRE, I'm really not keen making on this change.
If there is a hardware requirement that Normal-NC has to be implemented as more relaxed attribute than Device GRE, I can go back to the hardware team on this. I did not see any text in the ARM ARM requiring this.
Even if that is the case, having Normal attribute for ioremap just for ioremap_wc is inconsistent. The Device Gathering attribute by its definition is exactly what write combining requires. The memremap() API looks like a better way to expose Normal-NC mapping (with additional features like speculation etc.) if implemented correctly.
Also, patch 1/2 should be useful anyway - can that be picked up?
Thanks,
JC.