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

Laszlo Ersek lersek at redhat.com
Mon Jun 20 15:34:09 CEST 2016

On 06/20/16 13:15, Igor Mammedov wrote:
> On Mon, 20 Jun 2016 10:45:37 +0200
> Gerd Hoffmann <kraxel at redhat.com> wrote:
>> On Mo, 2016-05-16 at 21:00 -0400, Kevin O'Connor wrote:
>>> On Wed, May 11, 2016 at 12:03:37PM +0200, Igor Mammedov wrote:
>>>> Changelog since:
>>>>   v1:
>>>>     * s/count_cpu/apic_id_init/
>>>>     * merge handle_x2apic() into apic_id_init()
>>>>   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
>>> Thanks Igor.  The first 3 patches look good to me.  I'll commit to
>>> SeaBIOS once the corresponding QEMU support is accepted.
>> Ping.  What is the status of this in qemu?  qemu 2.7 soft freeze is
>> coming, and it is about time to plan the seabios update (1.9.3
>> release).
> I need to dust RFC off and respin as Paolo wanted to sync APIC ID
> other way than in RFC and also on list there is v2 ACPI refactoring
> that x2APIC enablement depends on.
> Laszlo,
> wrt OVMF does suggested here fw_Cfg interface look ok to you?

I checked your v2 series quickly, with more attention to "etc/boot-cpus"
and patch #3.

I also re-read your argument in
<20160509172828.0d839294 at nial.brq.redhat.com>:

> Reasons, I've skipped CPUID[0xb]:edx is not because it's currently not
> supported but rather:
>  1st: we already have 'etc/max-cpus' which is 'max possible APIC ID +
>       1', so reuse it.
>  2nd: beside complicating(making it longer, timewise) AP bootstrap,
>       detection at runtime wouldn't work in case of CPU hotplug as it
>       won't detect x2APIC CPUs if they are not yet present. real HW
>       might work around this issue just hardcodding what APIC mode it
>       wants as possible APIC IDs are known in advance for a particular
>       board.

I think it should be okay.

For OVMF I have no idea yet how we're going to accommodate this.
Minimally it will depend on fixing
<https://github.com/tianocore/edk2/issues/87> in UefiCpuPkg. But, the
"etc/boot-cpus" interface looks sane to me.


More information about the SeaBIOS mailing list