Re: [REGRESSION] v5.13: FS_DAX unavailable on 32-bit ARM

From: Arnd Bergmann
Date: Fri Jan 26 2024 - 15:14:47 EST


On Fri, Jan 26, 2024, at 20:33, Mathieu Desnoyers wrote:
>
> A) I have prepared a patch series introducing cache_is_aliasing() with
> new Kconfig
> options:
>
> * ARCH_HAS_CACHE_ALIASING
> * ARCH_HAS_CACHE_ALIASING_DYNAMIC
>
> and implemented it for all architectures. The "DYNAMIC" implementation
> implements cache_is_aliasing() as a runtime check, which is what is needed
> on architectures like 32-bit ARM.
>
> With this we can basically narrow down the list of architectures which are
> unsupported by DAX to those which are really affected, without actually solving
> the issue for architectures with virtually aliased dcaches.

The dynamic option should only be required when building for
ARMv6, which is really rare. On an ARMv7-only configuration,
we know that the dcache is non-aliasing, so the compile-time
check should be sufficient.

Even on ARMv6, this could be done as a compile-time choice
by platform, since we mostly know what the chips can do:
bcm2835, imx3, wm8750 and s3c64xx are non-aliasing because
they are limited to 16KB L1 caches, while omap2 and as2500
are aliasing with 32KB caches. With realview/integrator it
depends on the exact CPU that was installed.

Arnd