我想在 ubuntu 主线内核上找到一个内核回归(来自kernel-ppa/mainline - Ubuntu 内核) 在 Quantal 3.6.1 和 Quantal 3.6.2 之间。我在 Mint 13 Maya 上构建(基于 Ubuntu Precise。我知道它不是 100% 纯 Ubuntu,但我相信在这种情况下差异不应该影响 Ask Ubuntu 中问题的相关性):
为此,我尝试遵循内核/内核二分法 - Ubuntu Wiki并发出以下命令(3445cb2e52e98dd2413bdc6bcccab475d3871dc1 是 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
最后一个命令返回:
*** 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 <[email protected]>
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 <[email protected]>
Deciphered-by: Andrew Morton <[email protected]>
Signed-off-by: Hugh Dickins <[email protected]>
Acked-by: Mel Gorman <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: Johannes Weiner <[email protected]>
Cc: Michel Lespinasse <[email protected]>
Cc: Ying Han <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
^^^ - 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 (::,)
我怀疑这与我在 Precise 上为 Quantal 构建内核有关。也许此路径不支持这种跨版本构建方案。或者也许教程遗漏了一些内核黑客所熟知的东西,而我不知道。
更新:
我认为我需要devscripts
为安装dch
,但问题仍然存在;我已经更新了输出。
答案1
我在这里更新了操作方法:https://wiki.ubuntu.com/Kernel/KernelBisection#Bisecting_upstream_kernel_versions_to_single_commit
现在它指向https://wiki.ubuntu.com/KernelTeam/GitKernelBuild其效果比之前的说明好得多。
我仍在努力使 GitKernelBuild 页面变得更好,但它将引导您完成整个设置,而不是主线构建。
请让我知道这是否适合您,以及这些文档是否还有其他可以改进的地方。