Re: ASL issues on HP machine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 2017-08-29 18:03, schrieb Moore, Robert:
-----Original Message-----
From: David Renz [mailto:David.Renz@xxxxxxxxxxxxxxxxxx]
Sent: Sunday, August 27, 2017 3:13 PM
To: Moore, Robert <robert.moore@xxxxxxxxx>
Cc: linux-acpi@xxxxxxxxxxxxxxx; acpi@xxxxxxxxxxxxxxx; david.renz@xxxxxx;
Box, David E <david.e.box@xxxxxxxxx>; Schmauss, Erik
<erik.schmauss@xxxxxxxxx>; linux-acpi-owner@xxxxxxxxxxxxxxx
Subject: Re: ASL issues on HP machine

Am 2017-08-25 18:43, schrieb Moore, Robert:
> I can address a couple of these immediately.
>
>
> ASL_MSG_NOT_REFERENCED
> This is seen on the HP machine.
>
> FAILED [LOW] AMLAsm
> ASL_MSG_NOT_REFERENCED: Test 1, Assembler remark in line 1141 Line |
> AML source
> ----------------------------------------------------------------------
> ----------
> 01138|             Store (Buffer (0x18) {}, Local7)
> 01139|             CreateDWordField (Local7, 0x00, A119)
> 01140|             CreateDWordField (Local7, 0x04, A120)
> 01141|             CreateDWordField (Local7, 0x08, A121)
>       |                                               ^
>       | Remark 2089: Object is not referenced    (Name [A121] is
within
> a
> method [A037])
>
>
> Here is the actual disassembled A037 method, found in SSDT3:
>
>         Method (A037, 1, NotSerialized)
>         {
>
>             ... /* Some other stuff here */
>
>             CreateDWordField (Local7, 0x00, A119)
>             CreateDWordField (Local7, 0x04, A120)
>             CreateDWordField (Local7, 0x08, A121)
>             CreateDWordField (Local7, 0x0C, A122)
>             CreateDWordField (Local7, 0x10, A123)
>             CreateDWordField (Local7, 0x14, A124)
>             A119 = Local4
>             A125 (0x3A, Local7)
>         }
>
> Not only is the symbol A121 created and not referenced, all of the
> fields A120 through A124 are not referenced.
>
> These are essentially "unused variables", so they have no effect on
> operation of the method other than consuming a tiny bit more memory
> during the execution of the method.
>
>
>
>
> AE_AML_BUFFER_LIMIT:
> This is seen on the HP machine.
>
>> [   12.291867] ACPI Error: Field [D128] at 1152 exceeds Buffer [NULL]
>> size 160 (bits) (20150930/dsopcode-236)
>> [   12.291875] ACPI Error: Method parse/execution failed [\HWMC]
(Node
>> ffff880197cb5b30), AE_AML_BUFFER_LIMIT (20150930/psparse-542)
>
> All of these messages are caused by either whatever driver is calling
> the HWMC method, or the HWMC method itself.

One should be able to narrow this down to whether a driver (and which
driver) calling the HWMC method OR the HWMC method itself being the
reason, isn't it? But I guess this could only be done by performing
kernel debugging on this machine to monitor the ACPI activity / event
taking place 'live', right?
[Moore, Robert]

For the most part, yes. The driver may be passing in a bad argument to
HWMC, or the HWMC method itself is looking beyond the end of what is
in fact a well-formed argument.

I'm familiar with 6502 and x86/x864 machine code, several programming languages and Linux, but I honestly admit that I don't possess much knowledge about the ACPI sub-system itself and the AML language/syntax. So apart from this concrete issue with the ACPI code on my HP machine which might produce unwanted effects, I appreciate the opportunity to extend my knowledge regarding this field (I took a look at the more than 900 pages of the current ACPI specifications and got the impression that understanding this thoroughly will probably require a considerable amount of time).

1) What is "the driver" exactly? Is it part of the ACPI sub-system?
If you refer to a "driver", which doesn't belong to the ACPI sub-system, then a driver calling the HWC method would imply that you refer to a driver running on an OS with ACPI support being enabled, is this correct? In this case kernel debugging would show (assuming this would not be prevented) the interaction between this driver / the OS and the ACPI sub-system, right?

2) Is it correct that the ACPI sub-system is active / running and able to access other parts of the system no matter whether the OS supports it or not (or whether one would disable the support)? This is what two persons possessing a profound knowledge about low-level hardware topics said, so I'd be curious to hear a definite statement on this from someone who actively works on the ACPI development.


I would assume that simply performing ACPI debugging has its limits when trying to narrow down issues like this. Both VirtualBox and QEMU support specifying individual ACPI tables for a VM - So wouldn't it be the most simple solution to specify the according / affected table(s) (all of them can be downloaded from my GoogleDrive folder) to a VM running a Linux system with a kernel customized for debugging, and then compare the verbose debugging output 1) with these tables specified against the output 2) without these tables specified? I can hardly imagine that the ACPI team at Intel does not have experience in doing so, as this is surely a well-working method to debug ACPI-related issues in general.



3) Assuming that this ACPI code is not 'malicious code' / an 'ACPI based rootkit' but simply erraneous ACPI code (if this should be the case, then such a rootkit would surely prevent that it gets overwritten by performing a BIOS update), would flashing the ACPI would overwrite the ACPI code as well? Previously I talked with a LibreBoot developer, who certainly knew what he was talking about this, and he ensured me that certain parts of the BIOS won't be overwritten when performing a BIOS flash - But in this context we didn't discuss whether the ACPI code belongs to the parts which won't be overwritten or not, so also in this case a true expert's statement would definitely be appreciated. ;)


[Moore, Robert]

We develop the ACPICA OS-independent code in our group. We are not a
customer service organization, and we have little contact with HP
itself. We cannot offer help in this area.

The accepted path is to report issues like this to the computer
vendor, in this case HP.


Well, I already guessed that you are not a customer service organization... Could you at least provide me a contact address (without posting it on the mailing list), so that I could forward this to a competent department at HP (instead of first having to contact their customer service)?

By the way, if the ACPI code is "OS-independent", when why should there be (e. g.) the keyword "linux" in my system's ACPI code?


Kind regards and thanks in advance

David Renz

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux