From 17a0fa3af05dbb147cdd3d5ec898d31812a0ea66 Mon Sep 17 00:00:00 2001 From: Adin Scannell Date: Mon, 14 May 2018 20:26:35 -0700 Subject: Ignore spurious KVM emulation failures. PiperOrigin-RevId: 196609789 Change-Id: Ie261eea3b7fa05b6c348ca93e229de26cbd4dc7d --- pkg/sentry/platform/kvm/bluepill_unsafe.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/sentry/platform/kvm/bluepill_unsafe.go b/pkg/sentry/platform/kvm/bluepill_unsafe.go index 85703ff18..9e252af64 100644 --- a/pkg/sentry/platform/kvm/bluepill_unsafe.go +++ b/pkg/sentry/platform/kvm/bluepill_unsafe.go @@ -105,7 +105,11 @@ func bluepillHandler(context unsafe.Pointer) { case _KVM_EXIT_IO: throw("I/O") case _KVM_EXIT_INTERNAL_ERROR: - throw("internal error") + // An internal error is typically thrown when emulation + // fails. This can occur via the MMIO path below (and + // it might fail because we have multiple regions that + // are not mapped). We would actually prefer that no + // emulation occur, and don't mind at all if it fails. case _KVM_EXIT_HYPERCALL: throw("hypercall") case _KVM_EXIT_DEBUG: -- cgit v1.2.3