aboutsummaryrefslogtreecommitdiff
path: root/net/vmnet_int.h
diff options
context:
space:
mode:
authorJoelle van Dyne <j@getutm.app>2023-01-01 17:08:21 -0800
committerJason Wang <jasowang@redhat.com>2023-02-17 13:31:33 +0800
commit993f71ee3360450c2758964adbdfb13f4d460162 (patch)
treefe0a5c5e7d397b66921a7ffd98e2434a45ce721e /net/vmnet_int.h
parent0c65ef4fbbf3d3c1c4435f06db7648ab67935a19 (diff)
vmnet: stop recieving events when VM is stopped
When the VM is stopped using the HMP command "stop", soon the handler will stop reading from the vmnet interface. This causes a flood of `VMNET_INTERFACE_PACKETS_AVAILABLE` events to arrive and puts the host CPU at 100%. We fix this by removing the event handler from vmnet when the VM is no longer in a running state and restore it when we return to a running state. Signed-off-by: Joelle van Dyne <j@getutm.app> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'net/vmnet_int.h')
-rw-r--r--net/vmnet_int.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/vmnet_int.h b/net/vmnet_int.h
index d0b90594f2..a8a033dc96 100644
--- a/net/vmnet_int.h
+++ b/net/vmnet_int.h
@@ -45,6 +45,8 @@ typedef struct VmnetState {
int packets_send_end_pos;
struct iovec iov_buf[VMNET_PACKETS_LIMIT];
+
+ VMChangeStateEntry *change;
} VmnetState;
const char *vmnet_status_map_str(vmnet_return_t status);