[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/5] kvm/vhost: enable durty logging during memory r
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PATCH 0/5] kvm/vhost: enable durty logging during memory registration |
Date: |
Thu, 7 Apr 2011 13:54:12 +0300 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
I've tested and applied this patchset on my tree.
Currently, vga cards that allocate vga ram, register it as regular ram,
and then request dirty logging from kvm (which is required for this hack
to function correctly). Both these operations involve memory slot
update and flush in kvm and in vhost which is a slow operation.
This was observed to slow down windows guests with a huge amount of
memory and cpu and with cirrus vga.
As a solution, this adds an explicit flag that
will enable dirty logging directly when registering
the ram. kvm then needs a single system call
to update tables for vga ram, vhost-net can simply ignore it.
This patchset only updates the cirrus vga lfb vram mapping.
Follow-up patchsets will update all the rest of the cards
and then remove vga_dirty_log_xxx completely.
This replaces the RFC patchset as well
as the RFC 'vga: flag vga ram for notifiers'.
Changes since RFC: in patch vhost: optimize out no-change assignment,
moved the no-change test to later in function to catch more
cases.
Test setup: host: 512G -smp 64 guest -m 256G -smp 32
cirrus vga; windows boot time goes down from 30 min to 1 min.
Michael S. Tsirkin (5):
cpu: add set_memory flag to request dirty logging
kvm: halve number of set memory calls for vga
vhost: skip memory which needs dirty logging
vhost: optimize out no-change assignment
cirrus_vga: flag on-device ram for dirty logging
cpu-common.h | 22 +++++++++++++++----
exec.c | 14 +++++++-----
hw/cirrus_vga.c | 16 +++++++++----
hw/vhost.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
kvm-all.c | 62 +++++++++++++++++++++++++++++++++---------------------
5 files changed, 134 insertions(+), 41 deletions(-)
--
1.7.3.2.91.g446ac
- [Qemu-devel] [PATCH 0/5] kvm/vhost: enable durty logging during memory registration,
Michael S. Tsirkin <=
- [Qemu-devel] [PATCH 1/5] cpu: add set_memory flag to request dirty logging, Michael S. Tsirkin, 2011/04/07
- [Qemu-devel] [PATCH 2/5] kvm: halve number of set memory calls for vga, Michael S. Tsirkin, 2011/04/07
- [Qemu-devel] [PATCH 3/5] vhost: skip memory which needs dirty logging, Michael S. Tsirkin, 2011/04/07
- [Qemu-devel] [PATCH 5/5] cirrus_vga: flag on-device ram for dirty logging, Michael S. Tsirkin, 2011/04/07
- [Qemu-devel] [PATCH 4/5] vhost: optimize out no-change assignment, Michael S. Tsirkin, 2011/04/07