qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Collin L. Walling" <walling@linux.vnet.ibm.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>,
	Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com>,
	qemu-s390x@nongnu.org, qemu-devel@nongnu.org
Cc: alifm@linux.vnet.ibm.com, frankja@linux.vnet.ibm.com,
	thuth@redhat.com, cohuck@redhat.com, david@redhat.com
Subject: Re: [Qemu-devel] [qemu-s390x] [PATCH v8 00/13] Interactive Boot Menu for DASD and SCSI Guests on s390x
Date: Thu, 22 Feb 2018 14:40:57 -0500	[thread overview]
Message-ID: <173adc8c-f251-73e4-9cda-f278b2483186@linux.vnet.ibm.com> (raw)
In-Reply-To: <450ee50a-660b-6ec8-7de4-e5c9ce8fa26a@linux.vnet.ibm.com>

On 02/22/2018 11:45 AM, Collin L. Walling wrote:
> On 02/22/2018 10:44 AM, Christian Borntraeger wrote:
>>
>> On 02/22/2018 04:40 PM, Collin L. Walling wrote:
>>> On 02/22/2018 07:23 AM, Viktor Mihajlovski wrote:
>>>> On 22.02.2018 12:51, Christian Borntraeger wrote:
>>>>> Series
>>>>> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
>>> Thanks!!!
>>>
>>>>>
>>>>> menu on scsi and dasd bootmaps tested successfully.
>>>>>
>>>>> There is one thing that we might want to fix (can be an addon 
>>>>> patch since this is a non-customer
>>>>> scenario (no libvirt)).
>>>>>
>>>>> If you start QEMU manually without a bootindex, the -boot menu=on 
>>>>> is ignored
>>>>> if no drive has a bootindex.
>>>>>
>>>>> For example:
>>>>>
>>>>> -drive file=/dev/dasda,if=none,id=d1 -device 
>>>>> virtio-blk-ccw,drive=d1,bootindex=1 -boot menu=on
>>>>> does work
>>>>>
>>>>> -drive file=/dev/dasda -boot menu=on
>>>>> does not
>>>>>
>>>>> instead it prints:
>>>>> qemu-system-s390x: boot menu is not supported for this device type.
>>>>>
>>>>> and the boots up the default entry.
>>>>>
>>>> That should indeed be a separate patch, as it would move logic 
>>>> currently
>>>> in the BIOS up to QEMU (find the first defined virtio disk and 
>>>> select it
>>>> as boot disk).
>>>> In fact it's more complicated than that, because it would have to
>>>> properly account for -boot order=[acdn] and produce the respective 
>>>> IPLB.
>>>> While it makes sense, I wouldn't rush that in but rather change the
>>>> error message to indicate that -device bootindex is needed to activate
>>>> the menu, at least for the time being.
>>>> [...]
>>>>
>>> I can look into it.  Theoretically, the easier fix should just 
>>> involve parsing all
>>> of the -device commands and looking for a "bootindex=1" field. The 
>>> Qemu options
>>> code already handles a bulk of this work, so it's just a matter of 
>>> putting it all
>>> together.
>>>
>>> Shall I whip something up and post what I have as a reply to this 
>>> email chain?
>> In fact, it should already be there.
>>
>> static bool s390_gen_initial_iplb(S390IPLState *ipl)
>> {
>>      DeviceState *dev_st;
>>
>>      dev_st = get_boot_device(0);
>>
>> --> if this returns 0 we have no bootindex statement anywhere and the 
>> BIOS will IPL the default
>> disk.
>>
>>
> Makes sense.  I'm working on making this patch look as clean as 
> possible. The fact that no boot menu
> options present means we fallback to using zipl values for CCW being 
> tied into the switch statement
> is making things a bit tricky. Just have to think the logic through a 
> bit.  Will get back to you once
> I have something good.
>
This should do the trick (this can also be squished painlessly into 6/13 
if desired):

 From dea9f22429cb3e4ccc81980974adc9f55ead87bf Mon Sep 17 00:00:00 2001
From: "Collin L. Walling" <walling@linux.vnet.ibm.com>
Date: Thu, 22 Feb 2018 14:26:14 -0500
Subject: [PATCH] s390-ccw: set boot menu options iff a bootindex was 
provided

The boot menu options should be set iff a device was specified
with bootindex=1, otherwise an error message will appear claiming
that the boot menu is not available for a particular device type.
This can be misleading.

To amend this, only set the boot menu options when

     -device ...,bootindex=1

is provded on the command line for a valid IPL device. The absence
of a bootindex provided with -boot menu=on will display an error
message, and -boot menu=off (or absence of -boot options) will
return silently.

Signed-off-by: Collin L. Walling <walling@linux.vnet.ibm.com>
---
  hw/s390x/ipl.c | 8 ++++++++
  1 file changed, 8 insertions(+)

diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 566248e..edbec90 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -231,6 +231,14 @@ static void s390_ipl_set_boot_menu(S390IPLState *ipl)
      const char *tmp;
      unsigned long splash_time = 0;

+    if (!get_boot_device(0)) {
+        if (boot_menu) {
+            error_report("boot menu requires a bootindex to be 
specified for "
+                         "the IPL device.");
+        }
+        return;
+    }
+
      switch (ipl->iplb.pbt) {
      case S390_IPL_TYPE_CCW:
          /* In the absence of -boot menu, use zipl parameters */
-- 
2.7.4

-- 
- Collin L Walling

  reply	other threads:[~2018-02-22 19:41 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-21 19:35 [Qemu-devel] [PATCH v8 00/13] Interactive Boot Menu for DASD and SCSI Guests on s390x Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 01/13] s390-ccw: refactor boot map table code Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 02/13] s390-ccw: refactor eckd_block_num to use CHS Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 03/13] s390-ccw: refactor IPL structs Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 04/13] s390-ccw: update libc Collin L. Walling
2018-02-22  4:30   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 05/13] s390-ccw: move auxiliary IPL data to separate location Collin L. Walling
2018-02-22  4:40   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-02-22  8:38     ` Viktor Mihajlovski
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 06/13] s390-ccw: parse and set boot menu options Collin L. Walling
2018-02-22  5:32   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 07/13] s390-ccw: set up interactive boot menu parameters Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 08/13] s390-ccw: read stage2 boot loader data to find menu Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 09/13] s390-ccw: print zipl boot menu Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 10/13] s390-ccw: read user input for boot index via the SCLP console Collin L. Walling
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 11/13] s390-ccw: set cp_receive mask only when needed and consume pending service irqs Collin L. Walling
2018-02-22  6:19   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 12/13] s390-ccw: use zipl values when no boot menu options are present Collin L. Walling
2018-02-22  6:27   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-02-21 19:35 ` [Qemu-devel] [PATCH v8 13/13] s390-ccw: interactive boot menu for scsi Collin L. Walling
2018-02-22  6:34   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2018-02-22 11:51 ` [Qemu-devel] [PATCH v8 00/13] Interactive Boot Menu for DASD and SCSI Guests on s390x Christian Borntraeger
2018-02-22 12:23   ` Viktor Mihajlovski
2018-02-22 15:40     ` [Qemu-devel] [qemu-s390x] " Collin L. Walling
2018-02-22 15:44       ` Christian Borntraeger
2018-02-22 16:45         ` Collin L. Walling
2018-02-22 19:40           ` Collin L. Walling [this message]
2018-02-23 10:07             ` Thomas Huth
2018-02-23 10:11               ` Christian Borntraeger
2018-02-23 14:57                 ` Collin L. Walling
2018-02-23 14:59                   ` Collin L. Walling
2018-02-23 15:01                   ` Christian Borntraeger
2018-02-22 12:42   ` Thomas Huth
2018-02-23  8:53 ` [Qemu-devel] " Christian Borntraeger
2018-02-23 10:17   ` Thomas Huth
2018-02-23 11:50     ` Viktor Mihajlovski
2018-02-23 13:33       ` Thomas Huth
2018-02-23 15:03         ` Collin L. Walling

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=173adc8c-f251-73e4-9cda-f278b2483186@linux.vnet.ibm.com \
    --to=walling@linux.vnet.ibm.com \
    --cc=alifm@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.vnet.ibm.com \
    --cc=mihajlov@linux.vnet.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).