On 21.05.21 10:06, Florian Bezdeka wrote: > Qemu 5.2 adds a new CPU feature named kvm-asyncpf-int. The qemu 5.2 > changelog says: > > A new KVM feature which improves the handling of asynchronous page > faults is available with -cpu ...,kvm-async-pf-int. This requires > Linux 5.8. > > If this feature is enabled, the (jailhouse enabled) guest kernel will > run into the following situation during "jailhouse cell create". To > avoid that we need to disable this cpu feature when qemu supports it. > > jailhouse console output: > > FATAL: Unhandled MSR write: 4b564d02 > RIP: 0xffffffff8103e117 RSP: 0xffffc900000ffe60 FLAGS: 46 > RAX: 0x0000000000000000 RBX: 0x0000000000000003 RCX: 0x000000004b564d02 > RDX: 0x0000000000000000 RSI: 0x0000000000000000 RDI: 0x000000004b564d02 > CS: 10 BASE: 0x0000000000000000 AR-BYTES: a09b EFER.LMA 1 > CR0: 0x0000000080050033 CR3: 0x000000000200a002 CR4: 0x0000000000372ea0 > EFER: 0x0000000000000d01 > > Stack trace: > > [ 41.849660] #PF: supervisor instruction fetch in kernel mode > [ 41.850301] #PF: error_code(0x0010) - not-present page > [ 41.850839] PGD 0 P4D 0 > [ 41.851121] Oops: 0010 [#1] PREEMPT SMP PTI > [ 41.851570] CPU: 3 PID: 25 Comm: cpuhp/3 Tainted: G O > 5.10.31 #1 > [ 41.852326] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS > 1.14.0-2.fc34 04/01/2014 > [ 41.853207] RIP: 0010:0x0 > [ 41.853494] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6. > [ 41.854287] RSP: 0018:ffffc900000ffe60 EFLAGS: 00010046 > [ 41.854962] RAX: 0000000000000000 RBX: 0000000000000003 RCX: > 000000004b564d02 > [ 41.855605] RDX: 0000000000000000 RSI: 0000000000000000 RDI: > 000000004b564d02 > [ 41.856242] RBP: ffff88803f9971a0 R08: ffff88803f9971c8 R09: > ffff888002c00058 > [ 41.856873] R10: 0000000000000000 R11: 0000000000000000 R12: > ffffffff8103e827 > [ 41.857511] R13: ffffffff8106efa1 R14: ffff88803f9971c8 R15: > 0000000000000000 > [ 41.858152] FS: 0000000000000000(0000) GS:ffff88803f980000(0000) > knlGS:0000000000000000 > [ 41.859131] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 41.859738] CR2: ffffffffffffffd6 CR3: 000000000200a002 CR4: > 0000000000372ea0 > [ 41.860378] DR0: 0000000000000000 DR1: 0000000000000000 DR2: > 0000000000000000 > [ 41.860929] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: > 0000000000000400 > [ 41.861488] Call Trace: > [ 41.861698] kvm_pv_disable_apf.part.13+0x11/0x2f > [ 41.862084] kvm_cpu_down_prepare+0x42/0x50 > [ 41.862415] cpuhp_invoke_callback+0xc1/0x238 > [ 41.862760] ? smpboot_unregister_percpu_thread+0x59/0x59 > [ 41.863187] cpuhp_thread_fun+0xdd/0x117 > [ 41.863518] smpboot_thread_fn+0x190/0x1a5 > [ 41.863847] kthread+0x112/0x11a > [ 41.864109] ? kthread_unpark+0x62/0x62 > [ 41.864412] ret_from_fork+0x22/0x30 > [ 41.864765] Modules linked in: af_packet snd_hda_codec_generic evdev > pcspkr snd_hda_intel snd_intel_dspcfg serio_raw snd_hda_codec sg snd_hda_core > snd_pcm snd_timer snd soundcore intel_agp intel_gtt button jailhouse(O) > ip_tables x_tables ipv6 psmouse e1000e ptp i2c_i801 i2c_smbus lpc_ich pps_core > [ 41.866836] CR2: 0000000000000000 > [ 41.867105] ---[ end trace a63d134522cf2445 ]--- > [ 41.867466] RIP: 0010:0x0 > [ 41.867680] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6. > [ 41.868216] RSP: 0018:ffffc900000ffe60 EFLAGS: 00010046 > [ 41.868629] RAX: 0000000000000000 RBX: 0000000000000003 RCX: > 000000004b564d02 > [ 41.869185] RDX: 0000000000000000 RSI: 0000000000000000 RDI: > 000000004b564d02 > [ 41.869736] RBP: ffff88803f9971a0 R08: ffff88803f9971c8 R09: > ffff888002c00058 > [ 41.870325] R10: 0000000000000000 R11: 0000000000000000 R12: > ffffffff8103e827 > [ 41.870993] R13: ffffffff8106efa1 R14: ffff88803f9971c8 R15: > 0000000000000000 > [ 41.871501] FS: 0000000000000000(0000) GS:ffff88803f980000(0000) > knlGS:0000000000000000 > [ 41.872076] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 41.872477] CR2: ffffffffffffffd6 CR3: 000000000200a002 CR4: > 0000000000372ea0 > [ 41.872972] DR0: 0000000000000000 DR1: 0000000000000000 DR2: > 0000000000000000 > [ 41.873469] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: > 0000000000000400 > > Signed-off-by: Florian Bezdeka <[email protected]> > --- > start-qemu.sh | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/start-qemu.sh b/start-qemu.sh > index 7e95ec8..4e90fe3 100755 > --- a/start-qemu.sh > +++ b/start-qemu.sh > @@ -26,8 +26,15 @@ case "$1" in > x86|x86_64|amd64) > DISTRO_ARCH=amd64 > QEMU=qemu-system-x86_64 > + > CPU_FEATURES="-kvm-pv-eoi,-kvm-pv-ipi,-kvm-asyncpf,-kvm-steal-time,-kvmclock" > + > + # qemu >= 5.2 has kvm-asyncpf-int which needs to be disabled > + if ${QEMU} -cpu help | grep kvm-asyncpf-int > /dev/null; then > + CPU_FEATURES="${CPU_FEATURES},-kvm-asyncpf-int" > + fi > + > QEMU_EXTRA_ARGS=" \ > - -cpu > host,-kvm-pv-eoi,-kvm-pv-ipi,-kvm-asyncpf,-kvm-steal-time,-kvmclock \ > + -cpu host,${CPU_FEATURES} \ > -smp 4 \ > -enable-kvm -machine q35,kernel_irqchip=split \ > -serial vc \ >
Thanks, merged to next. Jan -- Siemens AG, T RDA IOT Corporate Competence Center Embedded Linux -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/8ab700d0-8176-8493-1ea2-05ab328ee294%40siemens.com.
