Finding a rogue src/sys commit with bisection?
Ian Lepore
ian at FreeBSD.org
Sat Nov 15 18:52:33 UTC 2014
On Sat, 2014-11-15 at 10:43 -0800, 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.
>
I've always used 'svn up -rnnnnnn' to bisect. No need to revert, just
repeatedly update to the next halfway point, and when you're all done,
-rHEAD to get back to normal. I've also had very good results with
using -DNO_CLEAN on kernel bisects, it lets you zoom in quickly then
when you think you have a candidate you can do a more complete
clean-and-rebuild to be sure. Sometimes build glitches will require a
clean rebuild at some bisect points.
-- Ian
More information about the freebsd-current
mailing list