From owner-freebsd-current@FreeBSD.ORG Sat Nov 15 18:56:57 2014 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CA8E466F for ; Sat, 15 Nov 2014 18:56:57 +0000 (UTC) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id AB224A59 for ; Sat, 15 Nov 2014 18:56:57 +0000 (UTC) Received: from AlfredMacbookAir.local (c-76-21-10-192.hsd1.ca.comcast.net [76.21.10.192]) by elvis.mu.org (Postfix) with ESMTPSA id 79CDE341F875; Sat, 15 Nov 2014 10:56:50 -0800 (PST) Message-ID: <5467A1F2.8000703@mu.org> Date: Sat, 15 Nov 2014 10:56:50 -0800 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: freebsd-current@freebsd.org, Steve Kargl Subject: Re: Finding a rogue src/sys commit with bisection? References: <20141115184332.GA30344@troutmask.apl.washington.edu> In-Reply-To: <20141115184332.GA30344@troutmask.apl.washington.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18-1 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: Sat, 15 Nov 2014 18:56:58 -0000 On 11/15/14, 10:43 AM, Steve Kargl wrote: > Before I totally hose by /usr/src directory, does anyone > have some guidelines on doing a binary search for a rogue > commit in /usr/src/sys?. Either cam or usb (or acpi?) has > broken the ability to remove a external USB device once it > is plugged into a usb port on my Dell Latitude D530 laptop. > I know that a good kernel can be built with r271273 and > a bad kernel comes from (nearly) top of tree at r274456. > > I assume I need to do somthing along the lines > > % cd /usr/src/sys > % svn merge -r 274456:272864 (half way point between good and bad) > (build kernel and test) > % cd /usr/src/sys > % svn revert -R . > (assume 272864 builds working kernel) > % svn merge -r 274456:273660 (1/2 point between 272864 and 274456). > > Rinse and repeat. > Use git, it has a built in bisector to shake this sort of thing out: git clone --config remote.origin.fetch='+refs/notes/*:refs/notes/*' https://github.com/freebsd/freebsd.git cd freebsd git log # find the hash of the commit for r271273 HASH=the git hash you found # then: git bisect start git bisect bad # Current version is bad git bisect good $HASH Now test compile / etc... Then as things work or don't work you keep running: git bisect good -or- git bisect bad Then compile and test.. you should converge on the problem. -Alfred