Bug 23442
Summary: | [CAPB] Namespace lookup failure, AE_ALREADY_EXISTS - Samsung NF310 Netbook | ||
---|---|---|---|
Product: | ACPI | Reporter: | Simon Strandman (simon.strandman) |
Component: | ACPICA-Core | Assignee: | Robert Moore (Robert.Moore) |
Status: | CLOSED WILL_NOT_FIX | ||
Severity: | normal | CC: | acpi-bugzilla, lenb, magiblot, ming.m.lin, rui.zhang, yakui.zhao |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.37-rc2 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
dmesg
acpidump |
Description
Simon Strandman
2010-11-21 14:07:04 UTC
Created attachment 37812 [details]
dmesg
Will you please attach the output of acpidump on your box? Thanks. Created attachment 38062 [details]
acpidump
Here it is!
I'm on 2.6.37-rc3 now btw, same problem.
We've seen this before, I think this is a duplicate. If _OSC is called with an Arg2 > 1 (which it is under Linux), then the while loop below will be executed more than once. On the second iteration, an attempt is made to create the CAPB buffer field a second time, which results in the failure seen. Method (_OSC, 4, NotSerialized) { Store (Arg2, Local0) Multiply (Local0, 0x04, Local1) Name (BUF1, Buffer (Local1) {}) Store (Arg3, BUF1) Store (0x00, Local1) Store (0x00, Local2) While (Local0) { Multiply (Local1, 0x04, Local2) CreateDWordField (BUF1, Local2, CAPB) If (Arg2) { And (CAPB, 0xFFFFFFFC) Or (CAPB, 0x00) } Else { } Increment (Local1) Decrement (Local0) } Return (BUF1) } Maybe we can delete the temporary nodes(CAPB in above example) in the end of each While loop. does ACPICA know that the temporary node is created in the while loop? how about this? Always reset the temporary node if found duplicate, together with a warning message. No, ACPICA does not know that. Need to know what Windows behavior is for this kind of AML code. (In reply to comment #7) > No, ACPICA does not know that. > > Need to know what Windows behavior is for this kind of AML code. I have windows on this machine also, is there anything I can run to retrieve that information? I have tested Windows in virtual machine(qemu-kvm). Windows does not support this kind of AML code either. Did you see any problem in Windows? > Did you see any problem in Windows?
>
No, power management seems to work fine in Windows! Perhaps the problem is just harmless?
This is with, 2.6.38-rc4, at least there are less errors now! simon@nf310:~$ dmesg |grep -1 Error [ 0.790621] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.793930] ACPI Error: [CAPB] Namespace lookup failure, AE_ALREADY_EXISTS (20110112/dsfield-143) [ 0.793961] ACPI Error: Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007ab30988), AE_ALREADY_EXISTS (20110112/psparse-536) [ 0.793998] ACPI: Marking method _OSC as Serialized because of AE_ALREADY_EXISTS error -- [ 0.807295] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT] [ 0.807888] ACPI Error: [CAPB] Namespace lookup failure, AE_ALREADY_EXISTS (20110112/dsfield-143) [ 0.807918] ACPI Error: Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007ab30988), AE_ALREADY_EXISTS (20110112/psparse-536) [ 0.807971] pci0000:00: Requesting ACPI _OSC control (0x1d) [ 0.808249] ACPI Error: [CAPB] Namespace lookup failure, AE_ALREADY_EXISTS (20110112/dsfield-143) [ 0.808277] ACPI Error: Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007ab30988), AE_ALREADY_EXISTS (20110112/psparse-536) [ 0.826397] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12 14 15) It's great that kernel bugzilla is back. can you please verify if the problem still exists in the latest upstream kernel? Hello! Yes, it looks pretty much like before. This is with 3.3-rc1, ubuntu 11.10: simon@samsung-asdf:~$ dmesg | grep -2 Err [ 0.192902] ACPI: No dock devices found. [ 0.192923] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 0.192923] ACPI Error: [CAPB] Namespace lookup failure, AE_ALREADY_EXISTS (20120111/dsfield-143) [ 0.192923] ACPI Error: Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007bf32988), AE_ALREADY_EXISTS (20120111/psparse-536) [ 0.192923] ACPI: Marking method _OSC as Serialized because of AE_ALREADY_EXISTS error [ 0.192923] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3f]) -- [ 0.225370] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.EXP4._PRT] [ 0.225526] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT] [ 0.226050] ACPI Error: [CAPB] Namespace lookup failure, AE_ALREADY_EXISTS (20120111/dsfield-143) [ 0.226079] ACPI Error: Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007bf32988), AE_ALREADY_EXISTS (20120111/psparse-536) [ 0.226129] pci0000:00: Requesting ACPI _OSC control (0x1d) [ 0.226371] ACPI Error: [CAPB] Namespace lookup failure, AE_ALREADY_EXISTS (20120111/dsfield-143) [ 0.226398] ACPI Error: Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007bf32988), AE_ALREADY_EXISTS (20120111/psparse-536) [ 0.226445] pci0000:00: ACPI _OSC request failed (AE_ALREADY_EXISTS), returned control mask: 0x1d [ 0.226454] ACPI _OSC control for PCIe not granted, disabling ASPM Apparently ASPM is disabled as well which might explain why the battery last longer under windows. :( Do you have a bug report in ACPICA bugzilla? I think this one should be better tracked there. It looks like the Windows behavior is one of the following: 1) Windows does not invoke _OSC in this case 2) Windows invokes _OSC with Arg2 of value Integer 1. 3) Windows ignores error during _OSC execution. > Do you have a bug report in ACPICA bugzilla? > I think this one should be better tracked there. Done! http://www.acpica.org/bugzilla/show_bug.cgi?id=946 Great. I'll close this bug report and let the discussion continues in acpica bugzilla. *** Bug 201133 has been marked as a duplicate of this bug. *** |