1. XenForo 1.5.14 中文版——支持中文搜索!现已发布!查看详情
  2. Xenforo 爱好者讨论群:215909318 XenForo专区

科技 Linux x86/x86_64现在将始终保留前1MB的内存

Discussion in '新闻聚焦' started by 漂亮的石头, 2021-06-07.

  1. 漂亮的石头

    漂亮的石头 版主 Staff Member

    Joined:
    2012-02-10
    Messages:
    488,439
    Likes Received:
    48
    Linux x86/x86_64内核代码已经有了保留前1MB内存部分的逻辑,以避免BIOS或内核有可能破坏这些空间,而自Linux 5.13开始将无条件地始终保留前1MB内存。Linux内核已经满足了英特尔Sandy Bridge图形访问低于1MB的内存,已知前64K的内存被一些BIOS损坏,以及类似的问题出现在内存的低区域。

    [​IMG]

    但是,与其分别处理所有这些逻辑和除了EGA/VGA帧缓冲区和BIOS之外的其他可能的小众情况,内核团队更愿意做出一些保守的做法,例如总是保留前1MB的内存,这样它就不会被内核破坏。

    现在,Linux 5.13的做法是为Linux x86/x86_64无条件保留1MB,这一决定源于一个关于AMDRyzen系统在Linux 5.13上无法启动的错误报告,因为该报告整合了其早期内存保留处理,而只需要无条件地做第一个1MB的保留,事情处理起来更简单,而且潜在解决了其它的问题。

    这个变化是今天早上作为x86/urgent的紧急改进请求被送进来的。团队认为,"摒弃所有在第一个MB中预留一定量的内存以防止BIOS损坏的愚蠢做法,简单无条件地预留整个MB是最好的做法。"

    今天上午的x86拉动请求还包括禁用英特尔即将推出的Sapphire Rapids服务器CPU的新ENQCMD功能,直到该内核代码能够被适当清理和修复。x86版本还涉及第一代Hygon(基于AMD Zen)CPU不支持AMD64_SEV MSR的问题,因此Linux AMD SEV代码首先会检查CPUID位。

    了解更多:

    https://lore.kernel.org/lkml/YLx%[email protected]/T/#u
     
Loading...