karmic kernel configuration gotchas...
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Expired
|
Medium
|
Unassigned | ||
Bug Description
Since Karmic is now in beta and converged on a near-final kernel and configuration, (as a kernel-level developer) I conducted a full kernel configuration audit on x86-64 and found some gotchas. This is inline with keeping Karmic the best ever Ubuntu release.
Since most of these options have been in production upstream for a good time and are stable, we have a short window to act. Commented config options are considered more important.
-> crucial config options which should be enabled (or justify why disabled)
X86_MCE - allows processor to report corrupt state; no overhead
X86_PAT - allows Xorg to mark framebuffer pages write-combining. MTRRs are frequently incorrect, giving a heavy graphics penalty; also needed for high-performance PCI adapters
DMAR, INTR_REMAP - important on newer (large?) Intel platforms
FRAMEBUFFER_
-> development environment config options, should be disabled for production:
DEBUG_MEMORY_INIT - expensive
OPTIMIZE_INLINING - previous benchmarks show asm bitops being uninlined, causing performance degredation; disable until proven good?
UNUSED_SYMBOLS - prevent symbol table bloat
SCHED_DEBUG - adds a small run-time penalty, measurable at high context-switch rate
EARLY_PRINTK - only useful for developing on new hardware; adds a small setup time at boot perhaps
STRIP_ASM_SYMS - remove unneeded internal symbols
KPROBES - largely replace by trace points
K8_NUMA - deprecated by ACPI NUMA detection
CPU_FREQ_STAT - needed by powertop?
ANDROID - only useful on android hardware
INOTIFY - deprecated by other kernel implementation, exporting same interface to userspace
LEGACY_PTYS - only useful for quite old userspace
SND_SUPPORT_OLD_API - only needed for really old alsalibs
IEEE1394, IEEE1394_DV1394 - only used by old lib1394 userspace
AMD_IOMMU_STATS
PM_TEST_SUSPEND
PCI_LEGACY
PCMCIA_IOCTL
NF_CONNTRACK_
NET_ACT_SIMP
IRDA_DEBUG
CFG80211_REG_DEBUG
MAC80211_DEBUGFS
MTD_MTDRAM
MTD_DOC2000
MTD_DOC2001
MTD_DOC2001PLUS
MTD_ONENAND_SIM
MTD_ONENAMD_
PARPORT_PC_PCMCIA
PNP_DEBUG_MESSAGES
AIC7XXX_
AIC79XX_
SCSI_MVSAS_DEBUG
SCSI_LPFC_DEBUG_FS
SCSI_DEBUG
MD_FAULTY
FUSION_LOGGING
I2O_CONFIG_
8139TOO_PIO
MAC80211_HWSIM
ATH9K_DEBUG
LIBIPW_DEBUG
B43LEGACY_DEBUG
ISDN_I4L
VIDEO_ALLOW_V4L1
SND_DUMMY
SOUND_PRIME
USB_GADGET_
USB_ZERO
INFINIBAND_
INFINIBAND_
THINKPAD_
JFS_STATISTICS
OCFS2_FS_STATS
QFMT_V1
AUTOFS_FS -
JFFS2_COMPRESSI
SECURITY_SELINUX
-> config options beneficial for power-saving:
PCIEASPM - potential compatibility issues - perhaps leave for future release
CPU_FREQ_
SND_AC97_
-> config options which should be enabled for full expected functionality:
CORE_DUMP_
AIC7XXX_
SCSI_SYM53C8XX_
NFS_FSCACHE, AFS_FSCACHE - very useful over low-performance links
ASYNC_TX_DMA - used on newer platforms
HEADERS_CHECK - ensure incorrect definitions don't leak into userspace headers
BLK_DEV_BSG - important feature for some newer (eg SAS) SCSI controllers
NETFILTER_
NET_DROP_MONITOR
CAN_CALC_BITTIMING
MTD_ONENAND_OTP
PARPORT_PC_SUPERIO
PARIDE_EPATC8
PATA_HPT3X3_DMA
DM_LOG_USERSPACE
ENC28J60
TULIP_MWI
TULIP_MMIO
TULIP_NAPI
FORCEDETH_NAPI
R6040
DL2K
IWLWIFI_
B43LEGACY_DMA_MODE
PC300TOO
SBNI_MULTILINE
DEFXX_MMIO
ROADRUNNER_
NETPOLL_TRAP
MOUSE_PS2_TOUCHKIT
INPUT_APANEL
ISI
LP_CONSOLE
HP_WATCHDOG
SSB_PCMCIAHOST
REGULATOR_
USB_GSPCA_
LEDS_CLEVO_MAIL
ACCESSIBILITY
A11Y_BRAILE_CONSOLE
INFINIBAND_NES
OTUS
STLC45XX
VT6655 (?)
GFS2_FS_LOCKING_DLM
JFFS2_SUMMARY
JFFS2_FS_XATTR
IMA
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Triaged |
tags: | added: kconfig |
correction:
DEBUG_MEMORY_INIT _isn't_ expensive, but outputs only at debug log level, so of limited end-user use
by far, the really smoking items here are:
X86_PAT
X86_MCE
- both of these are on per upstream defaults and Fedora 12-alpha and rawhide for good reason