iommu

如何在启动时启用 AMD CPU 中的 iommu?
iommu

如何在启动时启用 AMD CPU 中的 iommu?

主板信息: sudo dmidecode -t baseboard | grep -B 1 Product Manufacturer: Colorful Technology And Development Co.,LTD Product Name: BATTLE-AX B450M-HD CPU信息: sudo dmidecode -t processor | grep Version Version: AMD Athlon 3000G with Radeon Vega Graphics 操作系统信息: uname -a Linu...

Admin

如何在 IOMMU 中禁用/启用反弹缓冲区?
iommu

如何在 IOMMU 中禁用/启用反弹缓冲区?

我试图弄清楚如何在使用硬件 IOMMU 时禁用 IOMMU 中使用的反弹缓冲区。 为了提供更多上下文,当在内核中设置 IOMMU_DEFAULT_DMA_STRICT 时,它会在页面取消映射时启用严格的 IOTLB 失效。此外,它还使用“附加的反弹缓冲层”。 参考: config IOMMU_DEFAULT_DMA_STRICT bool "Translated - Strict" help Trusted devices use translation to restrict their access to only ...

Admin

Intel 机器使用的 IOMMU 配置是什么?
iommu

Intel 机器使用的 IOMMU 配置是什么?

在内核启动选项中(https://www.kernel.org/doc/Documentation/x86/x86_64/boot-options.txt)我注意到以下选项: iommu=[<size>][,noagp][,off][,force][,noforce] [,memaper[=<order>]][,merge][,fullflush][,nomerge] [,noaperture][,calgary] General iommu options: off Do...

Admin

将 SSD 移动到与第二个 GPU 相同的 IOMMU 组中
iommu

将 SSD 移动到与第二个 GPU 相同的 IOMMU 组中

我有一个可运行的 Qemu 配置,具有 GPU 直通功能。现在我还想将 SSD 传递给任务。我读到过,直通设备应该位于同一组中。以下脚本: #!/usr/bin/env bash shopt -s nullglob for g in /sys/kernel/iommu_groups/*; do echo "IOMMU Group ${g##*/}:" for d in $g/devices/*; do echo -e "\t$(lspci -nns ${d##*/})" done done 显示我的 GPU 位于组 ...

Admin

modprobe 和 pci 文件删除添加设备的区别
iommu

modprobe 和 pci 文件删除添加设备的区别

如果我只有一个 NVME 设备,我想看看这两组命令有何不同。块设备 ls -l /sys/block/nvme0n1 lrwxrwxrwx 1 root root 0 Apr 28 11:59 /sys/block/nvme0n1 -> ../devices/pci0000:00/0000:00:03.1/0000:09:00.0/nvme/nvme0/nvme0n1 sudo sh -c "echo 1 > /sys/block/nvme0n1/device/device/remove" # LINK DISABLE/DOWN sudo se...

Admin

mmio如何路由到io设备?
iommu

mmio如何路由到io设备?

我试图了解 IO 设备如何映射到运行 Linux 的现代 x86 机器上的“常规”内存地址空间。 我试图理解的一些细节是: cat /proc/iomem打印出 io 内存映射区域的列表(打印身体的地址)是不连续的 这些区域可以在运行时由内核模块动态请求,并通过 <linux/ioport.h> 中定义的函数 request_mem_region 进行分配 x86 机器mov同时用于内存访问和 IO(映射到内存) 因此,现在,假设内核模块代码正在运行,我们可能会遇到一条指令,例如mov [value] [virtual address]...

Admin

Gnome 因 VFIO GPU 直通而挂起
iommu

Gnome 因 VFIO GPU 直通而挂起

我的计算机上有 2 个独立 GPU。我一直在使用 VFIO 将第二个 GPU 传递给 Windows VM 来处理某些程序。现在我想将更强大的第一个 GPU 传递给 Windows VM 来玩一些游戏。(如果需要,我可以创建第二个 Windows VM,这不是问题)。 我已经检查过了脚本如果第一个 GPU 有自己的 IOMMU 组,并且它有。 问题是,当我正常启动或通过第二个 GPU 时,Gnome DE 和 gdm3 启动没有问题,但当我通过第一个 GPU 时却没有问题。 显示器的打开/关闭取决于所通过的 GPU。 我尝试过重新启动 gdm3、kill g...

Admin

如何检查iommu是否启用?
iommu

如何检查iommu是否启用?

我安装了centos 7.2 linux。我想检查系统中是否启用了 IOMMU。我怎样才能弄清楚?是否有任何 /proc 或 /sys 条目我可以检查以确保它是否启用? ...

Admin

Linux 交换分区会太大吗?
iommu

Linux 交换分区会太大吗?

Linux 交换分区会太大吗? 我很确定答案是“不”,但我还没有找到任何相关资源,所以我想问一下。 相比之下,主 Windows 交换文件 pagefile.sys 可能太大。通常引用的上限是 3 倍安装的 RAM,否则系统可能无法正常运行。 区别似乎在于,Linux 虚拟内存可以通过内核参数进行高度配置,更不用说编译选项了,而 Windows 虚拟内存则几乎没有。因此,Windows 虚拟内存管理似乎依赖于不可变的算法,或者似乎依赖于交换文件大小及其配置方式。 当然,Linux 有自己的虚拟内存管理算法,但问题是它们是否以及如何受到指定交换分区或文件大小的...

Admin

是否可以在Linux内核中强制指定特定的内存大小(使用无法识别的内存条)?
iommu

是否可以在Linux内核中强制指定特定的内存大小(使用无法识别的内存条)?

首先,我要一个旧的 PowerMac G5 Quad,它最终能够启动 2x1GB DDR2 2x4GB DDR2 2x4GB DDR2 2x4GB DDR2 问题是它只利用了前 2 个演出。 其他 3 对被识别为未知或类似的东西(在 Apple Diagnostics 中), 无论如何,我想问是否可以使用 Linux 内核启动参数(或其他命令)来强制使用或不使用特定数量的物理内存。 我尝试了明显的mem=26G但最终free -h仍然只显示1.9G。 我看到/dev/iommu最大地址是0x7FFFFFFF(~2.1 G)。 那么是否有可能以某种方式破解...

Admin

如何通过 IOMMU / dracut / 内核参数隔离(保留)具有相同硬件 ID 的 GPU(在 VoidLinux 中)
iommu

如何通过 IOMMU / dracut / 内核参数隔离(保留)具有相同硬件 ID 的 GPU(在 VoidLinux 中)

我正在尝试在 void 上设置 pci/gpu 直通。具体来说,使用vfio-pci驱动程序“保留”其中一个 GPU。我一直在遵循中概述的程序这个 void-docs PR(以及相关的 arch wiki) 我有一个 RX 580 和一个 RX 570,我的组允许隔离前者: IOMMU Group 0 - 11: dummy host bridges and such IOMMU Group 12: 03:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 400 Se...

Admin

如何防止 USB 驱动程序 (EHCI) 在特定 USB 控制器(PCIe 卡)上加载?
iommu

如何防止 USB 驱动程序 (EHCI) 在特定 USB 控制器(PCIe 卡)上加载?

我使用的是 Debian 10.8 和 Linux 内核 4.19.0-14。 我正在尝试使用 IOMMU 传递整个 USB 控制器(PCI Express 卡),但遇到问题。内核正在加载 ohci_pci 和 ehci_pci 驱动程序,我似乎无法阻止它或取消绑定它们。 我尝试删除它们(echo 1 > /sys/bus/pci/devices/...),但它冻结了系统。 (内核通过堆栈跟踪等显示内核 BUG) 因此,我试图阻止内核绑定 ohci 和 ehci 驱动程序,以便 VFIO 可以使用它们而无需先解除绑定。 我尝试了几件事: 将 pci-...

Admin

IOMMU 组太少 - 分裂?
iommu

IOMMU 组太少 - 分裂?

我购买了 AMD RyZEN 5 2400G、技嘉 B450M D3SH 和 16GB 内存。我认为一些较老的 GPU AMD Radeon HD 6XXX 是路过的。但 IOMMU 的分组让我感到不愉快的惊讶。 我将 GPU 放置在第一个 (16/16) 或第三个 (16/8) PCIe 插槽中,发现在这两种情况下它都包含在 iommu 组 0 中。但是这个 iommu 组的其他成员不能传递给 VM,也不能从主机系统中排除。只有四个 iommu 组 (0 - 3),而在教程和我的其他 PC 中,我看到十二个或更多组,并且一些 PCIe 插槽在单个组中非常隔...

Admin

如何修复 AMD-Vi:无法读取/写入 IOMMU 性能计数器。启动时无效Linux
iommu

如何修复 AMD-Vi:无法读取/写入 IOMMU 性能计数器。启动时无效Linux

我正在使用 amd 笔记本电脑。 CPU:AMD Ryzen 5 3500U,带有 Radeon Vega Mobile Gfx (8) @ 2.100GHz GPU:AMD ATI 03:00.0 毕加索 当开始无效时,我在顶部收到此消息 AMD-Vi: Unable to read/write to IOMMU perf counter 我在 stackoverflow/reddit 上尝试了一些其他解决方案,您可以在 grub 配置中添加一些内容,然后它会得到修复,但对于我的特定图形它不起作用,请帮助。 我尝试过添加GRUB_CMDLINE...

Admin