There have been a bunch of requests over time to off non-debug builds of the rawhide kernel for people wanting to do performance regression testing etc
We could do this two ways.
- The notion that was put forward was to keep 'kernel' as being debug mode, and add a 'kernel-nodebug'. So it's sort of the inverse of the releases.
- Stop making rawhide 'debug by default', and just start shipping kernel-debug for rawhide as we do for releases.
The latter involves less uglification of the spec, but we're probably going to lose a lot of testing if people aren't going to be running kernel-debug by default. (How many reports do we get from kernel-debug users ? Not many).
thoughts?
Dave
On Wed, 2010-09-22 at 13:27 -0400, Dave Jones wrote:
There have been a bunch of requests over time to off non-debug builds of the rawhide kernel for people wanting to do performance regression testing etc
We could do this two ways.
The notion that was put forward was to keep 'kernel' as being debug mode, and add a 'kernel-nodebug'. So it's sort of the inverse of the releases.
Stop making rawhide 'debug by default', and just start shipping kernel-debug for rawhide as we do for releases.
The latter involves less uglification of the spec, but we're probably going to lose a lot of testing if people aren't going to be running kernel-debug by default. (How many reports do we get from kernel-debug users ? Not many).
thoughts?
I'd like to see a "kernel-server" package that could be used for testing. I suggest in any case, leaving debug on and having a non-debug kernel variant for those wanting to test (and also to test if there's a problem with debugging options turned on).
Jon.
On Wed, Sep 22, 2010 at 5:33 PM, Jon Masters jcm@redhat.com wrote:
On Wed, 2010-09-22 at 13:27 -0400, Dave Jones wrote:
There have been a bunch of requests over time to off non-debug builds of the rawhide kernel for people wanting to do performance regression testing etc
We could do this two ways.
- The notion that was put forward was to keep 'kernel' as being debug mode,
and add a 'kernel-nodebug'. So it's sort of the inverse of the releases.
- Stop making rawhide 'debug by default', and just start shipping kernel-debug
for rawhide as we do for releases.
The latter involves less uglification of the spec, but we're probably going to lose a lot of testing if people aren't going to be running kernel-debug by default. (How many reports do we get from kernel-debug users ? Not many).
thoughts?
I'd like to see a "kernel-server" package that could be used for testing.
What the hell are you talking about, and what does it have to do with what Dave asked?
I'd like to see a kernel-embedded-ppc-without-float-but-with-ATI-KMS-module-built-in-with-ponies. See, I can spout random crap too.
josh
Dave Jones davej-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org writes:
There have been a bunch of requests over time to off non-debug builds of the rawhide kernel for people wanting to do performance regression testing etc
We could do this two ways.
- The notion that was put forward was to keep 'kernel' as being debug mode, and add a 'kernel-nodebug'. [...]
- Stop making rawhide 'debug by default', [...]
The latter involves less uglification of the spec, but we're probably going to lose a lot of testing if people aren't going to be running kernel-debug by default.kk
Can you switch to the latter, from a kernel spec point of view, but change the installer/anaconda to default to the kernel-debug kernel for rawhide?
- FChE
On Wed, Sep 22, 2010 at 01:27:40PM -0400, Dave Jones wrote:
- The notion that was put forward was to keep 'kernel' as being debug mode, and add a 'kernel-nodebug'. So it's sort of the inverse of the releases.
So this is how ugly it looks. Kinda. (untested, other than looking at the generated configs, so I may have missed some %build parts in the spec), and there's some logic missing to flip-flop between release/rawhide.
The biggest pain was due to the fact we munge the nodebug template to be a debug file. This always was kinda heinous, so this patch also stops doing that. Now config-debug and config-nodebug are never modified automatically. To achieve the right effect that this hack used to perform, we need that missing flip-flop I just mentioned in the temp-generic stanza of Makefile.config
I dunno. at this point, I'm torn over whether to keep pushing in this direction. The spec is already getting ugly with all those damn %defines.
oh, and I conveniently forgot about ppc-nodebug for now. It's trivial, but I didn't want to bloat this up even more than it already is for purposes of review.
any comments?
Dave
diff --git a/Makefile b/Makefile index bb2c37b..bc84b72 100644 --- a/Makefile +++ b/Makefile @@ -26,74 +26,7 @@ endif prep: fedpkg -v prep --arch=$(PREPARCH)
-extremedebug: - @perl -pi -e 's/# CONFIG_DEBUG_PAGEALLOC is not set/CONFIG_DEBUG_PAGEALLOC=y/' config-nodebug - debug: - @perl -pi -e 's/# CONFIG_SLUB_DEBUG_ON is not set/CONFIG_SLUB_DEBUG_ON=y/' config-nodebug - @perl -pi -e 's/# CONFIG_LOCK_STAT is not set/CONFIG_LOCK_STAT=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_STACK_USAGE is not set/CONFIG_DEBUG_STACK_USAGE=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_SLAB is not set/CONFIG_DEBUG_SLAB=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_MUTEXES is not set/CONFIG_DEBUG_MUTEXES=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_RT_MUTEXES is not set/CONFIG_DEBUG_RT_MUTEXES=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_RWSEMS is not set/CONFIG_DEBUG_RWSEMS=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_LOCK_ALLOC is not set/CONFIG_DEBUG_LOCK_ALLOC=y/' config-nodebug - @perl -pi -e 's/# CONFIG_PROVE_LOCKING is not set/CONFIG_PROVE_LOCKING=y/' config-nodebug - @perl -pi -e 's/# CONFIG_PROVE_RCU is not set/CONFIG_PROVE_RCU=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_SPINLOCK is not set/CONFIG_DEBUG_SPINLOCK=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_VM is not set/CONFIG_DEBUG_VM=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_SLEEP_IN_IRQ is not set/CONFIG_DEBUG_SLEEP_IN_IRQ=y/' config-nodebug - @perl -pi -e 's/# CONFIG_FAULT_INJECTION is not set/CONFIG_FAULT_INJECTION=y/' config-nodebug - @perl -pi -e 's/# CONFIG_FAILSLAB is not set/CONFIG_FAILSLAB=y/' config-nodebug - @perl -pi -e 's/# CONFIG_FAIL_PAGE_ALLOC is not set/CONFIG_FAIL_PAGE_ALLOC=y/' config-nodebug - @perl -pi -e 's/# CONFIG_FAIL_IO_TIMEOUT is not set/CONFIG_FAIL_IO_TIMEOUT=y/' config-nodebug - @perl -pi -e 's/# CONFIG_FAIL_MAKE_REQUEST is not set/CONFIG_FAIL_MAKE_REQUEST=y/' config-nodebug - @perl -pi -e 's/# CONFIG_FAULT_INJECTION_DEBUG_FS is not set/CONFIG_FAULT_INJECTION_DEBUG_FS=y/' config-nodebug - @perl -pi -e 's/# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set/CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_SG is not set/CONFIG_DEBUG_SG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_WRITECOUNT is not set/CONFIG_DEBUG_WRITECOUNT=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_OBJECTS is not set/CONFIG_DEBUG_OBJECTS=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_OBJECTS_FREE is not set/CONFIG_DEBUG_OBJECTS_FREE=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_OBJECTS_TIMERS is not set/CONFIG_DEBUG_OBJECTS_TIMERS=y/' config-nodebug - @perl -pi -e 's/# CONFIG_X86_PTDUMP is not set/CONFIG_X86_PTDUMP=y/' config-nodebug - @perl -pi -e 's/# CONFIG_CAN_DEBUG_DEVICES is not set/CONFIG_CAN_DEBUG_DEVICES=y/' config-nodebug - @perl -pi -e 's/# CONFIG_MODULE_FORCE_UNLOAD is not set/CONFIG_MODULE_FORCE_UNLOAD=y/' config-nodebug - @perl -pi -e 's/# CONFIG_SYSCTL_SYSCALL_CHECK is not set/CONFIG_SYSCTL_SYSCALL_CHECK=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_NOTIFIERS is not set/CONFIG_DEBUG_NOTIFIERS=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DMA_API_DEBUG is not set/CONFIG_DMA_API_DEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_PM_TEST_SUSPEND is not set/CONFIG_PM_TEST_SUSPEND=y/' config-generic - @perl -pi -e 's/# CONFIG_PM_ADVANCED_DEBUG is not set/CONFIG_PM_ADVANCED_DEBUG=y/' config-generic - @perl -pi -e 's/# CONFIG_BOOT_TRACER is not set/CONFIG_BOOT_TRACER=y/' config-generic - @perl -pi -e 's/# CONFIG_B43_DEBUG is not set/CONFIG_B43_DEBUG=y/' config-generic - @perl -pi -e 's/# CONFIG_B43LEGACY_DEBUG is not set/CONFIG_B43LEGACY_DEBUG=y/' config-generic - @perl -pi -e 's/# CONFIG_MMIOTRACE is not set/CONFIG_MMIOTRACE=y/' config-nodebug - @perl -pi -e 's/CONFIG_STRIP_ASM_SYMS=y/# CONFIG_STRIP_ASM_SYMS is not set/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_CREDENTIALS is not set/CONFIG_DEBUG_CREDENTIALS=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set/CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y/' config-nodebug - @perl -pi -e 's/# CONFIG_ACPI_DEBUG is not set/CONFIG_ACPI_DEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_EXT4_DEBUG is not set/CONFIG_EXT4_DEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_PERF_USE_VMALLOC is not set/CONFIG_DEBUG_PERF_USE_VMALLOC=y/' config-nodebug - @perl -pi -e 's/# CONFIG_JBD2_DEBUG is not set/CONFIG_JBD2_DEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_CFQ_IOSCHED is not set/CONFIG_DEBUG_CFQ_IOSCHED=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DRBD_FAULT_INJECTION is not set/CONFIG_DRBD_FAULT_INJECTION=y/' config-nodebug - @perl -pi -e 's/# CONFIG_ATH_DEBUG is not set/CONFIG_ATH_DEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/CONFIG_IWLWIFI_DEVICE_TRACING=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_OBJECTS_WORK is not set/CONFIG_DEBUG_OBJECTS_WORK=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DMADEVICES_DEBUG is not set/CONFIG_DMADEVICES_DEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_DMADEVICES_VDEBUG is not set/CONFIG_DMADEVICES_VDEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_CEPH_FS_PRETTYDEBUG is not set/CONFIG_CEPH_FS_PRETTYDEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_QUOTA_DEBUG is not set/CONFIG_QUOTA_DEBUG=y/' config-nodebug - @perl -pi -e 's/# CONFIG_KGDB_KDB is not set/CONFIG_KGDB_KDB=y/' config-nodebug - @perl -pi -e 's/# CONFIG_KDB_KEYBOARD is not set/CONFIG_KDB_KEYBOARD=y/' config-nodebug - @perl -pi -e 's/# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set/CONFIG_CPU_NOTIFIER_ERROR_INJECT=m/' config-nodebug - @perl -pi -e 's/# CONFIG_DEBUG_PER_CPU_MAPS is not set/CONFIG_DEBUG_PER_CPU_MAPS=y/' config-nodebug - @perl -pi -e 's/CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y/# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set/' config-nodebug - #@perl -pi -e 's/# CONFIG_PCI_DEFAULT_USE_CRS is not set/CONFIG_PCI_DEFAULT_USE_CRS=y/' config-nodebug - - @# just in case we're going from extremedebug -> debug - @perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-nodebug - @perl -pi -e 's/CONFIG_NR_CPUS=256/CONFIG_NR_CPUS=512/' config-x86_64-generic
@perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec @@ -102,70 +35,6 @@ debug: nodebug: release @perl -pi -e 's/^%define debugbuildsenabled 1/%define debugbuildsenabled 0/' kernel.spec release: - @perl -pi -e 's/CONFIG_SLUB_DEBUG_ON=y/# CONFIG_SLUB_DEBUG_ON is not set/' config-nodebug - @perl -pi -e 's/CONFIG_LOCK_STAT=y/# CONFIG_LOCK_STAT is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_STACK_USAGE=y/# CONFIG_DEBUG_STACK_USAGE is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_SLAB=y/# CONFIG_DEBUG_SLAB is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_MUTEXES=y/# CONFIG_DEBUG_MUTEXES is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_RT_MUTEXES=y/# CONFIG_DEBUG_RT_MUTEXES is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_RWSEMS=y/# CONFIG_DEBUG_RWSEMS is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_LOCK_ALLOC=y/# CONFIG_DEBUG_LOCK_ALLOC is not set/' config-nodebug - @perl -pi -e 's/CONFIG_PROVE_LOCKING=y/# CONFIG_PROVE_LOCKING is not set/' config-nodebug - @perl -pi -e 's/CONFIG_PROVE_RCU=y/# CONFIG_PROVE_RCU is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_SPINLOCK=y/# CONFIG_DEBUG_SPINLOCK is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_VM=y/# CONFIG_DEBUG_VM is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_SLEEP_IN_IRQ=y/# CONFIG_DEBUG_SLEEP_IN_IRQ is not set/' config-nodebug - @perl -pi -e 's/CONFIG_FAULT_INJECTION=y/# CONFIG_FAULT_INJECTION is not set/' config-nodebug - @perl -pi -e 's/CONFIG_FAILSLAB=y/# CONFIG_FAILSLAB is not set/' config-nodebug - @perl -pi -e 's/CONFIG_FAIL_PAGE_ALLOC=y/# CONFIG_FAIL_PAGE_ALLOC is not set/' config-nodebug - @perl -pi -e 's/CONFIG_FAIL_IO_TIMEOUT=y/# CONFIG_FAIL_IO_TIMEOUT is not set/' config-nodebug - @perl -pi -e 's/CONFIG_FAIL_MAKE_REQUEST=y/# CONFIG_FAIL_MAKE_REQUEST is not set/' config-nodebug - @perl -pi -e 's/CONFIG_FAULT_INJECTION_DEBUG_FS=y/# CONFIG_FAULT_INJECTION_DEBUG_FS is not set/' config-nodebug - @perl -pi -e 's/CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y/# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_SG=y/# CONFIG_DEBUG_SG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_WRITECOUNT=y/# CONFIG_DEBUG_WRITECOUNT is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_OBJECTS=y/# CONFIG_DEBUG_OBJECTS is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_OBJECTS_FREE=y/# CONFIG_DEBUG_OBJECTS_FREE is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_OBJECTS_TIMERS=y/# CONFIG_DEBUG_OBJECTS_TIMERS is not set/' config-nodebug - @perl -pi -e 's/CONFIG_X86_PTDUMP=y/# CONFIG_X86_PTDUMP is not set/' config-nodebug - @perl -pi -e 's/CONFIG_CAN_DEBUG_DEVICES=y/# CONFIG_CAN_DEBUG_DEVICES is not set/' config-nodebug - @perl -pi -e 's/CONFIG_MODULE_FORCE_UNLOAD=y/# CONFIG_MODULE_FORCE_UNLOAD is not set/' config-nodebug - @perl -pi -e 's/CONFIG_SYSCTL_SYSCALL_CHECK=y/# CONFIG_SYSCTL_SYSCALL_CHECK is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_NOTIFIERS=y/# CONFIG_DEBUG_NOTIFIERS is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DMA_API_DEBUG=y/# CONFIG_DMA_API_DEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_PM_TEST_SUSPEND=y/#\ CONFIG_PM_TEST_SUSPEND\ is\ not\ set/' config-generic - @perl -pi -e 's/CONFIG_PM_ADVANCED_DEBUG=y/#\ CONFIG_PM_ADVANCED_DEBUG\ is\ not\ set/' config-generic - @perl -pi -e 's/CONFIG_BOOT_TRACER=y/#\ CONFIG_BOOT_TRACER\ is\ not\ set/' config-generic - @perl -pi -e 's/CONFIG_B43_DEBUG=y/# CONFIG_B43_DEBUG is not set/' config-generic - @perl -pi -e 's/CONFIG_B43LEGACY_DEBUG=y/# CONFIG_B43LEGACY_DEBUG is not set/' config-generic - @perl -pi -e 's/CONFIG_MMIOTRACE=y/# CONFIG_MMIOTRACE is not set/' config-nodebug - @perl -pi -e 's/# CONFIG_STRIP_ASM_SYMS is not set/CONFIG_STRIP_ASM_SYMS=y/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_CREDENTIALS=y/# CONFIG_DEBUG_CREDENTIALS is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y/# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set/' config-nodebug - @perl -pi -e 's/CONFIG_ACPI_DEBUG=y/# CONFIG_ACPI_DEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_EXT4_DEBUG=y/# CONFIG_EXT4_DEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_PERF_USE_VMALLOC=y/# CONFIG_DEBUG_PERF_USE_VMALLOC is not set/' config-nodebug - @perl -pi -e 's/CONFIG_JBD2_DEBUG=y/# CONFIG_JBD2_DEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_CFQ_IOSCHED=y/# CONFIG_DEBUG_CFQ_IOSCHED is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DRBD_FAULT_INJECTION=y/# CONFIG_DRBD_FAULT_INJECTION is not set/' config-nodebug - @perl -pi -e 's/CONFIG_ATH_DEBUG=y/# CONFIG_ATH_DEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_IWLWIFI_DEVICE_TRACING=y/# CONFIG_IWLWIFI_DEVICE_TRACING is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_OBJECTS_WORK=y/# CONFIG_DEBUG_OBJECTS_WORK is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y/# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DMADEVICES_DEBUG=y/# CONFIG_DMADEVICES_DEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DMADEVICES_VDEBUG=y/# CONFIG_DMADEVICES_VDEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_CEPH_FS_PRETTYDEBUG=y/# CONFIG_CEPH_FS_PRETTYDEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_QUOTA_DEBUG=y/# CONFIG_QUOTA_DEBUG is not set/' config-nodebug - @perl -pi -e 's/CONFIG_CPU_NOTIFIER_ERROR_INJECT=m/# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set/' config-nodebug - #@perl -pi -e 's/CONFIG_KGDB_KDB=y/# CONFIG_KGDB_KDB is not set/' config-nodebug - #@perl -pi -e 's/CONFIG_KDB_KEYBOARD=y/# CONFIG_KDB_KEYBOARD is not set/' config-nodebug - @perl -pi -e 's/CONFIG_DEBUG_PER_CPU_MAPS=y/# CONFIG_DEBUG_PER_CPU_MAPS is not set/' config-nodebug - @perl -pi -e 's/# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set/CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y/' config-nodebug - #@perl -pi -e 's/CONFIG_PCI_DEFAULT_USE_CRS=y/# CONFIG_PCI_DEFAULT_USE_CRS is not set/' config-nodebug - - @perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-debug - @perl -pi -e 's/CONFIG_DEBUG_PAGEALLOC=y/# CONFIG_DEBUG_PAGEALLOC is not set/' config-nodebug - @perl -pi -e 's/CONFIG_NR_CPUS=512/CONFIG_NR_CPUS=256/' config-x86_64-generic
@perl -pi -e 's/^%define debugbuildsenabled 0/%define debugbuildsenabled 1/' kernel.spec diff --git a/Makefile.config b/Makefile.config index 53812fa..1e7d23c 100644 --- a/Makefile.config +++ b/Makefile.config @@ -5,9 +5,9 @@ CFG = kernel-$(VERSION)
CONFIGFILES = \ - $(CFG)-i686.config $(CFG)-i686-debug.config \ - $(CFG)-i686-PAE.config $(CFG)-i686-PAEdebug.config \ - $(CFG)-x86_64.config $(CFG)-x86_64-debug.config \ + $(CFG)-i686.config $(CFG)-i686-debug.config $(CFG)-i686-nodebug.config \ + $(CFG)-i686-PAE.config $(CFG)-i686-PAEdebug.config $(CFG)-i686-PAEnodebug.config \ + $(CFG)-x86_64.config $(CFG)-x86_64-debug.config $(CFG)-x86_64-nodebug.config \ $(CFG)-s390x.config $(CFG)-arm.config \ $(CFG)-ppc.config $(CFG)-ppc-smp.config \ $(CFG)-sparc64.config \ @@ -26,24 +26,34 @@ configs: $(CONFIGFILES) clean :: @rm -fv $(CONFIGFILES) $(TEMPFILES) temp-generic kernel-$(VERSION)*config
+# FIXME: the following needs to flip between configdebug/nodebug depending on if we're rawhide/release temp-generic: config-generic - cat config-generic config-nodebug > temp-generic + cat config-generic config-debug > temp-generic
temp-debug-generic: config-generic cat config-generic config-debug > temp-debug-generic
+temp-nodebug-generic: config-generic + cat config-generic config-nodebug > temp-nodebug-generic + temp-x86-generic: config-x86-generic temp-generic perl merge.pl $^ > $@
temp-x86-debug-generic: config-x86-generic temp-debug-generic perl merge.pl $^ > $@
+temp-x86-nodebug-generic: config-x86-generic temp-nodebug-generic + perl merge.pl $^ > $@ + temp-x86_64-generic: config-x86_64-generic temp-generic perl merge.pl $^ > $@
temp-x86_64-debug-generic: config-x86_64-generic temp-debug-generic perl merge.pl $^ > $@
+temp-x86_64-nodebug-generic: config-x86_64-generic temp-nodebug-generic + perl merge.pl $^ > $@ + temp-sparc64-generic: config-sparc64-generic temp-generic perl merge.pl $^ > $@
@@ -68,18 +78,27 @@ kernel-$(VERSION)-i686-PAE.config: config-i686-PAE temp-x86-generic kernel-$(VERSION)-i686-PAEdebug.config: config-i686-PAE temp-x86-debug-generic perl merge.pl $^ i386 > $@
+kernel-$(VERSION)-i686-PAEnodebug.config: config-i686-PAE temp-x86-nodebug-generic + perl merge.pl $^ i386 > $@ + kernel-$(VERSION)-i686.config: /dev/null temp-x86-generic perl merge.pl $^ i386 > $@
kernel-$(VERSION)-i686-debug.config: /dev/null temp-x86-debug-generic perl merge.pl $^ i386 > $@
+kernel-$(VERSION)-i686-nodebug.config: /dev/null temp-x86-nodebug-generic + perl merge.pl $^ i386 > $@ + kernel-$(VERSION)-x86_64.config: /dev/null temp-x86_64-generic perl merge.pl $^ x86_64 > $@
kernel-$(VERSION)-x86_64-debug.config: /dev/null temp-x86_64-debug-generic perl merge.pl $^ x86_64 > $@
+kernel-$(VERSION)-x86_64-nodebug.config: /dev/null temp-x86_64-nodebug-generic + perl merge.pl $^ x86_64 > $@ + kernel-$(VERSION)-sparc64.config: /dev/null temp-sparc64-generic perl merge.pl $^ sparc64 > $@
diff --git a/config-debug b/config-debug index 12f8e11..59b627f 100644 --- a/config-debug +++ b/config-debug @@ -93,3 +93,5 @@ CONFIG_QUOTA_DEBUG=y
CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y + +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y diff --git a/config-nodebug b/config-nodebug index dac3095..ea82494 100644 --- a/config-nodebug +++ b/config-nodebug @@ -2,94 +2,95 @@ CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y CONFIG_SND_PCM_XRUN_DEBUG=y
-CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_LOCK_ALLOC=y -CONFIG_PROVE_LOCKING=y -CONFIG_DEBUG_VM=y -CONFIG_DEBUG_SPINLOCK=y -CONFIG_PROVE_RCU=y +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_PROVE_RCU is not set # CONFIG_PROVE_RCU_REPEATEDLY is not set -CONFIG_DEBUG_PER_CPU_MAPS=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_CPUMASK_OFFSTACK=y
-CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
-CONFIG_FAULT_INJECTION=y -CONFIG_FAILSLAB=y -CONFIG_FAIL_PAGE_ALLOC=y -CONFIG_FAIL_MAKE_REQUEST=y -CONFIG_FAULT_INJECTION_DEBUG_FS=y -CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y -CONFIG_FAIL_IO_TIMEOUT=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +# CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set +# CONFIG_FAIL_IO_TIMEOUT is not set
-CONFIG_SLUB_DEBUG_ON=y +# CONFIG_SLUB_DEBUG_ON is not set
-CONFIG_LOCK_STAT=y +# CONFIG_LOCK_STAT is not set
-CONFIG_DEBUG_STACK_USAGE=y +# CONFIG_DEBUG_STACK_USAGE is not set
-CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
-CONFIG_DEBUG_SG=y +# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_DEBUG_WRITECOUNT=y -CONFIG_DEBUG_OBJECTS=y +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_OBJECTS is not set # CONFIG_DEBUG_OBJECTS_SELFTEST is not set -CONFIG_DEBUG_OBJECTS_FREE=y -CONFIG_DEBUG_OBJECTS_TIMERS=y +# CONFIG_DEBUG_OBJECTS_FREE is not set +# CONFIG_DEBUG_OBJECTS_TIMERS is not set CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1
-CONFIG_X86_PTDUMP=y +# CONFIG_X86_PTDUMP is not set
-CONFIG_CAN_DEBUG_DEVICES=y +# CONFIG_CAN_DEBUG_DEVICES is not set
-CONFIG_MODULE_FORCE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y +# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-CONFIG_DEBUG_NOTIFIERS=y +# CONFIG_DEBUG_NOTIFIERS is not set
-CONFIG_DMA_API_DEBUG=y +# CONFIG_DMA_API_DEBUG is not set
-CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE is not set
-CONFIG_DEBUG_CREDENTIALS=y +# CONFIG_DEBUG_CREDENTIALS is not set
# off in both production debug and nodebug builds, # on in rawhide nodebug builds -CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-CONFIG_EXT4_DEBUG=y +# CONFIG_EXT4_DEBUG is not set
-CONFIG_DEBUG_PERF_USE_VMALLOC=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_JBD2_DEBUG=y +# CONFIG_JBD2_DEBUG is not set
-CONFIG_DEBUG_CFQ_IOSCHED=y +# CONFIG_DEBUG_CFQ_IOSCHED is not set
-CONFIG_DRBD_FAULT_INJECTION=y +# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_ATH_DEBUG=y -CONFIG_IWLWIFI_DEVICE_TRACING=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_IWLWIFI_DEVICE_TRACING is not set
-CONFIG_DEBUG_OBJECTS_WORK=y -CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y +# CONFIG_DEBUG_OBJECTS_WORK is not set +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
-CONFIG_DMADEVICES_DEBUG=y -CONFIG_DMADEVICES_VDEBUG=y +# CONFIG_DMADEVICES_DEBUG is not set +# CONFIG_DMADEVICES_VDEBUG is not set
CONFIG_PM_ADVANCED_DEBUG=y
-CONFIG_CEPH_FS_PRETTYDEBUG=y -CONFIG_QUOTA_DEBUG=y - -# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +# CONFIG_CEPH_FS_PRETTYDEBUG is not set +# CONFIG_QUOTA_DEBUG is not set
# CONFIG_PCI_DEFAULT_USE_CRS is not set
CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y + +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set + diff --git a/kernel.spec b/kernel.spec index 89fc461..efa874d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -151,6 +151,14 @@ Summary: The Linux kernel # See also 'make debug' and 'make release'. %define debugbuildsenabled 0
+%if 0%{debugbuildsenabled} +%define with_nodebug 0 +%define with_pae_nodebug 0 +%else +%define with_nodebug 1 +%define with_pae_nodebug 1 +%endif + # Want to build a vanilla kernel build without any non-upstream patches? %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
@@ -885,6 +893,16 @@ This variant of the kernel has numerous debugging options enabled. It should only be installed when trying to gather additional information on kernel bugs, as some of these options impact performance noticably.
+%define variant_summary The Linux kernel compiled with debugging disabled for PAE capable machines +%kernel_variant_package PAEnodebug +Obsoletes: kernel-PAE-nodebug +%description PAEnodebug +This package includes a version of the Linux kernel with support for up to +64GB of high memory. It requires a CPU with Physical Address Extensions (PAE). +The non-PAE kernel can only address up to 4GB of memory. +Install the kernel-PAE package if your machine has more than 4GB of memory. + +This variant of the kernel has numerous debugging options disabled.
%define variant_summary The Linux kernel compiled with extra debugging enabled %kernel_variant_package debug @@ -898,6 +916,16 @@ This variant of the kernel has numerous debugging options enabled. It should only be installed when trying to gather additional information on kernel bugs, as some of these options impact performance noticably.
+%define variant_summary The Linux kernel compiled with debugging disabled +%kernel_variant_package nodebug +%description nodebug +The kernel package contains the Linux kernel (vmlinuz), the core of any +Linux operating system. The kernel handles the basic functions +of the operating system: memory allocation, process allocation, device +input and output, etc. + +This variant of the kernel has numerous debugging options disabled. +
%prep # do a few sanity-checks for --with *only builds @@ -1346,7 +1374,8 @@ for cfg in kernel-%{version}-*.config; do done
%if !%{debugbuildsenabled} -rm -f kernel-%{version}-*debug.config +rm -f kernel-%{version}-*-debug.config +rm -f kernel-%{version}-*-PAEdebug.config %endif
# now run oldconfig over all the config files @@ -1610,10 +1639,18 @@ cd linux-%{kversion}.%{_target_cpu} BuildKernel %make_target %kernel_image debug %endif
+%if %{with_nodebug} +BuildKernel %make_target %kernel_image nodebug +%endif + %if %{with_pae_debug} BuildKernel %make_target %kernel_image PAEdebug %endif
+%if %{with_pae_nodebug} +BuildKernel %make_target %kernel_image PAEnodebug +%endif + %if %{with_pae} BuildKernel %make_target %kernel_image PAE %endif @@ -1913,8 +1950,10 @@ fi %kernel_variant_files %{with_up} %kernel_variant_files %{with_smp} smp %kernel_variant_files %{with_debug} debug +%kernel_variant_files %{with_nodebug} nodebug %kernel_variant_files %{with_pae} PAE %kernel_variant_files %{with_pae_debug} PAEdebug +%kernel_variant_files %{with_pae_nodebug} PAEnodebug
# plz don't put in a version string unless you're going to tag # and build.
On Thu, Sep 23, 2010 at 11:24:54PM -0400, Dave Jones wrote:
I dunno. at this point, I'm torn over whether to keep pushing in this direction. The spec is already getting ugly with all those damn %defines.
If everyone is going to end up running -nodebug, and we're going to keep asking them to reproduce on the debug variant, what's the point of not just continuing as we're doing now?
Having people flip flop between -nodebug and default between release and not is just silly, we might as well just use -nodebug by default all the time. (I mean, really, the amount of useful stuff that -debug has caught versus the sheer amount of noise it generates is just ridiculous.)
Alternately, since we now have no-frozen-rawhide, maybe we just institute a policy where rawhide runs with -debug on permanently, and we flip the switch when we branch on released kernels. 90% of the benefits from -debug will get caught then, and the other 10% wouldn't've got caught anyway since the bugs won't even be found until three weeks after release when there's now a couple hundred thousand people running it.
--Kyle.
On Sep 24, 2010, at 12:34 AM, Kyle McMartin kyle@mcmartin.ca wrote:
On Thu, Sep 23, 2010 at 11:24:54PM -0400, Dave Jones wrote:
I dunno. at this point, I'm torn over whether to keep pushing in this direction. The spec is already getting ugly with all those damn %defines.
If everyone is going to end up running -nodebug, and we're going to keep asking them to reproduce on the debug variant, what's the point of not just continuing as we're doing now?
Having people flip flop between -nodebug and default between release and not is just silly, we might as well just use -nodebug by default all the time. (I mean, really, the amount of useful stuff that -debug has caught versus the sheer amount of noise it generates is just ridiculous.)
Alternately, since we now have no-frozen-rawhide, maybe we just institute a policy where rawhide runs with -debug on permanently, and we flip the switch when we branch on released kernels. 90% of the benefits from -debug will get caught then, and the other 10% wouldn't've got caught anyway since the bugs won't even be found until three weeks after release when there's now a couple hundred thousand people running it.
I think I'm with Kyle here, leave rawhide always debug and go split at branch time. Competent bug reporters will happily grab kernel-debug if required, perf people won't test until branch time most of the time anyway, I suspect. Less people running a debug-enabled kernel without realizing it (eg, F14 base kernels up until earlier today) could help SNR too.
On 09/23/2010 11:48 PM, Jarod Wilson wrote:
On Sep 24, 2010, at 12:34 AM, Kyle McMartin kyle@mcmartin.ca wrote:
On Thu, Sep 23, 2010 at 11:24:54PM -0400, Dave Jones wrote:
I dunno. at this point, I'm torn over whether to keep pushing in this direction. The spec is already getting ugly with all those damn %defines.
If everyone is going to end up running -nodebug, and we're going to keep asking them to reproduce on the debug variant, what's the point of not just continuing as we're doing now?
Having people flip flop between -nodebug and default between release and not is just silly, we might as well just use -nodebug by default all the time. (I mean, really, the amount of useful stuff that -debug has caught versus the sheer amount of noise it generates is just ridiculous.)
Alternately, since we now have no-frozen-rawhide, maybe we just institute a policy where rawhide runs with -debug on permanently, and we flip the switch when we branch on released kernels. 90% of the benefits from -debug will get caught then, and the other 10% wouldn't've got caught anyway since the bugs won't even be found until three weeks after release when there's now a couple hundred thousand people running it.
I think I'm with Kyle here, leave rawhide always debug and go split at branch time. Competent bug reporters will happily grab kernel-debug if required, perf people won't test until branch time most of the time anyway, I suspect. Less people running a debug-enabled kernel without realizing it (eg, F14 base kernels up until earlier today) could help SNR too.
Well, I had originally floated this idea when wishing for more (performance) testing closer to upstream, and I thought that for some corners of the testing universe, having packaged prerelease/upstream kernels in rawhide would be good for that, if they weren't bogged down by tons of debug options.
But I also said something like "but we don't have to go forward with this until we actually have some plan to use the nondebug variants." :)
-Eric
On 22/09/10 18:27, Dave Jones wrote:
There have been a bunch of requests over time to off non-debug builds of the rawhide kernel for people wanting to do performance regression testing etc
We could do this two ways.
The notion that was put forward was to keep 'kernel' as being debug mode, and add a 'kernel-nodebug'. So it's sort of the inverse of the releases.
Stop making rawhide 'debug by default', and just start shipping kernel-debug for rawhide as we do for releases.
As a non-dev, the main problem with kernel-debug, is it's size in F14 updates-testing currently it's 248mb, annd k-dbg-common 35mb?
1: Can the size be made comparable to Rawhide-kernel (switched on). 2: make a push for deltas in the case of kerrnel-debug. 3: Have a --nodebug boot up argument.
<snip>
On Sep 26, 2010, at 4:12 AM, Frank Murphy frankly3d@gmail.com wrote:
On 22/09/10 18:27, Dave Jones wrote:
There have been a bunch of requests over time to off non-debug builds of the rawhide kernel for people wanting to do performance regression testing etc
We could do this two ways.
The notion that was put forward was to keep 'kernel' as being debug mode, and add a 'kernel-nodebug'. So it's sort of the inverse of the releases.
Stop making rawhide 'debug by default', and just start shipping kernel-debug for rawhide as we do for releases.
As a non-dev, the main problem with kernel-debug, is it's size in F14 updates-testing currently it's 248mb, annd k-dbg-common 35mb?
You're confusing kernel-debug with kernel-debuginfo. They are very different beasts.
On 26/09/10 13:16, Jarod Wilson wrote: <snip>
You're confusing kernel-debug with kernel-debuginfo. They are very different beasts.
ok thanks for clarity., I see that now if I do "yum install kernel-debug" instead of "debuginfo-install kernel"
Will now happily use kernel-debug.
kernel@lists.fedoraproject.org