On Tue, Jul 28, 2015 at 09:25:42AM +0000, Han, Huaitong wrote:
When qemu vcpus value is 76~86, the qemu cannot find boot disk.
The problem happens on seabios: mptable_setup will use much ZoneFSeg
memory with the increase of the vcpus,and init_atadrive zonefseg
allocation fails,so the seabios cannot find disk. 87 vcpus works just
because mptable_setup ZoneFSeg allocation fails, then init_atadrive gets
Because I am not familiar with bios, init_atadrive with ZoneLow or
ZoneHigh instead of ZoneFSeg causes problems. and ZoneFSeg does not seem
to be extended. init_atadrive also cannot be ahead of mptable_setup.
it maybe a way for qemu that using "CONFIG_MPTABLE" to omit
mptable_setup, because qemu with 87 and more vcpus works well.
Any advices can be given to me for the bugfix ?
There are a few things that could be done:
- move mptable generation from seabios to qemu (as was done for smbios
and acpi). That way qemu can explicitly decide when to create the
mptable and even tell seabios where to put it.
- change seabios to place the mptable in high memory if it is larger
than some size. See copy_mptable() and compare to how
BUILD_MAX_SMBIOS_FSEG is checked in smbios_romfile_setup().
- more space could be reserved in the f-segment for bios tables (see