Comment # 41 on bug 944659 from
Sorry for the long latency of my response, as I've been traveling often for
now.  And thanks for narrowing down the range.

Up from this point, we need more detailed tests from you: namely, compiling the
kernel by yourself and examining the regression point via git bisect.

As a start, install gcc, git-core and make packages if not yet present.  Then
clone the linux kernel git repo from upstream
  % mkdir /somewhere/kernel
  % cd /somewhere/kernel
  % git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

where /somewhere/kernel is any directory you prefer to put the repo and build.
Note that this will fetch many data from the net.  Then, boot with 3.17 kernel.
 Then, checkout v3.17, and do localconfig.

  % cd /somewhere/kernel/linux
  % git checkout v3.17
  % make localconfig

This might ask you something, and usually just press RETURN for each to choose
the default.  In the end, you'll have ".config" file matching with your running
system.  Edit this file via a text editor and change CONFIG_LOCALVERSION to a
different value, e.g. "-bisect".

After the configuration, do make.  Better to with -j4 or such to build
parallel.
  % make -j4

Once when everything is done, install it.  Be root, then run make install.
  % su
  % make install

Then reboot to this kernel, and confirm that it still works.

The next is to check 3.18 that should be broken.
  % cd /somewhere/kernel/linux
  % git checkout v3.18

At this point, better to backup your old config
  % cp .config .config.3.17
and run make oldconfig again, adjust to 3.18.
  % make oldconfig

Rebuild, reinstall, and retest.  Confirm that 3.18 is really broken.

Now we start git bisection.  Boot any good working kernel.  Maybe good to
backup 3.18 config again before starting git bisection.
  % cd /somewhere/kernel
  % cp .config .config.3.18

OK, here we go.
  % git bisect start
  % git bisect good v3.17
  % git bisect bad v3.18
This will lead you some commit between 3.17 and 3.18.  Do make localconfig,
rebuild, reinstall, and retest.

If this test kernel works, give "git bisect good".  Otherwise reboot with a
working kernel, and give "git bisect bad".  Then git will lead you to yet
another point, and you rebuild, reinstall and retest.

Repeat this until you hit the regression point.  You can see the current
bisection process at any time via "git bisect log".

Note that git bisect sometimes jumps to an old kernel version suddenly.  This
is normal, as the commit is actually based on that version.  So, at installing
and testing the kernel, be careful which kernel you're testing.

While testing, you can remove the old installed kernels.  I don't know a good
default way for that, but you can just remove /lib/modules/$VERSION directory
as well as /boot/vmlinuz-$VERSION, /boot/initrd-$VERSION and
/boot/System.map-$VERSION.  After cleaning up, run below as root

   /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg

to refresh the GRUB menu.

Oh, and after the bisection is done, run "git bisect reset" to reset the
bisection state.   Don't forget to save your bisection procedure from "git
bisect log" beforehand.


You are receiving this mail because: