bhyve: OpenBSD 6.3-Gast bootet nach syspatch reproduzierbar nicht mehr

Columbo0815

Kaffeemann
Teammitglied
Moin,

ich habe unter FreeBSD 11.2/amd64 (AMD Threadripper) einen OpenBSD-Gast. Nachdem ich bei dem Gast die aktuellsten Patches (mit syspatch) installiert habe, bootet der Gast nicht mehr sondern bleibt mit der folgenden Meldung hängen:

cpu0: ITLB 64 4kb entries fully associative, 64 4 MB entries fully associative
cpu0: DTLB 64 4kb entries fully associative, 64 4 MB entries fully associative
kernel: protection fault trap, code=0
Stopped at identifycpu+0x7b9: wrmsr
ddb{0}>
Es ist nachvollziehbar dieser Patch: https://ftp.openbsd.org/pub/OpenBSD/patches/6.3/common/014_amdlfence.patch.sig Solange ich diesen nicht installiert habe, läuft das System sauber.

Auch auffällig: Wenn ich dann mit bhyvectl die vm "destroye", erhalte ich folgende Meldung: Assertion failed: (error == 0), function emulate_inout, file /usr/src/usr.sbin/bhyve/inout.c, line 232.

Ich tippe auf einen Bug in bhyve, kann das jemand bestätigen?
 
Als Nachtrag: Wenn ich den Gast mit -w starte, bootet er durch. "This is intended for debug purposes."... sollte man wohl umbenennen in "This is intended for boot purposes."
 
Ja, also: Mit dem Patch versucht OpenBSDs Kernel per 'wrmsr' Befehl einen Wert in das Machine Specific Register (MSR) C001_1029 zu schreiben. Normalerweise, also ohne -w, verweigert Bhyve das Schreiben in beliebige MSR, da der Hypervisor darauf reagieren müsste. Was er nur kann, wenn er das MSR kennt und entsprechenden Code hat. OpenBSD reagiert darauf mit einem "Komisch, ich müsste das MSR schreiben können, kann es aber nicht. Da muss irgendwas fischig sein, also stürze ich hier mal besser ab.". Mit -w lässt Bhyve stumpf das Schreiben aller MSR zu. OpenBSD hat seinen Willen und fährt hoch.
 
Einen Bug zu melden kann nie schaden. :) Grundsätzlich wäre es auch sehr sinnvoll das MSR in Bhyve freizuschalten. So wie ich es verstehe muss der Hypervisor da gar nichts machen außer eben das Schreiben zu erlauben.
 
Zurück
Oben