diff options
author | Adin Scannell <ascannell@google.com> | 2018-05-14 20:26:35 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-05-14 20:27:21 -0700 |
commit | 17a0fa3af05dbb147cdd3d5ec898d31812a0ea66 (patch) | |
tree | ef1309ad5c69882625e9bce466df011a4bb72775 | |
parent | 08879266fef3a67fac1a77f1ea133c3ac75759dd (diff) |
Ignore spurious KVM emulation failures.
PiperOrigin-RevId: 196609789
Change-Id: Ie261eea3b7fa05b6c348ca93e229de26cbd4dc7d
-rw-r--r-- | pkg/sentry/platform/kvm/bluepill_unsafe.go | 6 |
1 files changed, 5 insertions, 1 deletions
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: |