qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 6e9c89: s390x/css: disabled subchannels canno


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 6e9c89: s390x/css: disabled subchannels cannot be status p...
Date: Mon, 14 May 2018 11:38:19 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6e9c893ecd00afd5344c35d0d0ded50eaa0938f6
      
https://github.com/qemu/qemu/commit/6e9c893ecd00afd5344c35d0d0ded50eaa0938f6
  Author: Cornelia Huck <address@hidden>
  Date:   2018-05-14 (Mon, 14 May 2018)

  Changed paths:
    M hw/s390x/css.c

  Log Message:
  -----------
  s390x/css: disabled subchannels cannot be status pending

The 3270 code will try to post an attention interrupt when the
3270 emulator (e.g. x3270) attaches. If the guest has not yet
enabled the subchannel for the 3270 device, we will present a spurious
cc 1 (status pending) when it uses msch on it later on, e.g. when
trying to enable the subchannel.

To fix this, just don't do anything in css_conditional_io_interrupt()
if the subchannel is not enabled. The 3270 code will work fine with
that, and the other user of this function (virtio-ccw) never
attempts to post an interrupt for a disabled device to begin with.

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


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

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

  Log Message:
  -----------
  pc-bios/s390-ccw: struct tpi_info must be declared as aligned(4)

I've run into a compilation error today with the current version of GCC 8:

In file included from s390-ccw.h:49,
           from main.c:12:
cio.h:128:1: error: alignment 1 of 'struct tpi_info' is less than 4 
[-Werror=packed-not-aligned]
 } __attribute__ ((packed));
 ^
cc1: all warnings being treated as errors

Since the struct tpi_info contains an element ("struct subchannel_id schid")
which is marked as aligned(4), we've got to mark the struct tpi_info as
aligned(4), too.

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


  Commit: 0c53057adb04d254bc09511880670c92ab185fc6
      
https://github.com/qemu/qemu/commit/0c53057adb04d254bc09511880670c92ab185fc6
  Author: Cornelia Huck <address@hidden>
  Date:   2018-05-14 (Mon, 14 May 2018)

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

  Log Message:
  -----------
  virtio-ccw: common reset handler

All the different virtio ccw devices use the same reset handler,
so let's move setting it into the base virtio ccw device class.

CC: address@hidden
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Reviewed-by: Halil Pasic <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 838fb84f83c84f00d15b1bede5e080b495644458
      
https://github.com/qemu/qemu/commit/838fb84f83c84f00d15b1bede5e080b495644458
  Author: Cornelia Huck <address@hidden>
  Date:   2018-05-14 (Mon, 14 May 2018)

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

  Log Message:
  -----------
  s390x/ccw: make sure all ccw devices are properly reset

Thomas reported that the subchannel for a  3270 device that ended up
in a broken state (status pending even though not enabled) did not
get out of that state even after a reboot (which involves a subsytem
reset). The reason for this is that the 3270 device did not define
a reset handler.

Let's fix this by introducing a base reset handler (set up for all
ccw devices) that resets the subchannel and have virtio-ccw call
its virtio-specific reset procedure in addition to that.

CC: address@hidden
Reported-by: Thomas Huth <address@hidden>
Suggested-by: Christian Borntraeger <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Tested-by: Thomas Huth <address@hidden>
Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: Halil Pasic <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: a30fb811cbe940020a498d2cdac9326cac38b4d9
      
https://github.com/qemu/qemu/commit/a30fb811cbe940020a498d2cdac9326cac38b4d9
  Author: David Hildenbrand <address@hidden>
  Date:   2018-05-14 (Mon, 14 May 2018)

  Changed paths:
    M hw/s390x/ipl.c
    M hw/s390x/ipl.h
    M hw/s390x/s390-virtio-ccw.c
    M include/hw/s390x/s390-virtio-ccw.h
    M target/s390x/cpu.h
    M target/s390x/diag.c
    M target/s390x/internal.h
    M target/s390x/kvm.c

  Log Message:
  -----------
  s390x: refactor reset/reipl handling

Calling pause_all_vcpus()/resume_all_vcpus() from a VCPU thread might
not be the best idea. As pause_all_vcpus() temporarily drops the qemu
mutex, two parallel calls to pause_all_vcpus() can be active at a time,
resulting in a deadlock. (either by two VCPUs or by the main thread and a
VCPU)

Let's handle it via the main loop instead, as suggested by Paolo. If we
would have two parallel reset requests by two different VCPUs at the
same time, the last one would win.

We use the existing ipl device to handle it. The nice side effect is
that we can get rid of reipl_requested.

This change implies that all reset handling now goes via the common
path, so "no-reboot" handling is now active for all kinds of reboots.

Let's execute any CPU initialization code on the target CPU using
run_on_cpu.

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


  Commit: b0dad618baad1efb014c88f4507492a79f2eaf1c
      
https://github.com/qemu/qemu/commit/b0dad618baad1efb014c88f4507492a79f2eaf1c
  Author: Richard Henderson <address@hidden>
  Date:   2018-05-14 (Mon, 14 May 2018)

  Changed paths:
    M target/s390x/misc_helper.c

  Log Message:
  -----------
  target/s390x: Fix brace Werror with clang 6.0.0

The warning is

target/s390x/misc_helper.c:209:21: error: suggest
      braces around initialization of subobject [-Werror,-Wmissing-braces]
    SysIB sysib = { 0 };
              ^
              {}

While the original code is correct, and technically exactly correct
as per ISO C89, both GCC and Clang support plain empty set of braces
as an extension.

Cc: Alexander Graf <address@hidden>
Cc: David Hildenbrand <address@hidden>
Cc: Cornelia Huck <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: fbd3a489df9953e2a5d017c922f3c103b2426952
      
https://github.com/qemu/qemu/commit/fbd3a489df9953e2a5d017c922f3c103b2426952
  Author: Peter Maydell <address@hidden>
  Date:   2018-05-14 (Mon, 14 May 2018)

  Changed paths:
    M hw/s390x/ccw-device.c
    M hw/s390x/css.c
    M hw/s390x/ipl.c
    M hw/s390x/ipl.h
    M hw/s390x/s390-virtio-ccw.c
    M hw/s390x/virtio-ccw.c
    M hw/s390x/virtio-ccw.h
    M include/hw/s390x/s390-virtio-ccw.h
    M pc-bios/s390-ccw/cio.h
    M target/s390x/cpu.h
    M target/s390x/diag.c
    M target/s390x/internal.h
    M target/s390x/kvm.c
    M target/s390x/misc_helper.c

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

Some s390x fixes/cleanups, mainly in the reset area and build fixes
for recent compilers (GCC 8 and clang 6.0.0).

# gpg: Signature made Mon 14 May 2018 16:32:20 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-20180514:
  target/s390x: Fix brace Werror with clang 6.0.0
  s390x: refactor reset/reipl handling
  s390x/ccw: make sure all ccw devices are properly reset
  virtio-ccw: common reset handler
  pc-bios/s390-ccw: struct tpi_info must be declared as aligned(4)
  s390x/css: disabled subchannels cannot be status pending

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


Compare: https://github.com/qemu/qemu/compare/a9cb55a3562a...fbd3a489df99
      **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]