[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 uq/master 0/6] kvm: Get coalesced MMIO flushi
From: |
Marcelo Tosatti |
Subject: |
Re: [Qemu-devel] [PATCH v3 uq/master 0/6] kvm: Get coalesced MMIO flushing out of the hot-path |
Date: |
Thu, 23 Aug 2012 11:01:12 -0300 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Aug 23, 2012 at 01:02:28PM +0200, Jan Kiszka wrote:
> This is just a repost, now targeting uq/master as agreed. No changes
> compared to v2 except that "i82378: Remove bogus MMIO coalescing" was
> dropped as it is already in QEMU upstream by now.
>
> Original description:
>
> We currently flush the coalesced MMIO buffer on every vmexit to
> userspace. KVM only provides a single buffer per VM, so a central lock
> is required to read from it. This is a contention point given a large
> enough VCPU set. Moreover, we need to hold the BQL while replaying the
> queued requests, probably for a long time until there is more fine
> grained locking available. Good reasons to overcome the unconditional
> flush.
>
> The series achieves this by flushing only on selected memory region
> accesses, either generically via the memory access dispatcher or
> directly on certain VGA PIO accesses that are not yet fully converted.
> Another reason to flush are remappings or other relevant region state
> changes.
>
> Jan Kiszka (6):
> memory: Flush coalesced MMIO on selected region access
> memory: Use transaction_begin/commit also for single-step operations
> memory: Fold memory_region_update_topology into
> memory_region_transaction_commit
> memory: Flush coalesced MMIO on mapping and state changes
> VGA: Flush coalesced MMIO on related MMIO/PIO accesses
> kvm: Stop flushing coalesced MMIO on vmexit
>
> hw/cirrus_vga.c | 7 ++++
> hw/qxl.c | 1 +
> hw/vga-isa-mm.c | 1 +
> hw/vga.c | 5 +++
> hw/vmware_vga.c | 1 +
> kvm-all.c | 2 -
> memory.c | 104
> ++++++++++++++++++++++++++++++++-----------------------
> memory.h | 26 ++++++++++++++
> 8 files changed, 102 insertions(+), 45 deletions(-)
>
> --
> 1.7.3.4
Applied, thanks.
- [Qemu-devel] [PATCH v3 uq/master 0/6] kvm: Get coalesced MMIO flushing out of the hot-path, Jan Kiszka, 2012/08/23
- [Qemu-devel] [PATCH v3 uq/master 5/6] VGA: Flush coalesced MMIO on related MMIO/PIO accesses, Jan Kiszka, 2012/08/23
- [Qemu-devel] [PATCH v3 uq/master 2/6] memory: Use transaction_begin/commit also for single-step operations, Jan Kiszka, 2012/08/23
- [Qemu-devel] [PATCH v3 uq/master 6/6] kvm: Stop flushing coalesced MMIO on vmexit, Jan Kiszka, 2012/08/23
- [Qemu-devel] [PATCH v3 uq/master 4/6] memory: Flush coalesced MMIO on mapping and state changes, Jan Kiszka, 2012/08/23
- [Qemu-devel] [PATCH v3 uq/master 3/6] memory: Fold memory_region_update_topology into memory_region_transaction_commit, Jan Kiszka, 2012/08/23
- [Qemu-devel] [PATCH v3 uq/master 1/6] memory: Flush coalesced MMIO on selected region access, Jan Kiszka, 2012/08/23
- Re: [Qemu-devel] [PATCH v3 uq/master 0/6] kvm: Get coalesced MMIO flushing out of the hot-path,
Marcelo Tosatti <=