Re: Kernel Panic in IOMemoryDescriptor
Re: Kernel Panic in IOMemoryDescriptor
- Subject: Re: Kernel Panic in IOMemoryDescriptor
- From: Brian Bechtel <email@hidden>
- Date: Tue, 29 Sep 2009 20:10:01 -0700
The address in CR2, 0x3e75b8c0, is not valid. Given that you can't
derive that value from the instruction which is executing at the time
of the panic (0x0043145a is "mov (íi,ëx,1),%esi" and none of
those values add up to give the CR2 value) I would assume a
misprogrammed DMA transaction somehow. But I don't know. It's just a
guess based on what you've posted.
Someone else may post a much more brilliant and useful analysis. I hope so.
Good luck.
On Tue, Sep 29, 2009 at 5:46 PM, Duane Murphy <email@hidden> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> 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
>
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: PGP Desktop 9.10.0 (Build 500)
> Charset: US-ASCII
>
> wsBVAwUBSsKqXUrg9acQ4r2CAQhU/ggAoeeWKreh7MA5WQBzfnCogYccgmHVuEKR
> E2dy63TG1QFj1BsuoneAKMy3z8Gm+JwvJafui5YBWNBNSMG2FOsidK5FWmSKePuW
> 1ptw9FXqszuviCkNQ5GO7ThhFA+6bzfxvQr7FeBWSmea+/R6BH8o8wydeeNNzGM8
> fqzrY7rz38xWqt2ZvofC4Y7cOj9MJX52W+7ll16rBy3TZvY+DisqcCUONdfOHuOy
> wxPaPGra6oIbJBoliHcOUKF3LkMw7RFAWtkh+vXSvoJ4k88pPZm8bAn1Q6wmyMju
> +mrGyc46pvBronykfxIHOXDaOdgsM6rXk6jOsJZHVWnfaoAz3o1W4w==
> =9to1
> -----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
>
_______________________________________________
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