Re: [RFC PATCH v4 2/2] arm64: tlb: Use the TLBI RANGE feature in arm64
From: Robin Murphy <robin.murphy@arm.com>
Date: 2020-07-07 18:12:15
Also in:
linux-arm-kernel, linux-mm, lkml
From: Robin Murphy <robin.murphy@arm.com>
Date: 2020-07-07 18:12:15
Also in:
linux-arm-kernel, linux-mm, lkml
On 2020-07-07 18:46, Catalin Marinas wrote:
On Tue, Jul 07, 2020 at 06:43:35PM +0100, Marc Zyngier wrote:quoted
On 2020-07-07 18:36, Catalin Marinas wrote:quoted
On Mon, Jun 01, 2020 at 10:47:13PM +0800, Zhenyu Ye wrote:quoted
@@ -59,6 +69,47 @@ __ta; \ }) +/* + * __TG defines translation granule of the system, which is decidedby + * PAGE_SHIFT. Used by TTL. + * - 4KB : 1 + * - 16KB : 2 + * - 64KB : 3 + */ +#define __TG ((PAGE_SHIFT - 12) / 2 + 1)Nitpick: maybe something like __TLBI_TG to avoid clashes in case someone else defines a __TG macro.I have commented on this in the past, and still maintain that this would be better served by a switch statement similar to what is used for TTL already (I don't think this magic formula exists in the ARM ARM).Good point, it would be cleaner indeed.
FWIW, we use the somewhat obtuse "(shift - 10) / 2" in the SMMUv3 driver, but that's because we support multiple different granules at runtime and want to generate efficient code. Anything based on PAGE_SHIFT that resolves to a compile-time constant has no excuse for not being written in a clear and obvious manner ;) Robin.