Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I'd like to locate a kernel regression on ubuntu mainline kernel (from kernel-ppa/mainline - Kernel Ubuntu) between Quantal 3.6.1 and Quantal 3.6.2. I build on Mint 13 Maya (which is based on Ubuntu Precise. I know it is not 100% pure Ubuntu, but I believe that in this case the difference shouldn't influence the relevance of the question in Ask Ubuntu):

For this I tried to follow the Kernel/KernelBisection - Ubuntu Wiki and issued the following commands (3445cb2e52e98dd2413bdc6bcccab475d3871dc1 was the commit returned by git bisect bad):

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-stable
git clone git://kernel.ubuntu.com/ubuntu/kteam-tools.git
PATH=$PATH:/home/adam/tmp/kteam-tools/mainline-build
cd linux-stable
git remote add quantal git://kernel.ubuntu.com/ubuntu/ubuntu-quantal.git
git bisect start
git bisect good v3.6.1
git bisect bad v3.6.2
mainline-build-one 3445cb2e52e98dd2413bdc6bcccab475d3871dc1 quantal

The last command returned:

*** BUILDING: commit:3445cb2e52e98dd2413bdc6bcccab475d3871dc1 series:quantal abinum: ...
full_version<3.6.1>
version<3.6.1>
long<v3.6.1-61-g3445cb2>
abinum<030601>
Checking out files: 100% (8376/8376), done.
Note: checking out 'quantal/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 690e4b7... UBUNTU: Ubuntu-3.5.0-18.29
Deleted branch BUILD.030601 (was a718e9e).
Checking out files: 100% (8540/8540), done.
Previous HEAD position was 690e4b7... UBUNTU: Ubuntu-3.5.0-18.29
Switched to a new branch 'BUILD.030601'
vvv - build head
commit 3445cb2e52e98dd2413bdc6bcccab475d3871dc1
Author: Hugh Dickins <hughd@google.com>
Date:   Mon Oct 8 16:33:14 2012 -0700

    mm: fix invalidate_complete_page2() lock ordering

    commit ec4d9f626d5908b6052c2973f37992f1db52e967 upstream.

    In fuzzing with trinity, lockdep protested "possible irq lock inversion
    dependency detected" when isolate_lru_page() reenabled interrupts while
    still holding the supposedly irq-safe tree_lock:

    invalidate_inode_pages2
      invalidate_complete_page2
        spin_lock_irq(&mapping->tree_lock)
        clear_page_mlock
          isolate_lru_page
            spin_unlock_irq(&zone->lru_lock)

    isolate_lru_page() is correct to enable interrupts unconditionally:
    invalidate_complete_page2() is incorrect to call clear_page_mlock() while
    holding tree_lock, which is supposed to nest inside lru_lock.

    Both truncate_complete_page() and invalidate_complete_page() call
    clear_page_mlock() before taking tree_lock to remove page from radix_tree.
     I guess invalidate_complete_page2() preferred to test PageDirty (again)
    under tree_lock before committing to the munlock; but since the page has
    already been unmapped, its state is already somewhat inconsistent, and no
    worse if clear_page_mlock() moved up.

    Reported-by: Sasha Levin <levinsasha928@gmail.com>
    Deciphered-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: Mel Gorman <mel@csn.ul.ie>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Michel Lespinasse <walken@google.com>
    Cc: Ying Han <yinghan@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
^^^ - build head
[BUILD.030601 73345fb] base packaging
 167 files changed, 133026 insertions(+)
 create mode 100644 debian.master/NOTES
 create mode 100644 debian.master/abi/3.5.0-17.28/abiname
 create mode 100644 debian.master/abi/3.5.0-17.28/amd64/generic
 create mode 100644 debian.master/abi/3.5.0-17.28/amd64/generic.compiler
 create mode 100644 debian.master/abi/3.5.0-17.28/amd64/generic.modules
 create mode 100644 debian.master/abi/3.5.0-17.28/armel/omap
 create mode 100644 debian.master/abi/3.5.0-17.28/armel/omap.compiler
 create mode 100644 debian.master/abi/3.5.0-17.28/armel/omap.modules
 create mode 100644 debian.master/abi/3.5.0-17.28/armhf/highbank
 create mode 100644 debian.master/abi/3.5.0-17.28/armhf/highbank.compiler
 create mode 100644 debian.master/abi/3.5.0-17.28/armhf/highbank.modules
 create mode 100644 debian.master/abi/3.5.0-17.28/armhf/omap
 create mode 100644 debian.master/abi/3.5.0-17.28/armhf/omap.compiler
 create mode 100644 debian.master/abi/3.5.0-17.28/armhf/omap.modules
 create mode 100644 debian.master/abi/3.5.0-17.28/fwinfo
 create mode 100644 debian.master/abi/3.5.0-17.28/i386/generic
 create mode 100644 debian.master/abi/3.5.0-17.28/i386/generic.compiler
 create mode 100644 debian.master/abi/3.5.0-17.28/i386/generic.modules
 create mode 100644 debian.master/abi/3.5.0-17.28/powerpc/powerpc-smp
 create mode 100644 debian.master/abi/3.5.0-17.28/powerpc/powerpc-smp.compiler
 create mode 100644 debian.master/abi/3.5.0-17.28/powerpc/powerpc-smp.modules
 create mode 100644 debian.master/abi/3.5.0-17.28/powerpc/powerpc64-smp
 create mode 100644 debian.master/abi/3.5.0-17.28/powerpc/powerpc64-smp.compiler
 create mode 100644 debian.master/abi/3.5.0-17.28/powerpc/powerpc64-smp.modules
 create mode 100644 debian.master/abi/perm-blacklist
 create mode 100644 debian.master/changelog
 create mode 100644 debian.master/changelog.historical
 create mode 100644 debian.master/config/amd64/config.common.amd64
 create mode 100644 debian.master/config/amd64/config.flavour.generic
 create mode 100644 debian.master/config/annotations
 create mode 100644 debian.master/config/armel/config.common.armel
 create mode 100644 debian.master/config/armel/config.flavour.omap
 create mode 100644 debian.master/config/armhf/config.common.armhf
 create mode 100644 debian.master/config/armhf/config.flavour.highbank
 create mode 100644 debian.master/config/armhf/config.flavour.omap
 create mode 100644 debian.master/config/config.common.ports
 create mode 100644 debian.master/config/config.common.ubuntu
 create mode 100644 debian.master/config/enforce
 create mode 100644 debian.master/config/i386/config.common.i386
 create mode 100644 debian.master/config/i386/config.flavour.generic
 create mode 100644 debian.master/config/powerpc/config.common.powerpc
 create mode 100644 debian.master/config/powerpc/config.flavour.powerpc-smp
 create mode 100644 debian.master/config/powerpc/config.flavour.powerpc64-smp
 create mode 100644 debian.master/config/powerpc/ignore
 create mode 100644 debian.master/config/powerpc/ignore.modules
 create mode 100644 debian.master/config/ppc64/config.common.ppc64
 create mode 100644 debian.master/config/ppc64/config.flavour.powerpc64-smp
 create mode 100644 debian.master/control.d/flavour-control.stub
 create mode 100644 debian.master/control.d/generic.inclusion-list
 create mode 100644 debian.master/control.d/vars.generic
 create mode 100644 debian.master/control.d/vars.highbank
 create mode 100644 debian.master/control.d/vars.omap
 create mode 100644 debian.master/control.d/vars.powerpc-smp
 create mode 100644 debian.master/control.d/vars.powerpc64-smp
 create mode 100644 debian.master/control.stub.in
 create mode 100644 debian.master/copyright
 create mode 100644 debian.master/d-i/exclude-firmware.armel-omap
 create mode 100644 debian.master/d-i/exclude-firmware.armhf-highbank
 create mode 100644 debian.master/d-i/exclude-firmware.armhf-omap
 create mode 100644 debian.master/d-i/exclude-modules.amd64-virtual
 create mode 100644 debian.master/d-i/exclude-modules.armel-omap
 create mode 100644 debian.master/d-i/exclude-modules.armhf-highbank
 create mode 100644 debian.master/d-i/exclude-modules.armhf-omap
 create mode 100644 debian.master/d-i/exclude-modules.i386-virtual
 create mode 100644 debian.master/d-i/exclude-modules.ia64
 create mode 100644 debian.master/d-i/exclude-modules.powerpc
 create mode 100644 debian.master/d-i/exclude-modules.sparc
 create mode 100644 debian.master/d-i/firmware/README.txt
 create mode 100644 debian.master/d-i/firmware/nic-modules
 create mode 100644 debian.master/d-i/firmware/scsi-modules
 create mode 100644 debian.master/d-i/kernel-versions.in
 create mode 100644 debian.master/d-i/modules-powerpc/block-modules
 create mode 100644 debian.master/d-i/modules-powerpc/message-modules
 create mode 100644 debian.master/d-i/modules-powerpc/nic-modules
 create mode 100644 debian.master/d-i/modules-powerpc/scsi-modules
 create mode 100644 debian.master/d-i/modules-powerpc/storage-core-modules
 create mode 100644 debian.master/d-i/modules-sparc/block-modules
 create mode 100644 debian.master/d-i/modules-sparc/message-modules
 create mode 100644 debian.master/d-i/modules/block-modules
 create mode 100644 debian.master/d-i/modules/crypto-modules
 create mode 100644 debian.master/d-i/modules/fat-modules
 create mode 100644 debian.master/d-i/modules/fb-modules
 create mode 100644 debian.master/d-i/modules/firewire-core-modules
 create mode 100644 debian.master/d-i/modules/floppy-modules
 create mode 100644 debian.master/d-i/modules/fs-core-modules
 create mode 100644 debian.master/d-i/modules/fs-secondary-modules
 create mode 100644 debian.master/d-i/modules/input-modules
 create mode 100644 debian.master/d-i/modules/ipmi-modules
 create mode 100644 debian.master/d-i/modules/irda-modules
 create mode 100644 debian.master/d-i/modules/md-modules
 create mode 100644 debian.master/d-i/modules/message-modules
 create mode 100644 debian.master/d-i/modules/mouse-modules
 create mode 100644 debian.master/d-i/modules/multipath-modules
 create mode 100644 debian.master/d-i/modules/nfs-modules
 create mode 100644 debian.master/d-i/modules/nic-modules
 create mode 100644 debian.master/d-i/modules/nic-pcmcia-modules
 create mode 100644 debian.master/d-i/modules/nic-shared-modules
 create mode 100644 debian.master/d-i/modules/nic-usb-modules
 create mode 100644 debian.master/d-i/modules/parport-modules
 create mode 100644 debian.master/d-i/modules/pata-modules
 create mode 100644 debian.master/d-i/modules/pcmcia-modules
 create mode 100644 debian.master/d-i/modules/pcmcia-storage-modules
 create mode 100644 debian.master/d-i/modules/plip-modules
 create mode 100644 debian.master/d-i/modules/ppp-modules
 create mode 100644 debian.master/d-i/modules/sata-modules
 create mode 100644 debian.master/d-i/modules/scsi-modules
 create mode 100644 debian.master/d-i/modules/serial-modules
 create mode 100644 debian.master/d-i/modules/speakup-modules
 create mode 100644 debian.master/d-i/modules/squashfs-modules
 create mode 100644 debian.master/d-i/modules/storage-core-modules
 create mode 100644 debian.master/d-i/modules/usb-modules
 create mode 100644 debian.master/d-i/modules/virtio-modules
 create mode 100644 debian.master/d-i/modules/vlan-modules
 create mode 100644 debian.master/d-i/package-list
 create mode 100644 debian.master/etc/getabis
 create mode 100644 debian.master/etc/kernelconfig
 create mode 100644 debian.master/rules.d/amd64.mk
 create mode 100644 debian.master/rules.d/armel.mk
 create mode 100644 debian.master/rules.d/armhf.mk
 create mode 100644 debian.master/rules.d/i386.mk
 create mode 100644 debian.master/rules.d/powerpc.mk
 create mode 100644 debian.master/rules.d/ppc64.mk
 create mode 100644 debian/commit-templates/bumpabi
 create mode 100644 debian/commit-templates/config-updates
 create mode 100644 debian/commit-templates/external-driver
 create mode 100644 debian/commit-templates/missing-modules
 create mode 100644 debian/commit-templates/newrelease
 create mode 100644 debian/commit-templates/sauce-patch
 create mode 100644 debian/commit-templates/upstream-patch
 create mode 100644 debian/compat
 create mode 100644 debian/control-scripts/headers-postinst
 create mode 100644 debian/control-scripts/postinst
 create mode 100644 debian/control-scripts/postrm
 create mode 100644 debian/control-scripts/preinst
 create mode 100644 debian/control-scripts/prerm
 create mode 100644 debian/debian.env
 create mode 100644 debian/docs/README.inclusion-list
 create mode 100755 debian/rules
 create mode 100644 debian/rules.d/0-common-vars.mk
 create mode 100644 debian/rules.d/1-maintainer.mk
 create mode 100644 debian/rules.d/2-binary-arch.mk
 create mode 100644 debian/rules.d/3-binary-indep.mk
 create mode 100644 debian/rules.d/4-checks.mk
 create mode 100644 debian/rules.d/5-udebs.mk
 create mode 100755 debian/scripts/abi-check
 create mode 100755 debian/scripts/config-check
 create mode 100755 debian/scripts/control-create
 create mode 100755 debian/scripts/link-headers
 create mode 100755 debian/scripts/misc/get-firmware
 create mode 100755 debian/scripts/misc/getabis
 create mode 100755 debian/scripts/misc/git-ubuntu-log
 create mode 100755 debian/scripts/misc/insert-changes.pl
 create mode 100755 debian/scripts/misc/insert-mainline-changes
 create mode 100755 debian/scripts/misc/insert-ubuntu-changes
 create mode 100755 debian/scripts/misc/kernelconfig
 create mode 100755 debian/scripts/misc/retag
 create mode 100755 debian/scripts/misc/splitconfig.pl
 create mode 100755 debian/scripts/module-check
 create mode 100755 debian/scripts/module-inclusion
 create mode 100644 debian/scripts/sub-flavour
 create mode 100644 debian/source/format
 create mode 100644 debian/stamps/keep-dir
 create mode 100644 debian/tests/README
 create mode 100755 debian/tests/check-aliases
 create mode 100644 debian/tools/generic
 create mode 100644 debian/tools/perf
 create mode 100644 debian/tools/turbostat
 create mode 100644 debian/tools/x86_energy_perf_policy
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0001-DISABLE-comedi.patch (drivers/staging/comedi/drivers/das08_cs.c 47a4f33c4733880faa50f0e64a6e5c8f 77bbbfcea08c959f4b17ed4272e0083e) ...
md5sum: drivers/staging/ti-st/st_kim.c: No such file or directory
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0002-DISABLE-ti-st.patch (drivers/staging/ti-st/st_kim.c b41944e0c30683bdedb6a66e11098892 ) ...
md5sum: drivers/staging/hv/hv_mouse.c: No such file or directory
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0003-DISABLE-hyperv.patch (drivers/staging/hv/hv_mouse.c afd5524c29871a8293518f0be50a7474 ) ...
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0004-DISABLE-olpc.patch (drivers/staging/olpc_dcon/olpc_dcon_xo_1.c 13b325ae1aeee7f8602759057ed0d1f9 a8aee429e1dbd6fdf5a8be09dedc7332) ...
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0005-UBUNTU-olpc_dcon_xo_1-needs-delay.h.patch (drivers/staging/olpc_dcon/olpc_dcon_xo_1.c 6a0ae9f73f4878052202473bb952d6e4 a8aee429e1dbd6fdf5a8be09dedc7332) ...
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0006-UBUNTU-olpc_dcon_xo_1_5-needs-delay.h.patch (drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c 55c01b13d520fa0cdde88d8d3034f21c 09a07c715554c64673bd2a5db9ee4cd5) ...
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0007-x86-idle-APM-requires-pm_idle-always-when-it-is-a-mo.patch (arch/x86/kernel/process.c 1ded15dd3a3cb622df182d60160ff826 d2a6ac2dee9787c1beff18733b53b56b) ...
*** checking /home/adam/tmp/kteam-tools/mainline-build/adhoc/0008-UBUNTU-packaging-do-not-fail-secure-copy-on-older-ke.patch (debian/rules.d/2-binary-arch.mk 647c141b53e037781844f0c04234526e cf586e029973c823e501eca040cb73e2) ...
[BUILD.030601 6ba0d7f] debian changelog
 1 file changed, 5 insertions(+), 9042 deletions(-)
 rewrite debian.master/changelog (99%)
precise-amd64: chroot not found (::,)

I suspect it has something to do with the fact, that I build kernel for Quantal on Precise. Maybe this path doesn't support such cross-version building scenario. Or maybe the tutorial missed something obvious to kernel hackers, which I didn't know.

Update:

I figured I need to install the devscripts for the dch, but the problem persists; I've updated the output.

share|improve this question

1 Answer 1

I've updated the howto here: https://wiki.ubuntu.com/Kernel/KernelBisection#Bisecting_upstream_kernel_versions_to_single_commit

Now it points to https://wiki.ubuntu.com/KernelTeam/GitKernelBuild which works much better than the previous instructions.

I'm still working on making the GitKernelBuild page better, but it walks you through the entire setup as opposed to the mainline-build-one.

Please let me know if this works for you and if there is anything else that can be improved about those documents.

share|improve this answer
    
Thank you. I cannot spare much time for this now, but in few weeks I'll try it. –  Adam Ryczkowski Jan 13 '13 at 10:32

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.