Re: [PATCH v3 1/2] arm64: refactor the rodata=xxx

From: Ard Biesheuvel
Date: Tue Dec 10 2024 - 02:22:17 EST


On Tue, 10 Dec 2024 at 08:17, Anshuman Khandual
<anshuman.khandual@xxxxxxx> wrote:
>
...
>
> Reformatted and cleaned up the above comment a bit but feel free to
> improve it further.
>
> /*
> * rodata=on (default)
> *
> * This applies read-only attributes to VM areas and to the linear
> * alias of the backing pages as well. This prevents code or read-
> * only data from being modified (inadvertently or intentionally),
> * via another mapping for the same memory page.
> *
> * But this might cause linear map region to be mapped down to base
> * pages, which may adversely affect performance in some cases.
> *
> * rodata=off
> *
> * This provides more block mappings and contiguous hints for linear
> * map region which would minimize TLB footprint. This also leaves
> * read-only kernel memory writable for debugging.
> *
> * rodata=noalias
> *
> * This provides more block mappings and contiguous hints for linear
> * map region which would minimize TLB footprint. Linear aliases of
> * pages belonging to read-only mappings in vmalloc region are also
> * marked as read-only.
>

If linear aliases are marked as read-only, how does 'noalias' differ from 'on'?