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@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