[DragonFlyBSD - Bug #2092] Panic: Bad link elm 0x... next->prev != elm

Magliano Andrea via Redmine bugtracker-admin at leaf.dragonflybsd.org
Sun Nov 27 21:50:12 PST 2011


Issue #2092 has been updated by Magliano Andrea.


Fresh (and finally usable) core: https://84.73.12.43/crash/core22.txz

At v2.13.0.357.gcdb8af with patch (just to better isolate the problem):

diff --git a/sys/dev/disk/ahci/ahci.c b/sys/dev/disk/ahci/ahci.c
index 2752c6c..d9c4733 100644
--- a/sys/dev/disk/ahci/ahci.c
+++ b/sys/dev/disk/ahci/ahci.c
@@ -3558,7 +3558,8 @@ ahci_ata_cmd_done(struct ahci_ccb *ccb)
        xa->flags &= ~(ATA_F_TIMEOUT_DESIRED | ATA_F_TIMEOUT_EXPIRED);
        ccb->ccb_port->ap_expired &= ~(1 << ccb->ccb_slot);

-       KKASSERT(xa->state != ATA_S_ONCHIP && xa->state != ATA_S_PUT);
+       KKASSERT(xa->state != ATA_S_ONCHIP);
+       KKASSERT(xa->state != ATA_S_PUT);
        ahci_unload_prdt(ccb);

        if (xa->state != ATA_S_TIMEOUT)

----------------------------------------
Bug #2092: Panic: Bad link elm 0x... next->prev != elm
http://bugs.dragonflybsd.org/issues/2092

Author: Magliano Andrea
Status: New
Priority: Normal
Assignee: Matthew Dillon
Category: 
Target version: 


Hi all,

i'm running v2.11.0.397.g4b06a0-DEVELOPMENT x86_64

I got this kind of panic on a daily basis, always at night (probably
while hammer does reblocking?):

Jun 20 03:09:14 randy kernel: ahci0.1: disk_rw: unknown state 6
Jun 20 03:09:14 randy last message repeated 18 times
Jun 20 03:09:14 randy kernel: panic: Bad link elm 0xffffffe01e019e78
next->prev != elm
Jun 20 03:09:14 randy kernel: cpuid = 0
Jun 20 03:09:14 randy kernel: Trace beginning at frame 0xffffffe01de1fa00
Jun 20 03:09:14 randy kernel: panic() at panic+0x1ed
Jun 20 03:09:14 randy kernel: panic() at panic+0x1ed
Jun 20 03:09:14 randy kernel: camisr_runqueue() at camisr_runqueue+0x87
Jun 20 03:09:14 randy kernel: swi_cambio() at swi_cambio+0x169
Jun 20 03:09:14 randy kernel: ithread_handler() at ithread_handler+0x1ba
Jun 20 03:09:14 randy kernel: boot() called on cpu#0

After applying these two patches it's running stable since 4 days.

The difference is now that TAILQ_EMPTY (patch 0002) is in
camisr_runqueue() *and* is protected by a spinlock too. The last maybe
fixes the panic? Does it makes sense?

ByE!


-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account





More information about the Bugs mailing list