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

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

 




On 09/09/25 10:56 AM, Shijie Huang wrote:
> 
> On 09/09/2025 12:29, Anshuman Khandual wrote:
>> On 09/09/25 9:02 AM, Huang Shijie wrote:
>>> As per admin guide documentation, "rodata=on" should be the default on
>>> platforms. Documentation/admin-guide/kernel-parameters.txt describes
>>> these options as
>>>
>>>     rodata=         [KNL,EARLY]
>>>             on      Mark read-only kernel memory as read-only (default).
>>>             off     Leave read-only kernel memory writable for debugging.
>>>             full    Mark read-only kernel memory and aliases as read-only
>>>                     [arm64]
>>>
>>> But on arm64 platform, RODATA_FULL_DEFAULT_ENABLED is enabled by default,
>>> so "rodata=full" is the default instead.
>>>
>>> This patch implements the following changes:
>>>   - Make "rodata=on" behaviour same as the original "rodata=full".
>>>     This keeps align with the x86.
>>>   - Make "rodata=noalias" (new) behaviour same as the original "rodata=on"
>>>   - Drop the original "rodata=full"
>>>
>>> After this patch, the "rodata=on" will be the default on arm64 platform
>>> as well.
>>>
>>> Different rodata options may have different performance, so record more
>>> detail information here:
>>>
>>>   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. This leaves the linear
>>>      alias of read-only mappings in the vmalloc space writeable, making
>>                         typo     ^^^^^^^^
> What's the typo? It seems "writeable" is okay.

Alright.
>>>      them susceptible to inadvertent modification by software.
>>>
>>> Signed-off-by: Huang Shijie <shijie@xxxxxxxxxxxxxxxxxxxxxx>
>>> ---
>>>   Documentation/admin-guide/kernel-parameters.txt | 5 +++--
>>>   arch/arm64/include/asm/setup.h                  | 4 ++--
>>>   2 files changed, 5 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
>>> index db84a629f7b1..138e0db5af64 100644
>>> --- a/Documentation/admin-guide/kernel-parameters.txt
>>> +++ b/Documentation/admin-guide/kernel-parameters.txt
>>> @@ -6418,8 +6418,9 @@
>>>       rodata=        [KNL,EARLY]
>>>           on    Mark read-only kernel memory as read-only (default).
>>>           off    Leave read-only kernel memory writable for debugging.
>>> -        full    Mark read-only kernel memory and aliases as read-only
>>> -                [arm64]
>>> +        noalias    Mark read-only kernel memory as read-only but retain
>>> +            writable aliases in the direct map for regions outside
>>> +            of the kernel image. [arm64]
>> Should not the arm64 specific performance implications be mentioned
>> in the above documentation update as well ? But in case this appears
>> too much platform specific - probably do consider adding them above
>> or inside arch_parse_debug_rodata() as an in-code documentation.
> 
> Will had already suggested do not add them for the arch_parse_debug_rodata():
> 
> https://lists.infradead.org/pipermail/linux-arm-kernel/2025-September/1060135.html
Alright.

Reviewed-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux