linux - 什么是“irqchip”?
问题描述
关于 QEMU x86_64 机器选项kernel_irqchip=on|off
,描述如下:
Controls in-kernel irqchip support for the chosen accelerator when available
什么是“irqchip”?
解决方案
“irqchip”是 KVM 的名称,通常称为“中断控制器”。这是一个硬件,它需要大量的中断信号(来自 USB 控制器、磁盘控制器、PCI 卡、串行端口等设备),并以让 CPU 控制启用哪些中断的方式将它们呈现给 CPU,当一个新的中断到达时被通知,关闭一个已处理的中断,等等。
仿真系统 (VM) 需要仿真中断控制器,就像真实硬件具有真实硬件中断控制器一样。在 KVM VM 中,可以让这个模拟设备像所有其他模拟设备一样位于用户空间(即 QEMU)中。但是由于中断控制器与模拟中断的处理密切相关,因此当客户操作中断控制器时,必须频繁地在内核和用户空间之间来回切换,这对性能不利。因此,KVM 在内核中提供了一个中断控制器的仿真(“内核中的 irqchip”),QEMU 可以使用它而不是在用户空间中提供自己的版本。(至少在某些架构上,内核中的 irqchip 还能够使用硬件辅助来虚拟化中断处理,而用户空间版本则不能,
默认的 QEMU 设置是使用内核中的 irqchip,这可以提供最佳性能。所以你不需要对这个命令行选项做任何事情,除非你知道你有一个特定的原因为什么内核中的 irqchip 不适合你。
推荐阅读
- node.js - 如何断言 Express app.use 是用中间件函数调用的?(摩卡)
- python - 使用 statsmodels 约束 OLS(或 WLS)系数
- react-native - 如何在 React Native 中实现无模糊的投影
- python - 如何删除所有出现的字符串?
- parse-platform - 使用 parse-sdk-php 在 Parse-platform 中使用 $gte 和 $lte 进行聚合不起作用
- python-3.x - 使用 pandas 基于列查找两个数据帧之间的公共行
- spring-webflux - 对 CMIS 的反应式支持
- javascript - 如何使用 discord.js V12 检测用户何时离开 Discord 中的语音频道
- python - 从 Python 脚本获取三重输出
- c++ - 使用模板和继承时出现问题,架构 x86_64 的错误未定义符号: