ACPI panic
Stefan Farfeleder
stefanf at FreeBSD.org
Mon Nov 26 10:47:43 UTC 2012
On Mon, Nov 26, 2012 at 12:29:24PM +0200, Andriy Gapon wrote:
> Great!
> Could you please cast those cycled objects to 'union acpi_operand_object' and
> print them? Something like 'p *(union acpi_operand_object *)$x'.
Sure. First here's the cycle:
(kgdb) p *(void **)(0xfffffe0006117600+8)
$2 = (void *) 0xfffffe0006117680
(kgdb) p *(void **)(0xfffffe0006117680+8)
$3 = (void *) 0xfffffe0002a60080
(kgdb) p *(void **)(0xfffffe0002a60080+8)
$4 = (void *) 0xfffffe0006117680
The last two objects look like this (0xca except the next pointer):
(kgdb) p *(union acpi_operand_object *)0xfffffe0006117680
$6 = {Common = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0'}, Integer = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', Fill = "���",
Value = 14612714913291487946}, String = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0',
Pointer = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Length = 3402287818}, Buffer = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0',
Pointer = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Length = 3402287818, AmlLength = 3402287818,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Node = 0xcacacacacacacaca}, Package = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', Node = 0xcacacacacacacaca, Elements = 0xcacacacacacacaca,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
AmlLength = 3402287818, Count = 3402287818}, Event = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0',
OsSemaphore = 0xcacacacacacacaca}, Method = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
---Type <return> to continue, or q <return> to quit---
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', InfoFlags = 254 '�',
ParamCount = 255 '�', SyncLevel = 255 '�', Mutex = 0xcacacacacacacaca,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Dispatch = {Implementation = 0xcacacacacacacaca,
Handler = 0xcacacacacacacaca}, AmlLength = 3402287818,
ThreadCount = 202 '�', OwnerId = 202 '�'}, Mutex = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', SyncLevel = 254 '�',
AcquisitionDepth = 65535, OsMutex = 0xcacacacacacacaca,
ThreadId = 14612714913291487946, OwnerThread = 0xcacacacacacacaca,
Prev = 0xcacacacacacacaca, Next = 0xcacacacacacacaca,
Node = 0xcacacacacacacaca, OriginalSyncLevel = 202 '�'}, Region = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', SpaceId = 254 '�',
Node = 0xcacacacacacacaca, Handler = 0xcacacacacacacaca,
Next = 0xcacacacacacacaca, Address = 14612714913291487946,
Length = 3402287818}, CommonNotify = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', NotifyList = {0xcacacacacacacaca, 0xcacacacacacacaca},
Handler = 0xcacacacacacacaca}, Device = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', NotifyList = {0xcacacacacacacaca, 0xcacacacacacacaca},
Handler = 0xcacacacacacacaca, GpeBlock = 0xcacacacacacacaca},
---Type <return> to continue, or q <return> to quit---
PowerResource = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', NotifyList = {0xcacacacacacacaca, 0xcacacacacacacaca},
Handler = 0xcacacacacacacaca, SystemLevel = 3402287818,
ResourceOrder = 3402287818}, Processor = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', ProcId = 254 '�', Length = 255 '�', NotifyList = {
0xcacacacacacacaca, 0xcacacacacacacaca}, Handler = 0xcacacacacacacaca,
Address = 14612714913291487946}, ThermalZone = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', NotifyList = {
0xcacacacacacacaca, 0xcacacacacacacaca}, Handler = 0xcacacacacacacaca},
CommonField = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', FieldFlags = 254 '�',
Attribute = 255 '�', AccessByteWidth = 255 '�', Node = 0xcacacacacacacaca,
BitLength = 3402287818, BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
RegionObj = 0xcacacacacacacaca}, Field = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', FieldFlags = 254 '�', Attribute = 255 '�',
AccessByteWidth = 255 '�', Node = 0xcacacacacacacaca,
BitLength = 3402287818, BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
---Type <return> to continue, or q <return> to quit---
ResourceLength = 51914, RegionObj = 0xcacacacacacacaca,
ResourceBuffer = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>}, BufferField = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', FieldFlags = 254 '�', Attribute = 255 '�',
AccessByteWidth = 255 '�', Node = 0xcacacacacacacaca,
BitLength = 3402287818, BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
BufferObj = 0xcacacacacacacaca}, BankField = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', FieldFlags = 254 '�',
Attribute = 255 '�', AccessByteWidth = 255 '�', Node = 0xcacacacacacacaca,
BitLength = 3402287818, BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
RegionObj = 0xcacacacacacacaca, BankObj = 0xcacacacacacacaca},
IndexField = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', FieldFlags = 254 '�',
Attribute = 255 '�', AccessByteWidth = 255 '�', Node = 0xcacacacacacacaca,
BitLength = 3402287818, BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
IndexObj = 0xcacacacacacacaca, DataObj = 0xcacacacacacacaca}, Notify = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0',
---Type <return> to continue, or q <return> to quit---
Node = 0xcacacacacacacaca, HandlerType = 3402287818,
Handler = 0xcacacacacacacaca, Context = 0xcacacacacacacaca, Next = {
0xcacacacacacacaca, 0xcacacacacacacaca}}, AddressSpace = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0', SpaceId = 254 '�',
HandlerFlags = 255 '�', Handler = 0xcacacacacacacaca,
Node = 0xcacacacacacacaca, Context = 0xcacacacacacacaca,
Setup = 0xcacacacacacacaca, RegionList = 0xcacacacacacacaca,
Next = 0xcacacacacacacaca}, Reference = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', Class = 254 '�', TargetType = 255 '�', Reserved = 255 '�',
Object = 0xcacacacacacacaca, Node = 0xcacacacacacacaca,
Where = 0xcacacacacacacaca, Value = 3402287818}, Extra = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 0 '\0', ReferenceCount = 678, Flags = 0 '\0',
Method_REG = 0xcacacacacacacaca, ScopeNode = 0xcacacacacacacaca,
RegionContext = 0xcacacacacacacaca,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
AmlLength = 3402287818}, Data = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
Flags = 0 '\0', Handler = 0xcacacacacacacaca,
Pointer = 0xcacacacacacacaca}, Cache = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 0 '\0', ReferenceCount = 678,
---Type <return> to continue, or q <return> to quit---
Flags = 0 '\0', Next = 0xcacacacacacacaca}, Node = {
Object = 0xcacacacacacacaca, DescriptorType = 128 '\200', Type = 0 '\0',
Flags = 166 '�', OwnerId = 2 '\002', Name = {Integer = 4294966784,
Ascii = "\000���"}, Parent = 0xcacacacacacacaca,
Child = 0xcacacacacacacaca, Peer = 0xcacacacacacacaca}}
(kgdb) p *(union acpi_operand_object *)0xfffffe0002a60080
$7 = {Common = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0'}, Integer = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0', Fill = "���",
Value = 14612714913291487946}, String = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0',
Pointer = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Length = 3402287818}, Buffer = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0',
Pointer = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Length = 3402287818, AmlLength = 3402287818,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Node = 0xcacacacacacacaca}, Package = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0', Node = 0xcacacacacacacaca, Elements = 0xcacacacacacacaca,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
AmlLength = 3402287818, Count = 3402287818}, Event = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
OsSemaphore = 0xcacacacacacacaca}, Method = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
---Type <return> to continue, or q <return> to quit---
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
InfoFlags = 254 '�', ParamCount = 255 '�', SyncLevel = 255 '�',
Mutex = 0xcacacacacacacaca,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
Dispatch = {Implementation = 0xcacacacacacacaca,
Handler = 0xcacacacacacacaca}, AmlLength = 3402287818,
ThreadCount = 202 '�', OwnerId = 202 '�'}, Mutex = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
SyncLevel = 254 '�', AcquisitionDepth = 65535,
OsMutex = 0xcacacacacacacaca, ThreadId = 14612714913291487946,
OwnerThread = 0xcacacacacacacaca, Prev = 0xcacacacacacacaca,
Next = 0xcacacacacacacaca, Node = 0xcacacacacacacaca,
OriginalSyncLevel = 202 '�'}, Region = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0', SpaceId = 254 '�', Node = 0xcacacacacacacaca,
Handler = 0xcacacacacacacaca, Next = 0xcacacacacacacaca,
Address = 14612714913291487946, Length = 3402287818}, CommonNotify = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0', NotifyList = {
0xcacacacacacacaca, 0xcacacacacacacaca}, Handler = 0xcacacacacacacaca},
Device = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0', NotifyList = {
---Type <return> to continue, or q <return> to quit---
0xcacacacacacacaca, 0xcacacacacacacaca}, Handler = 0xcacacacacacacaca,
GpeBlock = 0xcacacacacacacaca}, PowerResource = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0', NotifyList = {
0xcacacacacacacaca, 0xcacacacacacacaca}, Handler = 0xcacacacacacacaca,
SystemLevel = 3402287818, ResourceOrder = 3402287818}, Processor = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0', ProcId = 254 '�',
Length = 255 '�', NotifyList = {0xcacacacacacacaca, 0xcacacacacacacaca},
Handler = 0xcacacacacacacaca, Address = 14612714913291487946},
ThermalZone = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0', NotifyList = {
0xcacacacacacacaca, 0xcacacacacacacaca}, Handler = 0xcacacacacacacaca},
CommonField = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
FieldFlags = 254 '�', Attribute = 255 '�', AccessByteWidth = 255 '�',
Node = 0xcacacacacacacaca, BitLength = 3402287818,
BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
RegionObj = 0xcacacacacacacaca}, Field = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0', FieldFlags = 254 '�', Attribute = 255 '�',
AccessByteWidth = 255 '�', Node = 0xcacacacacacacaca,
---Type <return> to continue, or q <return> to quit---
BitLength = 3402287818, BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
ResourceLength = 51914, RegionObj = 0xcacacacacacacaca,
ResourceBuffer = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>}, BufferField = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0', FieldFlags = 254 '�', Attribute = 255 '�',
AccessByteWidth = 255 '�', Node = 0xcacacacacacacaca,
BitLength = 3402287818, BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
BufferObj = 0xcacacacacacacaca}, BankField = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
FieldFlags = 254 '�', Attribute = 255 '�', AccessByteWidth = 255 '�',
Node = 0xcacacacacacacaca, BitLength = 3402287818,
BaseByteOffset = 3402287818, Value = 3402287818,
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
RegionObj = 0xcacacacacacacaca, BankObj = 0xcacacacacacacaca},
IndexField = {NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
FieldFlags = 254 '�', Attribute = 255 '�', AccessByteWidth = 255 '�',
Node = 0xcacacacacacacaca, BitLength = 3402287818,
BaseByteOffset = 3402287818, Value = 3402287818,
---Type <return> to continue, or q <return> to quit---
StartFieldBitOffset = 202 '�', AccessLength = 202 '�',
IndexObj = 0xcacacacacacacaca, DataObj = 0xcacacacacacacaca}, Notify = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
Node = 0xcacacacacacacaca, HandlerType = 3402287818,
Handler = 0xcacacacacacacaca, Context = 0xcacacacacacacaca, Next = {
0xcacacacacacacaca, 0xcacacacacacacaca}}, AddressSpace = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0', SpaceId = 254 '�',
HandlerFlags = 255 '�', Handler = 0xcacacacacacacaca,
Node = 0xcacacacacacacaca, Context = 0xcacacacacacacaca,
Setup = 0xcacacacacacacaca, RegionList = 0xcacacacacacacaca,
Next = 0xcacacacacacacaca}, Reference = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0', Class = 254 '�', TargetType = 255 '�', Reserved = 255 '�',
Object = 0xcacacacacacacaca, Node = 0xcacacacacacacaca,
Where = 0xcacacacacacacaca, Value = 3402287818}, Extra = {
NextObject = 0xcacacacacacacaca, DescriptorType = 128 '\200',
Type = 118 'v', ReferenceCount = 1553, Flags = 0 '\0',
Method_REG = 0xcacacacacacacaca, ScopeNode = 0xcacacacacacacaca,
RegionContext = 0xcacacacacacacaca,
AmlStart = 0xcacacacacacacaca <Address 0xcacacacacacacaca out of bounds>,
AmlLength = 3402287818}, Data = {NextObject = 0xcacacacacacacaca,
---Type <return> to continue, or q <return> to quit---
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0', Handler = 0xcacacacacacacaca,
Pointer = 0xcacacacacacacaca}, Cache = {NextObject = 0xcacacacacacacaca,
DescriptorType = 128 '\200', Type = 118 'v', ReferenceCount = 1553,
Flags = 0 '\0', Next = 0xcacacacacacacaca}, Node = {
Object = 0xcacacacacacacaca, DescriptorType = 128 '\200', Type = 118 'v',
Flags = 17 '\021', OwnerId = 6 '\006', Name = {Integer = 4294966784,
Ascii = "\000���"}, Parent = 0xcacacacacacacaca,
Child = 0xcacacacacacacaca, Peer = 0xcacacacacacacaca}}
BTW, I noticed the ACPI_SET_DESCRIPTOR_TYPE code is pointless, because the
DescriptorType is at offset 8 from the object start and gets immediately
overwritten by the next pointer. However I don't think it's a problem.
Stefan
More information about the freebsd-acpi
mailing list