You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QEMU使用ivshmem时Backing Store Size不匹配问题排查求助

QEMU ivshmem 共享内存大小不匹配问题

启动ivshmem服务器后,启动QEMU虚拟机时出现如下错误:

qemu-system-x86_64: -device ivshmem-doorbell,vectors=1,chardev=testshm: backing store size 0x6300 does not match 'size' option 0x7000

错误发生在ivshmem服务器接受QEMU连接并发送shm fd之后,相关QEMU启动命令如下:

sudo qemu-system-x86_64 -initrd initrd.img-5.4.0-84-generic \
                        -kernel vmlinuz-5.4.0-84-generic \
                        -nographic -monitor none -serial stdio  \
                        -append 'root=/dev/vda1 console=ttys0' \
                        -machine q35 -cpu host \
                        -drive "file=base.snapshot.qcow2,format=qcow2,if=virtio" \
                        -chardev socket,path="/run/testshm",id="testshm" \
                        -device ivshmem-doorbell,vectors=1,chardev="testshm" \
                        -enable-kvm \
                        -m 12G \
                        -smp 16

疑问:

  1. 在哪里查看backing store的大小?
  2. 如何让backing store大小与QEMU的size选项匹配?

解决方案

一、查看backing store的大小

  • 若使用官方ivshmem-server,直接看启动时的-s参数值,这就是它创建的共享内存大小;如果是自定义服务器,去代码中查找创建共享内存的逻辑(比如shm_open后调用ftruncate的代码段),那里的数值就是backing store的实际大小。
  • 通过系统工具查询已存在的共享内存:
    执行ipcs -m命令,会列出系统中所有共享内存段,找到对应ivshmem的条目,bytes列即为该共享内存的大小。拿不准目标段的话,可搭配ipcs -mp查看关联的进程ID,对应上你的ivshmem服务器进程即可。

二、让两者大小匹配

错误核心是ivshmem服务器创建的共享内存大小,与QEMU的预期值不一致,分两种情况解决:

1. 使用官方ivshmem-server的场景

启动服务器时,通过-s参数指定与QEMU一致的大小。比如QEMU报错显示预期0x7000,启动服务器的命令需改为:

ivshmem-server -s 0x7000 -p /run/testshm

同时在QEMU启动命令中,给ivshmem-doorbell设备显式加上size参数,避免默认值差异导致的不匹配:

-device ivshmem-doorbell,vectors=1,chardev="testshm",size=0x7000

2. 自定义ivshmem服务器的场景

要么修改服务器代码,将共享内存大小调整为QEMU期望的0x7000(比如调整ftruncate的参数值);要么修改QEMU的size选项为服务器创建的0x6300,保证两边数值统一即可。

额外注意事项

  • 如果QEMU命令中未显式指定size,它会使用默认值,不同版本的默认值可能不同,建议始终显式指定该参数。
  • 共享内存大小必须是页面大小的整数倍(通常为4KB),若指定的大小不符合要求,系统会自动对齐,这也可能导致大小不匹配,因此尽量使用4KB的倍数来设置数值。

内容的提问来源于stack exchange,提问作者MUAS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:20:24