Re: Kernel Panic in IOMemoryDescriptor
Re: Kernel Panic in IOMemoryDescriptor
- Subject: Re: Kernel Panic in IOMemoryDescriptor
- From: Duane Murphy <email@hidden>
- Date: Tue, 29 Sep 2009 17:54:08 -0700
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
I need to make a correction. The buffer being used for readBytes is an
IO buffer passed in from the upper level drivers.
However, the void* bytes parameters used to receive the bytes is from
a buffer that is allocated on the IO path.
On Sep 29, 2009, at 5:46 PM, Duane Murphy wrote:
> Hi Folks,
> I'm getting an intermittent kernel panic calling readBytes in an
> IOMemoryDescriptor. The underlying descriptor is an
> IOBufferMemoryDescriptor.
>
> The kernel panic register dump and decoded stack trace are at the
> end of the message.
>
> What would be the cause of a kernel panic like this?
>
> The kext I am working with is a disk driver (subclass of
> IOBlockStorageDriver). This panic happens more often when the
> underlying disk is a Soft RAID disk.
>
> The buffer that is failing is allocated on the IO path. I am not
> getting any errors for any allocations. I am working on changing
> this so that there should be less allocations on the IO path.
>
> Could allocating this buffer on the IO path be the underlying cause
> of this panic?
>
> Thanks for your insight to this difficult to decipher problem.
>
> ...Duane
>
> ---
> Mon Sep 28 15:13:08 2009
> panic(cpu 0 caller 0x001AB0FE): Kernel trap at 0x0043145a, type
> 14=page fault, registers:
> CR0: 0x8001003b, CR2: 0x3e75b8c0, CR3: 0x01107000, CR4: 0x00000660
> EAX: 0x00000280, EBX: 0x007cbe78, ECX: 0x079b6a88, EDX: 0x000f97cf
> CR2: 0x3e75b8c0, EBP: 0x5697fd88, ESI: 0x08dd5280, EDI: 0x3df8fa48
> EFL: 0x00010202, EIP: 0x0043145a, CS: 0x00000008, DS: 0x01f80010
> Error code: 0x00000000
>
> 0x12b4c6 <panic+422>: mov 0x4dd280,êx
> 0x1ab0fe <kernel_trap+1450>: add $0xcc,%esp
> 0x1a1713 <trap_from_kernel+26>: mov íi,%esp
> 0x43145a <IOGeneralMemoryDescriptor::dmaCommandOperation(unsigned
> long, void*, unsigned int) const+1260>: mov (íi,ëx,1),%esi
> 0x4315a4 <IOGeneralMemoryDescriptor::getPhysicalSegment64(unsigned
> long, unsigned long*)+160>: test êx,êx
> 0x430e56 <IOMemoryDescriptor::readBytes(unsigned long, void*,
> unsigned long)+76>: mov íx,ìx
>
>
>
> ...Duane
>
>
>
...Duane
-----BEGIN PGP SIGNATURE-----
Version: PGP Desktop 9.10.0 (Build 500)
Charset: US-ASCII
wsBVAwUBSsKsNUrg9acQ4r2CAQj1+Af+JxU1ncV9R3V5U2nrNZ8JWME5RjctQwjB
NOEVf1LNDrMkGuBG6e1ciKIIGqBDxYqQSVjDAouqnIy0/fsqHvIUFCpD5fZX3AlF
1z49XVyuGmiQR72VoN8DbyTwl4TtyI4vFvtR5FFBw8JEFVc3p+oOkxQo5dlvmbcH
QxEc4/nSR2lLSDH7G2R32k2X21niiW4/O+erKvZl/M4Ivbk14Q/z6cHzbJYGLhNu
u53Ikx4Lv3p9FIGCQWxh5PQhqSUDt6uKjrzzNX1kP8/LctneUDvrqHYCb0rol+4c
DrvCLqduRWiRBRwenNiq4Oz4b7UiC6I95PN9aJ5hhSsbbJxtLX2ckw==
=2BGr
-----END PGP SIGNATURE-----
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden