Description of problem: Failed to start guest OS with more than 144 virtual disks/interfaces with multifunction Version-Release number of selected component (if applicable): libvirt-3.9.0-14.el7_5.2.x86_64 qemu-kvm-rhev-2.10.0-21.el7_5.1.x86_64 kernel-3.10.0-861.el7.x86_64 Guest kernel: kernel-3.10.0-861.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. Create a guest with 143 virtual disks 2. Login to the guest console, check there are 143 virtual disks # fdisk -l|grep vd| wc -l (include two: /dev/vd*1,/dev/vd*2) 145 3. Destroy and undefine the guest. 4. Add another disk into the guest xml, define and start the guest successfully. 5. Failed to login to the guest console. Check there is no error in libvirtd.log or guest log. 6. Check in virt-manager, the guest console shows: no-bootable.png "SeaBIOS(version 1.11.0-2.el7) Machine UUID *** iPXE(http://ipxe.org) 00:03.0 C980 PCI2.10 PnP PMM+BFF919E0+BFEF19E0 C980 No bootable device". 7. Add below xml to the guest, and then start the guest, check the seabios output: <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> ... <qemu:commandline> <qemu:arg value='-chardev'/> <qemu:arg value='socket,id=seabioslog_id,path=/tmp/seabios,server,nowait'/> <qemu:arg value='-device'/> <qemu:arg value='isa-debugcon,chardev=seabioslog_id,iobase=0x402'/> </qemu:commandline> # tail -f /tmp/seabios.log 1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 00000000bffc0000 = 1 RAM 4: 00000000bffc0000 - 00000000c0000000 = 2 RESERVED 5: 00000000feffc000 - 00000000ff000000 = 2 RESERVED 6: 00000000fffc0000 - 0000000100000000 = 2 RESERVED 7: 0000000100000000 - 0000000793600000 = 1 RAM enter handle_19: NULL No bootable device. Actual results: In step5,6: Failed to login to the guest. Expected results: In step5,6: Can login to the guest console and check the disks in the guest. Additional info: - Start guest with 144 virtual interface hit the same issue. guest xml: r7.xml libvirtd.log guest log
Created attachment 1419160 [details] guest xml with muti-disks
Created attachment 1419163 [details] qemu command line
Created attachment 1419177 [details] guest log
Created attachment 1419179 [details] libvirtd log
Is this a limitation in Seabios?
(In reply to Ademar Reis from comment #6) > Is this a limitation in Seabios? Yes. Due to allocations in real mode address space (< 1M) seabios can't handle huge numbers of disks. The 1.11 rebase improved things a bit by moving some of the allocations to high memory, but we can't move everything due to BIOS interface constrains. 144 disks already is _way_ above the documented limitations -> NOTABUG. The recommended way to handle more disks: use OVMF.