Bug 227759

Summary: [acpi] _OSC failed: AE_BUFFER_OVERFLOW on pcib0 (ACPI Host-PCI bridge)
Product: Base System Reporter: Jeremy Chadwick <jdc>
Component: kernAssignee: freebsd-acpi (Nobody) <acpi>
Status: Closed Works As Intended    
Severity: Affects Only Me CC: jkim, robert.moore
Priority: ---    
Version: 11.1-STABLE   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
acpidump -dt
none
acpidump -dtv 2>&1
none
pciconf -lvcb
none
dmesg none

Description Jeremy Chadwick 2018-04-25 08:01:13 UTC
Something I've begun to witness on stable/11 r332847:

pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pcib0: _OSC failed: AE_BUFFER_OVERFLOW

Data points:

* System works/functions fine.

* This is a bare metal system: Supermicro X7SBA motherboard running latest BIOS.  (Yes, the system is "old-ish", but is very stable)

* pciconf -lvcb output does not list pcib0, so I cannot get further details of that device.

* I don't know when this problem began.  It may have been there for some time.  Machine previously ran stable/9 (I moved to stable/11 3-4 months ago; full OS reinstall).

* I believe _OSC comes from ACPI DSDT table, and that this particular attribute is *very* important depending on what device (UUID) it's referring to -- but I cannot figure out that UUID.  This message is therefore of concern, especially because it doesn't disclose what buffer/integer may have overflowed.  I am not worried about security, I am worried that there is a particular PCI-level feature or aspect that is incorrectly being handled.

I will attach several things:

* acpidump -dtv 2>&1 output
* acpidump -dt output
* pciconf -lvcb output (don't think this will help, see above)
* dmesg output

I am hoping someone has some idea what rXXXXXX commit may have introduced this.  I can roll the system back to a previous commit for testing, but I cannot simply roll back one commit at a time -- this would take literally weeks.  I do believe there were some recent ACPI changes, however.
Comment 1 Jeremy Chadwick 2018-04-25 08:04:04 UTC
Created attachment 192791 [details]
acpidump -dt
Comment 2 Jeremy Chadwick 2018-04-25 08:04:26 UTC
Created attachment 192792 [details]
acpidump -dtv 2>&1
Comment 3 Jeremy Chadwick 2018-04-25 08:04:48 UTC
Created attachment 192793 [details]
pciconf -lvcb
Comment 4 Jeremy Chadwick 2018-04-25 08:05:07 UTC
Created attachment 192794 [details]
dmesg
Comment 5 robert.moore 2018-04-27 16:16:23 UTC
This is usually a driver problem, passing a buffer too small for _OSC.
Comment 6 Jung-uk Kim freebsd_committer freebsd_triage 2018-04-27 16:39:25 UTC
(In reply to robert.moore from comment #5)
I believe it is directly returned from our driver, not by ACPICA.
Comment 7 Jung-uk Kim freebsd_committer freebsd_triage 2018-04-27 16:51:29 UTC
(In reply to Jeremy Chadwick from comment #1)
This BIOS is buggy.  It does not return a buffer at all when the capability is not supported.  I think we can work around it by ignoring zero-sized buffer instead of returning an error.
Comment 8 Jung-uk Kim freebsd_committer freebsd_triage 2018-04-27 17:37:33 UTC
(In reply to Jeremy Chadwick from comment #0)
> I am hoping someone has some idea what rXXXXXX commit may have introduced this.

https://svnweb.freebsd.org/changeset/base/298372