Bug 735931

Summary: Failed to boot from disk if an Intel 82574L nic assigned to guest
Product: Red Hat Enterprise Linux 6 Reporter: Chao Yang <chayang>
Component: seabiosAssignee: Don Dutile (Red Hat) <ddutile>
Status: CLOSED WORKSFORME QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: urgent    
Version: 6.2CC: alex.williamson, chayang, gleb, juzhang, michen, shuang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-09-28 02:32:06 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
intel 82576L nic card, lspci info
none
boot menu
none
press "1" to boot from disk
none
hang at booting from pxe none

Description Chao Yang 2011-09-06 07:45:32 UTC
Created attachment 521594 [details]
intel 82576L nic card, lspci info

Description of problem:
Testing device assignment, boot a guest with Intel 82574L nic assigned, guest always hang at booting from pxe even add bootindex=1 to disk image. 

Version-Release number of selected component (if applicable):
# rpm -q seabios
seabios-0.6.1.2-4.el6.x86_64
# rpm -q qemu-kvm
qemu-kvm-0.12.1.2-2.185.el6.x86_64
# uname -r
2.6.32-195.el6.x86_64


How reproducible:
100%

Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:
Screenshots and intel 82574L nic info will be attached.
CLI:
# /usr/libexec/qemu-kvm -M rhel6.2.0 -enable-kvm -m 4096 -smp 4,sockets=1,cores=4,threads=1 -name rhel6.1.z -uuid `uuidgen` -rtc base=utc,clock=host,driftfix=slew -boot order=c,menu=on -drive file=/root/rhel6.1.z-x86_64.qcow2,if=none,id=drive-virtio-0-0,media=disk,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,drive=drive-virtio-0-0,id=virt0-0-0,bootindex=1 -net none -usb -device usb-tablet,id=input1 -spice port=9000,disable-ticketing -vga qxl -global qxl-vga.vram_size=67108864 -monitor stdio -balloon none -drive file=/home/boot.iso,if=none,media=cdrom,readonly=on,format=raw,id=drive-ide0-1-0 -device ide-drive,drive=drive-ide0-1-0,id=ide0-10 -device pci-assign,host=06:00.0,id=pf,iommu=1

Comment 1 Chao Yang 2011-09-06 07:46:58 UTC
Additional info:
This issue *doesn't* happen on 82576

Comment 2 Chao Yang 2011-09-06 07:48:32 UTC
(In reply to comment #0)
> Created attachment 521594 [details]
> intel 82576L nic card, lspci info
         ^^^^^^
should be intel 82574L nic card

Comment 3 Chao Yang 2011-09-06 07:51:19 UTC
Created attachment 521597 [details]
boot menu

Comment 4 Chao Yang 2011-09-06 07:51:55 UTC
Created attachment 521598 [details]
press "1" to boot from disk

Comment 5 Chao Yang 2011-09-06 07:52:36 UTC
Created attachment 521600 [details]
hang at booting from pxe

Comment 7 Eduardo Habkost 2011-09-09 19:25:34 UTC
It looks like the guest is loading an option ROM from the NIC. I don't know if there's a way to disable that in the hardware itself or on some device-assignment command-line option. Reassigning to Don so he can take a look.

Comment 8 Don Dutile (Red Hat) 2011-09-09 19:48:53 UTC
Is the qemu-kvm cmdline handcrafted, or is it the log of what virsh create generates with a defined guest.xml ?

Please provide guest.xml definition file (virsh dumpxml <guestname>).

Comment 9 Alex Williamson 2011-09-09 20:38:33 UTC
rombar=0 option for pci-assign will skip loading the physical option rom.

Comment 10 Don Dutile (Red Hat) 2011-09-09 22:00:58 UTC
Well, I see this in the cmdline too:

-boot order=c

maybe it should be =1 or =0 ?

Comment 11 Chao Yang 2011-09-13 07:48:37 UTC
(In reply to comment #8)
> Is the qemu-kvm cmdline handcrafted, or is it the log of what virsh create
> generates with a defined guest.xml ?
> 
> Please provide guest.xml definition file (virsh dumpxml <guestname>).

It is handcrafted.

Comment 12 Chao Yang 2011-09-13 07:50:03 UTC
(In reply to comment #9)
> rombar=0 option for pci-assign will skip loading the physical option rom.

Yes, after adding rombar=0, this issue disappeared

Comment 13 Chao Yang 2011-09-13 07:57:21 UTC
(In reply to comment #10)
> Well, I see this in the cmdline too:
> 
> -boot order=c
> 
> maybe it should be =1 or =0 ?

I don't follow you here, what do you mean?

Comment 14 Don Dutile (Red Hat) 2011-09-13 11:59:10 UTC
Look at the qemu-kvm cmdline you provided in Description:

# /usr/libexec/qemu-kvm -M rhel6.2.0 -enable-kvm -m 4096 -smp
4,sockets=1,cores=4,threads=1 -name rhel6.1.z -uuid `uuidgen` -rtc
base=utc,clock=host,driftfix=slew -boot order=c,menu=on -drive
                                  ^^^^^^^^^^^^^


setting boot order to 'c'; shouldn't it set it to the order number,
which would be 1 if it starts counting at 1, or 0 if 0-based indexing
used.

Comment 15 Chao Yang 2011-09-14 02:18:48 UTC
I removed "order=c" option, and added "bootindex=1" to disk image, issue exists

Comment 16 Don Dutile (Red Hat) 2011-09-14 20:09:45 UTC
for my sanity, could your provide the entire qemu-kvm cmdline used to start the guest? thanks.

Comment 17 Chao Yang 2011-09-15 02:53:22 UTC
(In reply to comment #16)
> for my sanity, could your provide the entire qemu-kvm cmdline used to start the
> guest? thanks.

# /usr/libexec/qemu-kvm -M rhel6.2.0 -enable-kvm -m 4096 -smp 4,sockets=1,cores=4,threads=1 -name rhel6.1.z -uuid `uuidgen` -rtc base=utc,clock=host,driftfix=slew -boot menu=on -drive file=/root/rhel6.1.z-x86_64.qcow2,if=none,id=drive-virtio-0-0,media=disk,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,drive=drive-virtio-0-0,id=virt0-0-0,bootindex=1 -net none -usb -device usb-tablet,id=input1 -spice port=9000,disable-ticketing -vga qxl -global qxl-vga.vram_size=67108864 -monitor stdio -balloon none -device driver=pci-assign,host=06:00.0,id=hostnet1,iommu=1

Comment 18 Don Dutile (Red Hat) 2011-09-27 20:56:49 UTC
c#9 and c#12 list the solution -- rombar=0 must be added.

If reporter agrees, please close this bz;
if not, please indicate why it does not.

Comment 19 Chao Yang 2011-09-28 02:32:06 UTC
According to Comment #12, closing as WORKSFORME