From owner-freebsd-current@FreeBSD.ORG Tue Jan 6 15:15:29 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4236D16A4CE for ; Tue, 6 Jan 2004 15:15:29 -0800 (PST) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id DC09043D46 for ; Tue, 6 Jan 2004 15:15:26 -0800 (PST) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.12.9p2/8.12.9) with ESMTP id i06NFJ7E015090; Tue, 6 Jan 2004 15:15:23 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <200401062315.i06NFJ7E015090@gw.catspoiler.org> Date: Tue, 6 Jan 2004 15:15:19 -0800 (PST) From: Don Lewis To: shoesoft@gmx.net In-Reply-To: <1073420779.1054.3.camel@shoeserv.freebsd> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT cc: current@FreeBSD.org Subject: Re: page fault panic tracked down (selwakeuppri()) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jan 2004 23:15:29 -0000 On 6 Jan, Stefan Ehmann wrote: > On Tue, 2004-01-06 at 21:01, Don Lewis wrote: >> > #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:240 >> > #1 0xc04e5178 in boot (howto=256) at >> > /usr/src/sys/kern/kern_shutdown.c:372 >> > #2 0xc04e5507 in panic () at /usr/src/sys/kern/kern_shutdown.c:550 >> > #3 0xc07eb648 in feed_vchan_s16 (f=0xc3967c00, c=0x0, b=0xc37d0000 "", >> > count=2048, source=0xc3741500) at >> > /usr/src/sys/dev/sound/pcm/vchan.c:80 >> >> It is somewhat worrysome that c is 0x0 here, since it should be the same >> as channel in frame #4. Maybe a gdb oops? >> >> Print *src in this frame, the KASSERT is apparently failing because the >> bufsize member of this structure is not the same as the count parameter. > (kgdb) print *src > $2 = {dev = 0xc37a8580, buf = 0xc3880c00 "", > tmpbuf = 0xc3882000 > "ÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­ÞÞÀ­Þ"..., > bufsize = 688, maxsize = 688, dl = 0, rp = 0, rl = 0, hp = 0, total = > 0, > prev_total = 0, dmachan = 0, dir = 0, fmt = 268435472, spd = 44100, > bps = 4, > blksz = 344, blkcnt = 2, xrun = 0, flags = 0, dmamap = 0x0, dmatag = > 0x0, > buf_addr = 0, sel = {si_thrlist = {tqe_next = 0x0, tqe_prev = 0x0}, > si_thread = 0x0, si_note = {slh_first = 0x0}, si_flags = 0}, > name = "pcm0:play:0:secondary", '\0' } count=2048, bufsize=688 maxsize=688 blksize=344 Certainly interesting. I wonder which is right ... >> > #4 0xc07e1c6d in sndbuf_feed (from=0xc3741500, to=0xc3741600, >> > channel=0xc37a8880, feeder=0xc3967c00, count=3279164672) at >> > feeder_if.h:60 >> >> Also, print *channel in this frame. I'd like to see what flags are set. > (kgdb) print *channel > $3 = {methods = 0xc377ec20, num = 0, pid = -1, refcount = 0, > feeder = 0xc3967c00, align = 4, volume = 25700, speed = 44100, > format = 268435472, flags = 12320, feederflags = 0, blocks = 0, > direction = 1, interrupts = 224003, xruns = 1, bufhard = 0xc3741600, > bufsoft = 0xc3741500, parentsnddev = 0xc37c0200, parentchannel = 0x0, > devinfo = 0xc37a8738, dev = 0xc37a8580, > name = "pcm0:play:0", '\0' , lock = 0xc37ba280, > children = {slh_first = 0xc377ebf0}} flags = 0x3020, which decodes to (CHN_F_HAS_SIZE | CHN_F_BUSY | CHN_F_TRIGGERED), but not CHN_F_RUNNING. Time to go study the code. > gdb made problems again. When using add-symbol-file as described in the > handbook backtrace was fine but couldn't debug anything (getting no > stack). So I just copied the .ko.debug files to /boot/.ko - Hope this > won't cause any problems. That should be OK.