public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/20] qemu-kvm: Cleanup and switch to upstream - The Season Final
@ 2011-05-27 12:19 Jan Kiszka
  2011-05-27 12:19 ` [PATCH 01/20] qemu-kvm: Move thread-related code to cpus.c Jan Kiszka
                   ` (21 more replies)
  0 siblings, 22 replies; 31+ messages in thread
From: Jan Kiszka @ 2011-05-27 12:19 UTC (permalink / raw)
  To: Avi Kivity, Marcelo Tosatti; +Cc: kvm

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(-)


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2011-05-31 13:36 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-27 12:19 [PATCH 00/20] qemu-kvm: Cleanup and switch to upstream - The Season Final Jan Kiszka
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox