qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 85ca33: s390x/kvm: run guest triggered resets


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 85ca33: s390x/kvm: run guest triggered resets on the targe...
Date: Mon, 01 Sep 2014 07:00:08 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 85ca3371f6f5284d54202aec091e7cb3a49e5135
      
https://github.com/qemu/qemu/commit/85ca3371f6f5284d54202aec091e7cb3a49e5135
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M target-s390x/cpu.h
    M target-s390x/misc_helper.c

  Log Message:
  -----------
  s390x/kvm: run guest triggered resets on the target vcpu thread

Currently, load_normal_reset() and modified_clear_reset() as triggered
by a guest vcpu will initiate cpu resets on the current vcpu thread for
all cpus. The reset should happen on the individual vcpu thread
instead, so let's use run_on_cpu() for this.

This avoids calls to synchronize_rcu() in the kernel.

Reviewed-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 6e6ad8db11343ccd84934687efeb36937c20c363
      
https://github.com/qemu/qemu/commit/6e6ad8db11343ccd84934687efeb36937c20c363
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M target-s390x/kvm.c

  Log Message:
  -----------
  s390x/kvm: execute sigp orders on the target vcpu thread

All sigp orders that can result in ioctls on the target vcpu should be executed
on the associated vcpu thread.

Reviewed-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 1fad8b3be32c2e91acbd55f2b0af57ed0723b1bb
      
https://github.com/qemu/qemu/commit/1fad8b3be32c2e91acbd55f2b0af57ed0723b1bb
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M target-s390x/cpu.c

  Log Message:
  -----------
  s390x/kvm: execute "system reset" cpu resets on the vcpu thread

Let's execute resets triggered by qemu system resets on the target vcpu thread.
This will avoid synchronize_rcu's in the kernel.

Reviewed-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 159855f098489160df9cb13ce1667a4d6dd76895
      
https://github.com/qemu/qemu/commit/159855f098489160df9cb13ce1667a4d6dd76895
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M target-s390x/cpu.c

  Log Message:
  -----------
  s390x/kvm: execute the first cpu reset on the vcpu thread

As all full cpu resets currently call into the kernel to do initial cpu reset,
let's run this reset (triggered by cpu_s390x_init()) on the proper vcpu thread.

Reviewed-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 92cb05574b7bd489be81f9c58497dc7dfe5d8859
      
https://github.com/qemu/qemu/commit/92cb05574b7bd489be81f9c58497dc7dfe5d8859
  Author: Eugene (jno) Dvurechenski <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M pc-bios/s390-ccw/virtio.c

  Log Message:
  -----------
  pc-bios/s390-ccw: support all virtio block size

The block size value may be given "as is" OR as a base value and
a shift count (exponent). So, we have to use calculation to get
the proper number in the code.

The main expression reads as
  (blk_cfg.blk_size << blk_cfg.physical_block_exp)

E.g., various combinations between blk_size=1/physical_block_exp=12
and blk_size=4096/physical_block_exp=0 are valid for 4K blocks.

Signed-off-by: Eugene (jno) Dvurechenski <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 00a47e7e71a2fbceb4ec565593738b0b3f06a42b
      
https://github.com/qemu/qemu/commit/00a47e7e71a2fbceb4ec565593738b0b3f06a42b
  Author: Eugene (jno) Dvurechenski <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M pc-bios/s390-ccw/virtio.c

  Log Message:
  -----------
  pc-bios/s390-ccw: handle more ECKD DASD block sizes

Using dasdfmt(8) to format a DASD allows to choose a block size.
There are four supported values: 512, 1024, 2048, and 4096 bytes
per block. Each block size leads to selection of new count of
sectors per track. The head count remains always the same: 15.

This empiric knowledge is used to detect ECKD DASD to IPL from.

Signed-off-by: Eugene (jno) Dvurechenski <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: b0885f7599739ed1d7002774f9be2ba1f8212cc7
      
https://github.com/qemu/qemu/commit/b0885f7599739ed1d7002774f9be2ba1f8212cc7
  Author: Eugene (jno) Dvurechenski <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M pc-bios/s390-ccw/bootmap.c

  Log Message:
  -----------
  pc-bios/s390-ccw Improve ECKD informational message

Add block size display to ECKD scheme report.

Signed-off-by: Eugene (jno) Dvurechenski <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: f04db28b86654d1c7ff805b40eff27bba6b0f686
      
https://github.com/qemu/qemu/commit/f04db28b86654d1c7ff805b40eff27bba6b0f686
  Author: Eugene (jno) Dvurechenski <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M pc-bios/s390-ccw/bootmap.c
    M pc-bios/s390-ccw/virtio.c
    M pc-bios/s390-ccw/virtio.h

  Log Message:
  -----------
  pc-bios/s390-ccw Really big EAV ECKD DASD handling

For EAV ECKD DASD, the cylinder count will have the magic value
0xfffeU. Therefore, use the block number to test for valid eckd
addresses instead.

Signed-off-by: Eugene (jno) Dvurechenski <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 14f56a2e359df01faff986ea6c8c07be7de49501
      
https://github.com/qemu/qemu/commit/14f56a2e359df01faff986ea6c8c07be7de49501
  Author: Eugene (jno) Dvurechenski <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M pc-bios/s390-ccw/bootmap.c
    M pc-bios/s390-ccw/bootmap.h

  Log Message:
  -----------
  pc-bios/s390-ccw: IPL from DASD with format variations

There are two known cases of DASD format where signatures are
incomplete or absent:

1. result of <dasdfmt -d ldl -L ...> (ECKD_LDL_UNLABELED)
2. CDL with zero keys in IPL1 and IPL2 records

Now the code attempts to
1. find zIPL and use SCSI layout
2. find IPL1 and use CDL layout
3. find CMS1 and use LDL layout
3. find LNX1 and use LDL layout
4. find zIPL and use unlabeled LDL layout
5. find zIPL and use CDL layout
6. die
in this sequence.

Signed-off-by: Eugene (jno) Dvurechenski <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 1aa7f4c6aa55604b3924a08d5527f124460f6acf
      
https://github.com/qemu/qemu/commit/1aa7f4c6aa55604b3924a08d5527f124460f6acf
  Author: Christian Borntraeger <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M pc-bios/s390-ccw/bootmap.c

  Log Message:
  -----------
  pc-bios/s390-ccw: Do proper console setup

The final newline/return must happen before we reset the sclp via
diag 308.

Signed-off-by: Christian Borntraeger <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: f3602219884127c6f15958148c540302db5cf77b
      
https://github.com/qemu/qemu/commit/f3602219884127c6f15958148c540302db5cf77b
  Author: Eugene (jno) Dvurechenski <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M pc-bios/s390-ccw.img

  Log Message:
  -----------
  pc-bios/s390-ccw.img binary update

Rebuild of s390-ccw.img containing these patches:

  pc-bios/s390-ccw: Do proper console setup
  pc-bios/s390-ccw: support all virtio block size
  pc-bios/s390-ccw: handle more ECKD DASD block sizes
  pc-bios/s390-ccw Improve ECKD informational message
  pc-bios/s390-ccw Really big EAV ECKD DASD handling
  pc-bios/s390-ccw: IPL from DASD with format variations

Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 0844df77fdf9cd115a3b8f414333d41b3a88bc9d
      
https://github.com/qemu/qemu/commit/0844df77fdf9cd115a3b8f414333d41b3a88bc9d
  Author: Matthew Rosato <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M hw/s390x/sclp.c
    M include/hw/s390x/sclp.h

  Log Message:
  -----------
  sclp-s390: Add device to manage s390 memory hotplug

Add sclpMemoryHotplugDev to contain associated data structures, etc.

Signed-off-by: Matthew Rosato <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: b6fe01248e66a3c1b1b22a9cd640bfa86d4c358c
      
https://github.com/qemu/qemu/commit/b6fe01248e66a3c1b1b22a9cd640bfa86d4c358c
  Author: Matthew Rosato <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M hw/s390x/s390-virtio-ccw.c
    M qemu-options.hx
    M target-s390x/cpu.h

  Log Message:
  -----------
  virtio-ccw: Include standby memory when calculating storage increment

When determining the memory increment size, use the maxmem size if
it was specified.

Signed-off-by: Matthew Rosato <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: e7f1314f97a8e9e035100e9aa4e9613f245fb00c
      
https://github.com/qemu/qemu/commit/e7f1314f97a8e9e035100e9aa4e9613f245fb00c
  Author: Matthew Rosato <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M hw/s390x/s390-virtio.c

  Log Message:
  -----------
  s390-virtio: Apply same memory boundaries as virtio-ccw

Although s390-virtio won't support memory hotplug, it should
enforce the same memory boundaries so that it can use shared codepaths
(like read_SCP_info).

Signed-off-by: Matthew Rosato <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 1def6656b61c65757a02beb0318249e0b1c4e634
      
https://github.com/qemu/qemu/commit/1def6656b61c65757a02beb0318249e0b1c4e634
  Author: Matthew Rosato <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M hw/s390x/sclp.c
    M target-s390x/cpu.h
    M target-s390x/kvm.c

  Log Message:
  -----------
  sclp-s390: Add memory hotplug SCLPs

Add memory information to read SCP info and add handlers for
Read Storage Element Information, Attach Storage Element,
Assign Storage and Unassign Storage.

Signed-off-by: Matthew Rosato <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 97fa52f0971bf503c424d69f9d5db89ce9c3b717
      
https://github.com/qemu/qemu/commit/97fa52f0971bf503c424d69f9d5db89ce9c3b717
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M target-s390x/gdbstub.c

  Log Message:
  -----------
  s390x/gdb: don't touch the cc if tcg is not enabled

When reading/writing the psw mask, the condition code may only be touched if
running on tcg.

Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 6117afac348c8e94ca02c9b5ff68c9f0abcfdb85
      
https://github.com/qemu/qemu/commit/6117afac348c8e94ca02c9b5ff68c9f0abcfdb85
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M configure
    A gdb-xml/s390-acr.xml
    A gdb-xml/s390-fpr.xml
    A gdb-xml/s390x-core64.xml

  Log Message:
  -----------
  s390x/gdb: add the feature xml files for s390x

This patch adds the relevant s390x feature xml files taken from gdb.

Signed-off-by: David Hildenbrand <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 73d510c9d3f67378759447fd78af10b22e39620f
      
https://github.com/qemu/qemu/commit/73d510c9d3f67378759447fd78af10b22e39620f
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M target-s390x/cpu-qom.h
    M target-s390x/cpu.c
    M target-s390x/cpu.h
    M target-s390x/gdbstub.c

  Log Message:
  -----------
  s390x/gdb: generate target.xml and handle fp/ac as coprocessors

This patch reduces the core registers to the psw and the general purpose
registers. The fpc and ac registers are handled as coprocessors registers by 
gdb.
This allows to reuse the feature xml files taken from gdb without further
modification and is what other architectures do.

The target.xml is now generated and provided to the gdb client. Therefore, the
client doesn't have to guess which registers are available at which logical
register number.

Signed-off-by: David Hildenbrand <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 218829db2303e3d61f901f1d12fd4f7cd03644e1
      
https://github.com/qemu/qemu/commit/218829db2303e3d61f901f1d12fd4f7cd03644e1
  Author: David Hildenbrand <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M target-s390x/gdbstub.c

  Log Message:
  -----------
  s390x/gdb: coding style fixes

This patch cleanes up two coding style issues (missing whitespaces).

Signed-off-by: David Hildenbrand <address@hidden>
Acked-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>


  Commit: 5cd1475d28fc6e3d617e6cc47ab7c8050cf7fa40
      
https://github.com/qemu/qemu/commit/5cd1475d28fc6e3d617e6cc47ab7c8050cf7fa40
  Author: Peter Maydell <address@hidden>
  Date:   2014-09-01 (Mon, 01 Sep 2014)

  Changed paths:
    M configure
    A gdb-xml/s390-acr.xml
    A gdb-xml/s390-fpr.xml
    A gdb-xml/s390x-core64.xml
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/s390-virtio.c
    M hw/s390x/sclp.c
    M include/hw/s390x/sclp.h
    M pc-bios/s390-ccw.img
    M pc-bios/s390-ccw/bootmap.c
    M pc-bios/s390-ccw/bootmap.h
    M pc-bios/s390-ccw/virtio.c
    M pc-bios/s390-ccw/virtio.h
    M qemu-options.hx
    M target-s390x/cpu-qom.h
    M target-s390x/cpu.c
    M target-s390x/cpu.h
    M target-s390x/gdbstub.c
    M target-s390x/kvm.c
    M target-s390x/misc_helper.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/borntraeger/tags/kvm-s390-20140901' 
into staging

s390x/kvm: Several updates/fixes/features

1. s390x/kvm: avoid synchronize_rcu's in kernel
----------------------------------------------
The first patches change s390x/kvm code to issue VCPU specific ioctls
from the VCPU thread. This will avoid unnecessary synchronize_rcu in
the kernel, which caused a noticably slowdown with many guest CPUs.
It speeds up all start/restart/reset operations involving cpus
drastically.

2. s390-ccw.img: block size and DASD format support
---------------------------------------------------
The second part changes the s390-ccw bios to IPL (boot)  more disk
formats than before. Furthermore a small fix is made to the console
output of the bios.

3. s390: Support for Hotplug of Standby Memory
----------------------------------------------
The third part adds support in s390 for a pool of standby memory,
which can be set online/offline by the guest (ie, via chmem).
The standby pool of memory is allocated as the difference between
the initial memory setting and the maxmem setting.
As part of this work, additional results are provided for the
Read SCP Information SCLP, and new implentation is added for the
Read Storage Element Information, Attach Storage Element,
Assign Storage and Unassign Storage SCLPs, which enables the s390
guest to manipulate the standby memory pool.

This patchset is based on work originally done by Jeng-Fang (Nick)
Wang.

Sample qemu command snippet:

qemu -machine s390-ccw-virtio  -m 1024M,maxmem=2048M,slots=32 -enable-kvm

This will allocate 1024M of active memory, and another 1024M
of standby memory.  Example output from s390-tools lsmem:
=============================================================================
0x0000000000000000-0x000000000fffffff        256  online   no         0-127
0x0000000010000000-0x000000001fffffff        256  online   yes        128-255
0x0000000020000000-0x000000003fffffff        512  online   no         256-511
0x0000000040000000-0x000000007fffffff       1024  offline  -          512-1023

Memory device size  : 2 MB
Memory block size   : 256 MB
Total online memory : 1024 MB
Total offline memory: 1024 MB

The guest can dynamically enable part or all of the standby pool
via the s390-tools chmem, for example:

chmem -e 512M

And can attempt to dynamically disable:

chmem -d 512M

4. s390x/gdb: various fixes
---------------------------
* Patch 1 fixes a bug where the cc was changed accidentally.
* Patch 2 adds the gdb feature XML files for s390x
* Patch 3 Define acr and fpr registers as coprocessor registers. This allows us
   to reuse the feature XML files.
* Patch 4 whitespace fixes

# gpg: Signature made Mon 01 Sep 2014 12:53:39 BST using RSA key ID B5A61C7C
# gpg: Can't check signature: public key not found

* remotes/borntraeger/tags/kvm-s390-20140901:
  s390x/gdb: coding style fixes
  s390x/gdb: generate target.xml and handle fp/ac as coprocessors
  s390x/gdb: add the feature xml files for s390x
  s390x/gdb: don't touch the cc if tcg is not enabled
  sclp-s390: Add memory hotplug SCLPs
  s390-virtio: Apply same memory boundaries as virtio-ccw
  virtio-ccw: Include standby memory when calculating storage increment
  sclp-s390: Add device to manage s390 memory hotplug
  pc-bios/s390-ccw.img binary update
  pc-bios/s390-ccw: Do proper console setup
  pc-bios/s390-ccw: IPL from DASD with format variations
  pc-bios/s390-ccw Really big EAV ECKD DASD handling
  pc-bios/s390-ccw Improve ECKD informational message
  pc-bios/s390-ccw: handle more ECKD DASD block sizes
  pc-bios/s390-ccw: support all virtio block size
  s390x/kvm: execute the first cpu reset on the vcpu thread
  s390x/kvm: execute "system reset" cpu resets on the vcpu thread
  s390x/kvm: execute sigp orders on the target vcpu thread
  s390x/kvm: run guest triggered resets on the target vcpu thread

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/988f46361465...5cd1475d28fc

reply via email to

[Prev in Thread] Current Thread [Next in Thread]