如何使用 Linux 内核命令行仅为可预取内存保留热插拔桥的内存?

如何使用 Linux 内核命令行仅为可预取内存保留热插拔桥的内存?

我一直尝试使用内核命令行选项“pci=hpmemsize=256M,realloc”为 PCI 热插拔设备保留更多桥接内存。这最终导致不可预取内存出现问题,内核无法分配内存,因为 hpmemsize 的大小过大。

我实际上只需要为可预取内存保留热插拔桥接内存,而无需为不可预取内存保留热插拔桥接内存,但 hpmemsize 选项似乎适用于两者。有没有办法只保留额外的热插拔桥接可预取内存,而对不可预取内存使用默认值?

答案1

我知道已经过去了将近四年,但截至 2020-01-27 终于有了解决方案。

由于 Linux v5.5 已经发布,我的提交是 d7b8a217521ca21e2c6391da88d4928c6ce1f539,因此您可以执行以下操作:

pci=hpmmioprefsize=256M,重新分配

我的提交保持现有的内核参数不变,同时添加 pci=hpmmiosize 和 pci=hpmmioprefsize 来独立控制 MMIO 和 MMIO_PREF 大小。

您可以在以下位置查看更多信息:https://www.kernel.org/doc/html/v5.5/admin-guide/kernel-parameters.html

您可以在这里找到提交:https://github.com/torvalds/linux/commit/d7b8a217521ca21e2c6391da88d4928c6ce1f539

如果您想使用 v5.5 之前的内核版本,您必须将此提交应用到源代码并自行构建。

相关内容