From owner-p4-projects@FreeBSD.ORG Wed Aug 2 06:44:26 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4C95116A50C; Wed, 2 Aug 2006 06:44:26 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 07E3416A501 for ; Wed, 2 Aug 2006 06:44:26 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D0FCE43D45 for ; Wed, 2 Aug 2006 06:44:25 +0000 (GMT) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k726iP40010390 for ; Wed, 2 Aug 2006 06:44:25 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k726iP5e010387 for perforce@freebsd.org; Wed, 2 Aug 2006 06:44:25 GMT (envelope-from jb@freebsd.org) Date: Wed, 2 Aug 2006 06:44:25 GMT Message-Id: <200608020644.k726iP5e010387@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 102997 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Aug 2006 06:44:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=102997 Change 102997 by jb@jb_freebsd2 on 2006/08/02 06:44:00 Only print the trap trace data on the first CPU that decides to panic. We really don't need (potentially) 32 copies of the info. Also printf the pad fields in the per-cpu structure which we're using a temporary debug storage during traps. Affected files ... .. //depot/projects/dtrace/src/sys/sun4v/sun4v/pmap.c#10 edit Differences ... ==== //depot/projects/dtrace/src/sys/sun4v/sun4v/pmap.c#10 (text+ko) ==== @@ -1218,6 +1218,10 @@ m->md.pv_list_count++; } +#ifdef TRAP_TRACING +static int trap_trace_report_done; +#endif + #ifdef SMP static cpumask_t pmap_ipi(pmap_t pmap, char *func, uint64_t arg1, uint64_t arg2) @@ -1288,9 +1292,17 @@ curactive & ~ackmask); #ifdef TRAP_TRACING - for (j = 0; j < MAXCPU; j++) - if (((1 << j) & curactive & ~ackmask) != 0) - trap_trace_report(j); + if (!trap_trace_report_done) { + trap_trace_report_done = 1; + for (j = 0; j < MAXCPU; j++) + if (((1 << j) & curactive & ~ackmask) != 0) { + struct pcpu *pc = pcpu_find(j); + printf("pcpu pad 0x%jx 0x%jx 0x%jx 0x%jx 0x%jx 0x%jx 0x%jx\n", + pc->pad[0], pc->pad[1], pc->pad[2], pc->pad[3], + pc->pad[4], pc->pad[5], pc->pad[6]); + trap_trace_report(j); + } + } #endif hv_cpu_state((uint64_t)ffs64(curactive & ~ackmask), &cpu_state);