Message ID | 20230515203311.2139-3-eric.devolder@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ACPI: i386: bump MADT to revision 3 | expand |
On Tue, May 16, 2023 at 2:04 AM Eric DeVolder <eric.devolder@oracle.com> wrote: > > Currently i386 QEMU generates MADT revision 3, and reports > MADT revision 1. Set .revision to 3 to match reality. > > Link: https://lore.kernel.org/linux-acpi/20230327191026.3454-1-eric.devolder@ora > cle.com/T/#t > Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> Reviewed-by: Ani Sinha <anisinha@redhat.com> > --- > hw/i386/acpi-common.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c > index 52e5c1439a..8a0932fe84 100644 > --- a/hw/i386/acpi-common.c > +++ b/hw/i386/acpi-common.c > @@ -102,7 +102,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker, > MachineClass *mc = MACHINE_GET_CLASS(x86ms); > const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms)); > AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev); > - AcpiTable table = { .sig = "APIC", .rev = 1, .oem_id = oem_id, > + AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id, > .oem_table_id = oem_table_id }; > > acpi_table_begin(&table, table_data); > -- > 2.31.1 >
On Mon, 15 May 2023 16:33:10 -0400 Eric DeVolder <eric.devolder@oracle.com> wrote: > Currently i386 QEMU generates MADT revision 3, and reports > MADT revision 1. Set .revision to 3 to match reality. > > Link: https://lore.kernel.org/linux-acpi/20230327191026.3454-1-eric.devolder@ora > cle.com/T/#t > Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> > --- > hw/i386/acpi-common.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c > index 52e5c1439a..8a0932fe84 100644 > --- a/hw/i386/acpi-common.c > +++ b/hw/i386/acpi-common.c > @@ -102,7 +102,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker, > MachineClass *mc = MACHINE_GET_CLASS(x86ms); > const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms)); > AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev); > - AcpiTable table = { .sig = "APIC", .rev = 1, .oem_id = oem_id, > + AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id, > .oem_table_id = oem_table_id }; > > acpi_table_begin(&table, table_data); make check fails for me at this point (my guess is that not all APIC tables are whitelisted)
On Tue, May 16, 2023 at 6:01 PM Igor Mammedov <imammedo@redhat.com> wrote: > > On Mon, 15 May 2023 16:33:10 -0400 > Eric DeVolder <eric.devolder@oracle.com> wrote: > > > Currently i386 QEMU generates MADT revision 3, and reports > > MADT revision 1. Set .revision to 3 to match reality. > > > > Link: https://lore.kernel.org/linux-acpi/20230327191026.3454-1-eric.devolder@ora > > cle.com/T/#t > > Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> > > --- > > hw/i386/acpi-common.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c > > index 52e5c1439a..8a0932fe84 100644 > > --- a/hw/i386/acpi-common.c > > +++ b/hw/i386/acpi-common.c > > @@ -102,7 +102,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker, > > MachineClass *mc = MACHINE_GET_CLASS(x86ms); > > const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms)); > > AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev); > > - AcpiTable table = { .sig = "APIC", .rev = 1, .oem_id = oem_id, > > + AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id, > > .oem_table_id = oem_table_id }; > > > > acpi_table_begin(&table, table_data); > > make check fails for me at this point > (my guess is that not all APIC tables are whitelisted) I think the patchset needs to be rebased and the blobs regenerated.
On 5/16/23 07:51, Ani Sinha wrote: > On Tue, May 16, 2023 at 6:01 PM Igor Mammedov <imammedo@redhat.com> wrote: >> >> On Mon, 15 May 2023 16:33:10 -0400 >> Eric DeVolder <eric.devolder@oracle.com> wrote: >> >>> Currently i386 QEMU generates MADT revision 3, and reports >>> MADT revision 1. Set .revision to 3 to match reality. >>> >>> Link: https://lore.kernel.org/linux-acpi/20230327191026.3454-1-eric.devolder@ora >>> cle.com/T/#t >>> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> >>> --- >>> hw/i386/acpi-common.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c >>> index 52e5c1439a..8a0932fe84 100644 >>> --- a/hw/i386/acpi-common.c >>> +++ b/hw/i386/acpi-common.c >>> @@ -102,7 +102,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker, >>> MachineClass *mc = MACHINE_GET_CLASS(x86ms); >>> const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms)); >>> AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev); >>> - AcpiTable table = { .sig = "APIC", .rev = 1, .oem_id = oem_id, >>> + AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id, >>> .oem_table_id = oem_table_id }; >>> >>> acpi_table_begin(&table, table_data); >> >> make check fails for me at this point >> (my guess is that not all APIC tables are whitelisted) > > I think the patchset needs to be rebased and the blobs regenerated. So I've been trying to overcome this today and not having much luck. When I run "make check V=2", I see at the end: Summary of Failures: 45/786 qemu:qtest+qtest-i386 / qtest-i386/bios-tables-test 68/786 qemu:qtest+qtest-x86_64 / qtest-x86_64/bios-tables-test If I go look at 45/786, for example, I see: Looking for expected file 'tests/data/acpi/pc/FACP' Using expected file 'tests/data/acpi/pc/FACP' Looking for expected file 'tests/data/acpi/pc/APIC' Using expected file 'tests/data/acpi/pc/APIC' Looking for expected file 'tests/data/acpi/pc/HPET' Using expected file 'tests/data/acpi/pc/HPET' Looking for expected file 'tests/data/acpi/pc/WAET' Using expected file 'tests/data/acpi/pc/WAET' Looking for expected file 'tests/data/acpi/pc/FACS' Using expected file 'tests/data/acpi/pc/FACS' Looking for expected file 'tests/data/acpi/pc/DSDT' Using expected file 'tests/data/acpi/pc/DSDT' acpi-test: Warning! APIC binary file mismatch. Actual [aml:/tmp/aml-R4D741], Expected [aml:tests/data/acpi/pc/APIC]. See source file tests/qtest/bios-tables-test.c for instructions on how to update expected files. acpi-test: Warning! APIC mismatch. Actual [asl:/tmp/asl-GVD741.dsl, aml:/tmp/aml-R4D741], Expected [asl:/tmp/asl-1F9641.dsl, aml:tests/data/acpi/pc/APIC]. --- /tmp/asl-1F9641.dsl 2023-05-16 15:18:31.292579156 -0400 +++ /tmp/asl-GVD741.dsl 2023-05-16 15:18:31.291579149 -0400 @@ -1,32 +1,32 @@ /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20230331 (64-bit version) * Copyright (c) 2000 - 2023 Intel Corporation * - * Disassembly of tests/data/acpi/pc/APIC, Tue May 16 15:18:31 2023 + * Disassembly of /tmp/aml-R4D741, Tue May 16 15:18:31 2023 * * ACPI Data Table [APIC] * * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue (in hex) */ [000h 0000 004h] Signature : "APIC" [Multiple APIC Description Table (MADT)] [004h 0004 004h] Table Length : 00000078 -[008h 0008 001h] Revision : 01 -[009h 0009 001h] Checksum : 8A +[008h 0008 001h] Revision : 03 +[009h 0009 001h] Checksum : 88 [00Ah 0010 006h] Oem ID : "BOCHS " [010h 0016 008h] Oem Table ID : "BXPC " [018h 0024 004h] Oem Revision : 00000001 [01Ch 0028 004h] Asl Compiler ID : "BXPC" [020h 0032 004h] Asl Compiler Revision : 00000001 [...] And the q35 looks very very similar. It suggests that I need to list tests/data/acpi/pc/APIC, which I have done in bios-tables-test-allowed-diff.h: /* List of comma-separated changed AML files to ignore */ "tests/data/acpi/pc/APIC", "tests/data/acpi/q35/APIC", "tests/data/acpi/microvm/APIC", "tests/data/acpi/virt/APIC", But as I looked closer at the files that changed in the last step of the previous post, there are a bunch of them: tests/data/acpi/microvm/APIC | Bin 70 -> 70 bytes tests/data/acpi/microvm/APIC.ioapic2 | Bin 82 -> 82 bytes tests/data/acpi/microvm/APIC.pcie | Bin 110 -> 110 bytes tests/data/acpi/pc/APIC | Bin 120 -> 120 bytes tests/data/acpi/pc/APIC.acpihmat | Bin 128 -> 128 bytes tests/data/acpi/pc/APIC.cphp | Bin 160 -> 160 bytes tests/data/acpi/pc/APIC.dimmpxm | Bin 144 -> 144 bytes tests/data/acpi/q35/APIC | Bin 120 -> 120 bytes tests/data/acpi/q35/APIC.acpihmat | Bin 128 -> 128 bytes tests/data/acpi/q35/APIC.acpihmat-noinitiator | Bin 144 -> 144 bytes tests/data/acpi/q35/APIC.core-count2 | Bin 2478 -> 2478 bytes tests/data/acpi/q35/APIC.cphp | Bin 160 -> 160 bytes tests/data/acpi/q35/APIC.dimmpxm | Bin 144 -> 144 bytes tests/data/acpi/q35/APIC.xapic | Bin 2686 -> 2686 bytes Should all of these files be listed in allowed-diff.h? And I would also need to provide the diff for each in the patch containing this last step, correct? Thanks, eric
On Tue, May 16, 2023 at 04:22:58PM -0500, Eric DeVolder wrote: > > > On 5/16/23 07:51, Ani Sinha wrote: > > On Tue, May 16, 2023 at 6:01 PM Igor Mammedov <imammedo@redhat.com> wrote: > > > > > > On Mon, 15 May 2023 16:33:10 -0400 > > > Eric DeVolder <eric.devolder@oracle.com> wrote: > > > > > > > Currently i386 QEMU generates MADT revision 3, and reports > > > > MADT revision 1. Set .revision to 3 to match reality. > > > > > > > > Link: https://lore.kernel.org/linux-acpi/20230327191026.3454-1-eric.devolder@ora > > > > cle.com/T/#t > > > > Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> > > > > --- > > > > hw/i386/acpi-common.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c > > > > index 52e5c1439a..8a0932fe84 100644 > > > > --- a/hw/i386/acpi-common.c > > > > +++ b/hw/i386/acpi-common.c > > > > @@ -102,7 +102,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker, > > > > MachineClass *mc = MACHINE_GET_CLASS(x86ms); > > > > const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms)); > > > > AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev); > > > > - AcpiTable table = { .sig = "APIC", .rev = 1, .oem_id = oem_id, > > > > + AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id, > > > > .oem_table_id = oem_table_id }; > > > > > > > > acpi_table_begin(&table, table_data); > > > > > > make check fails for me at this point > > > (my guess is that not all APIC tables are whitelisted) > > > > I think the patchset needs to be rebased and the blobs regenerated. > > So I've been trying to overcome this today and not having much luck. > > When I run "make check V=2", I see at the end: > > Summary of Failures: > > 45/786 qemu:qtest+qtest-i386 / qtest-i386/bios-tables-test > 68/786 qemu:qtest+qtest-x86_64 / qtest-x86_64/bios-tables-test > > If I go look at 45/786, for example, I see: > > Looking for expected file 'tests/data/acpi/pc/FACP' > Using expected file 'tests/data/acpi/pc/FACP' > Looking for expected file 'tests/data/acpi/pc/APIC' > Using expected file 'tests/data/acpi/pc/APIC' > Looking for expected file 'tests/data/acpi/pc/HPET' > Using expected file 'tests/data/acpi/pc/HPET' > Looking for expected file 'tests/data/acpi/pc/WAET' > Using expected file 'tests/data/acpi/pc/WAET' > Looking for expected file 'tests/data/acpi/pc/FACS' > Using expected file 'tests/data/acpi/pc/FACS' > Looking for expected file 'tests/data/acpi/pc/DSDT' > Using expected file 'tests/data/acpi/pc/DSDT' > acpi-test: Warning! APIC binary file mismatch. Actual [aml:/tmp/aml-R4D741], > Expected [aml:tests/data/acpi/pc/APIC]. > See source file tests/qtest/bios-tables-test.c for instructions on how to update expected files. > acpi-test: Warning! APIC mismatch. Actual [asl:/tmp/asl-GVD741.dsl, > aml:/tmp/aml-R4D741], Expected [asl:/tmp/asl-1F9641.dsl, > aml:tests/data/acpi/pc/APIC]. > --- /tmp/asl-1F9641.dsl 2023-05-16 15:18:31.292579156 -0400 > +++ /tmp/asl-GVD741.dsl 2023-05-16 15:18:31.291579149 -0400 > @@ -1,32 +1,32 @@ > /* > * Intel ACPI Component Architecture > * AML/ASL+ Disassembler version 20230331 (64-bit version) > * Copyright (c) 2000 - 2023 Intel Corporation > * > - * Disassembly of tests/data/acpi/pc/APIC, Tue May 16 15:18:31 2023 > + * Disassembly of /tmp/aml-R4D741, Tue May 16 15:18:31 2023 > * > * ACPI Data Table [APIC] > * > * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue (in hex) > */ > > [000h 0000 004h] Signature : "APIC" [Multiple APIC Description Table (MADT)] > [004h 0004 004h] Table Length : 00000078 > -[008h 0008 001h] Revision : 01 > -[009h 0009 001h] Checksum : 8A > +[008h 0008 001h] Revision : 03 > +[009h 0009 001h] Checksum : 88 > [00Ah 0010 006h] Oem ID : "BOCHS " > [010h 0016 008h] Oem Table ID : "BXPC " > [018h 0024 004h] Oem Revision : 00000001 > [01Ch 0028 004h] Asl Compiler ID : "BXPC" > [020h 0032 004h] Asl Compiler Revision : 00000001 > [...] > > And the q35 looks very very similar. > > It suggests that I need to list tests/data/acpi/pc/APIC, which I have done > in bios-tables-test-allowed-diff.h: > > /* List of comma-separated changed AML files to ignore */ > "tests/data/acpi/pc/APIC", > "tests/data/acpi/q35/APIC", > "tests/data/acpi/microvm/APIC", > "tests/data/acpi/virt/APIC", > > But as I looked closer at the files that changed in the last step > of the previous post, there are a bunch of them: > > tests/data/acpi/microvm/APIC | Bin 70 -> 70 bytes > tests/data/acpi/microvm/APIC.ioapic2 | Bin 82 -> 82 bytes > tests/data/acpi/microvm/APIC.pcie | Bin 110 -> 110 bytes > tests/data/acpi/pc/APIC | Bin 120 -> 120 bytes > tests/data/acpi/pc/APIC.acpihmat | Bin 128 -> 128 bytes > tests/data/acpi/pc/APIC.cphp | Bin 160 -> 160 bytes > tests/data/acpi/pc/APIC.dimmpxm | Bin 144 -> 144 bytes > tests/data/acpi/q35/APIC | Bin 120 -> 120 bytes > tests/data/acpi/q35/APIC.acpihmat | Bin 128 -> 128 bytes > tests/data/acpi/q35/APIC.acpihmat-noinitiator | Bin 144 -> 144 bytes > tests/data/acpi/q35/APIC.core-count2 | Bin 2478 -> 2478 bytes > tests/data/acpi/q35/APIC.cphp | Bin 160 -> 160 bytes > tests/data/acpi/q35/APIC.dimmpxm | Bin 144 -> 144 bytes > tests/data/acpi/q35/APIC.xapic | Bin 2686 -> 2686 bytes > > Should all of these files be listed in allowed-diff.h? unfortunately, yes. > And I would also need to provide the diff for each in the patch > containing this last step, correct? > > Thanks, > eric if you mean commit log, if the diff is the same it is enough to list it once and mention it is the same.
diff --git a/hw/i386/acpi-common.c b/hw/i386/acpi-common.c index 52e5c1439a..8a0932fe84 100644 --- a/hw/i386/acpi-common.c +++ b/hw/i386/acpi-common.c @@ -102,7 +102,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker, MachineClass *mc = MACHINE_GET_CLASS(x86ms); const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms)); AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev); - AcpiTable table = { .sig = "APIC", .rev = 1, .oem_id = oem_id, + AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id, .oem_table_id = oem_table_id }; acpi_table_begin(&table, table_data);
Currently i386 QEMU generates MADT revision 3, and reports MADT revision 1. Set .revision to 3 to match reality. Link: https://lore.kernel.org/linux-acpi/20230327191026.3454-1-eric.devolder@ora cle.com/T/#t Signed-off-by: Eric DeVolder <eric.devolder@oracle.com> --- hw/i386/acpi-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)