• S
    x86-64: align RODATA kernel section to 2MB with CONFIG_DEBUG_RODATA · 74e08179
    Suresh Siddha 提交于
    CONFIG_DEBUG_RODATA chops the large pages spanning boundaries of kernel
    text/rodata/data to small 4KB pages as they are mapped with different
    attributes (text as RO, RODATA as RO and NX etc).
    
    On x86_64, preserve the large page mappings for kernel text/rodata/data
    boundaries when CONFIG_DEBUG_RODATA is enabled. This is done by allowing the
    RODATA section to be hugepage aligned and having same RWX attributes
    for the 2MB page boundaries
    
    Extra Memory pages padding the sections will be freed during the end of the boot
    and the kernel identity mappings will have different RWX permissions compared to
    the kernel text mappings.
    
    Kernel identity mappings to these physical pages will be mapped with smaller
    pages but large page mappings are still retained for kernel text,rodata,data
    mappings.
    Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
    LKML-Reference: <20091014220254.190119924@sbs-t61.sc.intel.com>
    Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
    74e08179
init_64.c 23.8 KB