diff mbox series

[WIP,10/14] xenalyze: Quiet warnings about VMEXIT_IOIO

Message ID 20240626133853.4150731-11-george.dunlap@cloud.com (mailing list archive)
State New, archived
Headers show
Series AMD Nested Virt Preparation | expand

Commit Message

George Dunlap June 26, 2024, 1:38 p.m. UTC
There's a general issue with both PIO and MMIO reads (as detailed in
the comment); do a work-around for now.

Signed-off-by: George Dunlap <george.dunlap@cloud.com>
---
 tools/xentrace/xenalyze.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
diff mbox series

Patch

diff --git a/tools/xentrace/xenalyze.c b/tools/xentrace/xenalyze.c
index 19b99dc66d..eb0e60e6ef 100644
--- a/tools/xentrace/xenalyze.c
+++ b/tools/xentrace/xenalyze.c
@@ -4650,6 +4650,24 @@  void hvm_generic_postprocess(struct hvm_data *h)
             case VMEXIT_EXCEPTION_AC:
             case VMEXIT_EXCEPTION_UD:
                 return;
+            case VMEXIT_IOIO:
+                /*
+                 * FIXME: Both IO and MMIO reads which have gone out
+                 * to the emulator and back typically have the
+                 * [mm]io_assist trace happen on resume, just before
+                 * the subsequent VMENTRY.
+                 *
+                 * However, when a VM has blocked, we call
+                 * hvm_vmexit_close() when it becomes RUNNABLE again,
+                 * rather than when it actually runs again; meaning
+                 * that when hvm_vmexit_close() is called, no HVM
+                 * handler has been seen.
+                 *
+                 * What we really need is some sort of intermediate
+                 * state for [mm]io reads; but for now just ignore
+                 * VMEXIT_IOIO exits without a handler.
+                 */
+                return;
             default:
                 break;
             }