Messages in this thread | | | Subject | Re: [RFC PATCH v4 2/2] arm64: tlb: Use the TLBI RANGE feature in arm64 | From | Robin Murphy <> | Date | Tue, 7 Jul 2020 19:12:08 +0100 |
| |
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.
| |