qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 7a9cb3: s390x: introduce 2.13 compat machine


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 7a9cb3: s390x: introduce 2.13 compat machine
Date: Fri, 04 May 2018 05:48:00 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 7a9cb3ad3370cd98b84f9df252012ecf7a5a5b67
      
https://github.com/qemu/qemu/commit/7a9cb3ad3370cd98b84f9df252012ecf7a5a5b67
  Author: Cornelia Huck <address@hidden>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

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

  Log Message:
  -----------
  s390x: introduce 2.13 compat machine

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


  Commit: 98e43b71b25330566d902fbdc8fe35041c2decbe
      
https://github.com/qemu/qemu/commit/98e43b71b25330566d902fbdc8fe35041c2decbe
  Author: Claudio Imbrenda <address@hidden>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M hw/s390x/event-facility.c
    M include/hw/s390x/event-facility.h

  Log Message:
  -----------
  s390x/sclp: extend SCLP event masks to 64 bits

Extend the SCLP event masks to 64 bits.

Notice that using any of the new bits results in a state that cannot be
migrated to an older version.

Signed-off-by: Claudio Imbrenda <address@hidden>
Message-Id: <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: c96f2c2a165acf92ff987ebc9e225452250c5083
      
https://github.com/qemu/qemu/commit/c96f2c2a165acf92ff987ebc9e225452250c5083
  Author: Greg Kurz <address@hidden>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M hw/vfio/ccw.c

  Log Message:
  -----------
  vfio-ccw: introduce vfio_ccw_get_device()

A recent patch fixed leaks of the dynamically allocated vcdev->vdev.name
field in vfio_ccw_realize(), but we now have three freeing sites for it.
This is unfortunate and seems to indicate something is wrong with its
life cycle.

The root issue is that vcdev->vdev.name is set before vfio_get_device()
is called, which theoretically prevents to call vfio_put_device() to
do the freeing. Well actually, we could call it anyway  because
vfio_put_base_device() is a nop if the device isn't attached, but this
would be confusing.

This patch hence moves all the logic of attaching the device, including
the "already attached" check, to a separate vfio_ccw_get_device() function,
counterpart of vfio_put_device(). While here, vfio_put_device() is renamed
to vfio_ccw_put_device() for consistency.

Signed-off-by: Greg Kurz <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: e7c3246162398677eb96f55f267de00809ea213d
      
https://github.com/qemu/qemu/commit/e7c3246162398677eb96f55f267de00809ea213d
  Author: David Hildenbrand <address@hidden>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M hw/s390x/s390-pci-inst.c
    M target/s390x/kvm.c

  Log Message:
  -----------
  s390x/kvm: cleanup calls to cpu_synchronize_state()

We have a call to cpu_synchronize_state() on every kvm_arch_handle_exit().

Let's remove the ones that are no longer needed.

Remaining places (for s390x) are in
- target/s390x/sigp.c, on the target CPU
- target/s390x/cpu.c:s390_cpu_get_crash_info()

While at it, use kvm_cpu_synchronize_state() instead of
cpu_synchronize_state() in KVM code. (suggested by Thomas Huth)

Signed-off-by: David Hildenbrand <address@hidden>
Message-Id: <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 052888f043bacb18231046045b1f9cd946703170
      
https://github.com/qemu/qemu/commit/052888f043bacb18231046045b1f9cd946703170
  Author: Thomas Huth <address@hidden>
  Date:   2018-04-30 (Mon, 30 Apr 2018)

  Changed paths:
    M hw/s390x/event-facility.c
    M hw/s390x/s390-virtio-ccw.c
    M include/hw/boards.h
    M include/hw/s390x/event-facility.h
    M tests/boot-serial-test.c
    M vl.c

  Log Message:
  -----------
  hw/s390x: Allow to configure the consoles with the "-serial" parameter

The consoles ("sclpconsole" and "sclplmconsole") can only be configured
with "-device" and "-chardev" so far. Other machines use the convenience
option "-serial" to configure the default consoles, even for virtual
consoles like spapr-vty on the pseries machine. So let's support this
option on s390x, too. This way we can easily enable the serial console
here again with "-nodefaults", for example:

qemu-system-s390x -no-shutdown -nographic -nodefaults -serial mon:stdio

... which is way shorter than typing:

qemu-system-s390x -no-shutdown -nographic -nodefaults \
  -chardev stdio,id=c1,mux=on -device sclpconsole,chardev=c1 \
  -mon chardev=c1

The -serial parameter can also be used if you only want to see the QEMU
monitor on stdio without using -nodefaults, but not the console output.
That's something that is pretty impossible with the current code today:

qemu-system-s390x -no-shutdown -nographic -serial none

While we're at it, this patch also maps the second -serial option to the
"sclplmconsole", so that there is now an easy way to configure this second
console on s390x, too, for example:

qemu-system-s390x -no-shutdown -nographic -serial null -serial mon:stdio

Additionally, the new code is also smaller than the old one and we have
less s390x-specific code in vl.c :-)

I've also checked that migration still works as expected by migrating
a guest with console output back and forth between a qemu-system-s390x
that has this patch and an instance without this patch.

Signed-off-by: Thomas Huth <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: e4f869621203955761cf274c87d5595e9facd319
      
https://github.com/qemu/qemu/commit/e4f869621203955761cf274c87d5595e9facd319
  Author: Thomas Huth <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  pc-bios/s390-ccw: size_t should be unsigned

"size_t" should be an unsigned type according to the C standard.
Thus we should also use this convention in the s390-ccw firmware to avoid
confusion. I checked the sources, and apart from one spot in libc.c, the
code should all be fine with this change.

Buglink: https://bugs.launchpad.net/qemu/+bug/1753437
Reviewed-by: Christian Borntraeger <address@hidden>
Reviewed-by: Halil Pasic <address@hidden>
Reviewed-by: Collin Walling <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 6df2a829dfacfbf10a78199ad4b023a7ea65d9cd
      
https://github.com/qemu/qemu/commit/6df2a829dfacfbf10a78199ad4b023a7ea65d9cd
  Author: Collin Walling <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES

The MAX_TABLE_ENTRIES constant has a name that is too generic. As we
want to declare a limit for boot menu entries, let's rename it to a more
fitting MAX_BOOT_ENTRIES and set its value to 31 (30 boot entries and
1 default entry). Also we move it from bootmap.h to s390-ccw.h to make
it available for menu.c in a later patch.

Signed-off-by: Collin Walling <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Janosch Frank <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 074afe60d4c8167dcfaee7aca1065c6360449eaa
      
https://github.com/qemu/qemu/commit/074afe60d4c8167dcfaee7aca1065c6360449eaa
  Author: Collin Walling <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

  Changed paths:
    M hw/s390x/ipl.c
    M pc-bios/s390-ccw/main.c

  Log Message:
  -----------
  pc-bios/s390-ccw: fix loadparm initialization and int conversion

Rename the loadparm char array in main.c to loadparm_str and
increased the size by one byte to account for a null termination
when converting the loadparm string to an int  via atoui. We
also allow the boot menu to be enabled when loadparm is set to
an empty string or a series of spaces.

Signed-off-by: Collin Walling <address@hidden>
Reported-by: Vasily Gorbik <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Janosch Frank <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 7385e947fc65a44dd05abb86c874beb915c1989c
      
https://github.com/qemu/qemu/commit/7385e947fc65a44dd05abb86c874beb915c1989c
  Author: Collin Walling <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  pc-bios/s390-ccw: fix non-sequential boot entries (eckd)

zIPL boot menu entries can be non-sequential. Let's account
for this issue for the s390 zIPL boot menu. Since this boot
menu is actually an imitation and is not completely capable
of everything the real zIPL menu can do, let's also print a
different banner to the user.

Signed-off-by: Collin Walling <address@hidden>
Reported-by: Vasily Gorbik <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Janosch Frank <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 622b39178057289a1c8c1b5148f513e658e90ea1
      
https://github.com/qemu/qemu/commit/622b39178057289a1c8c1b5148f513e658e90ea1
  Author: Collin Walling <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  pc-bios/s390-ccw: fix non-sequential boot entries (enum)

zIPL boot menu entries can be non-sequential. Let's account
for this issue for the s390 enumerated boot menu. Since we
can no longer print a range of available entries to the
user, we have to present a list of each available entry.

An example of this menu:

  s390-ccw Enumerated Boot Menu.

   [0] default

   [1]
   [2]
   [7]
   [8]
   [9]
  [11]
  [12]

  Please choose:

Signed-off-by: Collin Walling <address@hidden>
Reported-by: Vasily Gorbik <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: Janosch Frank <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 0c18822953011ec0a3038c8a5eca1803b72a213e
      
https://github.com/qemu/qemu/commit/0c18822953011ec0a3038c8a5eca1803b72a213e
  Author: Thomas Huth <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts

When we want to support pxelinux-style network booting later, we've got
to do several TFTP transfers - and we do not want to apply for a new IP
address via DHCP each time. So split up net_load into three parts:

1. net_init(), which initializes virtio-net, gets an IP address via DHCP
   and prints out the related information.

2. The tftp_load call is now moved directly into the main() function

3. A new net_release() function which should tear down the network stack
   before we are done in the firmware.

This will make it easier to extend the code in the next patches.

Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 9a848adf45d6732e62551decb3c0255173090767
      
https://github.com/qemu/qemu/commit/9a848adf45d6732e62551decb3c0255173090767
  Author: Thomas Huth <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

  Changed paths:
    M pc-bios/s390-ccw/Makefile
    M pc-bios/s390-ccw/bootmap.c
    M pc-bios/s390-ccw/bootmap.h
    A pc-bios/s390-ccw/jump2ipl.c
    M pc-bios/s390-ccw/netboot.mak
    M pc-bios/s390-ccw/netmain.c
    M pc-bios/s390-ccw/s390-ccw.h

  Log Message:
  -----------
  pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS

The netboot firmware so far simply jumped directly into the OS kernel
after the download has been completed. This, however, bears the risk
that the virtio-net device still might be active in the background and
incoming packets are still placed into the buffers - which could destroy
memory of the now-running Linux kernel in case it did not take over the
device fast enough. Also the SCLP console is not put into a well-defined
state here. We should hand over the system in a clean state when jumping
into the kernel, so let's use the same mechanism as it's done in the
main s390-ccw firmware and reset the machine with diag308 into a clean
state before jumping into the OS kernel code. To be able to share the
code with the main s390-ccw firmware, the related functions are now
extracted from bootmap.c into a new file called jump2ipl.c.

Since we now also set the boot device schid at address 184 for the network
boot device, this patch also slightly changes the way how we detect the
entry points for non-ELF binary images: The code now looks for the "S390EP"
magic first and then jumps to 0x10000 in case it has been found. This is
necessary for booting from network devices, since the normal kernel code
(where the PSW at ddress 0 points to) tries to do a block load from the
boot device. This of course fails for a virtio-net device and causes the
kernel to abort with a panic-PSW silently.

Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: c4942ee94271052b68125ec8c06e8c71a967aad3
      
https://github.com/qemu/qemu/commit/c4942ee94271052b68125ec8c06e8c71a967aad3
  Author: Thomas Huth <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  pc-bios/s390-ccw/net: Add support for .INS config files

The .INS config files can normally be found on CD-ROM ISO images,
so by supporting these files, it is now possible to boot directly
when the TFTP server is set up with the contents of such an CD-ROM
image.

Acked-by: Christian Borntraeger <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 63d8b5ace31c1e1f3996fe4cd551d6d377594d5a
      
https://github.com/qemu/qemu/commit/63d8b5ace31c1e1f3996fe4cd551d6d377594d5a
  Author: Cornelia Huck <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  s390-ccw: force diag 308 subcode to unsigned long

We currently pass an integer as the subcode parameter. However,
the upper bits of the register containing the subcode need to
be 0, which is not guaranteed unless we explicitly specify the
subcode to be an unsigned long value.

Fixes: d046c51dad3 ("pc-bios/s390-ccw: Get device address via diag 308/6")
Cc: address@hidden
Signed-off-by: Cornelia Huck <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Tested-by: Thomas Huth <address@hidden>
Signed-off-by: Thomas Huth <address@hidden>


  Commit: 312185cf35b5d8454a84c337ef9aadade877fb88
      
https://github.com/qemu/qemu/commit/312185cf35b5d8454a84c337ef9aadade877fb88
  Author: Thomas Huth <address@hidden>
  Date:   2018-05-02 (Wed, 02 May 2018)

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

  Log Message:
  -----------
  pc-bios/s390: Update firmware images

s390-ccw.img contains fixes for the boot menu, and s390-netboot.img
contains the support for .INS files and the patch for resetting the
machine with diag308.

Signed-off-by: Thomas Huth <address@hidden>


  Commit: 532cd4b067d37b96496dbacbfab6c990c063d33d
      
https://github.com/qemu/qemu/commit/532cd4b067d37b96496dbacbfab6c990c063d33d
  Author: Cornelia Huck <address@hidden>
  Date:   2018-05-03 (Thu, 03 May 2018)

  Changed paths:
    M hw/s390x/ipl.c
    M pc-bios/s390-ccw.img
    M pc-bios/s390-ccw/Makefile
    M pc-bios/s390-ccw/bootmap.c
    M pc-bios/s390-ccw/bootmap.h
    M pc-bios/s390-ccw/iplb.h
    A pc-bios/s390-ccw/jump2ipl.c
    M pc-bios/s390-ccw/libc.c
    M pc-bios/s390-ccw/libc.h
    M pc-bios/s390-ccw/main.c
    M pc-bios/s390-ccw/menu.c
    M pc-bios/s390-ccw/netboot.mak
    M pc-bios/s390-ccw/netmain.c
    M pc-bios/s390-ccw/s390-ccw.h
    M pc-bios/s390-netboot.img

  Log Message:
  -----------
  Merge tag 'tags/s390x-2018-05-02' into staging

s390-ccw firmware updates:
- Improvements to the boot menu (can now handle non-sequential entries)
- s390-netboot now resets the machine before jumping into the OS kernel
- s390-netboot now supports indirect loading via .INS files
- some other minor fixes and clean-ups

# gpg: Signature made Wed 02 May 2018 04:15:21 PM CEST
# gpg:                using RSA key 2ED9D774FE702DB5
# gpg: Good signature from "Thomas Huth <address@hidden>" [full]
# gpg:                 aka "Thomas Huth <address@hidden>" [undefined]
# gpg:                 aka "Thomas Huth <address@hidden>" [undefined]
# gpg:                 aka "Thomas Huth <address@hidden>" [unknown]

* tag 'tags/s390x-2018-05-02':
  pc-bios/s390: Update firmware images
  s390-ccw: force diag 308 subcode to unsigned long
  pc-bios/s390-ccw/net: Add support for .INS config files
  pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS
  pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts
  pc-bios/s390-ccw: fix non-sequential boot entries (enum)
  pc-bios/s390-ccw: fix non-sequential boot entries (eckd)
  pc-bios/s390-ccw: fix loadparm initialization and int conversion
  pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES
  pc-bios/s390-ccw: size_t should be unsigned

Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 46e04dacd3a6e7e453fb0b76b144b5fc67f52349
      
https://github.com/qemu/qemu/commit/46e04dacd3a6e7e453fb0b76b144b5fc67f52349
  Author: Peter Maydell <address@hidden>
  Date:   2018-05-04 (Fri, 04 May 2018)

  Changed paths:
    M hw/s390x/event-facility.c
    M hw/s390x/ipl.c
    M hw/s390x/s390-pci-inst.c
    M hw/s390x/s390-virtio-ccw.c
    M hw/vfio/ccw.c
    M include/hw/boards.h
    M include/hw/s390x/event-facility.h
    M pc-bios/s390-ccw.img
    M pc-bios/s390-ccw/Makefile
    M pc-bios/s390-ccw/bootmap.c
    M pc-bios/s390-ccw/bootmap.h
    M pc-bios/s390-ccw/iplb.h
    A pc-bios/s390-ccw/jump2ipl.c
    M pc-bios/s390-ccw/libc.c
    M pc-bios/s390-ccw/libc.h
    M pc-bios/s390-ccw/main.c
    M pc-bios/s390-ccw/menu.c
    M pc-bios/s390-ccw/netboot.mak
    M pc-bios/s390-ccw/netmain.c
    M pc-bios/s390-ccw/s390-ccw.h
    M pc-bios/s390-netboot.img
    M target/s390x/kvm.c
    M tests/boot-serial-test.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180504' into staging

First s390x pull request for 2.13.
- new machine type
- extend SCLP event masks
- support configuration of consoles via -serial
- firmware improvements: non-sequential entries in boot menu, support
  for indirect loading via .INS files in s390-netboot
- bugfixes and cleanups

# gpg: Signature made Fri 04 May 2018 08:19:57 BST
# gpg:                using RSA key DECF6B93C6F02FAF
# gpg: Good signature from "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"
# Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0  18CE DECF 6B93 C6F0 2FAF

* remotes/cohuck/tags/s390x-20180504:
  pc-bios/s390: Update firmware images
  s390-ccw: force diag 308 subcode to unsigned long
  pc-bios/s390-ccw/net: Add support for .INS config files
  pc-bios/s390-ccw/net: Use diag308 to reset machine before jumping to the OS
  pc-bios/s390-ccw/net: Split up net_load() into init, load and release parts
  pc-bios/s390-ccw: fix non-sequential boot entries (enum)
  pc-bios/s390-ccw: fix non-sequential boot entries (eckd)
  pc-bios/s390-ccw: fix loadparm initialization and int conversion
  pc-bios/s390-ccw: rename MAX_TABLE_ENTRIES to MAX_BOOT_ENTRIES
  pc-bios/s390-ccw: size_t should be unsigned
  hw/s390x: Allow to configure the consoles with the "-serial" parameter
  s390x/kvm: cleanup calls to cpu_synchronize_state()
  vfio-ccw: introduce vfio_ccw_get_device()
  s390x/sclp: extend SCLP event masks to 64 bits
  s390x: introduce 2.13 compat machine

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


Compare: https://github.com/qemu/qemu/compare/2e4bd4a286cc...46e04dacd3a6
      **NOTE:** This service been marked for deprecation: 
https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.

reply via email to

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