qemuとlapicとSMP環境

qemuでxv6のSMP対応の処理を追いかけていたらsmpオプションをつけているのに、lapicで1コア分しかapicidが取得できない事象が発生。xv6側の問題かと思って試行錯誤したが解消できず。SDMを見直したが間違いないように見える。結局、偶然qemu起動オプションでsockets/cores指定を行うことで解消できた。qemuマニュアルでは見つけられずちょっと苦戦。

 

問題発生時のqemu起動オプション

$qemu-system-i386 (中略) -smp 2

 

問題解消したqemu起動オプション

$qemu-system-i386 (中略) -smp 2,sockets=2,cores=1

 

環境

$qemu-system-i386 --version
QEMU emulator version 7.0.0
Copyright (c) 2003-2022 Fabrice Bellard and the QEMU Project developers