[SeaBIOS] [PATCH 0/4] support booting more than 255 CPUs with QEMU

Kevin O'Connor kevin at koconnor.net
Wed May 11 16:24:06 CEST 2016


On Wed, May 11, 2016 at 12:02:40PM +0200, Igor Mammedov wrote:
> 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.

Did you disable CONFIG_RELOCATE_INIT as described in the wiki?  (The
smp.c code is considered part of the "init" portion of SeaBIOS.)
Otherwise, the addresses should just work in 32bit mode.

As for threading the smp init - the code currently takes an atomic
lock to control access to a shared stack.  That would need to change
in order to support simultaneous smp init.  Also note that the core
code, such as dprintf, doesn't support true smp multi-threading.

-Kevin



More information about the SeaBIOS mailing list