[SeaBIOS] [PATCH v3 3/3] support booting with more than 255 CPUs
Kevin O'Connor
kevin at koconnor.net
Wed Aug 10 17:25:41 CEST 2016
On Wed, Aug 10, 2016 at 12:59:16PM +0200, Igor Mammedov wrote:
> On Mon, 8 Aug 2016 18:42:07 -0400
> "Kevin O'Connor" <kevin at koconnor.net> wrote:
> > On Fri, Aug 05, 2016 at 12:47:29PM +0200, Igor Mammedov wrote:
> > > @@ -164,6 +178,8 @@ smp_setup(void)
> > > if (MaxCountCPUs < cmos_smp_count)
> > > MaxCountCPUs = cmos_smp_count;
> > >
> > > + boot_cpus_count = romfile_loadint("etc/boot-cpus", cmos_smp_count);
> > > +
> >
> > Wouldn't boot_cpus_count then also need to be updated in smp_resume()?
> > If the user hotplugs a new cpu between system start and prior to an s3
> > resume event, then the new could should be handled during that resume.
> when I try to put romfile_loadint() into smp_scan(), it breaks compilation with:
>
> ERROR: .data.varinit../src/romfile.c.13 is VARVERIFY32INIT but used from ['.text.runtime../src/resume.c.142', '.text.smp_scan', '.text.romfile_loadint', '.text.romfile_find']
>
> I'm not sure how to fix it
>
Right - one can't use the romfile code on resume. I forgot about
that.
I don't have a good solution. One option is to record the fw_cfg
'select' and then call qemu_cfg_read_entry() directly on the resume
path. Another option would be to pass the number of active CPUs using
some mechanism other than fw_cfg. Neither seems like a great option.
-Kevin
More information about the SeaBIOS
mailing list