[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 0/2] memory/vfio: notify region_del() when unregister
From: |
Peter Xu |
Subject: |
[Qemu-devel] [RFC 0/2] memory/vfio: notify region_del() when unregister listeners |
Date: |
Fri, 19 Jan 2018 16:42:17 +0800 |
I encountered an event loss problem during unplugging vfio devices:
https://bugzilla.redhat.com/show_bug.cgi?id=1531393
I thought it should be a simple VT-d issue but I was wrong. The whole
debugging leads me to these patches.
Basically I think what we missed is that when unregistering memory
listeners, we don't really call region_del() at all. Instead we just
remove ourselves from the listener list. IMHO that's not enough. A
clean unregister should undo all possible changes that have done
during region_add(). That's patch 1.
Patch 2 fixes a vfio issue when patch 1 is applied.
I'm marking this change as RFC since it touches the core of memory
somehow, on which I am not 100% sure about. E.g., I haven't tested
all the listener users, so I'm not sure whether it may broke any use
case.
But what I'm sure is that it passes the docker tests on
compiling/qtests, and it fixes the event loss that reported.
Let's see whether I can get some feedback first. Please review.
Thanks.
Peter Xu (2):
memory: do explicit cleanup when remove listeners
vfio: listener unregister before unset container
hw/vfio/common.c | 16 ++++++++++++----
memory.c | 24 ++++++++++++++++++++++++
2 files changed, 36 insertions(+), 4 deletions(-)
--
2.14.3
- [Qemu-devel] [RFC 0/2] memory/vfio: notify region_del() when unregister listeners,
Peter Xu <=