Re: [RFC PATCH v4 2/2] arm64: tlb: Use the TLBI RANGE feature in arm64

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

 



On 2020-07-07 18:46, Catalin Marinas wrote:
On Tue, Jul 07, 2020 at 06:43:35PM +0100, Marc Zyngier wrote:
On 2020-07-07 18:36, Catalin Marinas wrote:
On Mon, Jun 01, 2020 at 10:47:13PM +0800, Zhenyu Ye wrote:
@@ -59,6 +69,47 @@
  		__ta;						\
  	})

+/*
+ * __TG defines translation granule of the system, which is decided
by
+ * 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.



[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux