Bug 215626

Summary: Acpi error in Dmesg
Product: ACPI Reporter: Dominique Schaefer (dschaefer79)
Component: BIOSAssignee: Zhang Rui (rui.zhang)
Status: CLOSED WILL_NOT_FIX    
Severity: blocking CC: dschaefer79, rui.zhang
Priority: P1    
Hardware: Intel   
OS: Linux   
Kernel Version: 5.16.11 Subsystem:
Regression: No Bisected commit-id:
Attachments: Acpi error in Dmesg
Acpi Dump 15062022 kernel 5.18.3, ubuntu 22.04

Description Dominique Schaefer 2022-02-20 09:52:23 UTC
Created attachment 300492 [details]
Acpi error in Dmesg

I have this error in Dmesg.

[    1.458161] Initialized Arguments for Method [_DSM]:  (4 arguments defined for method invocation)
[    1.458162]   Arg0:   00000000a00140c0 <Obj>           Buffer(16) 75 0B A5 D4 C7 65 F7 46
[    1.458164]   Arg1:   0000000093383b18 <Obj>           Integer 0000000000000102
[    1.458166]   Arg2:   000000009003a231 <Obj>           Integer 0000000000000010
[    1.458167]   Arg3:   0000000072ac82ee <Obj>           Buffer(4) 00 60 52 44

[    1.458169] ACPI Error: Aborting method \_SB.PC00.PEG1.PEGP._DSM due to previous error (AE_ALREADY_EXISTS) (20210930/psparse-529)
[    1.458404] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.PEG1.PEGP._DSM.USRG], AE_ALREADY_EXISTS (20210930/dsfield-184)
[    1.458506] ACPI Error: AE_ALREADY_EXISTS, CreateBufferField failure (20210930/dswload2-477)

Can anyone solve this ? What is this error ?
Comment 1 Dominique Schaefer 2022-02-20 09:55:24 UTC
[    1.455887] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.PEG1.PEGP._DSM.USRG], AE_ALREADY_EXISTS (20210930/dsfield-184)
[    1.455998] ACPI Error: AE_ALREADY_EXISTS, CreateBufferField failure (20210930/dswload2-477)

[    1.456069] No Local Variables are initialized for Method [_DSM]
Comment 2 Dominique Schaefer 2022-02-20 11:37:19 UTC
acpidump -s

ACPI: SSDT 0x0000000000000000 002AA1 (v02 SaSsdt SaSsdt   00003000 INTL 20200717)
ACPI: APIC 0x0000000000000000 0001DC (v05 ALASKA A M I    01072009 AMI  01000013)
ACPI: SSDT 0x0000000000000000 00038C (v02 PmaxDv Pmax_Dev 00000001 INTL 20200717)
ACPI: MCFG 0x0000000000000000 00003C (v01 ALASKA A M I    01072009 MSFT 00000097)
ACPI: TPM2 0x0000000000000000 00004C (v04 ALASKA A M I    00000001 AMI  00000000)
ACPI: SSDT 0x0000000000000000 002A83 (v02 ALASKA PtidDevc 00001000 INTL 20200717)
ACPI: NHLT 0x0000000000000000 00002D (v00 ALASKA A M I    01072009 AMI  01000013)
ACPI: SSDT 0x0000000000000000 000144 (v02 Intel  ADebTabl 00001000 INTL 20200717)
ACPI: DSDT 0x0000000000000000 07536C (v02 ALASKA A M I    01072009 INTL 20200717)
ACPI: SSDT 0x0000000000000000 001F1A (v02 ALASKA Ther_Rvp 00001000 INTL 20200717)
ACPI: WSMT 0x0000000000000000 000028 (v01 ALASKA A M I    01072009 AMI  00010013)
ACPI: SSDT 0x0000000000000000 003AEA (v02 SocGpe SocGpe   00003000 INTL 20200717)
ACPI: LPIT 0x0000000000000000 0000CC (v01 ALASKA A M I    01072009 AMI  01000013)
ACPI: SSDT 0x0000000000000000 003316 (v02 INTEL  IgfxSsdt 00003000 INTL 20200717)
ACPI: UEFI 0x0000000000000000 00063A (v01 INTEL  RstVmdE  00000000 INTL 00000000)
ACPI: DBG2 0x0000000000000000 000054 (v00 ALASKA A M I    01072009 AMI  01000013)
ACPI: SSDT 0x0000000000000000 000C1F (v02 ALASKA UsbCTabl 00001000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 005D01 (v02 CpuRef CpuSsdt  00003000 INTL 20200717)
ACPI: MCFG 0x0000000000000000 00003C (v01 ALASKA A M I    01072009 AMI  01000013)
ACPI: DMAR 0x0000000000000000 000050 (v02 INTEL  EDK2     00000002      01000013)
ACPI: FACP 0x0000000000000000 000114 (v06 ALASKA A M I    01072009 AMI  01000013)
ACPI: FPDT 0x0000000000000000 000044 (v01 ALASKA A M I    01072009 AMI  01000013)
ACPI: WPBT 0x0000000000000000 000040 (v01 ALASKA A M I    00000001 ASUS 00000001)
ACPI: PHAT 0x0000000000000000 00062D (v00 ALASKA A M I    00000005 MSFT 0100000D)
ACPI: SSDT 0x0000000000000000 002600 (v02 INTEL  DTbtSsdt 00001000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 0001AB (v02 PmRef  Cpu0Psd  00003000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 001263 (v02 ALASKA TbtTypeC 00000000 INTL 20200717)
ACPI: DBGP 0x0000000000000000 000034 (v01 ALASKA A M I    01072009 AMI  01000013)
ACPI: SSDT 0x0000000000000000 002B2A (v02 SocCmn SocCmn   00003000 INTL 20200717)
ACPI: HPET 0x0000000000000000 000038 (v01 ALASKA A M I    01072009 AMI  01000013)
ACPI: SSDT 0x0000000000000000 0021EF (v02 ALASKA AdlS_Tbt 00001000 INTL 20200717)
ACPI: UEFI 0x0000000000000000 00005C (v01 INTEL  RstVmdV  00000000 INTL 00000000)
ACPI: FIDT 0x0000000000000000 00009C (v01 ALASKA A M I    01072009 AMI  00010013)
ACPI: FACS 0x0000000000000000 000040
ACPI: BGRT 0x0000000000000000 000038 (v01 ALASKA A M I    01072009 AMI  00010013)
ACPI: SSDT 0x0000000000000000 001CD6 (v02 INTEL  xh_adls3 00000000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 00044D (v02 PmRef  Cpu0Hwp  00003000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 000394 (v02 PmRef  Cpu0Cst  00003001 INTL 20200717)
ACPI: SSDT 0x0000000000000000 000FBB (v02 PmRef  ApCst    00003000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 001038 (v02 PmRef  ApHwp    00003000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 001BAF (v02 PmRef  ApIst    00003000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 000647 (v02 PmRef  Cpu0Ist  00003000 INTL 20200717)
ACPI: SSDT 0x0000000000000000 001349 (v02 PmRef  ApPsd    00003000 INTL 20200717)
Comment 3 Dominique Schaefer 2022-02-20 11:43:32 UTC
root@dreampc:~# cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
root@dreampc:~# iasl -d dsdt.dat

Intel ACPI Component Architecture
ASL+ Optimizing Compiler/Disassembler version 20200925
Copyright (c) 2000 - 2020 Intel Corporation

File appears to be binary: found 166895 non-ASCII characters, disassembling
Binary file appears to be a valid ACPI table, disassembling
Input file dsdt.dat, Length 0x7536C (480108) bytes
ACPI: DSDT 0x0000000000000000 07536C (v02 ALASKA A M I    01072009 INTL 20200717)
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)

Parsing completed
Disassembly completed
ASL Output:    dsdt.dsl - 3428911 bytes

 iASL Warning: There were 224 external control methods found during
 disassembly, but only 480 were resolved (4294967040 unresolved). Additional
 ACPI tables may be required to properly disassemble the code. This
 resulting disassembler output file may not compile because the
 disassembler did not know how many arguments to assign to the
 unresolved methods. Note: SSDTs can be dynamically loaded at
 runtime and may or may not be available via the host OS.

 To specify the tables needed to resolve external control method
 references, the -e option can be used to specify the filenames.
 Example iASL invocations:
     iasl -e ssdt1.aml ssdt2.aml ssdt3.aml -d dsdt.aml
     iasl -e dsdt.aml ssdt2.aml -d ssdt1.aml
     iasl -e ssdt*.aml -d dsdt.aml

 In addition, the -fe option can be used to specify a file containing
 control method external declarations with the associated method
 argument counts. Each line of the file must be of the form:
     External (<method pathname>, MethodObj, <argument count>)
 Invocation:
     iasl -fe refs.txt -d dsdt.aml

root@dreampc:~#
Comment 4 Zhang Rui 2022-06-13 01:39:09 UTC
please attach the full acpidump output
Comment 5 Dominique Schaefer 2022-06-15 09:19:58 UTC
Created attachment 301179 [details]
Acpi Dump 15062022 kernel 5.18.3, ubuntu 22.04
Comment 6 Dominique Schaefer 2022-06-15 09:20:43 UTC
Here I have attached the dump. Have a nice day
Comment 7 Zhang Rui 2022-06-27 02:57:32 UTC
Below is from the PEG1.PEPG._DSM method

                While (ToInteger (Arg2))
                {   
                    ...
                    Case (0x10)
                    {
                        Debug = "NBCI-Func 0x10"
                        CreateWordField (Arg3, 0x02, USRG)
                        CreateField (Arg3, 0x0C, 0x04, OBJS)
                        ...
                    }
                }

So it is creating an object in a while loop.
This seems to be an AML code bug from ACPI BIOS, which can not be solved by Linux kernel software.

Bug close as there is nothing we can do in the kernel.
please feel free to open a separate bug report if there is any functionality issue observed.
Comment 8 Zhang Rui 2022-06-27 03:01:12 UTC
BTW, there is a workaround for this, then you need to
1. fix the dsdt table
2. rebuild your kernel with the customized dsdt instead.
3. and do this for every new kernel you want to use