Date: Wed, 21 Mar 2001 17:20:58 -0800 From: Mike Smith <msmith@freebsd.org> To: rand@meridian-enviro.com Cc: freebsd-stable@FreeBSD.ORG, Mike Tancsa <mike@sentex.net>, bryanh@meridian-enviro.com Subject: Re: 3ware problems Message-ID: <200103220121.f2M1KwE00867@mass.dis.org> In-Reply-To: Your message of "Wed, 21 Mar 2001 17:50:39 CST." <87u24m7kc0.wl@delta.meridian-enviro.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> Mike> If you can add another function like twe_printstate that invokes > Mike> twe_print_request on each of the requests on the busy queue and > Mike> let me know what they look like, that might give me some clues. > > OK, I haven't written the twe_printstate function yet, but I think I > have the request. I got the filesystem wedged first, and then browsing > the datastructures with DDB, I think I've found the busy queue. Here's > the request: Cool, this works just as well. 8) > db> call twe_print_request(0xc1529800) > twe0: CMD: request_id 89 opcode <READ> size 7 unit 0 host_id 0 > twe0: status 0 flags 0x0 count 16 sgl_offset 3 > twe0: lba 264703 > twe0: 0: 0xce4f000/4096 > twe0: 1: 0x2ab0000/4096 > twe0: tr_command 0xc1529800/0x1749d800 tr_data 0xcb928000/0xce4f000,8192 > twe0: tr_status 2 tr_flags 0x1 tr_complete 0xc011f170 tr_private 0 Er. This is bad; tr_status == 2 means that the command has been completed; it shouldn't still be on the busy queue. Can you check to make sure you have the right queue here? > I'm rebuilding the kernel now with the function twe_printstate, after > I figured it out with the debugger. (This reminds me of a saying that > has to do with horses and carriages, hmm.) Hrm. It *should* be pretty easy; I'm sorry I confused you with the 'printstate' reference; you should be able to fix up twe_report to just dump the busy queue: struct twe_request *tr; ... TAILQ_FOREACH(tr, TAILQ_FIRST(sc->twe_busy), tr_link) twe_print_request(tr); > Oh, btw, it took over 3 million rows to get it stuck this time. Gotta > love a test cycle of 6 hours or so. Sigh. This is obviously a really weird case; possibly either an extremely narrow race, or some very borderline PCI issue. One question I should have asked, but don't recall whether you answered; are you using an AMD K7 system by any chance? We've seen some *very* weird behaviour with these controllers in some K7 systems. Thanks again for your help here. Regards, Mike -- ... every activity meets with opposition, everyone who acts has his rivals and unfortunately opponents also. But not because people want to be opponents, rather because the tasks and relationships force people to take different points of view. [Dr. Fritz Todt] V I C T O R Y N O T V E N G E A N C E To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103220121.f2M1KwE00867>