[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH for-5.2 0/6] Continue booting in case the first device is not
From: |
Thomas Huth |
Subject: |
Re: [PATCH for-5.2 0/6] Continue booting in case the first device is not bootable |
Date: |
Thu, 30 Jul 2020 06:39:05 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 |
On 29/07/2020 13.42, Viktor Mihajlovski wrote:
>
>
> On 7/28/20 8:37 PM, Thomas Huth wrote:
>> If the user did not specify a "bootindex" property, the s390-ccw bios
>> tries to find a bootable device on its own. Unfortunately, it alwasy
>> stops at the very first device that it can find, no matter whether it's
>> bootable or not. That causes some weird behavior, for example while
>>
>> qemu-system-s390x -hda bootable.qcow2
>>
>> boots perfectly fine, the bios refuses to work if you just specify
>> a virtio-scsi controller in front of it:
>>
>> qemu-system-s390x -device virtio-scsi -hda bootable.qcow2
>>
>> Since this is quite uncomfortable and confusing for the users, and
>> all major firmwares on other architectures correctly boot in such
>> cases, too, let's also try to teach the s390-ccw bios how to boot
>> in such cases.
>>
>> For this, we have to get rid of the various panic()s and IPL_assert()
>> statements at the "low-level" function and let the main code handle
>> the decision instead whether a boot from a device should fail or not,
>> so that the main code can continue searching in case it wants to.
>>
>
> Looking at it from an architectural perspective: If an IPL Information
> Block specifying the boot device has been set and can be retrieved using
> Diagnose 308 it has to be respected, even if the device doesn't contain
> a bootable program. The boot has to fail in this case.
>
> I had not the bandwidth to follow all code paths, but I gather that this
> is still the case with the series.
Right. Just to be sure, I just double-checked with:
... -device virtio-blk,drive=baddrive,bootindex=1 \
-device virtio-blk,drive=gooddrive
and indeed, the s390-ccw bios only checks the "baddrive" here and
refuses to boot.
> So one can argue that these changes
> are taking care of an undefined situation (real hardware will always
> have the IPIB set).
>
> As long as the architecture is not violated, I can live with the
> proposed changes.
Thanks!
> I however would like to point out that this only
> covers a corner case (no -boot or -device ..,bootindex specified).
Sure. We™ should/could maybe also add some more documentation to
https://www.qemu.org/docs/master/system/target-s390x.html
to make it more clear to the "unexperienced" qemu-system-s390x users
that "bootindex" is the preferred / architected way of booting there.
> Please don't create the impression that this patches will lead to the
> same behavior as on other platforms.
Ok, I'll try to state that more clearly in the cover letter of v2.
Thomas
- Re: [PATCH for-5.2 2/6] pc-bios/s390-ccw: Move ipl-related code from main() into a separate function, (continued)
- [PATCH for-5.2 3/6] pc-bios/s390-ccw: Move the inner logic of find_subch() to a separate function, Thomas Huth, 2020/07/28
- [PATCH for-5.2 4/6] pc-bios/s390-ccw: Do not bail out early if not finding a SCSI disk, Thomas Huth, 2020/07/28
- [PATCH for-5.2 5/6] pc-bios/s390-ccw: Scan through all boot devices if none has been specified, Thomas Huth, 2020/07/28
- [PATCH for-5.2 6/6] pc-bios/s390-ccw: Allow booting in case the first virtio-blk disk is bad, Thomas Huth, 2020/07/28
- Re: [PATCH for-5.2 0/6] Continue booting in case the first device is not bootable, Cornelia Huck, 2020/07/29
- Message not available
- Message not available
- Re: [PATCH for-5.2 0/6] Continue booting in case the first device is not bootable,
Thomas Huth <=