2021-07-26 07:43:49

by Paul Menzel

[permalink] [raw]
Subject: New warning: PRMT not found

Dear Erik,


The new code added in commit cefc7ca462 (ACPI: PRM: implement
OperationRegion handler for the PlatformRtMechanism subtype) causes
Linux to log a warning on my desktop system Asus F2A85-M PRO.

PRMT not found

The help text for the Kconfig option `ACPI_PRMT` suggests it’s mainly
used for server systems, so the warning does not apply to a lot of
systems. Therefore, in my opinion, the option should not be selected by
default, or the warning be removed or demoted, and phrased in a way,
that users can understand the consequences.


Kind regards,

Paul


2021-09-06 11:53:45

by Paul Menzel

[permalink] [raw]
Subject: Re: New warning: PRMT not found

Dear Rafael, dear Len,


Intel’s MTA rejects Erik’s address:

<[email protected]>: host mga17.intel.com[192.55.52.151] said:
550 #5.1.0
Address rejected. (in reply to RCPT TO command)

So, I assume Erik left Intel.


Am 26.07.21 um 09:42 schrieb Paul Menzel:
> Dear Erik,
>
>
> The new code added in commit cefc7ca462 (ACPI: PRM: implement
> OperationRegion handler for the PlatformRtMechanism subtype) causes
> Linux to log a warning on my desktop system Asus F2A85-M PRO.
>
>     PRMT not found
>
> The help text for the Kconfig option `ACPI_PRMT` suggests it’s mainly
> used for server systems, so the warning does not apply to a lot of
> systems. Therefore, in my opinion, the option should not be selected by
> default, or the warning be removed or demoted, and phrased in a way,
> that users can understand the consequences.

The new warning shows up on a lot of systems, with no indication what to
do about it or why Linux actually warns about it.

Should the message be removed entirely? Or is there another indicator
for systems where absent PRMT causes problems, so should be warned about?


Kind regards,

Paul

2021-09-06 12:07:35

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: New warning: PRMT not found

On Mon, Sep 6, 2021 at 1:51 PM Paul Menzel <[email protected]> wrote:
>
> Dear Rafael, dear Len,
>
>
> Intel’s MTA rejects Erik’s address:
>
> <[email protected]>: host mga17.intel.com[192.55.52.151] said:
> 550 #5.1.0
> Address rejected. (in reply to RCPT TO command)
>
> So, I assume Erik left Intel.
>
>
> Am 26.07.21 um 09:42 schrieb Paul Menzel:
> > Dear Erik,
> >
> >
> > The new code added in commit cefc7ca462 (ACPI: PRM: implement
> > OperationRegion handler for the PlatformRtMechanism subtype) causes
> > Linux to log a warning on my desktop system Asus F2A85-M PRO.
> >
> > PRMT not found
> >
> > The help text for the Kconfig option `ACPI_PRMT` suggests it’s mainly
> > used for server systems, so the warning does not apply to a lot of
> > systems. Therefore, in my opinion, the option should not be selected by
> > default, or the warning be removed or demoted, and phrased in a way,
> > that users can understand the consequences.
>
> The new warning shows up on a lot of systems, with no indication what to
> do about it or why Linux actually warns about it.
>
> Should the message be removed entirely? Or is there another indicator
> for systems where absent PRMT causes problems, so should be warned about?

This should be addressed by commit 2bbfa0addd63 "ACPI: PRM: Deal with
table not present or no module found", or yet another fix is needed.

Thanks!

2021-09-06 14:19:07

by Paul Menzel

[permalink] [raw]
Subject: Re: New warning: PRMT not found

Dear Rafael, dear Aubrey,


Thank you for replying.


Am 06.09.21 um 14:02 schrieb Rafael J. Wysocki:
> On Mon, Sep 6, 2021 at 1:51 PM Paul Menzel <[email protected]> wrote:

[…]

>> Am 26.07.21 um 09:42 schrieb Paul Menzel:

>>> The new code added in commit cefc7ca462 (ACPI: PRM: implement
>>> OperationRegion handler for the PlatformRtMechanism subtype) causes
>>> Linux to log a warning on my desktop system Asus F2A85-M PRO.
>>>
>>> PRMT not found
>>>
>>> The help text for the Kconfig option `ACPI_PRMT` suggests it’s mainly
>>> used for server systems, so the warning does not apply to a lot of
>>> systems. Therefore, in my opinion, the option should not be selected by
>>> default, or the warning be removed or demoted, and phrased in a way,
>>> that users can understand the consequences.
>>
>> The new warning shows up on a lot of systems, with no indication what to
>> do about it or why Linux actually warns about it.
>>
>> Should the message be removed entirely? Or is there another indicator
>> for systems where absent PRMT causes problems, so should be warned about?
>
> This should be addressed by commit 2bbfa0addd63 "ACPI: PRM: Deal with
> table not present or no module found", or yet another fix is needed.

Linux still warns on my systems with Linux 5.14 and Linus’ master in
QEMU i440fx and an Asus F2A85-M PRO.


Kind regards,

Paul

2021-09-07 03:31:03

by Li, Aubrey

[permalink] [raw]
Subject: Re: New warning: PRMT not found

Hi Paul,

On 9/6/21 10:15 PM, Paul Menzel wrote:
> Dear Rafael, dear Aubrey,
>
>
> Thank you for replying.
>
>
> Am 06.09.21 um 14:02 schrieb Rafael J. Wysocki:
>>
>> This should be addressed by commit 2bbfa0addd63 "ACPI: PRM: Deal with
>> table not present or no module found", or yet another fix is needed.
>
> Linux still warns on my systems with Linux 5.14 and Linus’ master in QEMU i440fx and an Asus F2A85-M PRO.

Does the following patch address your problem?

Thanks,
-Aubrey

----------------------------------------------------------------------
From 52fda76410fcb7a3661687e960634d34fa44fb5f Mon Sep 17 00:00:00 2001
From: Aubrey Li <[email protected]>
Date: Tue, 7 Sep 2021 11:06:59 +0800
Subject: [PATCH] ACPI/RPM: Find PRMT table before parse it

Find and verify PRMT table before parse it, this eliminates a
warning on machines without PRMT table.

Signed-off-by: Aubrey Li <[email protected]>
---
drivers/acpi/prmt.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
index 1f6007a..89c22bc 100644
--- a/drivers/acpi/prmt.c
+++ b/drivers/acpi/prmt.c
@@ -288,10 +288,18 @@ static acpi_status acpi_platformrt_space_handler(u32 function,

void __init init_prmt(void)
{
+ struct acpi_table_header *tbl;
acpi_status status;
- int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
+ int mc;
+
+ status = acpi_get_table(ACPI_SIG_PRMT, 0, &tbl);
+ if (ACPI_FAILURE(status))
+ return;
+
+ mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
sizeof (struct acpi_table_prmt_header),
0, acpi_parse_prmt, 0);
+ acpi_put_table(tbl);
/*
* Return immediately if PRMT table is not present or no PRM module found.
*/
--
2.7.4

2021-09-07 07:23:24

by Paul Menzel

[permalink] [raw]
Subject: Re: New warning: PRMT not present (was: not found)

Dear Aubrey,


Thank you very much for quick reply.


Am 07.09.21 um 05:26 schrieb Aubrey Li:

> On 9/6/21 10:15 PM, Paul Menzel wrote:

>> Am 06.09.21 um 14:02 schrieb Rafael J. Wysocki:
>>>
>>> This should be addressed by commit 2bbfa0addd63 "ACPI: PRM: Deal with
>>> table not present or no module found", or yet another fix is needed.
>>
>> Linux still warns on my systems with Linux 5.14 and Linus’ master in QEMU i440fx and an Asus F2A85-M PRO.
>
> Does the following patch address your problem?

Yes, it does. With this patch cherry-picked to my Linux tree, the
warning is gone in QEMU.

qemu-system-x86_64 -kernel /dev/shm/bzImage -append
"earlyprintk=serial,ttyS0,keep console=ttyS0,115200 console=tty0"
-display none -serial stdio

(I have to check my configuration, why normal serial console does not
work in QEMU.)

> ----------------------------------------------------------------------
> From 52fda76410fcb7a3661687e960634d34fa44fb5f Mon Sep 17 00:00:00 2001
> From: Aubrey Li <[email protected]>
> Date: Tue, 7 Sep 2021 11:06:59 +0800
> Subject: [PATCH] ACPI/RPM: Find PRMT table before parse it

What does RPM mean?

> Find and verify PRMT table before parse it, this eliminates a
> warning on machines without PRMT table.

Please paste the warning for people grepping the commit messages.

ACPI: PRMT not present

> Signed-off-by: Aubrey Li <[email protected]>
> ---
> drivers/acpi/prmt.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
> index 1f6007a..89c22bc 100644
> --- a/drivers/acpi/prmt.c
> +++ b/drivers/acpi/prmt.c
> @@ -288,10 +288,18 @@ static acpi_status acpi_platformrt_space_handler(u32 function,
>
> void __init init_prmt(void)
> {
> + struct acpi_table_header *tbl;
> acpi_status status;
> - int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
> + int mc;
> +
> + status = acpi_get_table(ACPI_SIG_PRMT, 0, &tbl);
> + if (ACPI_FAILURE(status))
> + return;
> +
> + mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
> sizeof (struct acpi_table_prmt_header),
> 0, acpi_parse_prmt, 0);
> + acpi_put_table(tbl);
> /*
> * Return immediately if PRMT table is not present or no PRM module found.
> */
>

Tested-by: Paul Menzel <[email protected]>


Kind regards,

Paul

2021-09-07 13:25:07

by Li, Aubrey

[permalink] [raw]
Subject: Re: New warning: PRMT not present

On 9/7/21 3:22 PM, Paul Menzel wrote:
> Dear Aubrey,
>
>
> Thank you very much for quick reply.
>
>
> Am 07.09.21 um 05:26 schrieb Aubrey Li:
>
>> On 9/6/21 10:15 PM, Paul Menzel wrote:
>
>>> Am 06.09.21 um 14:02 schrieb Rafael J. Wysocki:
>>>>
>>>> This should be addressed by commit 2bbfa0addd63 "ACPI: PRM: Deal with
>>>> table not present or no module found", or yet another fix is needed.
>>>
>>> Linux still warns on my systems with Linux 5.14 and Linus’ master in QEMU i440fx and an Asus F2A85-M PRO.
>>
>> Does the following patch address your problem?
>
> Yes, it does. With this patch cherry-picked to my Linux tree, the warning is gone in QEMU.
>
>     qemu-system-x86_64 -kernel /dev/shm/bzImage -append "earlyprintk=serial,ttyS0,keep console=ttyS0,115200 console=tty0" -display none -serial stdio
>
> (I have to check my configuration, why normal serial console does not work in QEMU.)
>
>> ----------------------------------------------------------------------
>>  From 52fda76410fcb7a3661687e960634d34fa44fb5f Mon Sep 17 00:00:00 2001
>> From: Aubrey Li <[email protected]>
>> Date: Tue, 7 Sep 2021 11:06:59 +0800
>> Subject: [PATCH] ACPI/RPM: Find PRMT table before parse it
>
> What does RPM mean?

PRM, Platform Runtime Mechanism:
https://uefi.org/sites/default/files/resources/Platform%20Runtime%20Mechanism%20-%20with%20legal%20notice.pdf

>
>> Find and verify PRMT table before parse it, this eliminates a
>> warning on machines without PRMT table.
>
> Please paste the warning for people grepping the commit messages.
>
>     ACPI: PRMT not present

Nice suggestion.

>
>> Signed-off-by: Aubrey Li <[email protected]>
>> ---
>>   drivers/acpi/prmt.c | 10 +++++++++-
>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
>> index 1f6007a..89c22bc 100644
>> --- a/drivers/acpi/prmt.c
>> +++ b/drivers/acpi/prmt.c
>> @@ -288,10 +288,18 @@ static acpi_status acpi_platformrt_space_handler(u32 function,
>>     void __init init_prmt(void)
>>   {
>> +    struct acpi_table_header *tbl;
>>       acpi_status status;
>> -    int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
>> +    int mc;
>> +
>> +    status = acpi_get_table(ACPI_SIG_PRMT, 0, &tbl);
>> +    if (ACPI_FAILURE(status))
>> +        return;
>> +
>> +    mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
>>                         sizeof (struct acpi_table_prmt_header),
>>                         0, acpi_parse_prmt, 0);
>> +    acpi_put_table(tbl);
>>       /*
>>        * Return immediately if PRMT table is not present or no PRM module found.
>>        */
>>
>
> Tested-by: Paul Menzel <[email protected]>

Thanks for testing, I'll send a formal patch to Rafael.
>
>
> Kind regards,
>
> Paul

2021-09-07 14:31:14

by Paul Menzel

[permalink] [raw]
Subject: Re: New warning: PRMT not present

Dear Aubrey,


Am 07.09.21 um 15:02 schrieb Aubrey Li:
> On 9/7/21 3:22 PM, Paul Menzel wrote:

>> Am 07.09.21 um 05:26 schrieb Aubrey Li:
>>
>>> On 9/6/21 10:15 PM, Paul Menzel wrote:
>>
>>>> Am 06.09.21 um 14:02 schrieb Rafael J. Wysocki:
>>>>>
>>>>> This should be addressed by commit 2bbfa0addd63 "ACPI: PRM: Deal with
>>>>> table not present or no module found", or yet another fix is needed.
>>>>
>>>> Linux still warns on my systems with Linux 5.14 and Linus’ master in QEMU i440fx and an Asus F2A85-M PRO.
>>>
>>> Does the following patch address your problem?
>>
>> Yes, it does. With this patch cherry-picked to my Linux tree, the warning is gone in QEMU.
>>
>>     qemu-system-x86_64 -kernel /dev/shm/bzImage -append "earlyprintk=serial,ttyS0,keep console=ttyS0,115200 console=tty0" -display none -serial stdio
>>
>> (I have to check my configuration, why normal serial console does not work in QEMU.)
>>
>>> ----------------------------------------------------------------------
>>>  From 52fda76410fcb7a3661687e960634d34fa44fb5f Mon Sep 17 00:00:00 2001
>>> From: Aubrey Li <[email protected]>
>>> Date: Tue, 7 Sep 2021 11:06:59 +0800
>>> Subject: [PATCH] ACPI/RPM: Find PRMT table before parse it
>>
>> What does RPM mean?
>
> PRM, Platform Runtime Mechanism:
> https://uefi.org/sites/default/files/resources/Platform%20Runtime%20Mechanism%20-%20with%20legal%20notice.pdf

Ah, so just a typo in the prefix: RPM → PRM.

>>> Find and verify PRMT table before parse it, this eliminates a
>>> warning on machines without PRMT table.
>>
>> Please paste the warning for people grepping the commit messages.
>>
>>     ACPI: PRMT not present
>
> Nice suggestion.
>
>>
>>> Signed-off-by: Aubrey Li <[email protected]>
>>> ---
>>>   drivers/acpi/prmt.c | 10 +++++++++-
>>>   1 file changed, 9 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
>>> index 1f6007a..89c22bc 100644
>>> --- a/drivers/acpi/prmt.c
>>> +++ b/drivers/acpi/prmt.c
>>> @@ -288,10 +288,18 @@ static acpi_status acpi_platformrt_space_handler(u32 function,
>>>     void __init init_prmt(void)
>>>   {
>>> +    struct acpi_table_header *tbl;
>>>       acpi_status status;
>>> -    int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
>>> +    int mc;
>>> +
>>> +    status = acpi_get_table(ACPI_SIG_PRMT, 0, &tbl);
>>> +    if (ACPI_FAILURE(status))
>>> +        return;
>>> +
>>> +    mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
>>>                         sizeof (struct acpi_table_prmt_header),
>>>                         0, acpi_parse_prmt, 0);
>>> +    acpi_put_table(tbl);
>>>       /*
>>>        * Return immediately if PRMT table is not present or no PRM module found.
>>>        */
>>>
>>
>> Tested-by: Paul Menzel <[email protected]>
>
> Thanks for testing, I'll send a formal patch to Rafael.

Thank you.


Kind regards,

Paul