From owner-freebsd-current@FreeBSD.ORG Mon Mar 26 17:59:19 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3FFAE106566B; Mon, 26 Mar 2012 17:59:19 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) by mx1.freebsd.org (Postfix) with ESMTP id EAA198FC17; Mon, 26 Mar 2012 17:59:18 +0000 (UTC) Received: from troutmask.apl.washington.edu (localhost.apl.washington.edu [127.0.0.1]) by troutmask.apl.washington.edu (8.14.5/8.14.5) with ESMTP id q2QHxISK002128; Mon, 26 Mar 2012 10:59:18 -0700 (PDT) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.14.5/8.14.5/Submit) id q2QHxIr5002127; Mon, 26 Mar 2012 10:59:18 -0700 (PDT) (envelope-from sgk) Date: Mon, 26 Mar 2012 10:59:18 -0700 From: Steve Kargl To: John Baldwin Message-ID: <20120326175918.GA2053@troutmask.apl.washington.edu> References: <20120323222313.GA1331@troutmask.apl.washington.edu> <201203261318.37373.jhb@freebsd.org> <20120326174155.GA1931@troutmask.apl.washington.edu> <201203261353.25138.jhb@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201203261353.25138.jhb@freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: freebsd-current@freebsd.org Subject: Re: general protection fault panic X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 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: Mon, 26 Mar 2012 17:59:19 -0000 On Mon, Mar 26, 2012 at 01:53:25PM -0400, John Baldwin wrote: > On Monday, March 26, 2012 1:41:55 pm Steve Kargl wrote: > > On Mon, Mar 26, 2012 at 01:18:37PM -0400, John Baldwin wrote: > > > On Monday, March 26, 2012 12:21:29 pm Steve Kargl wrote: > > > > > > You know your APIC ID is 0, so you should be able to find the IRQ for vector > > > 51 from here in apic_idt_to_irq(): > > > > > > irq = lapics[apic_id].la_ioint_irqs[vector - APIC_IO_INTS]; > > > > > > Your apic_id is 0, and APIC_IO_INTS is 48, so you should be able to do this > > > in kgdb: > > > > > > p lapics[0].la_ioint_irqs[3] > > > > > > That should give you an index, and intr_lookup_source() just does an array > > > lookup. However, I'd be curious to see what the assembly looks like > > > (x/10i $rip at this frame). > > > > > > > > > (kgdb) p lapics[0].la_ioint_irqs[3] > > $1 = 16 > > (kgdb) frame 27 > > #27 0xffffffff806dc186 in acpi_cpu_c1 () > > at /usr/src/sys/amd64/acpica/acpi_machdep.c:97 > > Sorry, I meant down at the frame that faulted (frame 7 in this case). > (kgdb) frame 7 #7 0xffffffff80751232 in lapic_handle_intr (vector=51, frame=0xffffff8000229a70) at /usr/src/sys/x86/x86/local_apic.c:777 777 { (kgdb) x/10i $rip 0xffffffff80751232 : stos %eax,%es:(%rdi) 0xffffffff80751233 : (bad) 0xffffffff80751234 : pop %rbp 0xffffffff80751235 : pop %rsi 0xffffffff80751236 : fsubr %st(3),%st 0xffffffff80751238 : (bad) 0xffffffff80751239 : or $0xac1ae6b3,%eax 0xffffffff8075123e : out %eax,$0x19 0xffffffff80751240 : jl 0xffffffff8075125e 0xffffffff80751242 : adc %r12d,0xc6aa671(%rdi) -- Steve