All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Thomas Huth <thuth@redhat.com>,
	qemu-s390x@nongnu.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [qemu-s390x] [PATCH for-2.11] pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting
Date: Mon, 20 Nov 2017 10:00:37 +0100	[thread overview]
Message-ID: <20171120100037.4a694914.cohuck@redhat.com> (raw)
In-Reply-To: <b4f16003-a1ff-c5dd-dc06-c285929254ba@de.ibm.com>

On Mon, 20 Nov 2017 09:48:36 +0100
Christian Borntraeger <borntraeger@de.ibm.com> wrote:

> Thomas,
> 
> does this patch help as well?
> 
> diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> index 6d0c2ee..2687590 100644
> --- a/pc-bios/s390-ccw/Makefile
> +++ b/pc-bios/s390-ccw/Makefile
> @@ -12,7 +12,7 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
>  OBJECTS = start.o main.o bootmap.o sclp.o virtio.o virtio-scsi.o virtio-blkdev.o
>  QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
>  QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
> -QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
> +QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing -fno-zero-initialized-in-bss
>  QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector)
>  LDFLAGS += -Wl,-pie -nostdlib

If this would actually enable us to kill a whole bird swarm with one
stone, I'd prefer it over the patch below, nicely short though it is.


I plan to pack the one or the other into s390-fixes today and rebuild.

>  
> 
> 
> 
> On 11/17/2017 07:45 PM, Christian Borntraeger wrote:
> > 
> > 
> > On 11/17/2017 07:10 PM, Thomas Huth wrote:  
> >> 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>  
> > 
> > Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
> > 
> > We had these things multile times in the past. The QEMU elf loader does not
> > zero the BSS (it just loads the load section).  Hmm, what about letting the 
> > BIOS zero its bss itself. IIRC the kernel does the same thing. I will have a
> > look into that for 2.12.
> > 
> > PS: Please do not forget to rebuild the bios  
> >> ---
> >>  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 c92f5d3..4fe4b9d 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;
> >>  
> > 
> >   
> 

  reply	other threads:[~2017-11-20  9:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-17 18:10 [Qemu-devel] [PATCH for-2.11] pc-bios/s390-ccw: Fix problem with invalid virtio-scsi LUN when rebooting Thomas Huth
2017-11-17 18:45 ` Christian Borntraeger
2017-11-20  8:48   ` [Qemu-devel] [qemu-s390x] " Christian Borntraeger
2017-11-20  9:00     ` Cornelia Huck [this message]
2017-11-20  9:02       ` Christian Borntraeger
2017-11-20  9:18     ` Thomas Huth
2017-11-20  9:20       ` Christian Borntraeger
2017-11-20  9:26       ` Cornelia Huck
2017-11-20  9:34 ` David Hildenbrand
2017-11-20  9:50 ` [Qemu-devel] " Cornelia Huck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171120100037.4a694914.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.