|
| From: | Paolo Bonzini |
| Subject: | Re: [Qemu-devel] [PATCH 02/38] pci: split exit and finalize |
| Date: | Tue, 17 Sep 2013 12:23:48 +0200 |
| User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8 |
Il 17/09/2013 11:56, Paolo Bonzini ha scritto:
> Yes. do_pci_unregister_device marks the point where the guest will not
> be able to submit new requests to the device, but there may be previous
> requests pending. because you could have something like this:
Michael pointed out offlist that the previous example involved the
address_space_map bounce buffer.
Here is a simpler one that doesn't rely on it:
VCPU 1 VCPU 2
----------------------------------------------------
start asynchronous I/O
pci_dma_sglist_init
object_ref
** releases BQL
eject device
object_unparent
my_device_exit
memory_region_del_subregion
** cannot yet destroy!!
** address_space_unmap will use it
** gets BQL again
asynchronous I/O ends
qemu_sglist_destroy
object_unref
instance_finalize
Paolo
| [Prev in Thread] | Current Thread | [Next in Thread] |