Discussion:
nmi_watchdog=2 regression in 2.6.21
(too old to reply)
Daniel Walker
2007-08-08 00:06:49 UTC
Permalink
This patch below hangs my system on boot if I set nmi_watchdog=2 . It
shows the NMI as stuck then the system hangs .. nmi_watchdog=1 works
fine, and the system boots without any watchdog options ..

The machine is an Intel allagash development board, and it has two dual
core Pentium-M cpus. I attached the .config I used.

bf8696ed6dfa561198b4736deaf11ab68dcc4845 is first bad commit
commit bf8696ed6dfa561198b4736deaf11ab68dcc4845
Author: Stephane Eranian <***@hpl.hp.com>
Date: Wed May 2 19:27:05 2007 +0200

[PATCH] i386: i386 make NMI use PERFCTR1 for architectural perfmon (take 2)

Hello,

This patch against 2.6.20-git14 makes the NMI watchdog use PERFSEL1/PERFCTR1
instead of PERFSEL0/PERFCTR0 on processors supporting Intel architectural
perfmon, such as Intel Core 2. Although all PMU events can work on
both counters, the Precise Event-Based Sampling (PEBS) requires that the
event be in PERFCTR0 to work correctly (see section 18.14.4.1 in the
IA32 SDM Vol 3b).

A similar patch for x86-64 is to follow.

Changelog:
- make the i386 NMI watchdog use PERFSEL1/PERFCTR1 instead of PERFSEL0/PERFCTR0
on processors supporting the Intel architectural perfmon (e.g. Core 2 Duo).
This allows PEBS to work when the NMI watchdog is active.

signed-off-by: stephane eranian <***@hpl.hp.com>

Signed-off-by: Andi Kleen <***@suse.de>

:040000 040000 9cee0745798cb56da2ca82032b8ee88a2c32700a f59ee02e3cd8f13503edb7312a3494f4d7ec0069 M arch
Björn Steinbrink
2007-08-08 14:20:59 UTC
Permalink
=20
This patch below hangs my system on boot if I set nmi_watchdog=3D2 . =
It
shows the NMI as stuck then the system hangs .. nmi_watchdog=3D1 work=
s
fine, and the system boots without any watchdog options ..
=20
The machine is an Intel allagash development board, and it has two du=
al
core Pentium-M cpus. I attached the .config I used.
Should be fixed in commit e82f64e5bb0648a13630d752c35be1e7bd8bab96
(2.6.23-rc1 IIRC).

Unfornately it didn't make it into 2.6.22, but the patch should work
even with 2.6.21 IIRC.

Bj=F6rn
=20
bf8696ed6dfa561198b4736deaf11ab68dcc4845 is first bad commit
commit bf8696ed6dfa561198b4736deaf11ab68dcc4845
Date: Wed May 2 19:27:05 2007 +0200
=20
[PATCH] i386: i386 make NMI use PERFCTR1 for architectural perfmo=
n (take 2)
=20
Hello,
=20
This patch against 2.6.20-git14 makes the NMI watchdog use PERFSE=
L1/PERFCTR1
instead of PERFSEL0/PERFCTR0 on processors supporting Intel archi=
tectural
perfmon, such as Intel Core 2. Although all PMU events can work o=
n
both counters, the Precise Event-Based Sampling (PEBS) requires t=
hat the
event be in PERFCTR0 to work correctly (see section 18.14.4.1 in =
the
IA32 SDM Vol 3b).
=20
A similar patch for x86-64 is to follow.
=20
- make the i386 NMI watchdog use PERFSEL1/PERFCTR1 instea=
d of PERFSEL0/PERFCTR0
on processors supporting the Intel architectural perfmo=
n (e.g. Core 2 Duo).
This allows PEBS to work when the NMI watchdog is activ=
e.
=20
=20
=20
:040000 040000 9cee0745798cb56da2ca82032b8ee88a2c32700a f59ee02e3cd8f=
13503edb7312a3494f4d7ec0069 M arch
=20
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.21
# Tue Aug 7 16:40:44 2007
#
CONFIG_X86_32=3Dy
CONFIG_GENERIC_TIME=3Dy
CONFIG_CLOCKSOURCE_WATCHDOG=3Dy
CONFIG_GENERIC_CLOCKEVENTS=3Dy
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=3Dy
CONFIG_LOCKDEP_SUPPORT=3Dy
CONFIG_STACKTRACE_SUPPORT=3Dy
CONFIG_SEMAPHORE_SLEEPERS=3Dy
CONFIG_X86=3Dy
CONFIG_MMU=3Dy
CONFIG_ZONE_DMA=3Dy
CONFIG_GENERIC_ISA_DMA=3Dy
CONFIG_GENERIC_IOMAP=3Dy
CONFIG_GENERIC_BUG=3Dy
CONFIG_GENERIC_HWEIGHT=3Dy
CONFIG_ARCH_MAY_HAVE_PC_FDC=3Dy
CONFIG_DMI=3Dy
CONFIG_DEFCONFIG_LIST=3D"/lib/modules/$UNAME_RELEASE/.config"
=20
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=3Dy
CONFIG_LOCK_KERNEL=3Dy
CONFIG_INIT_ENV_ARG_LIMIT=3D32
=20
#
# General setup
#
CONFIG_LOCALVERSION=3D""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=3Dy
CONFIG_SYSVIPC=3Dy
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=3Dy
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=3Dy
CONFIG_IKCONFIG_PROC=3Dy
# CONFIG_CPUSETS is not set
CONFIG_SYSFS_DEPRECATED=3Dy
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=3Dy
# CONFIG_EMBEDDED is not set
CONFIG_UID16=3Dy
CONFIG_SYSCTL_SYSCALL=3Dy
CONFIG_KALLSYMS=3Dy
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=3Dy
CONFIG_PRINTK=3Dy
CONFIG_BUG=3Dy
CONFIG_ELF_CORE=3Dy
CONFIG_BASE_FULL=3Dy
CONFIG_FUTEX=3Dy
CONFIG_EPOLL=3Dy
CONFIG_SHMEM=3Dy
CONFIG_SLAB=3Dy
CONFIG_VM_EVENT_COUNTERS=3Dy
CONFIG_RT_MUTEXES=3Dy
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=3D0
# CONFIG_SLOB is not set
=20
#
# Loadable module support
#
CONFIG_MODULES=3Dy
CONFIG_MODULE_UNLOAD=3Dy
CONFIG_MODULE_FORCE_UNLOAD=3Dy
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=3Dy
CONFIG_STOP_MACHINE=3Dy
=20
#
# Block layer
#
CONFIG_BLOCK=3Dy
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set
=20
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=3Dy
# CONFIG_IOSCHED_AS is not set
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_IOSCHED_CFQ=3Dy
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=3Dy
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED=3D"cfq"
=20
#
# Processor type and features
#
# CONFIG_TICK_ONESHOT is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_SMP=3Dy
CONFIG_X86_PC=3Dy
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_PARAVIRT is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
CONFIG_MPENTIUMM=3Dy
# CONFIG_MCORE2 is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=3Dy
CONFIG_X86_L1_CACHE_SHIFT=3D6
CONFIG_RWSEM_XCHGADD_ALGORITHM=3Dy
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=3Dy
CONFIG_X86_WP_WORKS_OK=3Dy
CONFIG_X86_INVLPG=3Dy
CONFIG_X86_BSWAP=3Dy
CONFIG_X86_POPAD_OK=3Dy
CONFIG_X86_CMPXCHG64=3Dy
CONFIG_X86_GOOD_APIC=3Dy
CONFIG_X86_INTEL_USERCOPY=3Dy
CONFIG_X86_USE_PPRO_CHECKSUM=3Dy
CONFIG_X86_TSC=3Dy
CONFIG_HPET_TIMER=3Dy
CONFIG_HPET_EMULATE_RTC=3Dy
CONFIG_NR_CPUS=3D8
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=3Dy
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=3Dy
CONFIG_PREEMPT_BKL=3Dy
CONFIG_X86_LOCAL_APIC=3Dy
CONFIG_X86_IO_APIC=3Dy
CONFIG_X86_MCE=3Dy
CONFIG_X86_MCE_NONFATAL=3Dy
CONFIG_X86_MCE_P4THERMAL=3Dy
CONFIG_VM86=3Dy
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
CONFIG_X86_REBOOTFIXUPS=3Dy
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
=20
#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_NOHIGHMEM=3Dy
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=3D0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=3Dy
CONFIG_ARCH_SPARSEMEM_ENABLE=3Dy
CONFIG_ARCH_SELECT_MEMORY_MODEL=3Dy
CONFIG_ARCH_POPULATES_NODE_MAP=3Dy
CONFIG_SELECT_MEMORY_MODEL=3Dy
CONFIG_FLATMEM_MANUAL=3Dy
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=3Dy
CONFIG_FLAT_NODE_MEM_MAP=3Dy
CONFIG_SPARSEMEM_STATIC=3Dy
CONFIG_SPLIT_PTLOCK_CPUS=3D4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=3D1
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=3Dy
# CONFIG_EFI is not set
CONFIG_IRQBALANCE=3Dy
# CONFIG_SECCOMP is not set
CONFIG_HZ_100=3Dy
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=3D100
# CONFIG_KEXEC is not set
CONFIG_PHYSICAL_START=3D0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=3D0x100000
CONFIG_HOTPLUG_CPU=3Dy
CONFIG_COMPAT_VDSO=3Dy
=20
#
# Power management options (ACPI, APM)
#
CONFIG_PM=3Dy
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
# CONFIG_PM_SYSFS_DEPRECATED is not set
# CONFIG_SOFTWARE_SUSPEND is not set
CONFIG_SUSPEND_SMP=3Dy
=20
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=3Dy
CONFIG_ACPI_SLEEP=3Dy
CONFIG_ACPI_SLEEP_PROC_FS=3Dy
# CONFIG_ACPI_SLEEP_PROC_SLEEP is not set
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=3Dm
CONFIG_ACPI_VIDEO=3Dm
CONFIG_ACPI_FAN=3Dm
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=3Dy
CONFIG_ACPI_HOTPLUG_CPU=3Dy
CONFIG_ACPI_THERMAL=3Dy
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=3D0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=3Dy
CONFIG_ACPI_POWER=3Dy
CONFIG_ACPI_SYSTEM=3Dy
CONFIG_X86_PM_TIMER=3Dy
CONFIG_ACPI_CONTAINER=3Dy
# CONFIG_ACPI_SBS is not set
=20
#
# APM (Advanced Power Management) BIOS Support
#
# CONFIG_APM is not set
=20
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=3Dy
CONFIG_CPU_FREQ_TABLE=3Dy
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=3Dy
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=3Dy
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=3Dy
# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
=20
#
# CPUFreq processor drivers
#
CONFIG_X86_ACPI_CPUFREQ=3Dy
# CONFIG_X86_POWERNOW_K6 is not set
# CONFIG_X86_POWERNOW_K7 is not set
# CONFIG_X86_POWERNOW_K8 is not set
# CONFIG_X86_GX_SUSPMOD is not set
CONFIG_X86_SPEEDSTEP_CENTRINO=3Dy
# CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI is not set
CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=3Dy
# CONFIG_X86_SPEEDSTEP_ICH is not set
# CONFIG_X86_SPEEDSTEP_SMI is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
# CONFIG_X86_LONGRUN is not set
# CONFIG_X86_LONGHAUL is not set
# CONFIG_X86_E_POWERSAVER is not set
=20
#
# shared options
#
# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set
# CONFIG_X86_SPEEDSTEP_LIB is not set
=20
#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=3Dy
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=3Dy
CONFIG_PCI_BIOS=3Dy
CONFIG_PCI_DIRECT=3Dy
CONFIG_PCI_MMCONFIG=3Dy
CONFIG_PCIEPORTBUS=3Dy
CONFIG_PCIEAER=3Dy
# CONFIG_PCI_MSI is not set
# CONFIG_PCI_DEBUG is not set
CONFIG_HT_IRQ=3Dy
CONFIG_ISA_DMA_API=3Dy
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
=20
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
=20
#
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set
=20
#
# Executable file formats
#
CONFIG_BINFMT_ELF=3Dy
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
=20
#
# Networking
#
CONFIG_NET=3Dy
=20
#
# Networking options
#
CONFIG_PACKET=3Dy
CONFIG_PACKET_MMAP=3Dy
CONFIG_UNIX=3Dy
CONFIG_XFRM=3Dy
# CONFIG_XFRM_USER is not set
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=3Dy
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=3Dy
CONFIG_IP_PNP=3Dy
CONFIG_IP_PNP_DHCP=3Dy
CONFIG_IP_PNP_BOOTP=3Dy
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_INET_XFRM_MODE_TRANSPORT=3Dy
CONFIG_INET_XFRM_MODE_TUNNEL=3Dy
CONFIG_INET_XFRM_MODE_BEET=3Dy
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=3Dy
CONFIG_DEFAULT_TCP_CONG=3D"cubic"
# CONFIG_TCP_MD5SIG is not set
=20
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=3Dy
# CONFIG_NETFILTER_DEBUG is not set
=20
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
# CONFIG_NF_CONNTRACK_ENABLED is not set
# CONFIG_NF_CONNTRACK is not set
CONFIG_NETFILTER_XTABLES=3Dy
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
# CONFIG_NETFILTER_XT_TARGET_MARK is not set
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
# CONFIG_NETFILTER_XT_MATCH_ESP is not set
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
CONFIG_NETFILTER_XT_MATCH_LIMIT=3Dy
CONFIG_NETFILTER_XT_MATCH_MAC=3Dy
# CONFIG_NETFILTER_XT_MATCH_MARK is not set
# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
# CONFIG_NETFILTER_XT_MATCH_REALM is not set
# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
# CONFIG_NETFILTER_XT_MATCH_STRING is not set
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
=20
#
# IP: Netfilter Configuration
#
# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=3Dy
# CONFIG_IP_NF_MATCH_IPRANGE is not set
# CONFIG_IP_NF_MATCH_TOS is not set
# CONFIG_IP_NF_MATCH_RECENT is not set
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_AH is not set
# CONFIG_IP_NF_MATCH_TTL is not set
# CONFIG_IP_NF_MATCH_OWNER is not set
# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
CONFIG_IP_NF_FILTER=3Dy
# CONFIG_IP_NF_TARGET_REJECT is not set
CONFIG_IP_NF_TARGET_LOG=3Dy
# CONFIG_IP_NF_TARGET_ULOG is not set
# CONFIG_IP_NF_MANGLE is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
=20
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
=20
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
=20
#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
=20
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
=20
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
=20
#
# Wireless
#
# CONFIG_CFG80211 is not set
# CONFIG_WIRELESS_EXT is not set
# CONFIG_IEEE80211 is not set
=20
#
# Device Drivers
#
=20
#
# Generic Driver Options
#
CONFIG_STANDALONE=3Dy
CONFIG_PREVENT_FIRMWARE_BUILD=3Dy
# CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
=20
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
=20
#
# Parallel port support
#
CONFIG_PARPORT=3Dy
CONFIG_PARPORT_PC=3Dy
# CONFIG_PARPORT_SERIAL is not set
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_GSC is not set
# CONFIG_PARPORT_AX88796 is not set
CONFIG_PARPORT_1284=3Dy
=20
#
# Plug and Play support
#
CONFIG_PNP=3Dy
# CONFIG_PNP_DEBUG is not set
=20
#
# Protocols
#
CONFIG_PNPACPI=3Dy
=20
#
# Block devices
#
CONFIG_BLK_DEV_FD=3Dm
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=3Dm
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
=20
#
# Misc devices
#
# CONFIG_IBM_ASM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
=20
#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=3Dy
CONFIG_BLK_DEV_IDE=3Dy
=20
#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=3Dy
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECD=3Dy
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_BLK_DEV_IDEACPI is not set
# CONFIG_IDE_TASK_IOCTL is not set
=20
#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=3Dy
CONFIG_IDEPCI_SHARE_IRQ=3Dy
# CONFIG_BLK_DEV_OFFBOARD is not set
CONFIG_BLK_DEV_GENERIC=3Dy
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=3Dy
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=3Dy
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=3Dy
# CONFIG_IDEDMA_IVB is not set
# CONFIG_BLK_DEV_HD is not set
=20
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=3Dy
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_SCSI_PROC_FS is not set
=20
#
# SCSI support type (disk, tape, CD-ROM)
#
# CONFIG_BLK_DEV_SD is not set
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
# CONFIG_CHR_DEV_SG is not set
# CONFIG_CHR_DEV_SCH is not set
=20
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
=20
#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
=20
#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_ESP_CORE is not set
# CONFIG_SCSI_SRP is not set
=20
#
# Serial ATA (prod) and Parallel ATA (experimental) drivers
#
# CONFIG_ATA is not set
=20
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
=20
#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_FC is not set
# CONFIG_FUSION_SAS is not set
=20
#
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set
=20
#
# I2O device support
#
# CONFIG_I2O is not set
=20
#
# Macintosh device drivers
#
# CONFIG_MAC_EMUMOUSEBTN is not set
=20
#
# Network device support
#
CONFIG_NETDEVICES=3Dy
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
=20
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
=20
#
# PHY device support
#
# CONFIG_PHYLIB is not set
=20
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=3Dy
CONFIG_MII=3Dy
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
=20
#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=3Dy
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
CONFIG_8139TOO=3Dy
CONFIG_8139TOO_PIO=3Dy
# CONFIG_8139TOO_TUNE_TWISTER is not set
CONFIG_8139TOO_8129=3Dy
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
# CONFIG_NET_POCKET is not set
=20
#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
=20
#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
# CONFIG_NETXEN_NIC is not set
=20
#
# Token Ring devices
#
# CONFIG_TR is not set
=20
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
# CONFIG_WLAN_80211 is not set
=20
#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PLIP is not set
CONFIG_PPP=3Dm
CONFIG_PPP_MULTILINK=3Dy
# CONFIG_PPP_FILTER is not set
# CONFIG_PPP_ASYNC is not set
# CONFIG_PPP_SYNC_TTY is not set
CONFIG_PPP_DEFLATE=3Dm
CONFIG_PPP_BSDCOMP=3Dm
CONFIG_PPP_MPPE=3Dm
# CONFIG_PPPOE is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=3Dm
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=3Dy
CONFIG_NETPOLL=3Dy
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=3Dy
=20
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
=20
#
# Telephony Support
#
# CONFIG_PHONE is not set
=20
#
# Input device support
#
CONFIG_INPUT=3Dy
# CONFIG_INPUT_FF_MEMLESS is not set
=20
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=3Dy
CONFIG_INPUT_MOUSEDEV_PSAUX=3Dy
CONFIG_INPUT_MOUSEDEV_SCREEN_X=3D1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=3D1024
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
CONFIG_INPUT_EVDEV=3Dy
# CONFIG_INPUT_EVBUG is not set
=20
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=3Dy
CONFIG_KEYBOARD_ATKBD=3Dy
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=3Dy
CONFIG_MOUSE_PS2=3Dy
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=3Dy
CONFIG_INPUT_PCSPKR=3Dy
# CONFIG_INPUT_WISTRON_BTNS is not set
# CONFIG_INPUT_ATLAS_BTNS is not set
# CONFIG_INPUT_UINPUT is not set
=20
#
# Hardware I/O ports
#
CONFIG_SERIO=3Dy
CONFIG_SERIO_I8042=3Dy
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=3Dy
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set
=20
#
# Character devices
#
CONFIG_VT=3Dy
CONFIG_VT_CONSOLE=3Dy
CONFIG_HW_CONSOLE=3Dy
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
=20
#
# Serial drivers
#
CONFIG_SERIAL_8250=3Dy
CONFIG_SERIAL_8250_CONSOLE=3Dy
CONFIG_SERIAL_8250_PCI=3Dy
CONFIG_SERIAL_8250_PNP=3Dy
CONFIG_SERIAL_8250_NR_UARTS=3D4
CONFIG_SERIAL_8250_RUNTIME_UARTS=3D4
# CONFIG_SERIAL_8250_EXTENDED is not set
=20
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=3Dy
CONFIG_SERIAL_CORE_CONSOLE=3Dy
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=3Dy
CONFIG_LEGACY_PTYS=3Dy
CONFIG_LEGACY_PTY_COUNT=3D256
CONFIG_PRINTER=3Dy
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set
=20
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
=20
#
# Watchdog Cards
#
CONFIG_WATCHDOG=3Dy
# CONFIG_WATCHDOG_NOWAYOUT is not set
=20
#
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not set
# CONFIG_ALIM1535_WDT is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_SC520_WDT is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not set
# CONFIG_IBMASR is not set
# CONFIG_WAFER_WDT is not set
CONFIG_I6300ESB_WDT=3Dm
# CONFIG_I8XX_TCO is not set
# CONFIG_ITCO_WDT is not set
# CONFIG_SC1200_WDT is not set
# CONFIG_PC87413_WDT is not set
# CONFIG_60XX_WDT is not set
# CONFIG_SBC8360_WDT is not set
# CONFIG_CPU5_WDT is not set
# CONFIG_SMSC37B787_WDT is not set
# CONFIG_W83627HF_WDT is not set
# CONFIG_W83697HF_WDT is not set
# CONFIG_W83877F_WDT is not set
# CONFIG_W83977F_WDT is not set
# CONFIG_MACHZ_WDT is not set
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
=20
#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
=20
#
# USB-based Watchdog Cards
#
# CONFIG_USBPCWATCHDOG is not set
CONFIG_HW_RANDOM=3Dy
CONFIG_HW_RANDOM_INTEL=3Dy
CONFIG_HW_RANDOM_AMD=3Dy
CONFIG_HW_RANDOM_GEODE=3Dy
CONFIG_HW_RANDOM_VIA=3Dy
CONFIG_NVRAM=3Dy
CONFIG_RTC=3Dy
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
CONFIG_AGP=3Dy
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=3Dy
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=3Dy
# CONFIG_DRM_TDFX is not set
CONFIG_DRM_R128=3Dm
CONFIG_DRM_RADEON=3Dm
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_I915 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
CONFIG_HPET=3Dy
# CONFIG_HPET_RTC_IRQ is not set
CONFIG_HPET_MMAP=3Dy
# CONFIG_HANGCHECK_TIMER is not set
=20
#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
=20
#
# I2C support
#
CONFIG_I2C=3Dy
CONFIG_I2C_CHARDEV=3Dy
=20
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=3Dy
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set
=20
#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
CONFIG_I2C_ISA=3Dy
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_VIA is not set
CONFIG_I2C_VIAPRO=3Dy
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set
=20
#
# Miscellaneous I2C Chip support
#
# CONFIG_SENSORS_DS1337 is not set
# CONFIG_SENSORS_DS1374 is not set
# CONFIG_SENSORS_EEPROM is not set
# CONFIG_SENSORS_PCF8574 is not set
# CONFIG_SENSORS_PCA9539 is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
=20
#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set
=20
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
=20
#
# Hardware Monitoring support
#
CONFIG_HWMON=3Dy
CONFIG_HWMON_VID=3Dy
# CONFIG_SENSORS_ABITUGURU is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ATXP1 is not set
# CONFIG_SENSORS_DS1621 is not set
# CONFIG_SENSORS_F71805F is not set
# CONFIG_SENSORS_FSCHER is not set
# CONFIG_SENSORS_FSCPOS is not set
# CONFIG_SENSORS_GL518SM is not set
# CONFIG_SENSORS_GL520SM is not set
CONFIG_SENSORS_IT87=3Dy
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM75 is not set
# CONFIG_SENSORS_LM77 is not set
# CONFIG_SENSORS_LM78 is not set
# CONFIG_SENSORS_LM80 is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM85 is not set
# CONFIG_SENSORS_LM87 is not set
# CONFIG_SENSORS_LM90 is not set
# CONFIG_SENSORS_LM92 is not set
# CONFIG_SENSORS_MAX1619 is not set
# CONFIG_SENSORS_PC87360 is not set
# CONFIG_SENSORS_PC87427 is not set
# CONFIG_SENSORS_SIS5595 is not set
# CONFIG_SENSORS_SMSC47M1 is not set
# CONFIG_SENSORS_SMSC47M192 is not set
# CONFIG_SENSORS_SMSC47B397 is not set
# CONFIG_SENSORS_VIA686A is not set
# CONFIG_SENSORS_VT1211 is not set
# CONFIG_SENSORS_VT8231 is not set
# CONFIG_SENSORS_W83781D is not set
# CONFIG_SENSORS_W83791D is not set
# CONFIG_SENSORS_W83792D is not set
# CONFIG_SENSORS_W83793 is not set
# CONFIG_SENSORS_W83L785TS is not set
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not set
# CONFIG_SENSORS_HDAPS is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
=20
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
=20
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
=20
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
# CONFIG_USB_DABUSB is not set
=20
#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=3Dy
CONFIG_BACKLIGHT_CLASS_DEVICE=3Dy
CONFIG_LCD_CLASS_DEVICE=3Dm
# CONFIG_BACKLIGHT_PROGEAR is not set
CONFIG_FB=3Dy
CONFIG_FIRMWARE_EDID=3Dy
CONFIG_FB_DDC=3Dy
CONFIG_FB_CFB_FILLRECT=3Dy
CONFIG_FB_CFB_COPYAREA=3Dy
CONFIG_FB_CFB_IMAGEBLIT=3Dy
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
CONFIG_FB_BACKLIGHT=3Dy
CONFIG_FB_MODE_HELPERS=3Dy
# CONFIG_FB_TILEBLITTING is not set
=20
#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_VESA is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_I810 is not set
# CONFIG_FB_INTEL is not set
# CONFIG_FB_MATROX is not set
CONFIG_FB_RADEON=3Dy
CONFIG_FB_RADEON_I2C=3Dy
CONFIG_FB_RADEON_BACKLIGHT=3Dy
# CONFIG_FB_RADEON_DEBUG is not set
CONFIG_FB_ATY128=3Dm
CONFIG_FB_ATY128_BACKLIGHT=3Dy
# CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_GEODE is not set
# CONFIG_FB_VIRTUAL is not set
=20
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=3Dy
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_VIDEO_SELECT=3Dy
CONFIG_DUMMY_CONSOLE=3Dy
CONFIG_FRAMEBUFFER_CONSOLE=3Dy
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=3Dy
CONFIG_FONT_8x16=3Dy
=20
#
# Logo configuration
#
# CONFIG_LOGO is not set
=20
#
# Sound
#
# CONFIG_SOUND is not set
=20
#
# HID Devices
#
CONFIG_HID=3Dy
CONFIG_HID_DEBUG=3Dy
=20
#
# USB Input Devices
#
# CONFIG_USB_HID is not set
=20
#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set
=20
#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=3Dy
CONFIG_USB_ARCH_HAS_OHCI=3Dy
CONFIG_USB_ARCH_HAS_EHCI=3Dy
CONFIG_USB=3Dy
# CONFIG_USB_DEBUG is not set
=20
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=3Dy
CONFIG_USB_DEVICE_CLASS=3Dy
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set
=20
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=3Dy
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_OHCI_HCD is not set
CONFIG_USB_UHCI_HCD=3Dy
# CONFIG_USB_SL811_HCD is not set
=20
#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
=20
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
=20
#
# may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=3Dy
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_DPCM is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_LIBUSUAL is not set
=20
#
# USB Input Devices
#
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_TOUCHSCREEN is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_ATI_REMOTE2 is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set
# CONFIG_USB_GTCO is not set
=20
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
=20
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET_MII is not set
# CONFIG_USB_USBNET is not set
# CONFIG_USB_MON is not set
=20
#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
=20
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
=20
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
=20
#
# USB DSL modem support
#
=20
#
# USB Gadget Support
#
CONFIG_USB_GADGET=3Dm
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_SELECTED=3Dy
# CONFIG_USB_GADGET_FSL_USB2 is not set
CONFIG_USB_GADGET_NET2280=3Dy
CONFIG_USB_NET2280=3Dm
# CONFIG_USB_GADGET_PXA2XX is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=3Dy
# CONFIG_USB_ZERO is not set
# CONFIG_USB_ETH is not set
# CONFIG_USB_GADGETFS is not set
# CONFIG_USB_FILE_STORAGE is not set
# CONFIG_USB_G_SERIAL is not set
# CONFIG_USB_MIDI_GADGET is not set
=20
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
=20
#
# LED devices
#
# CONFIG_NEW_LEDS is not set
=20
#
# LED drivers
#
=20
#
# LED Triggers
#
=20
#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set
=20
#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
# CONFIG_EDAC is not set
=20
#
# Real Time Clock
#
CONFIG_RTC_LIB=3Dm
CONFIG_RTC_CLASS=3Dm
=20
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=3Dm
CONFIG_RTC_INTF_PROC=3Dm
CONFIG_RTC_INTF_DEV=3Dm
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
=20
#
# RTC drivers
#
# CONFIG_RTC_DRV_CMOS is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_DS1307 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_TEST is not set
# CONFIG_RTC_DRV_V3020 is not set
=20
#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set
=20
#
# DMA Clients
#
=20
#
# DMA Devices
#
=20
#
# Auxiliary Display support
#
# CONFIG_KS0108 is not set
=20
#
# Virtualization
#
# CONFIG_KVM is not set
=20
#
# File systems
#
CONFIG_EXT2_FS=3Dy
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=3Dy
CONFIG_EXT3_FS_XATTR=3Dy
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=3Dy
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=3Dy
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_INOTIFY is not set
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=3Dy
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=3Dy
# CONFIG_FUSE_FS is not set
=20
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=3Dy
CONFIG_JOLIET=3Dy
CONFIG_ZISOFS=3Dy
# CONFIG_UDF_FS is not set
=20
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=3Dm
CONFIG_MSDOS_FS=3Dm
CONFIG_VFAT_FS=3Dm
CONFIG_FAT_DEFAULT_CODEPAGE=3D850
CONFIG_FAT_DEFAULT_IOCHARSET=3D"iso8859-1"
CONFIG_NTFS_FS=3Dm
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
=20
#
# Pseudo filesystems
#
CONFIG_PROC_FS=3Dy
CONFIG_PROC_KCORE=3Dy
CONFIG_PROC_SYSCTL=3Dy
CONFIG_SYSFS=3Dy
CONFIG_TMPFS=3Dy
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=3Dy
# CONFIG_CONFIGFS_FS is not set
=20
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
=20
#
# Network File Systems
#
CONFIG_NFS_FS=3Dy
CONFIG_NFS_V3=3Dy
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
# CONFIG_NFS_DIRECTIO is not set
CONFIG_NFSD=3Dm
CONFIG_NFSD_V3=3Dy
# CONFIG_NFSD_V3_ACL is not set
# CONFIG_NFSD_V4 is not set
CONFIG_NFSD_TCP=3Dy
CONFIG_ROOT_NFS=3Dy
CONFIG_LOCKD=3Dy
CONFIG_LOCKD_V4=3Dy
CONFIG_EXPORTFS=3Dm
CONFIG_NFS_COMMON=3Dy
CONFIG_SUNRPC=3Dy
# CONFIG_RPCSEC_GSS_KRB5 is not set
# CONFIG_RPCSEC_GSS_SPKM3 is not set
# CONFIG_SMB_FS is not set
CONFIG_CIFS=3Dy
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
=20
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=3Dy
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=3Dy
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
=20
#
# Native Language Support
#
CONFIG_NLS=3Dy
CONFIG_NLS_DEFAULT=3D"iso8859-15"
CONFIG_NLS_CODEPAGE_437=3Dy
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=3Dy
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=3Dy
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=3Dy
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=3Dy
=20
#
# Distributed Lock Manager
#
# CONFIG_DLM is not set
=20
#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
=20
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=3Dy
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=3Dy
CONFIG_MAGIC_SYSRQ=3Dy
CONFIG_UNUSED_SYMBOLS=3Dy
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=3Dy
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_LOG_BUF_SHIFT=3D15
CONFIG_DETECT_SOFTLOCKUP=3Dy
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set
CONFIG_DEBUG_PREEMPT=3Dy
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=3Dy
CONFIG_DEBUG_INFO=3Dy
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_LIST is not set
CONFIG_FRAME_POINTER=3Dy
CONFIG_FORCED_INLINING=3Dy
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_FAULT_INJECTION is not set
CONFIG_EARLY_PRINTK=3Dy
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_PAGEALLOC is not set
# CONFIG_DEBUG_RODATA is not set
# CONFIG_4KSTACKS is not set
CONFIG_X86_FIND_SMP_CONFIG=3Dy
CONFIG_X86_MPPARSE=3Dy
CONFIG_DOUBLEFAULT=3Dy
=20
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
=20
#
# Cryptographic options
#
CONFIG_CRYPTO=3Dy
CONFIG_CRYPTO_ALGAPI=3Dm
CONFIG_CRYPTO_BLKCIPHER=3Dm
CONFIG_CRYPTO_MANAGER=3Dm
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
CONFIG_CRYPTO_SHA1=3Dm
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=3Dm
CONFIG_CRYPTO_CBC=3Dm
CONFIG_CRYPTO_PCBC=3Dm
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_586 is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_AES is not set
# CONFIG_CRYPTO_AES_586 is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
CONFIG_CRYPTO_ARC4=3Dm
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set
=20
#
# Hardware crypto devices
#
# CONFIG_CRYPTO_DEV_PADLOCK is not set
CONFIG_CRYPTO_DEV_GEODE=3Dm
=20
#
# Library routines
#
CONFIG_BITREVERSE=3Dy
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=3Dy
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=3Dy
CONFIG_ZLIB_DEFLATE=3Dm
CONFIG_PLIST=3Dy
CONFIG_HAS_IOMEM=3Dy
CONFIG_HAS_IOPORT=3Dy
CONFIG_GENERIC_HARDIRQS=3Dy
CONFIG_GENERIC_IRQ_PROBE=3Dy
CONFIG_GENERIC_PENDING_IRQ=3Dy
CONFIG_X86_SMP=3Dy
CONFIG_X86_HT=3Dy
CONFIG_X86_BIOS_REBOOT=3Dy
CONFIG_X86_TRAMPOLINE=3Dy
CONFIG_KTIME_SCALAR=3Dy
Daniel Walker
2007-08-08 15:20:45 UTC
Permalink
Post by Björn Steinbrink
=20
This patch below hangs my system on boot if I set nmi_watchdog=3D2 =
=2E It
Post by Björn Steinbrink
shows the NMI as stuck then the system hangs .. nmi_watchdog=3D1 wo=
rks
Post by Björn Steinbrink
fine, and the system boots without any watchdog options ..
=20
The machine is an Intel allagash development board, and it has two =
dual
Post by Björn Steinbrink
core Pentium-M cpus. I attached the .config I used.
=20
Should be fixed in commit e82f64e5bb0648a13630d752c35be1e7bd8bab96
(2.6.23-rc1 IIRC).
=20
Unfornately it didn't make it into 2.6.22, but the patch should work
even with 2.6.21 IIRC.
I originally found the problem in 2.6.23-rc2 (actually latest git) so
whatever the problem is still exists ..

Daniel
Daniel Walker
2007-08-20 16:44:56 UTC
Permalink
=20
This patch below hangs my system on boot if I set nmi_watchdog=3D2 =
=2E It
shows the NMI as stuck then the system hangs .. nmi_watchdog=3D1 wo=
rks
fine, and the system boots without any watchdog options ..
=20
The machine is an Intel allagash development board, and it has two =
dual
core Pentium-M cpus. I attached the .config I used.
Could we put this on the known regressions list? It was added in 2.6.21=
,
and still exists in lastest git (as of 15 min. ago) ..

Daniel
Michal Piotrowski
2007-08-23 20:08:42 UTC
Permalink
Hi Daniel,
This patch below hangs my system on boot if I set nmi_watchdog=3D2 =
=2E It
shows the NMI as stuck then the system hangs .. nmi_watchdog=3D1 wo=
rks
fine, and the system boots without any watchdog options ..
The machine is an Intel allagash development board, and it has two =
dual
core Pentium-M cpus. I attached the .config I used.
=20
Could we put this on the known regressions list? It was added in 2.6.=
21,
and still exists in lastest git (as of 15 min. ago) ..
Bugzilla should be a better place for this bug.

I don't have enough time to track bugs after release, so old lists are =
not
maintained
http://kernelnewbies.org/known_regressions_2622
http://kernelnewbies.org/known_regressions_2621
=20
Daniel
=20
=20
Regards,
Michal

--=20
LOG
http://www.stardust.webpages.pl/log/
Daniel Walker
2007-08-23 21:22:49 UTC
Permalink
Post by Michal Piotrowski
Hi Daniel,
=20
This patch below hangs my system on boot if I set nmi_watchdog=3D=
2 . It
Post by Michal Piotrowski
shows the NMI as stuck then the system hangs .. nmi_watchdog=3D1 =
works
Post by Michal Piotrowski
fine, and the system boots without any watchdog options ..
The machine is an Intel allagash development board, and it has tw=
o dual
Post by Michal Piotrowski
core Pentium-M cpus. I attached the .config I used.
=20
Could we put this on the known regressions list? It was added in 2.=
6.21,
Post by Michal Piotrowski
and still exists in lastest git (as of 15 min. ago) ..
=20
Bugzilla should be a better place for this bug.
Ok.
Post by Michal Piotrowski
I don't have enough time to track bugs after release, so old lists ar=
e not
Post by Michal Piotrowski
maintained
http://kernelnewbies.org/known_regressions_2622
http://kernelnewbies.org/known_regressions_2621
Have you considered maintaining all the lists in Bugzilla? If you had a
search of open bugs they would just fall of the list as they get
closed..=20

Daniel
Michal Piotrowski
2007-08-27 00:45:02 UTC
Permalink
Daniel Walker pisze:
[snip]
Post by Daniel Walker
Have you considered maintaining all the lists in Bugzilla?
Yes, I have considered it.

Bugzilla sucks when it comes to tracking things. There is
a regression field, but there are no difference between
2.6.22 and 2.6.23 regression.

Most people are reporting bugs through LKML:
- 23 regressions with reference to LKML
- 4 regressions with reference to Bugzilla
Post by Daniel Walker
If you had a
search of open bugs they would just fall of the list as they get
closed..
Unfortunately, the world is not perfect.

Is anyone interested in maintaining KR list for stable releases?
Post by Daniel Walker
Daniel
Regards,
Michal
--
LOG
http://www.stardust.webpages.pl/log/
Natalie Protasevich
2007-08-29 07:42:02 UTC
Permalink
Now that I'm looking at the kernel bugzilla .. If you set the kernel
version to 2.6.22 and set the "Regression" check box you could denote
the fact that it's a regression in that kernel version ..
I don't know if this URL is going to come out right,
<snip url>
That should be open bugs , kernel version 2.6.22, with the regression
check box set ..
So you may not need a master tracking bug ..
Yep, that's another way to do it. The method I described earlier is
commonly used when you don't have the handy regression field in
bugzilla. The technique is handy for creating lists for tracking other
types of issues which don't necessarily fall into a component and you
don't want to bother customizing bugzilla.
I also suspect that there will be a number of common searches that
many people will find useful. With recent versions of bugzilla (3.0+)
you can share searches within groups, but it may be helpful to have a
wiki or some other page where useful searches can be stored, or one of
the templates edited to include those common searches.
-Dave
What David suggested - is exactly what I was going to do, checking out
3.0 etc. Pretty much every post from everyone in this thread is an
action item.

I think we should start getting unsolved regressions in bugzilla, as a
"natural process". And maybe throwing them all in there even those
that got immediately resolved is probably a good thing - better than
to miss one. Either you do it Michal or dump it on me (I'm still doing
sorting out and cleaning things up, actually myself and Adrian - are
re-basing everything and getting rid of stale stuff).
Then I think bugzilla needs:
adding more categories such as security, system calls (lots of
implementation suggestions for posix and non-posix ones), locking,
etc;
improved searches - for sure, for example in addition to
pre-cooked queries make possible using "raw" queries directly on sql,
which will address misplaced bugs and will make categories more
dynamic;
recipe database, for standard debugging requests and procedures
(serial console, getting sysreq traces, bisecting etc. - things to cut
and paste)
user modifiable personal environment ("my bugzilla"), more of
morph type interface around the database.
... not mentioning all flaws and problems with current one (cannot get
back to home page, clear previous search, do certain updates in one
step and so on)

Regressions need to be tracked in effective manner, and I also noticed
counter intuitive question that we have now (the infamous "last
release when it _didn't_ happen") is clearly not the way to go, rather
adding simple boxes "Was working in XX" and "Not working in XX" or
similar straightforward question.

In my opinion bugzilla is far from being a convenient tool. I suspect
that hating bugzilla comes down to having to deal with no
sophisticated interface that is inadequate - when so many nice and
slick tools and sites are around that we all used to. I am also
investigating and checking out other bugzillas looking for good ideas.

Thanks,
--Natalie
Adrian Bunk
2007-08-29 22:23:44 UTC
Permalink
Post by Natalie Protasevich
...
adding more categories such as security,
"security" would be a flag like "regression", not a category.
Post by Natalie Protasevich
system calls (lots of
implementation suggestions for posix and non-posix ones),
...
Bugzilla is for tracking bugs, not for discussing possible
kernel features.

Tracking feature or implementation suggestions wouldn't make sense.
Consider e.g. that there are several people on linux-kernel who often
write what they think the kernel should do but who never write a single
line of code themselves. There's no value in tracking such stuff.
Post by Natalie Protasevich
improved searches - for sure, for example in addition to
pre-cooked queries make possible using "raw" queries directly on sql,
which will address misplaced bugs and will make categories more
dynamic;
What do you have in mind?

I've always been able to do any search I wanted using the "Advanced Search"
of Bugzilla. Well, just checking, it seems the search for the new
"regression" flag could be made easier, but that's not a general problem.

But what could be improved in the database would be to fix the
charset problems for getting the RSS feeds working (#8774). ;-)
Post by Natalie Protasevich
recipe database, for standard debugging requests and procedures
(serial console, getting sysreq traces, bisecting etc. - things to cut
and paste)
Documentation makes sense, but it belongs into some place like the
kernelnewbies wiki, not the Bugzilla itself.
Post by Natalie Protasevich
user modifiable personal environment ("my bugzilla"), more of
morph type interface around the database.
Preferences settings plus saved searches already work.

What is missing?
Post by Natalie Protasevich
... not mentioning all flaws and problems with current one (cannot get
back to home page,
There's a "Home" link that does exactly this among the actions offered
at the bottom of all pages.
Post by Natalie Protasevich
clear previous search,
There's a "Search" link that gives you a new search among the actions
offered at the bottom of all pages.
Post by Natalie Protasevich
do certain updates in one step
...
The only thing that comes into my mind is that you cannot reassign a bug
and change it's status in one step. But "flaws and problems" would IMHO
be too hard an expression since it works fine with two updates.
Post by Natalie Protasevich
Regressions need to be tracked in effective manner, and I also noticed
counter intuitive question that we have now (the infamous "last
release when it _didn't_ happen") is clearly not the way to go, rather
adding simple boxes "Was working in XX" and "Not working in XX" or
similar straightforward question.
Sounds like a good solution for the one question so many submitters get
wrong. :-)
Post by Natalie Protasevich
In my opinion bugzilla is far from being a convenient tool. I suspect
that hating bugzilla comes down to having to deal with no
sophisticated interface that is inadequate - when so many nice and
slick tools and sites are around that we all used to. I am also
investigating and checking out other bugzillas looking for good ideas.
Bugzilla isn't that bad and it has the advantage of being the most
popular bug tracking system for open source projects, which means that
most likely every kernel developer and many submitters have already used
a Bugzilla at some other project.
Post by Natalie Protasevich
From past discussions my impression was that several kernel developers
have an email based workflow and are reluctant to integrate web based
actions into their workflow.

I'd say the success of any bigger Bugzilla change or switch to a
different or writing of a new bug tracking system could be measured
by answering the following question:
Will Linus Torvalds and David Miller use it?
Post by Natalie Protasevich
Thanks,
--Natalie
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Natalie Protasevich
2007-08-29 23:59:47 UTC
Permalink
Post by Adrian Bunk
Bugzilla is for tracking bugs, not for discussing possible
kernel features.
True, but some of them are categorized as bugs from the reporter's
prospective, when they say "man page says" or "according to POSIX it's
wrong". I am going to push ones that are feature suggestions,
re-design suggestions, and some way implementation related out to the
site that Rick is going to help to maintain, which is more of
suggested projects list.
Post by Adrian Bunk
Tracking feature or implementation suggestions wouldn't make sense.
Consider e.g. that there are several people on linux-kernel who often
write what they think the kernel should do but who never write a single
line of code themselves. There's no value in tracking such stuff.
Yes, but some suggestions seem to make sense. How about evaluating it?
and if they are real making it a possible project for someone who
would do appropriate research, etc. And we move them from bugzilla
where they don't belong to a development arena.
Post by Adrian Bunk
Post by Natalie Protasevich
improved searches - for sure, for example in addition to
pre-cooked queries make possible using "raw" queries directly on sql,
which will address misplaced bugs and will make categories more
dynamic;
What do you have in mind?
I am going to look into the bugzilla software to start with, and see
if there is a way to expand it this way. we used to have such internal
tracking (unix based) at work, where we could compose pretty much
freelance queries, it is really not big deal for developers who script
and write huge regular expressions for their convenience every
day...just a vogue idea for now, trying to think how to minimize bugs
that get lost because of wrong bucket. Going manually through all of
them is not very effective.
Post by Adrian Bunk
I've always been able to do any search I wanted using the "Advanced Search"
of Bugzilla. Well, just checking, it seems the search for the new
"regression" flag could be made easier, but that's not a general problem.
Yes but you have to assume that everything is in the right place from
start, besides putting things into categories is often impossible
before some exchange with reporter and initial diagnostics. The worst
category so fas as I found is "other" (in every place where it
exists). Most of the "other" bugs haven't been touched, and some have
huge "SATA" letters in the description written in them :)
Post by Adrian Bunk
But what could be improved in the database would be to fix the
charset problems for getting the RSS feeds working (#8774). ;-)
I agree :)
Post by Adrian Bunk
Documentation makes sense, but it belongs into some place like the
kernelnewbies wiki, not the Bugzilla itself.
Right, so there should be convenient links to such. I know people like
Mauro maintains his own set of templates and he was the one to suggest
it, but later I found out myself that looking for serial console or
bisect instructions every time is cumbersome... I can't imagine
making every maintainer to have to have his own, maybe some hate bug
stuff for this ("oh, not that again...")
Post by Adrian Bunk
Preferences settings plus saved searches already work.
What is missing?
I guess existing one is certainly good in many ways - just not good
enough for people to love it ;) Frankly, I see so many other bugzillas
that have better look and feel but there is no way we can change it
overnight...improving things according to feedback from maintainers
(after all the whole purpose is to give them what they need, even in
case if they don't need bugzilla at all! then it should be best
possible interface for bug maintainers ;), maybe try 3.0+ first and
see how much better we get...
Post by Adrian Bunk
There's a "Home" link that does exactly this among the actions offered
at the bottom of all pages.
Yea you can find many hidden buttons that you have to scroll down to
:) A little more ergonomics wouldn't hurt though..
Post by Adrian Bunk
Bugzilla isn't that bad and it has the advantage of being the most
popular bug tracking system for open source projects, which means that
most likely every kernel developer and many submitters have already used
a Bugzilla at some other project.
From past discussions my impression was that several kernel developers
have an email based workflow and are reluctant to integrate web based
actions into their workflow.
Yes, and we should cater to them as well. I am totally agree with you
that tracking and fixing real bugs is the real goal, and interface is
only important as long as it serves the purpose, and not being a
culprit. We'll see how it will be evolving. (and I am evolving here
too - trying to find what's missing and how to make things work :)
Post by Adrian Bunk
I'd say the success of any bigger Bugzilla change or switch to a
different or writing of a new bug tracking system could be measured
Will Linus Torvalds and David Miller use it?
Heh, yes. This should be something really awesome don't you think :)

--Natalie
Adrian Bunk
2007-08-30 08:51:19 UTC
Permalink
Post by Natalie Protasevich
Post by Adrian Bunk
Bugzilla is for tracking bugs, not for discussing possible
kernel features.
True, but some of them are categorized as bugs from the reporter's
prospective, when they say "man page says" or "according to POSIX it's
wrong".
If code behaves differently from how it should that is a bug. [1]
Post by Natalie Protasevich
I am going to push ones that are feature suggestions,
re-design suggestions, and some way implementation related out to the
site that Rick is going to help to maintain, which is more of
suggested projects list.
Post by Adrian Bunk
Tracking feature or implementation suggestions wouldn't make sense.
Consider e.g. that there are several people on linux-kernel who often
write what they think the kernel should do but who never write a single
line of code themselves. There's no value in tracking such stuff.
Yes, but some suggestions seem to make sense. How about evaluating it?
and if they are real making it a possible project for someone who
would do appropriate research, etc. And we move them from bugzilla
where they don't belong to a development arena.
Fine with me, my point was simply that they don't belong into a
_bug_ tracker.
Post by Natalie Protasevich
Post by Adrian Bunk
Post by Natalie Protasevich
improved searches - for sure, for example in addition to
pre-cooked queries make possible using "raw" queries directly on sql,
which will address misplaced bugs and will make categories more
dynamic;
What do you have in mind?
I am going to look into the bugzilla software to start with, and see
if there is a way to expand it this way. we used to have such internal
tracking (unix based) at work, where we could compose pretty much
freelance queries, it is really not big deal for developers who script
and write huge regular expressions for their convenience every
day...just a vogue idea for now, trying to think how to minimize bugs
that get lost because of wrong bucket. Going manually through all of
them is not very effective.
Is there any reasonable query that would be possible through SQL but
isn't already possible through the web interface?
Post by Natalie Protasevich
Post by Adrian Bunk
I've always been able to do any search I wanted using the "Advanced Search"
of Bugzilla. Well, just checking, it seems the search for the new
"regression" flag could be made easier, but that's not a general problem.
Yes but you have to assume that everything is in the right place from
start, besides putting things into categories is often impossible
before some exchange with reporter and initial diagnostics. The worst
category so fas as I found is "other" (in every place where it
exists). Most of the "other" bugs haven't been touched, and some have
huge "SATA" letters in the description written in them :)
...
You need some kind of first level support that does some initial
debugging and assigns the bug into the right category, and that will
always be a manual task done by going through all new bugs.
Post by Natalie Protasevich
--Natalie
cu
Adrian

[1] there are special cases where the kernel might deliberately not
some specification
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Stefan Richter
2007-08-30 15:24:37 UTC
Permalink
Natalie Protasevich wrote:
[Adrian Bunk wrote:]
Post by Natalie Protasevich
Post by Adrian Bunk
Bugzilla is for tracking bugs, not for discussing possible
kernel features.
=20
True, but some of them are categorized as bugs from the reporter's
prospective, when they say "man page says" or "according to POSIX it'=
s
Post by Natalie Protasevich
wrong". I am going to push ones that are feature suggestions,
re-design suggestions, and some way implementation related out to the
site that Rick is going to help to maintain, which is more of
suggested projects list.
Post by Adrian Bunk
Tracking feature or implementation suggestions wouldn't make sense.
Consider e.g. that there are several people on linux-kernel who ofte=
n
Post by Natalie Protasevich
Post by Adrian Bunk
write what they think the kernel should do but who never write a sin=
gle
Post by Natalie Protasevich
Post by Adrian Bunk
line of code themselves. There's no value in tracking such stuff.
I agree.

But I find it sensible...
Post by Natalie Protasevich
Yes, but some suggestions seem to make sense. How about evaluating it=
?
Post by Natalie Protasevich
and if they are real making it a possible project for someone who
would do appropriate research, etc. And we move them from bugzilla
where they don't belong to a development arena.
=2E..to track very concrete feature-related TODO items. One Issues &
Resolutions Database which I occasionally work with indeed distinguishe=
s
between "bug", "new feature", "improvement", "task", whatever that
means. The type of issue is the first question one is asked when one
enters a new issue.

'My' Linux kernel subsystem has a long virtual TODO list, with bugs,
missing features, and other kinds of items in it. Since there is almos=
t
no personnel, the list has a tendency to contain long-lived items. Onc=
e
or twice or so I already added entries of the missing-feature kind to
bugzilla.kernel.org. Doing this is questionable at the moment though
--- it adds noise to the database of actual bugs, since there is no way
to visually distinguish and filter bugs vs. missing features etc.

Of course, non-bug TODO items could as well be tracked elsewhere,
independently of bug tracking. 'My' subsystem has a wiki which could b=
e
a good place for this. Or I could start to post a TODO list on the
subsystem mailinglist in e.g. bimonthly intervals.


Al Boldi wrote in "Designers and Builders (was: Who wants to maintain K=
R
list for stable releases?)":
| So, what's wrong with tapping into people's design suggestions, and
| allowing others to implement it?

Design suggestions should really come from people who also know a lot
about the how-to. This is even true to some degree about feature
requests. Besides, I've got a feeling that regardless of the field of
=CF=84=CE=B5=CF=87=CE=BD=CE=B7 one works in, someone can only be a trul=
y good designer if she or
he has also been a builder.

But back to the discussion. A tracker is not a good tool for
brainstorming sessions, except perhaps for capturing conclusions after
the brainstorm, as far as they are suitable as input for actual work.

Also, "*allowing* others to implement it" has a strange ring to me.
Where I am around, there are always far too few people who fix things
and build things. But very, very occasionally there is someone new who
wonders if there is an interesting TODO item which is perhaps in the
reach of his abilities. Contributing a cleanup or an actual feature is
typically much easier than fixing an open, tracked bug. (The bugs whic=
h
end up in the bugtracker are usually the difficult ones.) The
contributor learns something and, in a rare turn of events, may
eventually become able and willing to join the bugfixing.
--=20
Stefan Richter
-=3D=3D=3D=3D=3D-=3D-=3D=3D=3D =3D--- =3D=3D=3D=3D-
http://arcgraph.de/sr/
Al Boldi
2007-08-30 22:11:32 UTC
Permalink
Al Boldi wrote in "Designers and Builders (was: Who wants to mainta=
in KR
| So, what's wrong with tapping into people's design suggestions, a=
nd
| allowing others to implement it?
Design suggestions should really come from people who also know a l=
ot
about the how-to. This is even true to some degree about feature
requests. Besides, I've got a feeling that regardless of the field=
of
=F4=E5=F7=ED=E7 one works in, someone can only be a truly good desi=
gner if she or
he has also been a builder.
Sometimes you can feel that the suggestion comes from Unix veteran, o=
r
one who does a lot of linux programming in user land. Their opinion i=
s
often valuable.
Exactly right.

The important part in designing isn't the how-to but rather understandi=
ng the=20
concepts involved. Once you have the concepts straight, implementation=
=20
becomes a matter of which path to take.
But back to the discussion. A tracker is not a good tool for
brainstorming sessions, except perhaps for capturing conclusions af=
ter
the brainstorm, as far as they are suitable as input for actual wor=
k.
Also, "*allowing* others to implement it" has a strange ring to me.
Where I am around, there are always far too few people who fix thin=
gs
and build things. But very, very occasionally there is someone new=
who
wonders if there is an interesting TODO item which is perhaps in th=
e
reach of his abilities. Contributing a cleanup or an actual featur=
e is
typically much easier than fixing an open, tracked bug. (The bugs =
which
end up in the bugtracker are usually the difficult ones.) The
contributor learns something and, in a rare turn of events, may
eventually become able and willing to join the bugfixing.
Yes, indeed, one should really know the code in and out to do things
right. OTOH, not everyone has time to fix bugs in his department, or
it's just single person trying to handle all work. I suggest that in
this case our masters could first outline what needs to be done and
write it down in the bugzilla. This will 1) give a warm feeling to
reporter and everyone else that the problem is noticed and not taken
lightly and 2) give people with active and curious minds chance to tr=
y
solving a problem (my guess that would be many reporters themselves,
they often ask "what can I do and how can I fix this" and some more
junior developers looking for useful exercise and just need
directions.) At least some good debugging will come out of it, and no
harm...
Agreed. But when I responded to this thread by changing the subject, b=
ecause=20
I felt it was somewhat OT to tracking, I meant to question the mentalit=
y of=20
trying to nullify design suggestions for the mere reason of not submitt=
ing a=20
prototype. Now, prototyping is a great way to refine your end-product,=
but=20
it's a terrible waste of time in terms of articulating design-goals.

IMHO, in the interest of keeping ahead of the competition, we should=20
encourage people to express their design suggestions instead of discour=
aging=20
them.


Thanks!

--
Al
Adrian Bunk
2007-09-03 12:29:40 UTC
Permalink
...
Al Boldi wrote in "Designers and Builders (was: Who wants to maintain=
KR
| So, what's wrong with tapping into people's design suggestions, and
| allowing others to implement it?
=20
Design suggestions should really come from people who also know a lot
about the how-to. This is even true to some degree about feature
requests. Besides, I've got a feeling that regardless of the field o=
f
=CF=84=CE=B5=CF=87=CE=BD=CE=B7 one works in, someone can only be a tr=
uly good designer if she or
he has also been a builder.
=20
But back to the discussion. A tracker is not a good tool for
brainstorming sessions, except perhaps for capturing conclusions afte=
r
the brainstorm, as far as they are suitable as input for actual work.
=20
Also, "*allowing* others to implement it" has a strange ring to me.
Where I am around, there are always far too few people who fix things
and build things. But very, very occasionally there is someone new w=
ho
wonders if there is an interesting TODO item which is perhaps in the
reach of his abilities. Contributing a cleanup or an actual feature =
is
typically much easier than fixing an open, tracked bug. (The bugs wh=
ich
end up in the bugtracker are usually the difficult ones.) The
contributor learns something and, in a rare turn of events, may
eventually become able and willing to join the bugfixing.
"Contributing a cleanup" is what the Kernel Janitor Project
already offers.

But "Contributing an actual feature" is much harder:

You need a feature:
- with a realistic chance of being included and
- hard enough that the person suggesting it doesn't simply implement it
himself instead of requesting it and
- easy enough that a newbie can implement it.

And the code should then be in a reasonable shape for being merged.

IMHO that's nearly impossible.

Realistically, offering a TODO item for a feature would require the one=
=20
proposing it to do an amount of mentoring work that is not smaller than=
=20
the amount of work he had to spend if implementing it himself.

This might be worth it if you know for sure the person you are mentorin=
g=20
stays active after completion of the feature - but this assumption is=20
too often not true.
Stefan Richter
cu
Adrian

--=20

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Stefan Richter
2007-09-03 13:20:13 UTC
Permalink
[on whether to track missing features]
Post by Adrian Bunk
Post by Stefan Richter
Where I am around, there are always far too few people who fix things
and build things. But very, very occasionally there is someone new who
wonders if there is an interesting TODO item which is perhaps in the
reach of his abilities. Contributing a cleanup or an actual feature is
typically much easier than fixing an open, tracked bug. (The bugs which
end up in the bugtracker are usually the difficult ones.) The
contributor learns something and, in a rare turn of events, may
eventually become able and willing to join the bugfixing.
"Contributing a cleanup" is what the Kernel Janitor Project
already offers.
- with a realistic chance of being included and
- hard enough that the person suggesting it doesn't simply implement it
himself instead of requesting it
or there is simply nobody else who takes the time to implement it
Post by Adrian Bunk
and
- easy enough that a newbie can implement it.
And the code should then be in a reasonable shape for being merged.
Helping to bring it into shape may be one of the easier pastimes of a
gateway person. (Can be done after mindnumbing day job.)
Post by Adrian Bunk
IMHO that's nearly impossible.
Realistically, offering a TODO item for a feature would require the one
proposing it to do an amount of mentoring work that is not smaller than
the amount of work he had to spend if implementing it himself.
This might be worth it if you know for sure the person you are mentoring
stays active after completion of the feature - but this assumption is
too often not true.
Adding a feature is not just a matter of amount of work, it is also a
matter of motivation and inspiration. So, even if it remains a one-off
project, at least that feature came into life.

But besides these remarks I have to agree with your view, overall.
--
Stefan Richter
-=====-=-=== =--= ---==
http://arcgraph.de/sr/
Bill Davidsen
2007-08-30 15:54:32 UTC
Permalink
Post by Adrian Bunk
Post by Natalie Protasevich
...
adding more categories such as security,
"security" would be a flag like "regression", not a category.
Post by Natalie Protasevich
system calls (lots of
implementation suggestions for posix and non-posix ones),
...
Bugzilla is for tracking bugs, not for discussing possible
kernel features.
Tracking feature or implementation suggestions wouldn't make sense.
Consider e.g. that there are several people on linux-kernel who often
write what they think the kernel should do but who never write a single
line of code themselves. There's no value in tracking such stuff.
That's an interesting viewpoint, only programmers have useful
thoughts... ignoring users, people who have CS degrees but don't code,
etc. I would think there's value in any rational suggestions which
include technical justification for the suggestion.
--
Bill Davidsen <***@tmr.com>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot
Adrian Bunk
2007-09-03 12:43:55 UTC
Permalink
Post by Adrian Bunk
Post by Natalie Protasevich
...
adding more categories such as security,
"security" would be a flag like "regression", not a category.
Post by Natalie Protasevich
system calls (lots of
implementation suggestions for posix and non-posix ones),
...
Bugzilla is for tracking bugs, not for discussing possible
kernel features.
Tracking feature or implementation suggestions wouldn't make sense.
Consider e.g. that there are several people on linux-kernel who often
write what they think the kernel should do but who never write a single
line of code themselves. There's no value in tracking such stuff.
That's an interesting viewpoint, only programmers have useful thoughts...
ignoring users, people who have CS degrees but don't code, etc. I would
think there's value in any rational suggestions which include technical
justification for the suggestion.
I didn't say this - users can always suggest features.

But open source is driven by coders, not by dreamers who want to offload
the work of implementing their whacky ideas to other people instead of
getting their ass up and doing it themselves.

So if the user doesn't implement it himself, and no developer is
interested in doing the work after it got posted to linux-kernel,
an idea is most likely not worth being tracked.
Bill Davidsen
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
Daniel Walker
2007-08-27 23:07:54 UTC
Permalink
Yet the model name looks strange. So we need to run one more test,
as the fam/model is not enough. What we need to check is whether or
not this processor implements architectural perfmon or not.
Could you please compile and run the attached program and send me
the output?
The output below is all the output ..

eax=0x7280201: version=1 num_cnt=2

Daniel
Stephane Eranian
2007-08-29 21:24:51 UTC
Permalink
Daniel,
I think I found the problem. As I suspected, it seems there is an assymetry
between the 1st end 2nd counter (just like what they have on P6 core). Yet
for architectural perfmon v1, this restriction is supposed to be lifted.
Unfortunately, a quick look at the errata document at
http://download.intel.com/design/mobile/SPECUPDT/30922212.pdf
Core Duo processor has a bug which renders the enable bit (22) of
PERFEVTSEL1 inoperative. The processor behaves like former P6 cores,
the enable bit of PERFEVTSEL0 controls the activation of both counters
Your patch switched the nmi from PERFEVTSEL0 to PERFEVTSEL1 (right?)..
So 0 works, 1 does not , for me anyway ..
Yes that is what the patch was doing and it was for a specific reason. On
a Core 2 Duo (which uses the 2nd generation of the architectural PMU), some
useful features (such as PEBS) requiree the use of counter 0 so we cannot
give it away to NMI.

Now on Core Duo, there is no PEBS anyway, so it is okay to use counter 0
for NMI. The problem is that the detection code in perfctr-watchdog.c
treats a Core Duo and a Core 2 Duo the same way as they both have the
X86_FEATURE_ARCH_PERFMON bit set.

I have attached a patch with handle the case of the Core Duo. Unfortunately,
I do not own one so I cannot test it. I would appreciate if you could
try re-applying my counter 0 -> 1 patch + this new one to see if you
have the problem with the NMI getting stuck.

The patch below is probably still needed to handle the case where you get
stuck.

Thanks.
That explains why you get the 'NMI stuck' message when using PERFEVTSEL1.
I suspect when using PERFEVTSEL0, then NMI watchdog is not stuck. So it
is possible that in case NMI is stuck the code does not cleanly shutdown the
NMI interrupt and you get some spurious NMI interrupt later in the boot at
you are stuck because you are holding a lock. We need to look at the error
path of check_nmi_watchdog(). I glance through it and could not find the place
where the APIC vector is cleared.
As far as I can tell the check_nmi_watchdog() doesn't take locks, and it
can't safely share a lock with the NMI ..
The patch below fixes the hang (not the stuck NMI) .. Not totally sure
why, but the cpus are stuck in a loop waiting for the endflag which
never comes .. This also plays with the nmi hz which might do
something.. /proc/interrupt doesn't show any nmi's either..
Daniel
Index: linux-2.6.22/arch/i386/kernel/nmi.c
===================================================================
--- linux-2.6.22.orig/arch/i386/kernel/nmi.c 2007-08-15 00:51:12.000000000 +0000
+++ linux-2.6.22/arch/i386/kernel/nmi.c 2007-08-28 20:15:04.000000000 +0000
@@ -82,7 +82,7 @@ static __init void nmi_cpu_busy(void *da
static int __init check_nmi_watchdog(void)
{
unsigned int *prev_nmi_count;
- int cpu;
+ int cpu, ret = 0;
if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT))
return 0;
@@ -125,18 +125,18 @@ static int __init check_nmi_watchdog(voi
if (!atomic_read(&nmi_active)) {
kfree(prev_nmi_count);
atomic_set(&nmi_active, -1);
- return -1;
- }
+ printk("nmi malfunctioning.\n");
+ ret = -1;
+ } else
+ printk("OK.\n");
endflag = 1;
- printk("OK.\n");
-
/* now that we know it works we can reduce NMI frequency to
something more reasonable; makes a difference in some configs */
if (nmi_watchdog == NMI_LOCAL_APIC)
nmi_hz = lapic_adjust_nmi_hz(1);
kfree(prev_nmi_count);
- return 0;
+ return ret;
}
/* This needs to happen later in boot so counters are working */
late_initcall(check_nmi_watchdog);
--
-Stephane
Daniel Walker
2007-08-30 01:21:59 UTC
Permalink
Post by Stephane Eranian
Now on Core Duo, there is no PEBS anyway, so it is okay to use counter 0
for NMI. The problem is that the detection code in perfctr-watchdog.c
treats a Core Duo and a Core 2 Duo the same way as they both have the
X86_FEATURE_ARCH_PERFMON bit set.
I have attached a patch with handle the case of the Core Duo. Unfortunately,
I do not own one so I cannot test it. I would appreciate if you could
try re-applying my counter 0 -> 1 patch + this new one to see if you
have the problem with the NMI getting stuck.
I tested your patch .. The system doesn't hang, but the NMI seems to
disappear .. The check_nmi_watchdog() is not called, and the NMI never
actually starts firing .. Is that what you had intended?

Daniel
Stephane Eranian
2007-08-30 21:05:55 UTC
Permalink
Daniel,
Post by Daniel Walker
Post by Stephane Eranian
Now on Core Duo, there is no PEBS anyway, so it is okay to use counter 0
for NMI. The problem is that the detection code in perfctr-watchdog.c
treats a Core Duo and a Core 2 Duo the same way as they both have the
X86_FEATURE_ARCH_PERFMON bit set.
I have attached a patch with handle the case of the Core Duo. Unfortunately,
I do not own one so I cannot test it. I would appreciate if you could
try re-applying my counter 0 -> 1 patch + this new one to see if you
have the problem with the NMI getting stuck.
I tested your patch .. The system doesn't hang, but the NMI seems to
disappear .. The check_nmi_watchdog() is not called, and the NMI never
actually starts firing .. Is that what you had intended?
Yes, I realized I missed a small detail in the switch statement.
Could you try the new version?

Thanks.
--
-Stephane
Daniel Walker
2007-08-31 14:43:20 UTC
Permalink
Post by Michal Piotrowski
Daniel,
Yes, I realized I missed a small detail in the switch statement.
Could you try the new version?
This patch still has the stuck NMI .. Essentially the same thing that
happened without the patch..

Feel free to keep sending patches, I'll test them all ..

Daniel
Stephane Eranian
2007-08-31 16:21:46 UTC
Permalink
Daniel,
Post by Daniel Walker
Post by Michal Piotrowski
Daniel,
Yes, I realized I missed a small detail in the switch statement.
Could you try the new version?
This patch still has the stuck NMI .. Essentially the same thing that
happened without the patch..
Ok, looks like deaulting to P6 does not quite work.

Here is a new version. This time I used a different approach.
I am must admit I am a bit puzzled by the duplication of information
between the wd_ops and the nmi_watchdog_ctlblk structure. My understanding
is that thelater is used as a cache for the info that needs to be per-cpu.

The wd_ops provides the MSR to use for the counter, yet all the setup_*()
routines hardcode the MSR. Not sure why?

In this patch, the setup_*() routine now extract the MSR from the wd_ops
to copy them into the nmi_watchdog_ctlblk. This is not done for P4 because
of the special and ugly case of HT.

With this approach, we can now create a custom wd_ops for CoreDuo that is
a clone of the intel_arch_wd_ops, except for the MSR.

Could you try this one instead?

Thanks.
--
-Stephane
Daniel Walker
2007-08-31 16:35:23 UTC
Permalink
Post by Michal Piotrowski
Daniel,
Post by Daniel Walker
Post by Michal Piotrowski
Daniel,
Yes, I realized I missed a small detail in the switch statement.
Could you try the new version?
This patch still has the stuck NMI .. Essentially the same thing that
happened without the patch..
Ok, looks like deaulting to P6 does not quite work.
Here is a new version. This time I used a different approach.
I am must admit I am a bit puzzled by the duplication of information
between the wd_ops and the nmi_watchdog_ctlblk structure. My understanding
is that thelater is used as a cache for the info that needs to be per-cpu.
The wd_ops provides the MSR to use for the counter, yet all the setup_*()
routines hardcode the MSR. Not sure why?
Yeah, that's bad .. For instance, if those had all been centralized
Bjorn wouldn't have needed to fix those up later..
Post by Michal Piotrowski
In this patch, the setup_*() routine now extract the MSR from the wd_ops
to copy them into the nmi_watchdog_ctlblk. This is not done for P4 because
of the special and ugly case of HT.
With this approach, we can now create a custom wd_ops for CoreDuo that is
a clone of the intel_arch_wd_ops, except for the MSR.
Could you try this one instead?
So I tested your patch unchanged and the system boots, and the
check_nmi_watchdog() passes .. However, the nmi stops ticking right
after bootup,
Post by Michal Piotrowski
From my /proc/interrupts below,
CPU0 CPU1 CPU2 CPU3
0: 108 0 0 0 IO-APIC-edge timer
1: 0 0 0 8 IO-APIC-edge i8042
4: 3427 0 0 1 IO-APIC-edge serial
8: 1 0 0 1 IO-APIC-edge rtc
12: 0 0 0 113 IO-APIC-edge i8042
14: 1128 0 0 10 IO-APIC-edge ide0
16: 1664 0 0 1 IO-APIC-fasteoi uhci_hcd:usb2, eth0
18: 0 0 0 0 IO-APIC-fasteoi ehci_hcd:usb1
19: 0 0 0 0 IO-APIC-fasteoi uhci_hcd:usb3
20: 0 0 0 1 IO-APIC-fasteoi acpi
NMI: 1670 1453 1097 967
LOC: 48001 48002 48000 48006
ERR: 0
MIS: 0


The NMI field never changes ..

So I added another change which looked appropriate,

@@ -674,6 +688,7 @@ unsigned lapic_adjust_nmi_hz(unsigned hz
{
struct nmi_watchdog_ctlblk *wd = &__get_cpu_var(nmi_watchdog_ctlblk);
if (wd->perfctr_msr == MSR_P6_PERFCTR0 ||
+ wd->perfctr_msr == MSR_ARCH_PERFMON_PERFCTR0 ||
wd->perfctr_msr == MSR_ARCH_PERFMON_PERFCTR1)
hz = adjust_for_32bit_ctr(hz);
return hz;


Unfortunately that didn't fix anything, but I have a feeling is has
something to do with the nmi hertz adjustment that happens after
check_nmi_watchdog() ..

Daniel
Björn Steinbrink
2007-08-31 18:06:44 UTC
Permalink
Post by Daniel Walker
In this patch, the setup_*() routine now extract the MSR from the w=
d_ops
Post by Daniel Walker
to copy them into the nmi_watchdog_ctlblk. This is not done for P4 =
because
Post by Daniel Walker
of the special and ugly case of HT.=20
=20
With this approach, we can now create a custom wd_ops for CoreDuo t=
hat is
Post by Daniel Walker
a clone of the intel_arch_wd_ops, except for the MSR.
=20
Could you try this one instead?
=20
So I tested your patch unchanged and the system boots, and the
check_nmi_watchdog() passes .. However, the nmi stops ticking right
after bootup,
=20
Post by Michal Piotrowski
From my /proc/interrupts below,
=20
CPU0 CPU1 CPU2 CPU3 =20
0: 108 0 0 0 IO-APIC-edge =
timer
Post by Daniel Walker
1: 0 0 0 8 IO-APIC-edge =
i8042
Post by Daniel Walker
4: 3427 0 0 1 IO-APIC-edge =
serial
Post by Daniel Walker
8: 1 0 0 1 IO-APIC-edge =
rtc
Post by Daniel Walker
12: 0 0 0 113 IO-APIC-edge =
i8042
Post by Daniel Walker
14: 1128 0 0 10 IO-APIC-edge =
ide0
Post by Daniel Walker
16: 1664 0 0 1 IO-APIC-fasteoi =
uhci_hcd:usb2, eth0
Post by Daniel Walker
18: 0 0 0 0 IO-APIC-fasteoi =
ehci_hcd:usb1
Post by Daniel Walker
19: 0 0 0 0 IO-APIC-fasteoi =
uhci_hcd:usb3
Post by Daniel Walker
20: 0 0 0 1 IO-APIC-fasteoi =
acpi
Post by Daniel Walker
NMI: 1670 1453 1097 967=20
LOC: 48001 48002 48000 48006=20
ERR: 0
MIS: 0
=20
=20
The NMI field never changes ..
=20
So I added another change which looked appropriate,
=20
@@ -674,6 +688,7 @@ unsigned lapic_adjust_nmi_hz(unsigned hz
{
struct nmi_watchdog_ctlblk *wd =3D &__get_cpu_var(nmi_watchdo=
g_ctlblk);
Post by Daniel Walker
if (wd->perfctr_msr =3D=3D MSR_P6_PERFCTR0 ||
+ wd->perfctr_msr =3D=3D MSR_ARCH_PERFMON_PERFCTR0 ||
wd->perfctr_msr =3D=3D MSR_ARCH_PERFMON_PERFCTR1)
hz =3D adjust_for_32bit_ctr(hz);
return hz;
=20
=20
Unfortunately that didn't fix anything, but I have a feeling is has
That's because MSR_P6_PERFCTR0 is the same as MSR_ARCH_PERFMON_PERFCTR0=
=2E
But I'd personally add that change anyway, as it makes the code less
tricky and the compiler should optimize it away.
Post by Daniel Walker
something to do with the nmi hertz adjustment that happens after
check_nmi_watchdog() ..
Hm hm, does the same thing (watchdog stuck after check) happen with
older kernels, ie. those before Stephane's changeset that made it use
PERFCTR1?

Maybe you could "activate" the Dprintk in write_watchdog_counter32() to
see which value gets written to the MSR? (I don't see any switch to
activate it, so maybe just s/Dprintk(/printk(KERN_WHATEVER / ?)

Thanks,
Bj=F6rn
Daniel Walker
2007-09-01 00:24:46 UTC
Permalink
Post by Björn Steinbrink
Post by Daniel Walker
something to do with the nmi hertz adjustment that happens after
check_nmi_watchdog() ..
=20
Hm hm, does the same thing (watchdog stuck after check) happen with
older kernels, ie. those before Stephane's changeset that made it use
PERFCTR1?
I noticed the frequency gets turned down after check_nmi_watchdog() is
called.. I think it's suppose to trigger once per second, but it's more
like it updates randomly ..

In older kernels it's very slow, but it's more consistent ..

Here is some output ..

morning-glory ~ # cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 103 0 0 0 IO-APIC-edge ti=
mer
1: 0 0 0 8 IO-APIC-edge i8=
042
4: 2320 0 0 1 IO-APIC-edge se=
rial
8: 1 0 0 1 IO-APIC-edge rt=
c
12: 0 0 0 113 IO-APIC-edge i8=
042
14: 1143 0 0 10 IO-APIC-edge id=
e0
16: 227 0 0 1 IO-APIC-fasteoi uh=
ci_hcd:usb2, eth0
18: 0 0 0 0 IO-APIC-fasteoi eh=
ci_hcd:usb1
19: 0 0 0 0 IO-APIC-fasteoi uh=
ci_hcd:usb3
20: 0 0 0 1 IO-APIC-fasteoi ac=
pi
NMI: 150 168 124 121
LOC: 6188 6189 6187 6184
ERR: 0
MIS: 0
morning-glory ~ # cat /proc/interrupts=20
CPU0 CPU1 CPU2 CPU3 =20
0: 103 0 0 0 IO-APIC-edge ti=
mer
1: 0 0 0 8 IO-APIC-edge i8=
042
4: 2391 0 0 1 IO-APIC-edge se=
rial
8: 1 0 0 1 IO-APIC-edge rt=
c
12: 0 0 0 113 IO-APIC-edge i8=
042
14: 1143 0 0 10 IO-APIC-edge id=
e0
16: 872 0 0 1 IO-APIC-fasteoi uh=
ci_hcd:usb2, eth0
18: 0 0 0 0 IO-APIC-fasteoi eh=
ci_hcd:usb1
19: 0 0 0 0 IO-APIC-fasteoi uh=
ci_hcd:usb3
20: 0 0 0 1 IO-APIC-fasteoi ac=
pi
NMI: 151 168 124 121=20
LOC: 21443 21444 21442 21439=20
ERR: 0
MIS: 0
dwalker2 ~ #=20


If you look at the LOC values you'll notice a lot of time has passed,
with only one NMI and on only one cpu ..

It's possible this is something else completely tho ..
Post by Björn Steinbrink
Maybe you could "activate" the Dprintk in write_watchdog_counter32() =
to
Post by Björn Steinbrink
see which value gets written to the MSR? (I don't see any switch to
activate it, so maybe just s/Dprintk(/printk(KERN_WHATEVER / ?)
Here's the only lines printed,

setting INTEL_ARCH_PERFCTR0 to -0x0131385e
setting INTEL_ARCH_PERFCTR0 to -0x0131385e
setting INTEL_ARCH_PERFCTR0 to -0x0131385e
setting INTEL_ARCH_PERFCTR0 to -0x0131385e

Daniel
Björn Steinbrink
2007-09-01 01:00:53 UTC
Permalink
=20
=20
Post by Björn Steinbrink
Post by Daniel Walker
something to do with the nmi hertz adjustment that happens after
check_nmi_watchdog() ..
=20
Hm hm, does the same thing (watchdog stuck after check) happen with
older kernels, ie. those before Stephane's changeset that made it u=
se
Post by Björn Steinbrink
PERFCTR1?
=20
I noticed the frequency gets turned down after check_nmi_watchdog() i=
s
called.. I think it's suppose to trigger once per second, but it's mo=
re
like it updates randomly ..
It's once per second if the cpu is 100% busy, if it's just idling and
halted, the performance counters won't be increased.
In older kernels it's very slow, but it's more consistent ..
With the same load on the box? Maybe some other changes caused the box
to behave differently (say, CFS), regarding eg. load distribution
amongst the cores.
=20
Here is some output ..
=20
morning-glory ~ # cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 103 0 0 0 IO-APIC-edge =
timer
1: 0 0 0 8 IO-APIC-edge =
i8042
4: 2320 0 0 1 IO-APIC-edge =
serial
8: 1 0 0 1 IO-APIC-edge =
rtc
12: 0 0 0 113 IO-APIC-edge =
i8042
14: 1143 0 0 10 IO-APIC-edge =
ide0
16: 227 0 0 1 IO-APIC-fasteoi =
uhci_hcd:usb2, eth0
18: 0 0 0 0 IO-APIC-fasteoi =
ehci_hcd:usb1
19: 0 0 0 0 IO-APIC-fasteoi =
uhci_hcd:usb3
20: 0 0 0 1 IO-APIC-fasteoi =
acpi
NMI: 150 168 124 121
LOC: 6188 6189 6187 6184
ERR: 0
MIS: 0
morning-glory ~ # cat /proc/interrupts=20
CPU0 CPU1 CPU2 CPU3 =20
0: 103 0 0 0 IO-APIC-edge =
timer
1: 0 0 0 8 IO-APIC-edge =
i8042
4: 2391 0 0 1 IO-APIC-edge =
serial
8: 1 0 0 1 IO-APIC-edge =
rtc
12: 0 0 0 113 IO-APIC-edge =
i8042
14: 1143 0 0 10 IO-APIC-edge =
ide0
16: 872 0 0 1 IO-APIC-fasteoi =
uhci_hcd:usb2, eth0
18: 0 0 0 0 IO-APIC-fasteoi =
ehci_hcd:usb1
19: 0 0 0 0 IO-APIC-fasteoi =
uhci_hcd:usb3
20: 0 0 0 1 IO-APIC-fasteoi =
acpi
NMI: 151 168 124 121=20
LOC: 21443 21444 21442 21439=20
ERR: 0
MIS: 0
dwalker2 ~ #=20
=20
=20
If you look at the LOC values you'll notice a lot of time has passed,
with only one NMI and on only one cpu ..
=20
It's possible this is something else completely tho ..
At least from the interrupt side, that box looks pretty idle, so that's
expected I'd say.
=20
Post by Björn Steinbrink
Maybe you could "activate" the Dprintk in write_watchdog_counter32(=
) to
Post by Björn Steinbrink
see which value gets written to the MSR? (I don't see any switch to
activate it, so maybe just s/Dprintk(/printk(KERN_WHATEVER / ?)
=20
Here's the only lines printed,
=20
setting INTEL_ARCH_PERFCTR0 to -0x0131385e
setting INTEL_ARCH_PERFCTR0 to -0x0131385e
setting INTEL_ARCH_PERFCTR0 to -0x0131385e
setting INTEL_ARCH_PERFCTR0 to -0x0131385e
Ok, dumb I am.

The "interesting" call from p6_rearm passes NULL as desc, and thus the
printk is never called that way. But before we start flooding your logs=
,
could you just hog all cores with a simple cpu hog and check if that
causes the NMI counter to increase at about 1 Hz? If that doesn't work,
we can go back to that debug output.

Bj=F6rn
Daniel Walker
2007-09-01 01:36:07 UTC
Permalink
Post by Björn Steinbrink
=20
=20
something to do with the nmi hertz adjustment that happens afte=
r
Post by Björn Steinbrink
check_nmi_watchdog() ..
=20
Hm hm, does the same thing (watchdog stuck after check) happen wi=
th
Post by Björn Steinbrink
older kernels, ie. those before Stephane's changeset that made it=
use
Post by Björn Steinbrink
PERFCTR1?
=20
I noticed the frequency gets turned down after check_nmi_watchdog()=
is
Post by Björn Steinbrink
called.. I think it's suppose to trigger once per second, but it's =
more
Post by Björn Steinbrink
like it updates randomly ..
=20
It's once per second if the cpu is 100% busy, if it's just idling and
halted, the performance counters won't be increased.
Didn't know that .. I ran hackbench while watching /proc/interrupts ,
and it ticks along ok on some cores ..=20

The acid test was running an application that hangs the system, and it
caught it (although the system didn't recover from the lockup..) ..
Post by Björn Steinbrink
In older kernels it's very slow, but it's more consistent ..
=20
With the same load on the box? Maybe some other changes caused the bo=
x
Post by Björn Steinbrink
to behave differently (say, CFS), regarding eg. load distribution
amongst the cores.
It must not have been the same load considering everything else.

I'm satisfied that Stephane's last patch fixes it ..

Daniel
Andi Kleen
2007-09-01 10:19:49 UTC
Permalink
Post by Daniel Walker
I'm satisfied that Stephane's last patch fixes it ..
Great. Can someone send a final version with proper Changelog and Signed-off-by
please? Thanks.

-Andi
Stephane Eranian
2007-09-01 19:51:42 UTC
Permalink
Hello,

Here is a patch to fix the NMI watchdog problem on CoreDuo processor.
I think we still need Daniel's patch to make the error path (when you
are stuck) do the right cleanup.


Changelog:
- fix the NMI watchdog on Intel CoreDuo processor whereby the
kernel would get stuck during boot. The issue is related to
errata AE49, where the PERFEVTSEL1 counter does not have a
working enable bit. Thus it is not possible to use it for NMI.
The patch creates a dedicated wd_ops for CoreDuo which falls
back to using PERFEVTSEL0. The other Intel processors supporting
the architectural PMU will keep on using PERFEVTSEL1 as this
allows other subsystems, such as perfmon, to use PERFEVTSEL0 for
PEBS monitoring in particular.
Bug initially reported by Daniel Walker.

Signed-off-by: Stephane Eranian <***@hpl.hp.com>


diff --git a/arch/i386/kernel/cpu/perfctr-watchdog.c b/arch/i386/kernel/cpu/perfctr-watchdog.c
index 9b5d6af..f9066e1 100644
--- a/arch/i386/kernel/cpu/perfctr-watchdog.c
+++ b/arch/i386/kernel/cpu/perfctr-watchdog.c
@@ -271,8 +271,8 @@ static int setup_k7_watchdog(unsigned nmi_hz)
unsigned int evntsel;
struct nmi_watchdog_ctlblk *wd = &__get_cpu_var(nmi_watchdog_ctlblk);

- perfctr_msr = MSR_K7_PERFCTR0;
- evntsel_msr = MSR_K7_EVNTSEL0;
+ perfctr_msr = wd_ops->perfctr;
+ evntsel_msr = wd_ops->evntsel;

wrmsrl(perfctr_msr, 0UL);

@@ -351,8 +351,8 @@ static int setup_p6_watchdog(unsigned nmi_hz)
unsigned int evntsel;
struct nmi_watchdog_ctlblk *wd = &__get_cpu_var(nmi_watchdog_ctlblk);

- perfctr_msr = MSR_P6_PERFCTR0;
- evntsel_msr = MSR_P6_EVNTSEL0;
+ perfctr_msr = wd_ops->perfctr;
+ evntsel_msr = wd_ops->evntsel;

/* KVM doesn't implement this MSR */
if (wrmsr_safe(perfctr_msr, 0, 0) < 0)
@@ -577,8 +577,8 @@ static int setup_intel_arch_watchdog(unsigned nmi_hz)
(ebx & ARCH_PERFMON_UNHALTED_CORE_CYCLES_PRESENT))
return 0;

- perfctr_msr = MSR_ARCH_PERFMON_PERFCTR1;
- evntsel_msr = MSR_ARCH_PERFMON_EVENTSEL1;
+ perfctr_msr = wd_ops->perfctr;
+ evntsel_msr = wd_ops->evntsel;

wrmsrl(perfctr_msr, 0UL);

@@ -613,6 +613,16 @@ static struct wd_ops intel_arch_wd_ops = {
.evntsel = MSR_ARCH_PERFMON_EVENTSEL1,
};

+static struct wd_ops coreduo_wd_ops = {
+ .reserve = single_msr_reserve,
+ .unreserve = single_msr_unreserve,
+ .setup = setup_intel_arch_watchdog,
+ .rearm = p6_rearm,
+ .stop = single_msr_stop_watchdog,
+ .perfctr = MSR_ARCH_PERFMON_PERFCTR0,
+ .evntsel = MSR_ARCH_PERFMON_EVENTSEL0,
+};
+
static void probe_nmi_watchdog(void)
{
switch (boot_cpu_data.x86_vendor) {
@@ -623,6 +633,10 @@ static void probe_nmi_watchdog(void)
wd_ops = &k7_wd_ops;
break;
case X86_VENDOR_INTEL:
+ if (boot_cpu_data.x86 == 6 && boot_cpu_data.x86_model == 14) {
+ wd_ops = &coreduo_wd_ops;
+ break;
+ }
if (cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON)) {
wd_ops = &intel_arch_wd_ops;
break;
Andi Kleen
2007-09-01 20:32:25 UTC
Permalink
Post by Daniel Walker
Hello,
Here is a patch to fix the NMI watchdog problem on CoreDuo processor.
I think we still need Daniel's patch to make the error path (when you
are stuck) do the right cleanup.
Thanks.

Can that other patch please be submitted too?

-Andi
Daniel Walker
2007-09-01 20:46:28 UTC
Permalink
Post by Stephane Eranian
Post by Daniel Walker
Hello,
Here is a patch to fix the NMI watchdog problem on CoreDuo processor.
I think we still need Daniel's patch to make the error path (when you
are stuck) do the right cleanup.
Thanks.
Can that other patch please be submitted too?
I just submitted it, subject was

"i386: fix a hang on stuck nmi watchdog"

Daniel
Andi Kleen
2007-09-01 09:12:24 UTC
Permalink
Post by Daniel Walker
If you look at the LOC values you'll notice a lot of time has passed,
with only one NMI and on only one cpu ..
It's possible this is something else completely tho ..
It only ticks when the CPU is not idle. If you want to see the "operating
frequency" run a main(){for(;;;);} for each core.

-Andi
Stephane Eranian
2007-08-27 22:55:55 UTC
Permalink
Daniel,
Here is the cpuinfo for processor 0 .. It's got four cores so this isn't
the full /proc/cpuinfo output ..
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 14
The looks like a Core Duo. If that is really the case,
then commit e82f64e5bb0648a13630d752c35be1e7bd8bab96 from Bjorn
should fix your problem. I have it is my 2.6.23-rc3 tree.
Yet the model name looks strange. So we need to run one more test,
as the fam/model is not enough. What we need to check is whether or
not this processor implements architectural perfmon or not.

Could you please compile and run the attached program and send me
the output?

Thanks.
--
-Stephane
Continue reading on narkive:
Loading...