[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [patch v4 00/16] push mmio dispatch out of big lock
From: |
Liu Ping Fan |
Subject: |
[Qemu-devel] [patch v4 00/16] push mmio dispatch out of big lock |
Date: |
Mon, 22 Oct 2012 17:23:43 +0800 |
v1:
https://lists.gnu.org/archive/html/qemu-devel/2012-07/msg03312.html
v2:
http://lists.gnu.org/archive/html/qemu-devel/2012-08/msg01275.html
v3:
http://lists.nongnu.org/archive/html/qemu-devel/2012-09/msg01474.html
changes v3->v4:
Drop reclaimer which delays the release of DeviceState. Instead, use
DeviceState::unmap()
to sync no other subsystem ref to the DeviceState.
Drop the requirement for the recursive big lock. Instead, when in runtime,
use tls to extract
the caller's context info.
Todo:
Will rebased onto Avi's patch "Integrate DMA into the memory API"
Liu Ping Fan (16):
atomic: introduce atomic operations
qom: apply atomic on object's refcount
hotplug: introduce qdev_unplug_complete() to remove device from views
pci: remove pci device from mem view when unplug
memory: introduce ref,unref interface for MemoryRegionOps
memory: document ref, unref interface
memory: make mmio dispatch able to be out of biglock
QemuThread: make QemuThread as tls to store extra info
memory: introduce mmio request pending to anti nested DMA
memory: introduce lock ops for MemoryRegionOps
vcpu: push mmio dispatcher out of big lock
e1000: apply fine lock on e1000
e1000: add busy flag to anti broken device state
qdev: introduce stopping state
e1000: introduce unmap() to fix unplug issue
e1000: implement MemoryRegionOps's ref&lock interface
cpus.c | 15 +++++
docs/memory.txt | 5 ++
exec.c | 169 +++++++++++++++++++++++++++++++++++++++++++------
hw/acpi_piix4.c | 2 +-
hw/e1000.c | 104 ++++++++++++++++++++++++++++---
hw/hw.h | 1 +
hw/pci.c | 13 ++++-
hw/pci.h | 1 +
hw/qdev.c | 26 ++++++++
hw/qdev.h | 4 +-
include/qemu/atomic.h | 63 ++++++++++++++++++
include/qemu/object.h | 3 +-
kvm-all.c | 5 ++
memory.c | 16 +++++-
memory.h | 5 ++
qemu-thread-posix.c | 7 ++
qemu-thread-posix.h | 5 ++
qemu-thread.h | 3 +
qom/object.c | 11 ++--
vl.c | 6 ++
20 files changed, 426 insertions(+), 38 deletions(-)
create mode 100644 include/qemu/atomic.h
--
1.7.4.4