Bug 967444 - latest qemu-kvm fail to assign correct order for the boot device in seabios as we specified the bootindex in cli
latest qemu-kvm fail to assign correct order for the boot device in seabios a...
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm (Show other bugs)
7.0
Unspecified Unspecified
high Severity urgent
: rc
: ---
Assigned To: Amos Kong
Virtualization Bugs
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-05-27 03:32 EDT by Sibiao Luo
Modified: 2015-05-24 20:07 EDT (History)
11 users (show)

See Also:
Fixed In Version: QEMU-1.6 QEMU-1.5.1
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-06-13 08:32:24 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
screenshot for boot device with qemu-kvm-1.5.0-2.el7.x86_64. (19.84 KB, image/png)
2013-05-27 03:34 EDT, Sibiao Luo
no flags Details
screenshot for boot device with qemu-kvm-1.4.0-4.el7.x86_64. (19.72 KB, image/png)
2013-05-27 03:35 EDT, Sibiao Luo
no flags Details
fixed upstream seabios: bios.bin (128.00 KB, application/octet-stream)
2013-05-28 03:55 EDT, Amos Kong
no flags Details

  None (edit)
Description Sibiao Luo 2013-05-27 03:32:29 EDT
Description of problem:
the latest qemu-kvm-1.5.0-2.el7.x86_64 fail to assign correct order for the boot device in seabios as we specified the bootindex in cli. IF i download the qemu to qemu-kvm-1.4.0-4.el7.x86_64, it have no such issue, the order of the boot device is correct.
bug 923030 is specified for Q35 machine type.

Version-Release number of selected component (if applicable):
host info:
3.10.0-0.rc2.57.el7.x86_64
qemu-kvm-1.5.0-2.el7.x86_64
seabios-bin-1.7.2-1.el7.noarch
seabios-1.7.2-1.el7.x86_64
guest info:
windows

How reproducible:
100%

Steps to Reproduce:
1.Install guest specified the bootindex in cli.
# /usr/libexec/qemu-kvm -cpu host -M pc-i440fx-1.4 -enable-kvm -S -m 4G -smp 4,sockets=2,cores=2,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo-test -uuid `uuidgen` -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/home/test.qcow2,if=none,id=drive-system-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-scsi-pci,bus=pci.0,addr=0x4,id=scsi0 -device scsi-hd,drive=drive-system-disk,id=system-disk,bus=scsi0.0,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=08:2e:5f:0a:0d:b2,bus=pci.0,addr=0x5,bootindex=2 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -k en-us -vnc :1 -spice port=5931,disable-ticketing -boot menu=on -vga qxl -global qxl-vga.vram_size=67108864 -serial unix:/tmp/ttyS0,server,nowait -monitor stdio -drive file=/home/en_windows_8_enterprise_x86_dvd_917587.iso,if=none,media=cdrom,id=drive-cdrom-disk,format=raw,cache=none,aio=native,werror=stop,rerror=stop -device virtio-scsi-pci,bus=pci.0,addr=0x7,id=scsi1 -device scsi-cd,drive=drive-cdrom-disk,id=cdrom-disk,bus=scsi1.0,bootindex=0 -drive file=/usr/share/virtio-win/virtio-win-1.6.3.iso,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none,format=raw,media=cdrom,readonly=on -device ide-drive,drive=drive-ide0-0-0,id=ide0-0-0,bus=ide.0,unit=1 -drive file=/usr/share/virtio-win/virtio-win-1.6.3_x86.vfd,if=none,id=f1,format=raw,cache=none -global isa-fdc.driveA=f1
2.press F12 during POST.

Actual results:
after step 2, we can see the order of boot device as following, i will attach the screenshot later.
Press F12 for boot menu.

Select boot device:

1. iPXE (PCI 00:05.0)
2. virtio-scsi Drive QEMU QEMU HARDDISK 1.5.
3. Legacy option rom
4. Floppy [drive A]
5. DVD/CD [ata0-1: QEMU DVD-ROM ATAPI-4 DVD/CD]
6. DVD/CD [virtio-scsi Drive QEMU QEMU CD-ROM 1.5.]

Expected results:
1. DVD/CD [virtio-scsi Drive QEMU QEMU CD-ROM 1.5.]
2. virtio-scsi Drive QEMU QEMU HARDDISK 1.5.
3. iPXE (PCI 00:05.0)
4. Legacy option rom
5. Floppy [drive A]
6. DVD/CD [ata0-1: QEMU DVD-ROM ATAPI-4 DVD/CD]
 
Additional info:
Comment 1 Sibiao Luo 2013-05-27 03:34:21 EDT
Created attachment 753502 [details]
screenshot for boot device with qemu-kvm-1.5.0-2.el7.x86_64.
Comment 2 Sibiao Luo 2013-05-27 03:35:33 EDT
Created attachment 753503 [details]
screenshot for boot device with qemu-kvm-1.4.0-4.el7.x86_64.
Comment 3 juzhang 2013-05-27 04:05:32 EDT
Since this bug can be reproduced on qemu1.5 but not on qemu1.4. Set this issue as urgent.
Comment 4 Amos Kong 2013-05-28 03:43:51 EDT
It's seabios bug, just post a patch to seabios upstream:
  http://www.seabios.org/pipermail/seabios/2013-May/006264.html
Comment 5 Amos Kong 2013-05-28 03:55:48 EDT
Created attachment 753768 [details]
fixed upstream seabios: bios.bin

Sibiao,

Attached upstream seabios(bios.bin) with my fix[1].
Can you help to test both q35 & pc-i440fx?

qemu-kvm -bios bios.bin ... (remember to use -bios option to use the fixed bios)

[1] http://www.seabios.org/pipermail/seabios/2013-May/006264.html
Comment 6 Sibiao Luo 2013-05-28 05:40:37 EDT
(In reply to Amos Kong from comment #5)
> Created attachment 753768 [details]
> fixed upstream seabios: bios.bin
> 
> Sibiao,
> 
> Attached upstream seabios(bios.bin) with my fix[1].
> Can you help to test both q35 & pc-i440fx?
> 
> qemu-kvm -bios bios.bin ... (remember to use -bios option to use the fixed
> bios)
> 
> [1] http://www.seabios.org/pipermail/seabios/2013-May/006264.html

yes, thanks for your quickly response. I tried your fixed seabios that pc-i440fx machine type is ok now, but the Q35 machine type still fail (maybe bug 923030).

Best Regards,
sluo
Comment 7 Amos Kong 2013-05-28 07:28:28 EDT
The inconsistency is caused by Qemu refactoring, better to change QEMU to keep original style of fw_dev_path.

Move back to qemu component.

[PATCH] qdev: add nothing to fw_dev_path when implemented get_fw_dev_path returns NULL
http://lists.nongnu.org/archive/html/qemu-devel/2013-05/msg03987.html
Comment 10 Sibiao Luo 2013-11-18 00:11:56 EST
Verify this issue on qemu-kvm-1.5.3-19.el7.x86_64 with the same steps as comment #0. 

host info:
3.10.0-41.el7.x86_64
qemu-kvm-1.5.3-19.el7.x86_64
seabios-1.7.2.2-4.el7.x86_64

Steps:
the same to comment #0, and the same cli.

Results:
after step 2, the boot device same as we specified in cli.
1. DVD/CD [virtio-scsi Drive QEMU QEMU CD-ROM 1.5.]
2. virtio-scsi Drive QEMU QEMU HARDDISK 1.5.
3. iPXE (PCI 00:05.0)
4. Legacy option rom
5. Floppy [drive A]
6. DVD/CD [ata0-1: QEMU DVD-ROM ATAPI-4 DVD/CD]

Best Regards,
sluo
Comment 11 Ludek Smid 2014-06-13 08:32:24 EDT
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.

Note You need to log in before you can comment on or make changes to this bug.