学网站建设要多少钱,企业信息公示管理系统山东,v2ex 网站建设,WordPress做老用户管理文章目录检查是否直接支持IOMMU分组配置IOMMU分组不直接支持的需要更新内核参考检查是否直接支持IOMMU分组
下面 以SATA控制器为例#xff0c;看pci设备是否可以直接支持IOMMU分组
/* 打印pci设备详细信息*/
lspci -vv
/* 找到SATA controller 段落*/
16:00.1 SATA controll…
文章目录检查是否直接支持IOMMU分组配置IOMMU分组不直接支持的需要更新内核参考检查是否直接支持IOMMU分组
下面 以SATA控制器为例看pci设备是否可以直接支持IOMMU分组
/* 打印pci设备详细信息*/
lspci -vv
/* 找到SATA controller 段落*/
16:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] Device 43eb (prog-if 01 [AHCI 1.0])Subsystem: ASMedia Technology Inc. Device 1062Flags: bus master, fast devsel, latency 0, IRQ 34, IOMMU group 8Memory at fcf80000 (32-bit, non-prefetchable) [size128K]Expansion ROM at fcf00000 [disabled] [size512K]Capabilities: [50] MSI: Enable Count1/1 Maskable- 64bitCapabilities: [78] Power Management version 3Capabilities: [80] Express Legacy Endpoint, MSI 00Capabilities: [100] Advanced Error Reporting/* 检查是否存在Capabilities: Access Control Services*/Capabilities: [2a0] Access Control ServicesKernel driver in use: vfio-pciKernel modules: ahci如果设备信息中支持ACSAccess Control Services便可直接通过设置开启IOMMU分组。若不支持ACS需要更新内核关闭ACS检查开启IOMMU分组。 由于PCIe设备是支持P2P传输的这也就意味着同一个PCIe交换开关连接下不同终端可以在不流经RootComplex的情况下互相通信。若使用过程中不希望P2P直接通信又不采取相关措施则该漏洞很有可能被无意或有意触发使得某些EP收到无效、非法甚至恶意的访问请求从而引发一系列潜在问题。ACS协议提供了一种机制能够决定一个TLP被正常路由、阻塞或重定向。在SR-IOV系统中还能防止属于VI或者不同SI的设备Function之间直接通信。通过在交换节点上开启ACS服务可以禁止P2P发送强迫交换节点将所有地址的访问请求送到RootComplex从而避开P2P访问中的风险。ACS可以应用于PCIe桥、交换节点以及带有VF的PF等所有具有调度功能的节点充当一个看门人的角色。 配置IOMMU分组
编辑/etc/modules文件将如下模块加入文件中
vi /etc/modules# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with # are ignored.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd编辑/etc/default/grub文件修改内容详见注释
vi /etc/default/grub# If you change this file, run update-grub afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n Simple configurationGRUB_DEFAULT0
GRUB_TIMEOUT5
GRUB_DISTRIBUTORlsb_release -i -s 2 /dev/null || echo Debian
# 在原始GRUB_CMDLINE_LINUX_DEFAULT后加入amd_iommuon pcie_acs_overridedownstream,multifunction
# 若是intel的cpu则将amd_iommu改为intel_iommu即可
# GRUB_CMDLINE_LINUX_DEFAULTquiet
GRUB_CMDLINE_LINUX_DEFAULTquiet amd_iommuon pcie_acs_overridedownstream,multifunction
GRUB_CMDLINE_LINUX
GRUB_DISABLE_OS_PROBERfalse
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM0x01234567,0xfefefefe,0x89abcdef,0xefefefef# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINALconsole# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command vbeinfo
#GRUB_GFXMODE640x480# Uncomment if you dont want GRUB to pass rootUUIDxxx parameter to Linux
#GRUB_DISABLE_LINUX_UUIDtrue# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERYtrue# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE480 440 1更新grub引导和ramfs
# 更新grub引导
update-grub
# 更新ramfs
update-initramfs -u -k all如若正常所有设备均有独立IOMMU Group 编号
不直接支持的需要更新内核
提供自己编译好的pve-kernel 6.1.6 百度云链接 将上述文件复制到pve中执行如下命令更新内核重启即可。
# 更新内核
dpkg -i *.deb参考
[1] https://developer.aliyun.com/article/1071405