All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/9] S390x KVM support v3
@ 2009-10-21 19:16 Alexander Graf
  2009-10-21 19:16 ` [Qemu-devel] [PATCH 1/9] Add KVM support for S390x Alexander Graf
  0 siblings, 1 reply; 16+ messages in thread
From: Alexander Graf @ 2009-10-21 19:16 UTC (permalink / raw)
  To: qemu-devel; +Cc: Carsten Otte

While S390x was one of the first targets that were supported by KVM it always
lacked qemu system emulation support.

In order to change that sad fact, I figured I'd just take on the task myself,
taking kuli (http://www.ibm.com/developerworks/linux/linux390/kuli.html),
Documentation/s390/kvm.txt and lguest as starting points to write a clean,
qemu'ish S390x Virtio machine emulation.

So now you can run Linux VMs on Linux on z/VM on LPAR on zSeries!

This is the resulting code. Please comment on things you like and also on the
ones you don't :-).

The patchset is based on Uli's S390x userspace emulation patches. There's not
really that much shared functionality, but I didn't want to reimplement the
configure wheels. So make sure to have his patches applied first.

Please only run S390x system virtualization using io threads. S390x has very
few intercepts and even less that actually reach userspace. So you'll end up
with a non-responsive VM without a dedicated IO thread.

Use: $ ./configure --target-list=s390x-softmmu --enable-io-thread

Currently only -kernel, -initrd and friends work. Booting from a real dasd
device is not supported.

Also to actually run this code you need a patch for an ugly bug in the kernel
module that Carsten sent a patch to on the ML.

I verified that the userspace actually works on a 2.6.27 (SLES11) kernel, so
if it doesn't work on current git, please tell me! I'm too afraid that I might
end up in a 3270 terminal to update the kernel on my z/VM instance :-).

v1 -> v2:

  - use new kvm_run variables
  - use DO_UPCAST
  - add bridge device for "info qtree"

v2 -> v3:

  - move memory allocation logic to qemu_ram_alloc

Alexander Graf (9):
  Add KVM support for S390x
  Allocate physical memory in low virtual address space
  Add support for S390x system emulation
  Add S390x virtio machine bus
  Add S390x virtio machine description
  S390 GDB stub
  Implement early printk in virtio-console
  Set default console to virtio on S390x
  Move mp_state to CPU_COMMON

 Makefile.target          |    2 +
 configure                |    4 +-
 cpu-defs.h               |    1 +
 exec.c                   |    6 +
 gdbstub.c                |   52 ++++++
 hw/s390-virtio-bus.c     |  384 ++++++++++++++++++++++++++++++++++++++
 hw/s390-virtio-bus.h     |   64 +++++++
 hw/s390-virtio.c         |  243 ++++++++++++++++++++++++
 hw/virtio-console.c      |    7 +
 hw/virtio-console.h      |    2 +
 target-i386/cpu.h        |    1 -
 target-s390x/cpu.h       |   86 +++++++++-
 target-s390x/exec.h      |    5 +
 target-s390x/helper.c    |   26 +++-
 target-s390x/kvm.c       |  457 ++++++++++++++++++++++++++++++++++++++++++++++
 target-s390x/machine.c   |   30 +++
 target-s390x/op_helper.c |   53 ++++++
 vl.c                     |   26 +++
 18 files changed, 1443 insertions(+), 6 deletions(-)
 create mode 100644 hw/s390-virtio-bus.c
 create mode 100644 hw/s390-virtio-bus.h
 create mode 100644 hw/s390-virtio.c
 create mode 100644 target-s390x/kvm.c
 create mode 100644 target-s390x/machine.c

^ permalink raw reply	[flat|nested] 16+ messages in thread
* [Qemu-devel] [PATCH 0/9] S390x KVM support v2
@ 2009-10-21  9:24 Alexander Graf
  2009-10-21  9:24 ` [Qemu-devel] [PATCH 1/9] Export function for VA defined ram allocation Alexander Graf
  0 siblings, 1 reply; 16+ messages in thread
From: Alexander Graf @ 2009-10-21  9:24 UTC (permalink / raw)
  To: qemu-devel; +Cc: Carsten Otte

While S390x was one of the first targets that were supported by KVM it always
lacked qemu system emulation support.

In order to change that sad fact, I figured I'd just take on the task myself,
taking kuli (http://www.ibm.com/developerworks/linux/linux390/kuli.html),
Documentation/s390/kvm.txt and lguest as starting points to write a clean,
qemu'ish S390x Virtio machine emulation.

So now you can run Linux VMs on Linux on z/VM on LPAR on zSeries!

This is the resulting code. Please comment on things you like and also on the
ones you don't :-).

The patchset is based on Uli's S390x userspace emulation patches. There's not
really that much shared functionality, but I didn't want to reimplement the
configure wheels. So make sure to have his patches applied first.

Please only run S390x system virtualization using io threads. S390x has very
few intercepts and even less that actually reach userspace. So you'll end up
with a non-responsive VM without a dedicated IO thread.

Use: $ ./configure --target-list=s390x-softmmu --enable-io-thread

Currently only -kernel, -initrd and friends work. Booting from a real dasd
device is not supported.

Also to actually run this code you need a patch for an ugly bug in the kernel
module that Carsten sent a patch to on the ML.

I verified that the userspace actually works on a 2.6.27 (SLES11) kernel, so
if it doesn't work on current git, please tell me! I'm too afraid that I might
end up in a 3270 terminal to update the kernel on my z/VM instance :-).

v1 -> v2:

  - use new kvm_run variables
  - use DO_UPCAST
  - add bridge device for "info qtree"

Alexander Graf (9):
  Export function for VA defined ram allocation
  Add KVM support for S390x
  Add support for S390x system emulation
  Add S390x virtio machine bus
  Add S390x virtio machine description
  S390 GDB stub
  Implement early printk in virtio-console
  Set default console to virtio on S390x
  Move mp_state to CPU_COMMON

 Makefile.target          |    2 +
 configure                |    4 +-
 cpu-common.h             |    1 +
 cpu-defs.h               |    1 +
 exec.c                   |   15 ++-
 gdbstub.c                |   52 ++++++
 hw/s390-virtio-bus.c     |  384 ++++++++++++++++++++++++++++++++++++++
 hw/s390-virtio-bus.h     |   64 +++++++
 hw/s390-virtio.c         |  244 ++++++++++++++++++++++++
 hw/virtio-console.c      |    7 +
 hw/virtio-console.h      |    2 +
 target-i386/cpu.h        |    1 -
 target-s390x/cpu.h       |   86 +++++++++-
 target-s390x/exec.h      |    5 +
 target-s390x/helper.c    |   26 +++-
 target-s390x/kvm.c       |  457 ++++++++++++++++++++++++++++++++++++++++++++++
 target-s390x/machine.c   |   30 +++
 target-s390x/op_helper.c |   53 ++++++
 vl.c                     |   26 +++
 19 files changed, 1452 insertions(+), 8 deletions(-)
 create mode 100644 hw/s390-virtio-bus.c
 create mode 100644 hw/s390-virtio-bus.h
 create mode 100644 hw/s390-virtio.c
 create mode 100644 target-s390x/kvm.c
 create mode 100644 target-s390x/machine.c

^ permalink raw reply	[flat|nested] 16+ messages in thread
* [Qemu-devel] [PATCH 0/9] S390x KVM support
@ 2009-10-19 14:37 Alexander Graf
  2009-10-19 14:37 ` [Qemu-devel] [PATCH 1/9] Export function for VA defined ram allocation Alexander Graf
  0 siblings, 1 reply; 16+ messages in thread
From: Alexander Graf @ 2009-10-19 14:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Carsten Otte, hare

While S390x was one of the first targets that were supported by KVM it always
lacked qemu system emulation support.

In order to change that sad fact, I figured I'd just take on the task myself,
taking kuli (http://www.ibm.com/developerworks/linux/linux390/kuli.html),
Documentation/s390/kvm.txt and lguest as starting points to write a clean,
qemu'ish S390x Virtio machine emulation.

So now you can run Linux VMs on Linux on z/VM on LPAR on zSeries!

This is the resulting code. Please comment on things you like and also on the
ones you don't :-).

The patchset is based on Uli's S390x userspace emulation patches. There's not
really that much shared functionality, but I didn't want to reimplement the
configure wheels. So make sure to have his patches applied first.

Please only run S390x system virtualization using io threads. S390x has very
few intercepts and even less that actually reach userspace. So you'll end up
with a non-responsive VM without a dedicated IO thread.

Use: $ ./configure --target-list=s390x-softmmu --enable-io-thread

Currently only -kernel, -initrd and friends work. Booting from a real dasd
device is not supported.

Also to actually run this code you need a patch for an ugly bug in the kernel
module: http://alex.csgraf.de/psw.patch

I verified that the userspace actually works on a 2.6.27 (SLES11) kernel, so
if it doesn't work on current git, please tell me! I'm too afraid that I might
end up in a 3270 terminal to update the kernel on my z/VM instance :-).

Alexander Graf (9):
  Export function for VA defined ram allocation
  Add KVM support for S390x
  Add support for S390x system emulation
  Add S390x virtio machine bus
  Add S390x virtio machine description
  S390 GDB stub
  Implement early printk in virtio-console
  Set default console to virtio on S390x
  Move mp_state to CPU_COMMON

 Makefile.target          |    2 +
 configure                |    4 +-
 cpu-common.h             |    1 +
 cpu-defs.h               |    1 +
 exec.c                   |   15 ++-
 gdbstub.c                |   52 ++++++
 hw/s390-virtio-bus.c     |  350 +++++++++++++++++++++++++++++++++++
 hw/s390-virtio-bus.h     |   64 +++++++
 hw/s390-virtio.c         |  244 ++++++++++++++++++++++++
 hw/virtio-console.c      |    7 +
 hw/virtio-console.h      |    2 +
 target-i386/cpu.h        |    1 -
 target-s390x/cpu.h       |   86 +++++++++-
 target-s390x/exec.h      |    5 +
 target-s390x/helper.c    |   26 +++-
 target-s390x/kvm.c       |  457 ++++++++++++++++++++++++++++++++++++++++++++++
 target-s390x/machine.c   |   30 +++
 target-s390x/op_helper.c |   53 ++++++
 vl.c                     |   26 +++
 19 files changed, 1418 insertions(+), 8 deletions(-)
 create mode 100644 hw/s390-virtio-bus.c
 create mode 100644 hw/s390-virtio-bus.h
 create mode 100644 hw/s390-virtio.c
 create mode 100644 target-s390x/kvm.c
 create mode 100644 target-s390x/machine.c

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

end of thread, other threads:[~2009-11-09 19:46 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-21 19:16 [Qemu-devel] [PATCH 0/9] S390x KVM support v3 Alexander Graf
2009-10-21 19:16 ` [Qemu-devel] [PATCH 1/9] Add KVM support for S390x Alexander Graf
2009-10-21 19:16   ` [Qemu-devel] [PATCH 2/9] Allocate physical memory in low virtual address space Alexander Graf
2009-10-21 19:16     ` [Qemu-devel] [PATCH 3/9] Add support for S390x system emulation Alexander Graf
2009-10-21 19:16       ` [Qemu-devel] [PATCH 4/9] Add S390x virtio machine bus Alexander Graf
2009-10-21 19:16         ` [Qemu-devel] [PATCH 5/9] Add S390x virtio machine description Alexander Graf
2009-10-21 19:16           ` [Qemu-devel] [PATCH 6/9] S390 GDB stub Alexander Graf
2009-10-21 19:16             ` [Qemu-devel] [PATCH 7/9] Implement early printk in virtio-console Alexander Graf
2009-10-21 19:17               ` [Qemu-devel] [PATCH 8/9] Set default console to virtio on S390x Alexander Graf
2009-10-21 19:17                 ` [Qemu-devel] [PATCH 9/9] Move mp_state to CPU_COMMON Alexander Graf
2009-10-29 21:39                   ` Hollis Blanchard
2009-11-05 10:16                     ` Alexander Graf
2009-11-09 19:44                       ` Anthony Liguori
2009-11-09 19:45                         ` Alexander Graf
  -- strict thread matches above, loose matches on Subject: below --
2009-10-21  9:24 [Qemu-devel] [PATCH 0/9] S390x KVM support v2 Alexander Graf
2009-10-21  9:24 ` [Qemu-devel] [PATCH 1/9] Export function for VA defined ram allocation Alexander Graf
2009-10-21  9:24   ` [Qemu-devel] [PATCH 2/9] Add KVM support for S390x Alexander Graf
2009-10-21  9:25     ` [Qemu-devel] [PATCH 3/9] Add support for S390x system emulation Alexander Graf
2009-10-21  9:25       ` [Qemu-devel] [PATCH 4/9] Add S390x virtio machine bus Alexander Graf
2009-10-21  9:25         ` [Qemu-devel] [PATCH 5/9] Add S390x virtio machine description Alexander Graf
2009-10-21  9:25           ` [Qemu-devel] [PATCH 6/9] S390 GDB stub Alexander Graf
2009-10-21  9:25             ` [Qemu-devel] [PATCH 7/9] Implement early printk in virtio-console Alexander Graf
2009-10-21  9:25               ` [Qemu-devel] [PATCH 8/9] Set default console to virtio on S390x Alexander Graf
2009-10-21  9:25                 ` [Qemu-devel] [PATCH 9/9] Move mp_state to CPU_COMMON Alexander Graf
2009-10-19 14:37 [Qemu-devel] [PATCH 0/9] S390x KVM support Alexander Graf
2009-10-19 14:37 ` [Qemu-devel] [PATCH 1/9] Export function for VA defined ram allocation Alexander Graf
2009-10-19 14:37   ` [Qemu-devel] [PATCH 2/9] Add KVM support for S390x Alexander Graf
2009-10-19 14:37     ` [Qemu-devel] [PATCH 3/9] Add support for S390x system emulation Alexander Graf
2009-10-19 14:37       ` [Qemu-devel] [PATCH 4/9] Add S390x virtio machine bus Alexander Graf
2009-10-19 14:37         ` [Qemu-devel] [PATCH 5/9] Add S390x virtio machine description Alexander Graf
2009-10-19 14:37           ` [Qemu-devel] [PATCH 6/9] S390 GDB stub Alexander Graf
2009-10-19 14:37             ` [Qemu-devel] [PATCH 7/9] Implement early printk in virtio-console Alexander Graf
2009-10-19 14:37               ` [Qemu-devel] [PATCH 8/9] Set default console to virtio on S390x Alexander Graf
2009-10-19 14:37                 ` [Qemu-devel] [PATCH 9/9] Move mp_state to CPU_COMMON Alexander Graf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.