From owner-freebsd-hackers Sat Mar 22 04:50:42 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id EAA21872 for hackers-outgoing; Sat, 22 Mar 1997 04:50:42 -0800 (PST) Received: from dg-rtp.dg.com (dg-rtp.rtp.dg.com [128.222.1.2]) by freefall.freebsd.org (8.8.5/8.8.5) with SMTP id EAA21867 for ; Sat, 22 Mar 1997 04:50:37 -0800 (PST) Received: by dg-rtp.dg.com (5.4R3.10/dg-rtp-v02) id AA01766; Sat, 22 Mar 1997 07:50:05 -0500 Received: from ponds by dg-rtp.dg.com.rtp.dg.com; Sat, 22 Mar 1997 07:50 EST Received: from lakes.water.net (lakes [10.0.0.3]) by ponds.water.net (8.8.3/8.7.3) with ESMTP id HAA09931 for ; Sat, 22 Mar 1997 07:39:10 -0500 (EST) Received: (from root@localhost) by lakes.water.net (8.8.3/8.6.9) id HAA09437; Sat, 22 Mar 1997 07:44:40 -0500 (EST) Date: Sat, 22 Mar 1997 07:44:40 -0500 (EST) From: Thomas David Rivers Message-Id: <199703221244.HAA09437@lakes.water.net> To: ponds!freefall.cdrom.com!freebsd-hackers, ponds!lakes.water.net!rivers Subject: More "dup alloc" info. Content-Type: text Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Just F.Y.I. - I'm still stumbling around with this dup alloc problem. I'm using 2.1.7.1 sources now... Anyway, I've discovered that if I had a printf() to aha_done [my reproduction is with an aha1542b; and an IDE machine - but I'm working on the 1542b] to print the current processor level (cpl) that problem is masked. That is, I don't reproduce the bug. This would tend to indicate that some timing is involved; and that, somewhere the cpl must be at least splbio(). However, using: if(cpl & bio_imask != bio_imask) checks in some suspect places (i.e. scsi_done(), biodone()) I haven't been able to verify this. (That is, none of them were tripped.) Again - it seems that a SCSI command is being constructed which contains a data buffer just chock full of the requisite 0x00s, but that data certainly isn't making it to the disk... scsi_done() is convinced the operation completed successfully. (I.e. sdstart() queued it, and an interrupt came back for it.. scsi_done() dump'd the xs buffer to print all 0x00s.) BUT - those 0x00s aren't making it to the disk... argh... Help, I'm running out of ideas ... - Dave Rivers -