[SeaBIOS] [PATCH v3 1/3] paravirt: disable legacy bios tables in case of more than 255 CPUs

Paolo Bonzini pbonzini at redhat.com
Mon Aug 8 12:12:58 CEST 2016



On 07/08/2016 07:57, Michael S. Tsirkin wrote:
> On Fri, Aug 05, 2016 at 12:47:27PM +0200, Igor Mammedov wrote:
>> MPTable doesn't support more than 255 CPUs and
>> QEMU supplies an alternative MADT table which
>> guest will use instead of it. So do not install
>> legacy tables if more than 254 CPUs are provided
>>
>> Signed-off-by: Igor Mammedov <imammedo at redhat.com>
> 
> Acked-by: Michael S. Tsirkin <mst at redhat.com>
> 
> In fact, should we disable these when loading
> acpi from guest?

Old guests (and guests with no ACPI support) still require these tables.
 I think RHEL3 (which has a 2.4.x kernel) was one.

Paolo

> 
>> ---
>>  src/fw/paravirt.c | 6 ++++--
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c
>> index 73a08f0..33a471b 100644
>> --- a/src/fw/paravirt.c
>> +++ b/src/fw/paravirt.c
>> @@ -164,8 +164,10 @@ qemu_platform_setup(void)
>>      smp_setup();
>>  
>>      // Create bios tables
>> -    pirtable_setup();
>> -    mptable_setup();
>> +    if (MaxCountCPUs <= 255) {
>> +        pirtable_setup();
>> +        mptable_setup();
>> +    }
>>      smbios_setup();
>>  
>>      if (CONFIG_FW_ROMFILE_LOAD) {
>> -- 
>> 2.7.4



More information about the SeaBIOS mailing list