From: "KONDO KAZUMA(近藤 和真)" <kazuma-kondo@nec.com>
To: "Rafael J. Wysocki (Intel)" <rafael@kernel.org>
Cc: "lenb@kernel.org" <lenb@kernel.org>,
"bhelgaas@google.com" <bhelgaas@google.com>,
"jonathan.cameron@huawei.com" <jonathan.cameron@huawei.com>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [REGRESSION] ACPI: PCI: misleading _OSC failure message when _OSC is absent
Date: Fri, 24 Jul 2026 11:15:31 +0000 [thread overview]
Message-ID: <03e9f950-4791-4c77-a961-204398255adb@nec.com> (raw)
In-Reply-To: <CAJZ5v0iacu-FW04zgTO5WDvjB4BgRvfhE9hsGskgOLGHrNwUSg@mail.gmail.com>
Hello,
On 2026/07/18 1:22, Rafael J. Wysocki (Intel) wrote:
> Hi,
>
> On Fri, Jul 17, 2026 at 2:01 PM KONDO KAZUMA(近藤 和真)
> <kazuma-kondo@nec.com> wrote:
>>
>> Hello,
>>
>> After 7d703df7f4f5 ("ACPI: bus: Split _OSC evaluation out of acpi_run_osc()"),
>> AE_NOT_FOUND from acpi_evaluate_object() is handled as AE_ERROR in
>> negotiate_os_control().
>>
>> I haven't yet observed any functional issue with this change,
>> but I started seeing the following misleading messages on my Intel servers:
>>
>> kernel: ACPI: Enabled 2 GPEs in block 00 to 7F
>> kernel: ACPI: PCI Root Bridge [UNC0] (domain 0000 [bus fe])
>> kernel: acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
>> + kernel: acpi PNP0A03:00: _OSC: OS requested [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR DPC]
>> + kernel: acpi PNP0A03:00: _OSC: platform willing to grant [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR DPC]
>> + kernel: acpi PNP0A03:00: _OSC: platform retains control of PCIe features (AE_ERROR)
>> kernel: PCI host bridge to bus 0000:fe
>>
>> Before the commit, the log was:
>>
>> kernel: ACPI: Enabled 2 GPEs in block 00 to 7F
>> kernel: ACPI: PCI Root Bridge [UNC0] (domain 0000 [bus fe])
>> kernel: acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
>> kernel: PCI host bridge to bus 0000:fe
>>
>> "UNC0" is an uncore root bridge and does not define an _OSC method in the ACPI
>> namespace on my systems.
>>
>> Previously, when acpi_evaluate_object() was called for UNC0._OSC, it returned
>> AE_NOT_FOUND, and that status was propagated to negotiate_os_control().
>>
>> Now, it appears that acpi_eval_osc()/acpi_run_osc() no longer preserve the
>> distinction between AE_NOT_FOUND and other errors from acpi_evaluate_object(),
>> so negotiate_os_control() no longer receives AE_NOT_FOUND in this case.
>>
>> The call chain looks like this on my system:
>>
>> negotiate_os_control()
>> acpi_pci_osc_control_set() [retval = AE_ERROR ]
>> acpi_pci_query_osc () [retval = AE_ERROR ]
>> acpi_pci_run_osc() [retval = AE_ERROR ]
>> acpi_run_osc() [retval = AE_ERROR ]
>> acpi_eval_osc() [retval = -ENODATA ]
>> acpi_evaluate_object() [retval = AE_NOT_FOUND]
>>
>> As a result, negotiate_os_control() logs messages as if the OS had negotiated
>> with the platform via _OSC, even though _OSC is absent and no such negotiation
>> actually happens.
>
> Fortunately though this only affects the printing of messages and only
> in the non-PCIe case.
>
>> I'm not very familiar with the ACPI/PCI code, so I may be missing some
>> context. However, if my understanding is correct, would preserving
>> AE_NOT_FOUND here (for example, having acpi_eval_osc()/acpi_run_osc() return
>> the error as-is) be the right direction, or should the message handling be
>> adjusted instead?
>>
>> If there is a preferred direction for fixing this, I would be happy to try
>> putting together a patch and testing it on my system.
>
> I cannot send you a proper patch ATM (sorry about that), but please
> try to replace the
>
> (status == AE_NOT_FOUND && !is_pcie(root))
>
> check in negotiate_os_control() with the following one:
>
> (!is_pcie(root) && !acpi_has_method(handle, "_OSC"))
>
> and see if that helps.
Sorry for the late reply.
With the change you suggested, the failure message no longer appears.
If that's okay with you, I'd like to submit it as a patch.
Thanks,
Kazuma
>
> Thanks!
next prev parent reply other threads:[~2026-07-24 11:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-17 12:01 KONDO KAZUMA(近藤 和真)
2026-07-17 16:22 ` Rafael J. Wysocki (Intel)
2026-07-24 11:15 ` KONDO KAZUMA(近藤 和真) [this message]
2026-07-27 12:10 ` Rafael J. Wysocki (Intel)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=03e9f950-4791-4c77-a961-204398255adb@nec.com \
--to=kazuma-kondo@nec.com \
--cc=bhelgaas@google.com \
--cc=jonathan.cameron@huawei.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rafael@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®