Upstream Linux commit
8690bbcf3b7 ("Introduce cpu_dcache_is_aliasing()
across all architectures") allows checking whether the architecture has
aliasing data caches more accurately. This will be present in upstream
Linux v6.9 (currently in v6.9-rc3).
I expect this to improve the ring buffer performance on ARM64 and
32-bit ARM with non-aliasing data caches.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3e29966b8c8cab098d57437a11f1f94c53a9e186
if (config->output != RING_BUFFER_MMAP)
return;
+#ifdef cpu_dcache_is_aliasing
+ /*
+ * Some architectures implement flush_dcache_page() but don't
+ * actually have aliasing dcache. cpu_dcache_is_aliasing() was
+ * introduced in kernel v6.9 to query this more precisely.
+ */
+ if (!cpu_dcache_is_aliasing())
+ return;
+#endif
+
/*
* Architectures with caches aliased on virtual addresses may
* use different cache lines for the linear mapping vs