Re: [Qemu-devel] [PATCH v11 2/6] ACPI: Add APEI GHES Table Generation support

From: Igor Mammedov
Date: Fri Sep 01 2017 - 07:51:37 EST


On Fri, 1 Sep 2017 17:58:55 +0800
gengdongjiu <gengdongjiu@xxxxxxxxxx> wrote:

> Hi Igor,
>
> On 2017/8/29 18:20, Igor Mammedov wrote:
> > On Fri, 18 Aug 2017 22:23:43 +0800
> > Dongjiu Geng <gengdongjiu@xxxxxxxxxx> wrote:
[...]
> >
> >> +void ghes_build_acpi(GArray *table_data, GArray *hardware_error,
> >> + BIOSLinker *linker)
> >> +{
> >> + uint32_t ghes_start = table_data->len;
> >> + uint32_t address_size, error_status_address_offset;
> >> + uint32_t read_ack_register_offset, i;
> >> +
> >> + address_size = sizeof(struct AcpiGenericAddress) -
> >> + offsetof(struct AcpiGenericAddress, address);
> > it's confusing name for var,
> > AcpiGenericAddress::address is fixed unsigned 64 bit integer per spec
> > also, I'm not sure why it's needed at all.
> it is because other people have concern about where does the "unsigned 64 bit integer"
> come from, they are confused about the "unsigned 64 bit integer"
> so they suggested use sizeof. anyway I will directly use unsigned 64 bit integer.
Maybe properly named macro instead of sizeof(foo) would do the job


[...]
> >> +
> >> + /* Build error status address*/
> >> + build_address(table_data, linker, error_status_address_offset + i *
> >> + sizeof(AcpiGenericHardwareErrorSourceV2), i * address_size,
> >> + AML_SYSTEM_MEMORY, 0x40, 0, 4 /* QWord access */);
> > just do something like this instead of build_address():
> > build_append_gas()
> > bios_linker_loader_add_pointer()
> Thanks for the suggestion.
>
> >
> > also register width 0x40 looks suspicious, where does it come from?
> > While at it do you have a real hardware which has HEST table that you re trying to model after?
> > I'd like to see HEST and other related tables from it.
>
> Igor, what is your suspicious point? The register width 0x40 come from our host BIOS record to the System Memory space.

maybe s/0x40/ERROR_STATUS_BLOCK_POINTER_SIZE/

[...]