From: Ingo Molnar <mingo@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org, "H . Peter Anvin" <hpa@zytor.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Borislav Petkov <bp@alien8.de>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 00/15] x86/kconfig: Enable various kernel features in the defconfig, add the 'x86_32' subarchitecture build target and misc cleanups
Date: Tue, 6 May 2025 13:30:46 +0200 [thread overview]
Message-ID: <aBny5oqNWTZS6xkH@gmail.com> (raw)
In-Reply-To: <20250506074500.GI4198@noisy.programming.kicks-ass.net>
* Peter Zijlstra <peterz@infradead.org> wrote:
> One thing I'd been pondering for a while, but have absolutely no
> bandwidth for what so ever, is a more fragment based config setup.
>
> Much like we now have defconfig, kvm_guest.config, debug.config and
> xen.config etc..
>
> My main 'complain' is more that defconfig is too fat already, and
> here you are making it fatter still -- notably, I don't need i915 in
> most of the kernels I build (my test machines are all headless).
>
> Could we not instead move things out into fragments, so that people
> can compose the bits they need?
>
> The other day, I was looking for a kvm_host.config fragment, to pair
> with the kvm_guest.config we do have.
>
> Similarly, all that UBSAN, MM and assorted debug cruft is already in
> debug.config (although I do think debug.config is *too* heavy).
Yeah, so I don't disagree with the 'fragment' approach in principle,
although I don't have the bandwidth either right now. :)
I do have a 'fulldebug' 'fragment' myself, enabled externally via a
script that uses the 'scripts/config -e' flag to enable individual
options:
DYNAMIC_DEBUG=y
DYNAMIC_DEBUG_CORE=y
SYMBOLIC_ERRNAME=y
DEBUG_BUGVERBOSE=y
DEBUG_KERNEL=y
DEBUG_MISC=y
AS_HAS_NON_CONST_ULEB128=y
DEBUG_INFO_COMPRESSED_NONE=y
PAHOLE_HAS_SPLIT_BTF=y
PAHOLE_HAS_LANG_EXCLUDE=y
GDB_SCRIPTS=y
SECTION_MISMATCH_WARN_ONLY=y
OBJTOOL=y
NOINSTR_VALIDATION=y
MAGIC_SYSRQ=y
MAGIC_SYSRQ_SERIAL=y
DEBUG_FS=y
DEBUG_FS_ALLOW_ALL=y
HAVE_ARCH_KGDB=y
KGDB=y
KGDB_HONOUR_BLOCKLIST=y
KGDB_SERIAL_CONSOLE=y
KGDB_LOW_LEVEL_TRAP=y
KGDB_KDB=y
KDB_KEYBOARD=y
ARCH_HAS_EARLY_DEBUG=y
ARCH_HAS_UBSAN=y
HAVE_ARCH_KCSAN=y
HAVE_KCSAN_COMPILER=y
PAGE_EXTENSION=y
SLUB_DEBUG=y
PAGE_TABLE_CHECK=y
PAGE_TABLE_CHECK_ENFORCED=y
PAGE_POISONING=y
ARCH_HAS_DEBUG_WX=y
DEBUG_WX=y
ARCH_HAS_PTDUMP=y
PTDUMP=y
HAVE_DEBUG_KMEMLEAK=y
SCHED_STACK_END_CHECK=y
ARCH_HAS_DEBUG_VM_PGTABLE=y
DEBUG_VM_IRQSOFF=y
DEBUG_VM=y
DEBUG_VM_MAPLE_TREE=y
DEBUG_VM_RB=y
DEBUG_VM_PGFLAGS=y
DEBUG_VM_PGTABLE=y
ARCH_HAS_DEBUG_VIRTUAL=y
DEBUG_VIRTUAL=y
DEBUG_MEMORY_INIT=y
DEBUG_PER_CPU_MAPS=y
ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y
HAVE_ARCH_KASAN=y
HAVE_ARCH_KASAN_VMALLOC=y
CC_HAS_KASAN_GENERIC=y
CC_HAS_KASAN_SW_TAGS=y
CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
HAVE_ARCH_KFENCE=y
KFENCE=y
HAVE_ARCH_KMSAN=y
LOCKUP_DETECTOR=y
SOFTLOCKUP_DETECTOR=y
HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
HARDLOCKUP_DETECTOR=y
HARDLOCKUP_DETECTOR_PERF=y
HARDLOCKUP_DETECTOR_COUNTS_HRTIMER=y
HARDLOCKUP_CHECK_TIMESTAMP=y
DETECT_HUNG_TASK=y
DETECT_HUNG_TASK_BLOCKER=y
WQ_CPU_INTENSIVE_REPORT=y
SCHED_INFO=y
SCHEDSTATS=y
DEBUG_PREEMPT=y
LOCK_DEBUGGING_SUPPORT=y
PROVE_LOCKING=y
PROVE_RAW_LOCK_NESTING=y
LOCK_STAT=y
DEBUG_RT_MUTEXES=y
DEBUG_SPINLOCK=y
DEBUG_MUTEXES=y
DEBUG_WW_MUTEX_SLOWPATH=y
DEBUG_RWSEMS=y
DEBUG_LOCK_ALLOC=y
LOCKDEP=y
DEBUG_LOCKDEP=y
DEBUG_ATOMIC_SLEEP=y
DEBUG_LOCKING_API_SELFTESTS=y
CSD_LOCK_WAIT_DEBUG=y
CSD_LOCK_WAIT_DEBUG_DEFAULT=y
TRACE_IRQFLAGS=y
TRACE_IRQFLAGS_NMI=y
NMI_CHECK_CPU=y
DEBUG_IRQFLAGS=y
STACKTRACE=y
DEBUG_LIST=y
DEBUG_PLIST=y
DEBUG_SG=y
DEBUG_NOTIFIERS=y
DEBUG_MAPLE_TREE=y
PROVE_RCU=y
RCU_CPU_STALL_CPUTIME=y
USER_STACKTRACE_SUPPORT=y
NOP_TRACER=y
HAVE_RETHOOK=y
RETHOOK=y
HAVE_FUNCTION_TRACER=y
HAVE_FUNCTION_GRAPH_TRACER=y
HAVE_FUNCTION_GRAPH_FREGS=y
HAVE_FTRACE_GRAPH_FUNC=y
HAVE_DYNAMIC_FTRACE=y
HAVE_DYNAMIC_FTRACE_WITH_REGS=y
HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
HAVE_FTRACE_REGS_HAVING_PT_REGS=y
HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y
HAVE_FTRACE_MCOUNT_RECORD=y
HAVE_SYSCALL_TRACEPOINTS=y
HAVE_FENTRY=y
HAVE_OBJTOOL_MCOUNT=y
HAVE_OBJTOOL_NOP_MCOUNT=y
HAVE_C_RECORDMCOUNT=y
HAVE_BUILDTIME_MCOUNT_SORT=y
BUILDTIME_MCOUNT_SORT=y
TRACER_MAX_TRACE=y
TRACE_CLOCK=y
RING_BUFFER=y
EVENT_TRACING=y
CONTEXT_SWITCH_TRACER=y
PREEMPTIRQ_TRACEPOINTS=y
TRACING=y
GENERIC_TRACER=y
TRACING_SUPPORT=y
FTRACE=y
BOOTTIME_TRACING=y
FUNCTION_TRACER=y
FUNCTION_GRAPH_TRACER=y
FUNCTION_GRAPH_RETVAL=y
DYNAMIC_FTRACE=y
DYNAMIC_FTRACE_WITH_REGS=y
DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y
DYNAMIC_FTRACE_WITH_ARGS=y
FPROBE=y
FUNCTION_PROFILER=y
STACK_TRACER=y
SCHED_TRACER=y
HWLAT_TRACER=y
OSNOISE_TRACER=y
TIMERLAT_TRACER=y
MMIOTRACE=y
FTRACE_SYSCALLS=y
TRACER_SNAPSHOT=y
BRANCH_PROFILE_NONE=y
BLK_DEV_IO_TRACE=y
FPROBE_EVENTS=y
KPROBE_EVENTS=y
UPROBE_EVENTS=y
DYNAMIC_EVENTS=y
PROBE_EVENTS=y
FTRACE_MCOUNT_RECORD=y
FTRACE_MCOUNT_USE_CC=y
TRACING_MAP=y
SYNTH_EVENTS=y
USER_EVENTS=y
HIST_TRIGGERS=y
TRACE_EVENT_INJECT=y
DA_MON_EVENTS=y
DA_MON_EVENTS_ID=y
RV=y
RV_MON_WWNR=y
RV_REACTORS=y
RV_REACT_PRINTK=y
RV_REACT_PANIC=y
SAMPLES=y
HAVE_SAMPLE_FTRACE_DIRECT=y
HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y
ARCH_HAS_DEVMEM_IS_ALLOWED=y
STRICT_DEVMEM=y
EARLY_PRINTK_USB=y
EARLY_PRINTK=y
EARLY_PRINTK_DBGP=y
EARLY_PRINTK_USB_XDBC=y
HAVE_MMIOTRACE_SUPPORT=y
IO_DELAY_0XED=y
DEBUG_ENTRY=y
X86_DEBUG_FPU=y
UNWINDER_ORC=y
FUNCTION_ERROR_INJECTION=y
ARCH_HAS_KCOV=y
CC_HAS_SANCOV_TRACE_PC=y
RUNTIME_TESTING_MENU=y
ARCH_USE_MEMTEST=y
MEMTEST=y
These are all the debug options that don't reasult in an unusable
kernel (such as they don't spam the syslog, etc.).
Also note that the goal of 'defconfig' is to provide something that is
relevant to 99.9% of our users: ie. something reasonably close to what
actual Linux distributions in the field are using, minus (most) driver
noise. Ie. in a way it's the 'community default' in essence, following
the choices of the wider kernel community that end up being used by the
majority of our users, with judgement calls when an option isn't
universally enabled.
Thanks,
Ingo
prev parent reply other threads:[~2025-05-06 11:30 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-05 11:09 [PATCH 00/15] x86/kconfig: Enable various kernel features in the defconfig, add the 'x86_32' subarchitecture build target and misc cleanups Ingo Molnar
2025-05-05 11:09 ` [PATCH 01/15] x86/kconfig/64: Refresh defconfig Ingo Molnar
2025-05-05 11:09 ` [PATCH 02/15] x86/kconfig/32: " Ingo Molnar
2025-05-05 11:09 ` [PATCH 03/15] x86/kconfig: Rename x86_64_defconfig to defconfig.x86_64 and i386_defconfig to defconfig.i386 Ingo Molnar
2025-05-05 11:09 ` [PATCH 04/15] x86/kbuild: Introduce the 'x86_32' subarchitecture Ingo Molnar
2025-05-05 11:09 ` [PATCH 05/15] x86/kbuild: Remove ancient 'arch/i386/' and 'arch/x86_64/' directory removal 'archclean' target Ingo Molnar
2025-05-05 11:09 ` [PATCH 06/15] x86/tools: insn_decoder_test.c: Emit standard build success messages Ingo Molnar
2025-05-05 11:09 ` [PATCH 07/15] x86/tools: insn_sanity.c: " Ingo Molnar
2025-05-05 11:09 ` [PATCH 08/15] x86/kconfig/64: Enable the KVM host in the defconfig Ingo Molnar
2025-05-05 11:09 ` [PATCH 09/15] x86/kconfig/64: Enable more virtualization guest options in the defconfig: enable Xen, Xen_PVH, Jailhouse, ACRN and Intel TDX Ingo Molnar
2025-05-05 11:55 ` Kirill A. Shutemov
2025-05-06 13:34 ` Vitaly Kuznetsov
2025-05-06 17:02 ` [PATCH -v2 09/15] x86/kconfig/64: Enable more virtualization guest options in the defconfig: enable Xen, Xen_PVH, Jailhouse, ACRN, Intel TDX and Hyper-V Ingo Molnar
2025-05-08 1:43 ` Michael Kelley
2025-05-07 19:55 ` [PATCH 09/15] x86/kconfig/64: Enable more virtualization guest options in the defconfig: enable Xen, Xen_PVH, Jailhouse, ACRN and Intel TDX Carlos Bilbao
2025-05-05 11:09 ` [PATCH 10/15] x86/kconfig/64: Enable BPF support in the defconfig Ingo Molnar
2025-05-05 11:09 ` [PATCH 11/15] x86/kconfig/64: Enable popular MM options " Ingo Molnar
2025-05-05 11:09 ` [PATCH 12/15] x86/kconfig/64: Enable popular kernel debugging " Ingo Molnar
2025-05-05 12:56 ` Sam James
2025-05-05 23:30 ` Ivan Shapovalov
2025-05-06 11:23 ` Ingo Molnar
2025-05-05 11:09 ` [PATCH 13/15] x86/kconfig/64: Enable popular scheduler, cgroups and namespaces " Ingo Molnar
2025-05-05 11:09 ` [PATCH 14/15] x86/kconfig/64: Enable popular generic kernel " Ingo Molnar
2025-05-05 11:09 ` [PATCH 15/15] x86/kconfig/32: Synchronize the x86-32 defconfig to the x86-64 defconfig Ingo Molnar
2025-05-06 7:45 ` [PATCH 00/15] x86/kconfig: Enable various kernel features in the defconfig, add the 'x86_32' subarchitecture build target and misc cleanups Peter Zijlstra
2025-05-06 11:30 ` Ingo Molnar [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aBny5oqNWTZS6xkH@gmail.com \
--to=mingo@kernel.org \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.