Ubuntu 16.04 - 安装 PCI 热插拔功能

Ubuntu 16.04 - 安装 PCI 热插拔功能

我正在尝试按照本教程实现 KVM 客户机中的内存热插拔:使用 Qemu/KVM 和 libvirt 进行内存热插拔

我设法完成了它,但什么也没发生。教程告诉我,我需要内核版本 3.9 或更高版本,而我正在运行 4.8。它还指出我需要模块acpiphppci_hotplug。谷歌搜索结果告诉我,我只需要运行(在客户机上):

for m in acpiphp pci_hotplug; do sudo modprobe ${m}; done

然而,这会导致以下错误输出:

modprobe: FATAL: Module acpiphp not found in directory /lib/modules/4.8.0-39-generic
modprobe: FATAL: Module pci_hotplug not found in directory /lib/modules/4.8.0-39-generic

这个问题似乎类似于询问 Ubuntu:PCI 热插拔似乎不起作用解决方案还指出我需要 acpiphp 和 pci_hotplug,所以我非常确信我需要这些模块。

问题

如何在 Ubuntu 16.04 上为我的 KVM 客户机acpiphp安装?pci_hotplug

答案1

可能该功能已在内核中编译,您无需加载任何模块。请检查内核中是否启用了以下选项:

# grep "CONFIG_HOTPLUG_PCI_ACPI=" /boot/config-`uname -r`
CONFIG_HOTPLUG_PCI=y

# grep "CONFIG_HOTPLUG_PCI=" /boot/config-`uname -r`
CONFIG_HOTPLUG_PCI_ACPI=y

# grep "CONFIG_MEMORY_HOTPLUG=" /boot/config-`uname -r`
CONFIG_MEMORY_HOTPLUG=y

然后,对于内核> = 4.8,您需要在启动时设置此参数:

memhp_default_state=online

(如 Proxmox Hotplug 说明中所述)

编辑:如果memhp_default_state=在启动时未设置,内核将默认为CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE内核配置。

相关内容