From: Jan Kiszka <jan.kiszka@siemens.com>
To: Avi Kivity <avi@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>
Cc: kvm@vger.kernel.org
Subject: [PATCH 00/20] qemu-kvm: Cleanup and switch to upstream - The Season Final
Date: Fri, 27 May 2011 14:19:04 +0200 [thread overview]
Message-ID: <cover.1306498737.git.jan.kiszka@siemens.com> (raw)
With this series applied, we are finally at a level of almost zero
redundancy between QEMU upstream and the qemu-kvm tree. The last major
duplication to be removed is the original io-thread implementation and
everything related to it:
- locking
- vcpu wakeup/kicking as well as suspend/resume
- on-vcpu execution
- io-thread loop
- vcpu thread loop
The approach taken here is similar to what was done to morph KVM core
functions into upstream code: First all to be converted code is moved
over into cpus.c, then qemu-kvm's functions are gradually changed and
replaced with the upstream versions.
This means that we have to enable CONFIG_IOTHREAD which is so far
incompatible with qemu-kvm. This incompatibility causes a temporary
breakage of the TCG mode early in the series, but it is healed again
with the last patch applied.
To make it clear: Even with all this applied, there is still a lot to
do to turn upstream QEMU into the primary KVM platform. We need to
- rework in-kernel IOAPIC/PIC/APIC/PIT support, namely
- proper qdev modeling
- new MSI hooking architecture (half-done)
- VAPIC support (haven't looked at details yet, maybe just cleanups)
- prepare device assignment for upstream (VFIO and/or KVM-based)
- clean up remaining small deltas (including posix-aio-compat...)
- get rid of legacy command line interfaces (e.g. via deprecation
warning in release X and removal in X+n, n >= 1)
But then we are really done and can all retire. ;)
In the meantime, please review/merge these bits.
Jan Kiszka (20):
qemu-kvm: Move thread-related code to cpus.c
qemu-kvm: Enable CONFIG_IOTHREAD
qemu-kvm: Switch to iothread version of qemu_notify_event
qemu-kvm: Use upstream mutex and conds
qemu-kvm: Restrict validity of cpu_single_env
qemu-kvm: Use upstream qemu_mutex_lock/unlock_iothread
qemu-kvm: Clean up kvm_update_interrupt_request
qemu-kvm: Replace kvm_update_interrupt_request with qemu_cpu_kick
qemu-kvm: Use upstream run_on_cpu and flush_queued_work
qemu-kvm: Drop kvm_cond_wait
qemu-kvm: Replace kvm_cpu_is_stopped with cpu_is_stopped
qemu-kvm: Remove obsolete current_env
qemu-kvm: Use upstream vcpu pause/resume
qemu-kvm: Move main loop setup code
qemu-kvm: Use upstream's way of signaling debug stops
qemu-kvm: Use upstream main loop
qemu-kvm: Use upstream main loop initialization
qemu-kvm: Replace kvm_get_thread_id with qemu_get_thread_id
qemu-kvm: Use upstream kvm vcpu initialization
qemu-kvm: Use upstream vcpu loop
configure | 1 +
cpu-defs.h | 11 +-
cpus.c | 17 +--
cpus.h | 1 +
kvm-all.c | 9 +-
qemu-kvm.c | 498 +-------------------------------------------------
qemu-kvm.h | 7 -
target-i386/helper.c | 4 -
vl.c | 17 --
9 files changed, 13 insertions(+), 552 deletions(-)
next reply other threads:[~2011-05-27 12:19 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-27 12:19 Jan Kiszka [this message]
2011-05-27 12:19 ` [PATCH 01/20] qemu-kvm: Move thread-related code to cpus.c Jan Kiszka
2011-05-27 12:19 ` [PATCH 02/20] qemu-kvm: Enable CONFIG_IOTHREAD Jan Kiszka
2011-05-27 12:19 ` [PATCH 03/20] qemu-kvm: Switch to iothread version of qemu_notify_event Jan Kiszka
2011-05-27 12:19 ` [PATCH 04/20] qemu-kvm: Use upstream mutex and conds Jan Kiszka
2011-05-27 12:19 ` [PATCH 05/20] qemu-kvm: Restrict validity of cpu_single_env Jan Kiszka
2011-05-27 12:19 ` [PATCH 06/20] qemu-kvm: Use upstream qemu_mutex_lock/unlock_iothread Jan Kiszka
2011-05-27 12:19 ` [PATCH 07/20] qemu-kvm: Clean up kvm_update_interrupt_request Jan Kiszka
2011-05-29 16:16 ` Avi Kivity
2011-05-29 16:37 ` Jan Kiszka
2011-05-29 16:41 ` Avi Kivity
2011-05-27 12:19 ` [PATCH 08/20] qemu-kvm: Replace kvm_update_interrupt_request with qemu_cpu_kick Jan Kiszka
2011-05-29 16:19 ` Avi Kivity
2011-05-29 16:41 ` Jan Kiszka
2011-05-29 16:44 ` Avi Kivity
2011-05-29 17:55 ` Jan Kiszka
2011-05-30 15:10 ` Avi Kivity
2011-05-27 12:19 ` [PATCH 09/20] qemu-kvm: Use upstream run_on_cpu and flush_queued_work Jan Kiszka
2011-05-27 12:19 ` [PATCH 10/20] qemu-kvm: Drop kvm_cond_wait Jan Kiszka
2011-05-27 12:19 ` [PATCH 11/20] qemu-kvm: Replace kvm_cpu_is_stopped with cpu_is_stopped Jan Kiszka
2011-05-27 12:19 ` [PATCH 12/20] qemu-kvm: Remove obsolete current_env Jan Kiszka
2011-05-27 12:19 ` [PATCH 13/20] qemu-kvm: Use upstream vcpu pause/resume Jan Kiszka
2011-05-27 12:19 ` [PATCH 14/20] qemu-kvm: Move main loop setup code Jan Kiszka
2011-05-27 12:19 ` [PATCH 15/20] qemu-kvm: Use upstream's way of signaling debug stops Jan Kiszka
2011-05-27 12:19 ` [PATCH 16/20] qemu-kvm: Use upstream main loop Jan Kiszka
2011-05-27 12:19 ` [PATCH 17/20] qemu-kvm: Use upstream main loop initialization Jan Kiszka
2011-05-27 12:19 ` [PATCH 18/20] qemu-kvm: Replace kvm_get_thread_id with qemu_get_thread_id Jan Kiszka
2011-05-27 12:19 ` [PATCH 19/20] qemu-kvm: Use upstream kvm vcpu initialization Jan Kiszka
2011-05-27 12:19 ` [PATCH 20/20] qemu-kvm: Use upstream vcpu loop Jan Kiszka
2011-05-29 16:24 ` [PATCH 00/20] qemu-kvm: Cleanup and switch to upstream - The Season Final Avi Kivity
2011-05-31 13:36 ` Marcelo Tosatti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1306498737.git.jan.kiszka@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox