qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/11] S390x KVM support v4
@ 2009-11-26 13:23 Alexander Graf
  2009-11-26 13:23 ` [Qemu-devel] [PATCH 01/11] S/390 CPU fake emulation Alexander Graf
                   ` (11 more replies)
  0 siblings, 12 replies; 49+ messages in thread
From: Alexander Graf @ 2009-11-26 13:23 UTC (permalink / raw)
  To: qemu-devel; +Cc: Carsten Otte, Aurelien Jarno

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 :-).

##### WARNING #####

Apparently the qemu review process has scared off yet another developer for now.

So I'm sending this patchset without relying on Uli's set but rather
implemented small stubs for TCG host and TCG guest support, so we can run
on KVM. He promised me to send it again "soon" - whenever that is.

These stubs don't serve any purpose but to get KVM running, so you get no x86
on S390X or S390X on x86 for now!

##################

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

v3 -> v4:

  - minor bugfixes
  - adjust to more recent qdev nic code
  - zipl loader
  - include fake emulation series

v4 -> v5:

  - remove zipl loader
  - remove early printk

Alexander Graf (11):
  S/390 CPU fake emulation
  S/390 host/target build system support
  S/390 fake TCG implementation
  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
  Set default console to virtio on S390x
  Add S390 maintainer information

 MAINTAINERS                       |    3 +
 Makefile.target                   |    2 +
 configure                         |   24 ++-
 cpu-exec.c                        |    2 +
 dyngen-exec.h                     |    2 +-
 exec.c                            |    6 +
 gdbstub.c                         |   52 ++++
 hw/s390-virtio-bus.c              |  385 ++++++++++++++++++++++++++++++
 hw/s390-virtio-bus.h              |   65 +++++
 hw/s390-virtio.c                  |  240 +++++++++++++++++++
 target-s390x/cpu.h                |  268 +++++++++++++++++++++
 target-s390x/exec.h               |   56 +++++
 target-s390x/helper.c             |   84 +++++++
 target-s390x/kvm.c                |  463 +++++++++++++++++++++++++++++++++++++
 target-s390x/machine.c            |   30 +++
 target-s390x/op_helper.c          |   74 ++++++
 target-s390x/translate.c          |   57 +++++
 tcg/s390/tcg-target.c             |  103 ++++++++
 tcg/s390/tcg-target.h             |   48 ++++
 vl.c                              |   26 ++
 20 files changed, 1982 insertions(+), 8 deletions(-)
 create mode 100644 default-configs/s390x-softmmu.mak
 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/cpu.h
 create mode 100644 target-s390x/exec.h
 create mode 100644 target-s390x/helper.c
 create mode 100644 target-s390x/kvm.c
 create mode 100644 target-s390x/machine.c
 create mode 100644 target-s390x/op_helper.c
 create mode 100644 target-s390x/translate.c
 create mode 100644 tcg/s390/tcg-target.c
 create mode 100644 tcg/s390/tcg-target.h

^ permalink raw reply	[flat|nested] 49+ messages in thread
* [Qemu-devel] [PATCH 00/11] S390x KVM support v5
@ 2009-12-05 11:44 Alexander Graf
  2009-12-05 11:44 ` [Qemu-devel] [PATCH 07/11] Add S390x virtio machine bus Alexander Graf
  0 siblings, 1 reply; 49+ messages in thread
From: Alexander Graf @ 2009-12-05 11:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: Carsten Otte, Aurelien Jarno

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 :-).

##### WARNING #####

Apparently the qemu review process has scared off yet another developer for now.

So I'm sending this patchset without relying on Uli's set but rather
implemented small stubs for TCG host and TCG guest support, so we can run
on KVM. He promised me to send it again "soon" - whenever that is.

These stubs don't serve any purpose but to get KVM running, so you get no x86
on S390X or S390X on x86 for now!

Also reset functionality is missing. It'd need to be rewritten once we get a
firmware anyways, so there's no point in implementing anything now.

##################

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

v3 -> v4:

  - minor bugfixes
  - adjust to more recent qdev nic code
  - zipl loader
  - include fake emulation series

v4 -> v5:

  - remove zipl loader
  - remove early printk

v5 -> v6:

  - make SMP work
  - fix typos
  - fix coding style (bleks)
  - fail on non-virtio nics
  - use more constants (vs magic numbers)
  - don't use _... function names
  - move cpu_get_phys_page_debug to correct patch
  - add register defines
  - use __builtin___clear_cache

Alexander Graf (11):
  S/390 CPU fake emulation
  S/390 host/target build system support
  S/390 fake TCG implementation
  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
  Set default console to virtio on S390x
  Add S390 maintainer information

 MAINTAINERS                       |    3 +
 Makefile.target                   |    2 +
 configure                         |   29 ++-
 cpu-exec.c                        |    2 +
 dyngen-exec.h                     |    2 +-
 exec.c                            |    6 +
 gdbstub.c                         |   52 ++++
 hw/s390-virtio-bus.c              |  395 ++++++++++++++++++++++++++++++
 hw/s390-virtio-bus.h              |   65 +++++
 hw/s390-virtio.c                  |  255 ++++++++++++++++++++
 target-s390x/cpu.h                |  271 +++++++++++++++++++++
 target-s390x/exec.h               |   56 +++++
 target-s390x/helper.c             |   84 +++++++
 target-s390x/kvm.c                |  482 +++++++++++++++++++++++++++++++++++++
 target-s390x/machine.c            |   30 +++
 target-s390x/op_helper.c          |   74 ++++++
 target-s390x/translate.c          |   63 +++++
 tcg/s390/tcg-target.c             |  105 ++++++++
 tcg/s390/tcg-target.h             |   69 ++++++
 vl.c                              |   26 ++
 20 files changed, 2062 insertions(+), 9 deletions(-)
 create mode 100644 default-configs/s390x-softmmu.mak
 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/cpu.h
 create mode 100644 target-s390x/exec.h
 create mode 100644 target-s390x/helper.c
 create mode 100644 target-s390x/kvm.c
 create mode 100644 target-s390x/machine.c
 create mode 100644 target-s390x/op_helper.c
 create mode 100644 target-s390x/translate.c
 create mode 100644 tcg/s390/tcg-target.c
 create mode 100644 tcg/s390/tcg-target.h

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

end of thread, other threads:[~2009-12-05 11:44 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-26 13:23 [Qemu-devel] [PATCH 00/11] S390x KVM support v4 Alexander Graf
2009-11-26 13:23 ` [Qemu-devel] [PATCH 01/11] S/390 CPU fake emulation Alexander Graf
2009-11-30 18:18   ` Aurelien Jarno
2009-11-30 22:30     ` Alexander Graf
2009-12-01  9:46       ` Carsten Otte
2009-12-01 10:11         ` Alexander Graf
2009-12-01 18:45         ` Blue Swirl
2009-12-02  7:55           ` Carsten Otte
2009-12-02 14:41           ` Paul Brook
2009-12-02  8:17       ` Aurelien Jarno
2009-12-02  8:30         ` Alexander Graf
2009-11-26 13:23 ` [Qemu-devel] [PATCH 02/11] S/390 host/target build system support Alexander Graf
2009-11-26 13:23 ` [Qemu-devel] [PATCH 03/11] S/390 fake TCG implementation Alexander Graf
2009-11-30 18:18   ` Aurelien Jarno
2009-11-30 22:27     ` Alexander Graf
2009-12-02  8:16       ` Aurelien Jarno
2009-12-02  8:29         ` Alexander Graf
2009-12-02  8:41           ` Aurelien Jarno
2009-12-02  8:44             ` Alexander Graf
2009-11-26 13:23 ` [Qemu-devel] [PATCH 04/11] Add KVM support for S390x Alexander Graf
2009-11-30 18:18   ` Aurelien Jarno
2009-11-30 22:25     ` Alexander Graf
2009-12-02  8:12       ` Aurelien Jarno
2009-12-02  8:28         ` Alexander Graf
2009-12-02  8:42           ` malc
2009-12-02  8:47             ` Alexander Graf
2009-12-02  8:59               ` malc
2009-12-02  9:36             ` Markus Armbruster
2009-12-02  9:48               ` malc
2009-11-26 13:23 ` [Qemu-devel] [PATCH 05/11] Allocate physical memory in low virtual address space Alexander Graf
2009-11-30 18:18   ` Aurelien Jarno
2009-11-30 22:21     ` Alexander Graf
2009-12-01  9:12       ` Carsten Otte
2009-11-26 13:23 ` [Qemu-devel] [PATCH 06/11] Add support for S390x system emulation Alexander Graf
2009-11-30 18:18   ` Aurelien Jarno
2009-11-30 22:19     ` Alexander Graf
2009-12-02  8:09       ` Aurelien Jarno
2009-12-02  8:27         ` Alexander Graf
2009-12-02  8:37           ` Aurelien Jarno
2009-12-02  8:41             ` Alexander Graf
2009-12-01  9:17     ` Carsten Otte
2009-11-26 13:23 ` [Qemu-devel] [PATCH 07/11] Add S390x virtio machine bus Alexander Graf
2009-11-26 13:23 ` [Qemu-devel] [PATCH 08/11] Add S390x virtio machine description Alexander Graf
2009-11-30 18:18   ` Aurelien Jarno
2009-11-26 13:23 ` [Qemu-devel] [PATCH 09/11] S390 GDB stub Alexander Graf
2009-11-26 13:23 ` [Qemu-devel] [PATCH 10/11] Set default console to virtio on S390x Alexander Graf
2009-11-26 13:23 ` [Qemu-devel] [PATCH 11/11] Add S390 maintainer information Alexander Graf
2009-11-30 18:18 ` [Qemu-devel] [PATCH 00/11] S390x KVM support v4 Aurelien Jarno
  -- strict thread matches above, loose matches on Subject: below --
2009-12-05 11:44 [Qemu-devel] [PATCH 00/11] S390x KVM support v5 Alexander Graf
2009-12-05 11:44 ` [Qemu-devel] [PATCH 07/11] Add S390x virtio machine bus Alexander Graf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).