From owner-p4-projects@FreeBSD.ORG Fri Feb 1 04:06:06 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8CEBF16A420; Fri, 1 Feb 2008 04:06:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 39F8016A46B for ; Fri, 1 Feb 2008 04:06:06 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D8CDC13C43E for ; Fri, 1 Feb 2008 04:06:05 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m11465U3052371 for ; Fri, 1 Feb 2008 04:06:05 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m11465mY052368 for perforce@freebsd.org; Fri, 1 Feb 2008 04:06:05 GMT (envelope-from jb@freebsd.org) Date: Fri, 1 Feb 2008 04:06:05 GMT Message-Id: <200802010406.m11465mY052368@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 134578 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: Fri, 01 Feb 2008 04:06:06 -0000 http://perforce.freebsd.org/chv.cgi?CH=134578 Change 134578 by jb@jb_freebsd1 on 2008/02/01 04:05:05 Add a kernel option to force stack frames to be compiled in. In the past it was just DDB which needed them. Now, in order to pass the DTrace Test Suite we need them. Leaving out this option (and DDB) will give a performance improvement at the expense of less available Function Boundary Trace (fbt) probes. That is, less that 10,000 probes in a GENERIC kernel without the option and over 28,000 with, so it's a lot of functions we can't trace. We need to work on instrumenting the 'sub %rsp' opcodes to avoid needing this option. Affected files ... .. //depot/projects/dtrace/src/sys/amd64/conf/GENERIC#31 edit .. //depot/projects/dtrace/src/sys/conf/Makefile.amd64#6 edit .. //depot/projects/dtrace/src/sys/conf/options.amd64#9 edit .. //depot/projects/dtrace7/src/sys/amd64/conf/GENERIC#5 edit .. //depot/projects/dtrace7/src/sys/conf/Makefile.amd64#2 edit .. //depot/projects/dtrace7/src/sys/conf/options.amd64#2 edit Differences ... ==== //depot/projects/dtrace/src/sys/amd64/conf/GENERIC#31 (text+ko) ==== @@ -64,6 +64,8 @@ options STOP_NMI # Stop CPUS using NMI instead of IPI options AUDIT # Security event auditing options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed. +options KDTRACE_FRAME # Ensure frames are compiled in +options KDTRACE_HOOKS # Kernel DTrace hooks # Debugging for use in -current options KDB # Enable kernel debugger support. ==== //depot/projects/dtrace/src/sys/conf/Makefile.amd64#6 (text+ko) ==== @@ -32,8 +32,9 @@ .include "$S/conf/kern.pre.mk" DDB_ENABLED!= grep DDB opt_ddb.h || true +DTR_ENABLED!= grep KDTRACE_FRAME opt_kdtrace.h || true HWPMC_ENABLED!= grep HWPMC opt_hwpmc_hooks.h || true -.if !empty(DDB_ENABLED) || !empty(HWPMC_ENABLED) +.if !empty(DDB_ENABLED) || !empty(DTR_ENABLED) || !empty(HWPMC_ENABLED) CFLAGS+= -fno-omit-frame-pointer .endif ==== //depot/projects/dtrace/src/sys/conf/options.amd64#9 (text+ko) ==== @@ -65,6 +65,7 @@ # Debugging STOP_NMI opt_cpu.h +KDTRACE_FRAME opt_kdtrace.h # BPF just-in-time compiler BPF_JITTER opt_bpf.h ==== //depot/projects/dtrace7/src/sys/amd64/conf/GENERIC#5 (text+ko) ==== @@ -63,6 +63,7 @@ options STOP_NMI # Stop CPUS using NMI instead of IPI options AUDIT # Security event auditing options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed. +options KDTRACE_FRAME # Ensure frames are compiled in options KDTRACE_HOOKS # Kernel DTrace hooks # Make an SMP-capable kernel by default ==== //depot/projects/dtrace7/src/sys/conf/Makefile.amd64#2 (text+ko) ==== @@ -32,7 +32,8 @@ .include "$S/conf/kern.pre.mk" DDB_ENABLED!= grep DDB opt_ddb.h || true -.if !empty(DDB_ENABLED) +DTR_ENABLED!= grep KDTRACE_FRAME opt_kdtrace.h || true +.if !empty(DDB_ENABLED) || !empty(DTR_ENABLED) CFLAGS+= -fno-omit-frame-pointer .endif ==== //depot/projects/dtrace7/src/sys/conf/options.amd64#2 (text+ko) ==== @@ -64,6 +64,7 @@ # Debugging STOP_NMI opt_cpu.h +KDTRACE_FRAME opt_kdtrace.h # BPF just-in-time compiler BPF_JITTER opt_bpf.h