From owner-freebsd-current@FreeBSD.ORG Sun Feb 10 22:42:48 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B7F4F16A417 for ; Sun, 10 Feb 2008 22:42:48 +0000 (UTC) (envelope-from jb@what-creek.com) Received: from what-creek.com (what-creek.com [66.111.37.70]) by mx1.freebsd.org (Postfix) with ESMTP id A4DA113C44B for ; Sun, 10 Feb 2008 22:42:48 +0000 (UTC) (envelope-from jb@what-creek.com) Received: by what-creek.com (Postfix, from userid 102) id 071E7731B4; Sun, 10 Feb 2008 22:42:48 +0000 (GMT) Date: Sun, 10 Feb 2008 22:42:47 +0000 From: John Birrell To: current@freebsd.org Message-ID: <20080210224247.GA70317@what-creek.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.3i Cc: Subject: New DTrace source snapshot 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: Sun, 10 Feb 2008 22:42:48 -0000 This one fixes problems with the previous one: - buildkernel would fail because NO_CTF=1 was not set when building the lone kernel build tool. - A number of things were missing from the dtrace kernel module on i386. - Missing syscall names in the kernel without witness have been resolved so this snapshot should build with and without witness, invariants, smp etc. Known problems: - This is a snapshot of current which contains lock order reversal warnings. These are not related to the DTrace-specific code. - ustack() as reported by Drew hasn't been ported yet, so don't expect it to do anything. - On i386 mp_maxid in the kernel doesn't behave the same way that it does on amd64. Work-around code exists for this, but it is less than optimal. - A few of the tests that pass on amd64 don't work on i386. The causes are under investigation. The worst one is the tailcall test which causes the machine to reboot. Ugh. Note: - This snapshot should build cleanly on either a CURRENT or a RELENG_7 system. If not, please tell me. RELENG_6 users should upgrade to RELENG_7 first or contact me. The tool bootstrap will fail to build when hosted on RELENG_6. - It should be ABI compatible with CURRENT and RELENG_7. If not, please tell me. - This snapshot extends the basic OpenSolaris DTrace functionality to support: printm(const size_t bufrsize, uintptr_t *memref); where: 'memref' is an an array of 2 uintptr_t entries -- address and size. Usage example: printm(500, memref(mypointer, mysize)); reserves buffer space of 500 bytes to trace memory at address 'mypointer' with size 'mysize'. Both 'mypointer' and 'mysize' can be variables in the D script. By contrast, OpenSolaris only supports tracemem(ptr, const size) where 'size' is fixed at compile time. This is not terribly useful when tracing protocols or variable read sizes where the data indicates how long the memory object is. Target audience: I'd like to get more people involved with running this code. If you just like to follow FreeBSD current and don't even try to contribute stuff back... this snapshot is something you could try. I need some feeback from people who just use FreeBSD-CURRENT. -- John Birrell