Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Nov 2012 11:47:37 +0100
From:      Stefan Farfeleder <stefanf@FreeBSD.org>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        freebsd-acpi@FreeBSD.org
Subject:   Re: ACPI panic
Message-ID:  <20121126104737.GC1469@mole.fafoe.narf.at>
In-Reply-To: <50B34484.1090807@FreeBSD.org>
References:  <20121122081831.GA1483@mole.fafoe.narf.at> <50ADFD75.10709@FreeBSD.org> <50ADFFB2.1000108@FreeBSD.org> <50AE057D.8060808@FreeBSD.org> <20121125140008.GA1497@mole.fafoe.narf.at> <50B244A1.1040800@FreeBSD.org> <20121126091101.GA1469@mole.fafoe.narf.at> <50B33693.2060000@FreeBSD.org> <20121126093704.GB1469@mole.fafoe.narf.at> <50B34484.1090807@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121126104737.GC1469>