[SeaBIOS] [PATCH 0/4] support booting more than 255 CPUs with QEMU
Igor Mammedov
imammedo at redhat.com
Wed May 11 12:02:40 CEST 2016
On Tue, 10 May 2016 16:43:30 +0200
Igor Mammedov <imammedo at redhat.com> wrote:
Probably question to Kevin,
I've tried to make AP bootstrap run in parallel
to speed up smp_setup with many CPUs.
However it hangs and I couldn't debug it.
Debugging works fine in 16bit mode as described in wiki
but from the point when entry_smp() switches to 32bit mode
I don't know how to/where/where from load symbols for
32-bit code, even 'disassemble $ip,+xxx' in gdb doesn't
work as expected.
Perhaps the debugging section in wiki needs to be updated
to show how to debug seabios when it's in 32 mode.
> Changelog:
> since RFC:
> * move out max-cpus check out of mptable_setup()
> * factor out CPU counting/apic ID detection in separate function
> * return back accidentially deleted debug message with APIC ID
> * drop unused code in smp_setup()
>
> According to SDM, if CPUs have APIC ID more than 254
> firmware should pass control to OS in x2APIC mode.
> This series adds x2APIC bootstrap initialization.
>
> QEMU side of x2APIC support:
> https://lists.gnu.org/archive/html/qemu-devel/2016-05/msg01094.html
>
>
> Igor Mammedov (3):
> paravirt: disable legacy bios tables in case of more than 255 CPUs
> support booting with more than 255 CPUs
> cleanup smp_setup()
>
> Kevin O'Connor (1):
> smp: refactor present CPU APIC ID detection and counting
>
> src/fw/paravirt.c | 6 +++--
> src/fw/smp.c | 67 ++++++++++++++++++++++++++++++++++++++++---------------
> src/x86.h | 1 +
> 3 files changed, 54 insertions(+), 20 deletions(-)
>
More information about the SeaBIOS
mailing list