From owner-freebsd-current@FreeBSD.ORG Mon Oct 2 07:53:41 2006 Return-Path: X-Original-To: current@freebsd.org 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 4973816A415 for ; Mon, 2 Oct 2006 07:53:41 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: from py-out-1112.google.com (py-out-1112.google.com [64.233.166.178]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9A61143D45 for ; Mon, 2 Oct 2006 07:53:40 +0000 (GMT) (envelope-from pyunyh@gmail.com) Received: by py-out-1112.google.com with SMTP id o67so2296495pye for ; Mon, 02 Oct 2006 00:53:40 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:date:from:to:subject:message-id:reply-to:references:mime-version:content-type:content-disposition:in-reply-to:user-agent; b=VQka6ODzi4EgtYQE9Xp9D1GG05chSimf4JPIeFCxaRQlKIyTE+0x1oNYzYL5w2YjLajnUJSo8RbWPs6/8Yt/gbMvYzPDvuEknroTkBo07LyluE3qJgkpMnqIpWL2vVG4ZxWn3+T2D2NUgihDW2taXs2JS4TfFdVVQb6Y2WaH2yo= Received: by 10.35.40.10 with SMTP id s10mr6950680pyj; Mon, 02 Oct 2006 00:53:40 -0700 (PDT) Received: from michelle.cdnetworks.co.kr ( [211.53.35.84]) by mx.gmail.com with ESMTP id 6sm995044nzn.2006.10.02.00.53.38; Mon, 02 Oct 2006 00:53:39 -0700 (PDT) Received: from michelle.cdnetworks.co.kr (localhost.cdnetworks.co.kr [127.0.0.1]) by michelle.cdnetworks.co.kr (8.13.5/8.13.5) with ESMTP id k927t6xS043376 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 2 Oct 2006 16:55:06 +0900 (KST) (envelope-from pyunyh@gmail.com) Received: (from yongari@localhost) by michelle.cdnetworks.co.kr (8.13.5/8.13.5/Submit) id k927t541043375 for current@FreeBSD.org; Mon, 2 Oct 2006 16:55:05 +0900 (KST) (envelope-from pyunyh@gmail.com) Date: Mon, 2 Oct 2006 16:55:05 +0900 From: Pyun YongHyeon To: current@FreeBSD.org Message-ID: <20061002075505.GB41981@cdnetworks.co.kr> References: <20061002072634.GB80527@funkthat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20061002072634.GB80527@funkthat.com> User-Agent: Mutt/1.4.2.1i Cc: Subject: Re: em stability issues + panic X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: pyunyh@gmail.com List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Oct 2006 07:53:41 -0000 On Mon, Oct 02, 2006 at 12:26:34AM -0700, John-Mark Gurney wrote: > Well, I will admit I have a bit older if_em.c, v1.147, but I haven't > been doing much w/ my em, probably not even passing close to 100mbit > of traffic (in gige mode)... I recently obtained a crash dump from > em_txeof where the tx_buffer is NULL at line 2958: > 2958 if (tx_buffer->m_head) { > > If any one want some additional data, I can provide info from the > crash dump... Just as a bit of trivia, I did load a few kld's.. > bktr.ko, bktrau.ko and iic.ko (plus respective other kld's that got > auto loaded)... It also seems that interactiveness is more likely > to hang em than other traffic... I've been running the box as a nfs > server for a while w/o issues, but I log in and run ffmpeg, and it > almost immediately hangs requiring an down/up to bring back the > interface... > > The panic was when I was bringing the interface back up... Though when > I it paniced, I had down/up'd the interface a few times w/o success in > bringing it back... > > Fatal trap 12: page fault while in kernel mode > cpuid = 0; apic id = 00 > fault virtual address = 0x0 > fault code = supervisor read, page not present > instruction pointer = 0x20:0xc047155e > stack pointer = 0x28:0xe1d1cc50 > frame pointer = 0x28:0xe1d1cc64 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, def32 1, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 12 (swi4: clock sio) > Physical memory: 999 MB > Dumping 225 MB: 210 194 178 162 146 130 114 98 82 66 50 34 18 2 > > #9 0xc066f56a in calltrap () at ../../../i386/i386/exception.s:138 > #10 0xc047155e in em_txeof (adapter=0xc34df800) at ../../../dev/em/if_em.c:2956 > #11 0xc046e502 in em_watchdog (ifp=0xc3502400) at ../../../dev/em/if_em.c:963 > #12 0xc0585b22 in if_slowtimo (arg=0x0) at ../../../net/if.c:1415 > #13 0xc0529fa9 in softclock (dummy=0x0) at ../../../kern/kern_timeout.c:271 > #14 0xc050a57a in ithread_execute_handlers (p=0xc33c38d0, ie=0xc341c580) > at ../../../kern/kern_intr.c:662 > #15 0xc050a673 in ithread_loop (arg=0xc33a2940) > at ../../../kern/kern_intr.c:745 > #16 0xc050981b in fork_exit (callout=0xc050a624 , > arg=0xc33a2940, frame=0xe1d1cd38) at ../../../kern/kern_fork.c:818 > #17 0xc066f5cc in fork_trampoline () at ../../../i386/i386/exception.s:199 > I think bringing the interface down while Rx is active may corrupt internal hardware state because em_rxeof() runs without driver lock. See http://lists.freebsd.org/pipermail/freebsd-current/2006-September/066203.html You may need to protect em_rxeof with dirver lock in em_handle_rxtx(). (Remember dropping driver lock before invoking if_input in em_rxeof.) -- Regards, Pyun YongHyeon