* [Qemu-devel] [PULL for-2.11 1/4] s390x: fix storing CPU status (again)
2017-11-20 15:21 [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11 Cornelia Huck
@ 2017-11-20 15:21 ` Cornelia Huck
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 2/4] s390x/tcg: fix DIAG 308 with > 1 VCPU (MTTCG) Cornelia Huck
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2017-11-20 15:21 UTC (permalink / raw)
To: peter.maydell
Cc: qemu-devel, qemu-s390x, rth, agraf, thuth, borntraeger, david,
Cornelia Huck
From: David Hildenbrand <david@redhat.com>
Looks like the last fix + cleanup introduced another bug. (for now Linux
guests don't seem to care) - we store the crs into ars.
Fixes: 947a38bd6f13 ("s390x/kvm: fix and cleanup storing CPU status")
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20171116170526.12643-2-david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
target/s390x/helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/s390x/helper.c b/target/s390x/helper.c
index f78983dd6a..246ba20f0d 100644
--- a/target/s390x/helper.c
+++ b/target/s390x/helper.c
@@ -279,7 +279,7 @@ int s390_store_status(S390CPU *cpu, hwaddr addr, bool store_arch)
sa->ars[i] = cpu_to_be32(cpu->env.aregs[i]);
}
for (i = 0; i < 16; ++i) {
- sa->ars[i] = cpu_to_be64(cpu->env.cregs[i]);
+ sa->crs[i] = cpu_to_be64(cpu->env.cregs[i]);
}
cpu_physical_memory_unmap(sa, len, 1, len);
--
2.13.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PULL for-2.11 2/4] s390x/tcg: fix DIAG 308 with > 1 VCPU (MTTCG)
2017-11-20 15:21 [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11 Cornelia Huck
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 1/4] s390x: fix storing CPU status (again) Cornelia Huck
@ 2017-11-20 15:21 ` Cornelia Huck
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 3/4] pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting Cornelia Huck
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2017-11-20 15:21 UTC (permalink / raw)
To: peter.maydell
Cc: qemu-devel, qemu-s390x, rth, agraf, thuth, borntraeger, david,
Cornelia Huck
From: David Hildenbrand <david@redhat.com>
Currently, multi threaded TCG with > 1 VCPU gets stuck during IPL, when
the bios tries to switch to the loaded kernel via DIAG 308.
As run_on_cpu() is used, we run into a deadlock after handling the reset.
We need the iolock (just like KVM).
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20171116170526.12643-4-david@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
target/s390x/misc_helper.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c
index 4afd90b969..d272851e1c 100644
--- a/target/s390x/misc_helper.c
+++ b/target/s390x/misc_helper.c
@@ -103,7 +103,9 @@ void HELPER(diag)(CPUS390XState *env, uint32_t r1, uint32_t r3, uint32_t num)
break;
case 0x308:
/* ipl */
+ qemu_mutex_lock_iothread();
handle_diag_308(env, r1, r3);
+ qemu_mutex_unlock_iothread();
r = 0;
break;
case 0x288:
--
2.13.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PULL for-2.11 3/4] pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting
2017-11-20 15:21 [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11 Cornelia Huck
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 1/4] s390x: fix storing CPU status (again) Cornelia Huck
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 2/4] s390x/tcg: fix DIAG 308 with > 1 VCPU (MTTCG) Cornelia Huck
@ 2017-11-20 15:21 ` Cornelia Huck
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 4/4] pc-bios/s390-ccw.img: update image Cornelia Huck
2017-11-21 9:55 ` [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11 Peter Maydell
4 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2017-11-20 15:21 UTC (permalink / raw)
To: peter.maydell
Cc: qemu-devel, qemu-s390x, rth, agraf, thuth, borntraeger, david,
Cornelia Huck
From: Thomas Huth <thuth@redhat.com>
When rebooting a guest that has a virtio-scsi disk, the s390-ccw
bios sometimes bails out with an error message like this:
! SCSI cannot report LUNs: STATUS=02 RSPN=70 KEY=05 CODE=25 QLFR=00, sure !
Enabling the scsi_req* tracing in QEMU shows that the ccw bios is
trying to execute the REPORT LUNS SCSI command with a LUN != 0, and
this causes the SCSI command to fail.
Looks like we neither clear the BSS of the s390-ccw bios during reboot,
nor do we explicitly set the default_scsi_device.lun value to 0, so
this variable can contain random values from the OS after the reboot.
By setting this variable explicitly to 0, the problem is fixed and
the reboots always succeed.
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1514352
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1510942228-22822-1-git-send-email-thuth@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
pc-bios/s390-ccw/virtio-scsi.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/pc-bios/s390-ccw/virtio-scsi.c b/pc-bios/s390-ccw/virtio-scsi.c
index c92f5d3fa0..4fe4b9d261 100644
--- a/pc-bios/s390-ccw/virtio-scsi.c
+++ b/pc-bios/s390-ccw/virtio-scsi.c
@@ -223,7 +223,8 @@ static void virtio_scsi_locate_device(VDev *vdev)
for (target = 0; target <= vdev->config.scsi.max_target; target++) {
sdev->channel = channel;
- sdev->target = target; /* sdev->lun will be 0 here */
+ sdev->target = target;
+ sdev->lun = 0; /* LUN has to be 0 for REPORT LUNS */
if (!scsi_report_luns(vdev, data, sizeof(data))) {
if (resp.response == VIRTIO_SCSI_S_BAD_TARGET) {
continue;
--
2.13.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PULL for-2.11 4/4] pc-bios/s390-ccw.img: update image
2017-11-20 15:21 [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11 Cornelia Huck
` (2 preceding siblings ...)
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 3/4] pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting Cornelia Huck
@ 2017-11-20 15:21 ` Cornelia Huck
2017-11-21 9:55 ` [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11 Peter Maydell
4 siblings, 0 replies; 6+ messages in thread
From: Cornelia Huck @ 2017-11-20 15:21 UTC (permalink / raw)
To: peter.maydell
Cc: qemu-devel, qemu-s390x, rth, agraf, thuth, borntraeger, david,
Cornelia Huck
Contains the following commit:
- pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
pc-bios/s390-ccw.img | Bin 30520 -> 26416 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/pc-bios/s390-ccw.img b/pc-bios/s390-ccw.img
index 75b604e3ce8a6001de313a0691d6738926c03624..7415f1a3e797a17ce4ede0ee39034288b4ecae86 100644
GIT binary patch
literal 26416
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
DAh{&o
literal 30520
zcmeHwd3;pW`S+P6$&ihkl?fo+fv91N6F>#rX0l*{ECU1_6eS@UNHm+138J+cHMK~s
zhE%Lo+YU&)6k8o4ZNZJS^0R7PB5I|r3wE^S*SJhDDhTGj-{-maP9`z*_5J+b_w#xG
zU_PJ8Irp6BJm=ZZbI!Q~x0EcLZ#J7m^kWg(sOt^!rFy$dEB(i~bcs1)lyHeOA>lb5
z-#D!wZQ5s8Y0}0CqZBrPS@5-L;O03amtwTm9xaJ3`Wo};-NTDDI^9M|Wb!zo6`w|}
z5Vs5~ElzGQzp+W{;BjWu|2N|d`57hiN4y#Q>GYU~l_FQ0Ct6yo10Q(?$1U5V^$#yi
zdb?2y8n+a%2|B*-T1XhT48S^_r;>}omr)ASId!#b	|EZ+3ojV}1coM>sO^wOqP*
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
--
2.13.6
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11
2017-11-20 15:21 [Qemu-devel] [PULL for-2.11 0/4] s390x fixes for 2.11 Cornelia Huck
` (3 preceding siblings ...)
2017-11-20 15:21 ` [Qemu-devel] [PULL for-2.11 4/4] pc-bios/s390-ccw.img: update image Cornelia Huck
@ 2017-11-21 9:55 ` Peter Maydell
4 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2017-11-21 9:55 UTC (permalink / raw)
To: Cornelia Huck
Cc: QEMU Developers, qemu-s390x, Richard Henderson, Alexander Graf,
Thomas Huth, Christian Borntraeger, David Hildenbrand
On 20 November 2017 at 15:21, Cornelia Huck <cohuck@redhat.com> wrote:
> The following changes since commit 2e02083438962d26ef9dcc7100f3b378104183db:
>
> Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging (2017-11-17 19:08:07 +0000)
>
> are available in the git repository at:
>
> git://github.com/cohuck/qemu tags/s390x-20171120-v1
>
> for you to fetch changes up to 6cbf1ec85caf8a7d9f2fd829422c9f0a1c8983e1:
>
> pc-bios/s390-ccw.img: update image (2017-11-20 16:04:11 +0100)
>
> ----------------------------------------------------------------
> Fix storing cpu status (both kvm and tcg), locking around diag 308
> (tcg only) and a non-zero variable in the s390-ccw bios.
>
> ----------------------------------------------------------------
>
> Cornelia Huck (1):
> pc-bios/s390-ccw.img: update image
>
> David Hildenbrand (2):
> s390x: fix storing CPU status (again)
> s390x/tcg: fix DIAG 308 with > 1 VCPU (MTTCG)
>
> Thomas Huth (1):
> pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when
> rebooting
>
> pc-bios/s390-ccw.img | Bin 30520 -> 26416 bytes
> pc-bios/s390-ccw/virtio-scsi.c | 3 ++-
> target/s390x/helper.c | 2 +-
> target/s390x/misc_helper.c | 2 ++
> 4 files changed, 5 insertions(+), 2 deletions(-)
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 6+ messages in thread