cat /proc/net/tcp takes 0.5 seconds on x86_64
Subsystems (4)
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
Just had this bug reported against our development tree..
Dave
Quoted 35 lines · On Tue, Aug 26, 2008 at 11:49:31AM -0400, [email protected] wrote:
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=459782
Hans de Goede <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------CC| |[email protected] Component|gkrellm |kernel AssignedTo|[email protected] |[email protected] Summary|gkrellmd consumes about 75% |cat /proc/net/tcp takes 0.5 |cpu time |seconds on x86_64, 0.5 | |seconds !!--- Comment #2 from Hans de Goede <[email protected]> 2008-08-26 11:49:30 EDT --- Thanks for reporting this some stracing of gkrellmd has found that reading from
/proc/net/tcpand reading from/proc/net/tcp6is the culprit, try this on yourx86_64machine to confirm:"time cat
/proc/net/tcp"To give you an idea on my rawhide
x86_64machine:
[hans@localhost devel]$ time cat/proc/net/tcp
<snip>real 0m0.520s user 0m0.000s sys 0m0.446sThats amazingly slow, esp as I only have 8 tcp connections open.
Some maybe usefull info: top reports a very high load (50%) from soft IRQ's.
Anyways changing this to a kernel bug.
Signature · 1 line
http://www.codemonkey.org.uk
Quoted 41 lines · Dave Jones
Just had this bug reported against our development tree..
Dave
Quoted 35 lines · On Tue, Aug 26, 2008 at 11:49:31AM -0400, [email protected] wrote:
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=459782
Hans de Goede <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------CC| |[email protected] Component|gkrellm |kernel AssignedTo|[email protected] |[email protected] Summary|gkrellmd consumes about 75% |cat /proc/net/tcp takes 0.5 |cpu time |seconds on x86_64, 0.5 | |seconds !!--- Comment #2 from Hans de Goede <[email protected]> 2008-08-26 11:49:30 EDT --- Thanks for reporting this some stracing of gkrellmd has found that reading from
/proc/net/tcpand reading from/proc/net/tcp6is the culprit, try this on yourx86_64machine to confirm:"time cat
/proc/net/tcp"To give you an idea on my rawhide
x86_64machine:
[hans@localhost devel]$ time cat/proc/net/tcp
<snip>real 0m0.520s user 0m0.000s sys 0m0.446sThats amazingly slow, esp as I only have 8 tcp connections open.
Some maybe usefull info: top reports a very high load (50%) from soft IRQ's.
Anyways changing this to a kernel bug.
I wonder why this qualifies as a "kernel bug". This is a well known problem.
At least, current kernel versions no longer block softirq for long periods while doing this...
cat /proc/net/tcp is slow and deprecated, since it uses a O(N^2) algo.
tcp hash table size might be a litle bit too large for typical setups (few tcp session, even on a 16 GB machine) Unfortunatly it is fixed at boot time and not dynamic (yet)
You can :
1) Boot your machine with a boot cmd "thash_entries=1024" to reduce size of TCP hash table (typical size on a 4GB machine is : TCP established hash table entries: 262144 (order: 10, 4194304 bytes))
(max size is 524288 entries for machines with >= 8GB memory if no "thash_entries=..." specified, since October 2007 see http://kerneltrap.org/mailarchive/linux-netdev/2007/10/26/359198 )
2) Switch to netlink interface instead of /proc/net/tcp[6] legacy file. Example : netstat -N
http://www.ducksong.com/misc/netstat-netlink-diag-patch.txt
3) Use both 1) & 2) :)
4) Submit a patch to dynamically grow tcp hash table :)
Links:
http://kerneltrap.org/mailarchive/linux-netdev/2007/11/1/375782
http://kerneltrap.org/mailarchive/linux-netdev/2007/11/1/376907
Time difference between /proc/net/tcp and netlink on a 4GB x86_64 machine :
# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/null
real 0m0.091s user 0m0.001s sys 0m0.090s # time ss -n >/dev/null # ss uses netlink interface
real 0m0.022s user 0m0.000s sys 0m0.022s
Quoted 2 lines · Eric Dumazet
Quoted 1 line · Dave Jones
Just had this bug reported against our development tree..
<snip>
Quoted 11 lines
Quoted 10 lines
Quoted 7 lines
[hans@localhost devel]$ time cat
/proc/net/tcp
<snip>real 0m0.520s user 0m0.000s sys 0m0.446sQuoted 2 lines
Thats amazingly slow, esp as I only have 8 tcp connections open. Some maybe usefull info: top reports a very high load (50%) from
soft IRQ's.
Quoted 1 line
Quoted 1 line
Anyways changing this to a kernel bug.
Quoted 2 lines
I wonder why this qualifies as a "kernel bug". This is a well known problem.
No its not, /proc/net/tcp may be slow in general but not *this* slow ...
<snip>
Quoted 10 lines
Time difference between
/proc/net/tcpand netlink on a 4GBx86_64machine :# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/nullreal 0m0.091s user 0m0.001s sys 0m0.090s
As quoted above my idle x86_64, using the exact same hash table size, running 2.6.27-rc2.git1 uses 0.520 seconds for that same command, thats a difference of more then a factor 50 !!
This is not about /proc/net/tcp not being fast, this is about it haven gotten slower by a factor of 50!
Also notice that this slowdown does not happen on i386.
Anyways I'll try 2.6.27-rc4 and report back with its results.
Regards,
Hans
Quoted 33 lines · Hans de Goede
Quoted 2 lines · Eric Dumazet
Quoted 1 line · Dave Jones
Just had this bug reported against our development tree..
<snip>
Quoted 11 lines
Quoted 10 lines
Quoted 7 lines
[hans@localhost devel]$ time cat
/proc/net/tcp
<snip>real 0m0.520s user 0m0.000s sys 0m0.446sQuoted 2 lines
Thats amazingly slow, esp as I only have 8 tcp connections open. Some maybe usefull info: top reports a very high load (50%)
from soft IRQ's.
Quoted 1 line
Quoted 1 line
Anyways changing this to a kernel bug.
Quoted 2 lines
I wonder why this qualifies as a "kernel bug". This is a well known problem.
No its not,
/proc/net/tcpmay be slow in general but not *this* slow ...<snip>
Quoted 10 lines
Time difference between
/proc/net/tcpand netlink on a 4GBx86_64machine :# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/nullreal 0m0.091s user 0m0.001s sys 0m0.090s
Quoted 5 lines
As quoted above my idle
x86_64, using the exact same hash table size, running 2.6.27-rc2.git1 uses 0.520 seconds for that same command, thats a difference of more then a factor 50 !!This is not about
/proc/net/tcpnot being fast, this is about it haven gotten slower by a factor of 50!Also notice that this slowdown does not happen on i386.
And your .config files on i386 and x86_64 are ?
Some configuration options can slow down all lock/unlock operations (CONFIG_SMP, CONFIG_PREEMPT, CONFIG_PROVE_LOCKING, CONFIG_DEBUG_SPINLOCK, CONFIG_NR_CPUS ...)
If you TCP hash table has 512.000 slots (I am just guessing, you didnt provide this information), it can make a huge difference.
Quoted 3 lines
Anyways I'll try 2.6.27-rc4 and report back with its results.
Yes, please, but nothing really changed in this area in the recent times...
We added some checks so that softirqs can preempt us.
Latencies used to be very high, and are now bonded, at the price of potential slowdown for the /proc/net/tcp reader.
Quoted 34 lines · Eric Dumazet
Quoted 33 lines · Hans de Goede
Quoted 2 lines · Eric Dumazet
Quoted 1 line · Dave Jones
Just had this bug reported against our development tree..
<snip>
Quoted 11 lines
Quoted 10 lines
Quoted 7 lines
[hans@localhost devel]$ time cat
/proc/net/tcp
<snip>real 0m0.520s user 0m0.000s sys 0m0.446sQuoted 2 lines
Thats amazingly slow, esp as I only have 8 tcp connections open. Some maybe usefull info: top reports a very high load (50%)
from soft IRQ's.
Quoted 1 line
Quoted 1 line
Anyways changing this to a kernel bug.
Quoted 2 lines
I wonder why this qualifies as a "kernel bug". This is a well known problem.
No its not,
/proc/net/tcpmay be slow in general but not *this* slow ...<snip>
Quoted 10 lines
Time difference between
/proc/net/tcpand netlink on a 4GBx86_64machine :# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/nullreal 0m0.091s user 0m0.001s sys 0m0.090s
Quoted 9 lines
Quoted 5 lines
As quoted above my idle
x86_64, using the exact same hash table size, running 2.6.27-rc2.git1 uses 0.520 seconds for that same command, thats a difference of more then a factor 50 !!This is not about
/proc/net/tcpnot being fast, this is about it haven gotten slower by a factor of 50!Also notice that this slowdown does not happen on i386.
And your .config files on i386 and
x86_64are ?
Some configuration options can slow down all lock/unlock operations (CONFIG_SMP,CONFIG_PREEMPT,CONFIG_PROVE_LOCKING,CONFIG_DEBUG_SPINLOCK,CONFIG_NR_CPUS...)
Attached
Quoted 1 line
If you TCP hash table has 512.000 slots (I am just guessing, you didnt provide this information), it can make a huge difference.
I did provide that information: "using the exact same hash table size" and then quoting your first mail in this thread:
"TCP established hash table entries: 262144 (order: 10, 4194304 bytes)"
Quoted 6 lines
Quoted 3 lines
Anyways I'll try 2.6.27-rc4 and report back with its results.
Yes, please, but nothing really changed in this area in the recent times...
I'm afraid that atleast the Fedora rc4 build won't boot on my machine ...
Quoted 2 lines
We added some checks so that softirqs can preempt us.
Latencies used to be very high, and are now bonded, at the price of potential slowdown for the/proc/net/tcpreader.
Slowdown as in 2x or 4x as slow I presume, not 50x ?
Regards,
Hans
#
# Automatically generated make config: don't edit # Linux kernel version: 2.6.27-0.244.rc2.git1.fc10.x86_64 # Fri Aug 8 13:11:50 2008
#CONFIG_64BIT=y
# CONFIG_X86_32 is not setCONFIG_X86_64=yCONFIG_X86=y CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" # CONFIG_GENERIC_LOCKBREAK is not set CONFIG_GENERIC_TIME=yCONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_FAST_CMPXCHG_LOCAL=yCONFIG_MMU=yCONFIG_ZONE_DMA=yCONFIG_GENERIC_ISA_DMA=yCONFIG_GENERIC_IOMAP=yCONFIG_GENERIC_BUG=yCONFIG_GENERIC_HWEIGHT=y
# CONFIG_GENERIC_GPIO is not set CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=yCONFIG_ZONE_DMA32=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_AUDIT_ARCH=yCONFIG_ARCH_SUPPORTS_AOUT=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=yCONFIG_X86_SMP=yCONFIG_X86_64_SMP=yCONFIG_X86_HT=yCONFIG_X86_BIOS_REBOOT=yCONFIG_X86_TRAMPOLINE=y
# CONFIG_KTIME_SCALAR is not set CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#CONFIG_EXPERIMENTAL=yCONFIG_LOCK_KERNEL=yCONFIG_INIT_ENV_ARG_LIMIT=32CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not setCONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_SYSVIPC_SYSCTL=yCONFIG_POSIX_MQUEUE=yCONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not setCONFIG_TASKSTATS=yCONFIG_TASK_DELAY_ACCT=yCONFIG_TASK_XACCT=yCONFIG_TASK_IO_ACCOUNTING=yCONFIG_AUDIT=yCONFIG_AUDITSYSCALL=yCONFIG_AUDIT_TREE=y
# CONFIG_IKCONFIG is not setCONFIG_LOG_BUF_SHIFT=17CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not setCONFIG_CGROUP_NS=yCONFIG_CGROUP_DEVICE=yCONFIG_CPUSETS=yCONFIG_HAVE_UNSTABLE_SCHED_CLOCK=yCONFIG_GROUP_SCHED=yCONFIG_FAIR_GROUP_SCHED=yCONFIG_RT_GROUP_SCHED=y
# CONFIG_USER_SCHED is not setCONFIG_CGROUP_SCHED=yCONFIG_CGROUP_CPUACCT=yCONFIG_RESOURCE_COUNTERS=y
# CONFIG_CGROUP_MEM_RES_CTLR is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not setCONFIG_PROC_PID_CPUSET=yCONFIG_RELAY=yCONFIG_NAMESPACES=yCONFIG_UTS_NS=yCONFIG_IPC_NS=yCONFIG_USER_NS=yCONFIG_PID_NS=yCONFIG_BLK_DEV_INITRD=yCONFIG_INITRAMFS_SOURCE=""CONFIG_CC_OPTIMIZE_FOR_SIZE=yCONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not setCONFIG_UID16=yCONFIG_SYSCTL_SYSCALL=yCONFIG_SYSCTL_SYSCALL_CHECK=yCONFIG_KALLSYMS=yCONFIG_KALLSYMS_ALL=yCONFIG_KALLSYMS_EXTRA_PASS=yCONFIG_HOTPLUG=yCONFIG_PRINTK=yCONFIG_BUG=yCONFIG_ELF_CORE=yCONFIG_PCSPKR_PLATFORM=y
# CONFIG_COMPAT_BRK is not setCONFIG_BASE_FULL=yCONFIG_FUTEX=yCONFIG_ANON_INODES=yCONFIG_EPOLL=yCONFIG_SIGNALFD=yCONFIG_TIMERFD=yCONFIG_EVENTFD=yCONFIG_SHMEM=yCONFIG_VM_EVENT_COUNTERS=yCONFIG_SLUB_DEBUG=y
# CONFIG_SLAB is not setCONFIG_SLUB=y
# CONFIG_SLOB is not setCONFIG_PROFILING=yCONFIG_MARKERS=yCONFIG_OPROFILE=mCONFIG_HAVE_OPROFILE=yCONFIG_KPROBES=yCONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=yCONFIG_KRETPROBES=yCONFIG_HAVE_IOREMAP_PROT=yCONFIG_HAVE_KPROBES=yCONFIG_HAVE_KRETPROBES=yCONFIG_HAVE_ARCH_TRACEHOOK=y
# CONFIG_HAVE_DMA_ATTRS is not setCONFIG_USE_GENERIC_SMP_HELPERS=y
# CONFIG_HAVE_CLK is not setCONFIG_PROC_PAGE_MONITOR=y
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not setCONFIG_SLABINFO=yCONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not setCONFIG_BASE_SMALL=0CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not setCONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not setCONFIG_MODULE_SRCVERSION_ALL=yCONFIG_KMOD=yCONFIG_STOP_MACHINE=yCONFIG_UTRACE=yCONFIG_UTRACE_PTRACE=yCONFIG_BLOCK=yCONFIG_BLK_DEV_IO_TRACE=yCONFIG_BLK_DEV_BSG=yCONFIG_BLK_DEV_INTEGRITY=yCONFIG_BLOCK_COMPAT=y
#
# IO Schedulers
#CONFIG_IOSCHED_NOOP=yCONFIG_IOSCHED_AS=yCONFIG_IOSCHED_DEADLINE=yCONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not setCONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not setCONFIG_DEFAULT_IOSCHED="cfq"CONFIG_PREEMPT_NOTIFIERS=yCONFIG_CLASSIC_RCU=y
#
# Processor type and features
#CONFIG_TICK_ONESHOT=yCONFIG_NO_HZ=yCONFIG_HIGH_RES_TIMERS=yCONFIG_GENERIC_CLOCKEVENTS_BUILD=yCONFIG_SMP=yCONFIG_X86_FIND_SMP_CONFIG=yCONFIG_X86_MPPARSE=yCONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_VSMP is not setCONFIG_PARAVIRT_GUEST=yCONFIG_XEN=yCONFIG_XEN_MAX_DOMAIN_MEMORY=32CONFIG_XEN_SAVE_RESTORE=yCONFIG_KVM_CLOCK=yCONFIG_KVM_GUEST=yCONFIG_PARAVIRT=yCONFIG_PARAVIRT_CLOCK=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_MEMTEST 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 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_MPSC is not set
# CONFIG_MCORE2 is not setCONFIG_GENERIC_CPU=yCONFIG_X86_CPU=yCONFIG_X86_L1_CACHE_BYTES=128CONFIG_X86_INTERNODE_CACHE_BYTES=128CONFIG_X86_CMPXCHG=yCONFIG_X86_L1_CACHE_SHIFT=7CONFIG_X86_WP_WORKS_OK=yCONFIG_X86_TSC=yCONFIG_X86_CMPXCHG64=yCONFIG_X86_CMOV=yCONFIG_X86_MINIMUM_CPU_FAMILY=64CONFIG_X86_DEBUGCTLMSR=yCONFIG_HPET_TIMER=yCONFIG_HPET_EMULATE_RTC=yCONFIG_DMI=yCONFIG_GART_IOMMU=yCONFIG_CALGARY_IOMMU=yCONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=yCONFIG_AMD_IOMMU=yCONFIG_SWIOTLB=yCONFIG_IOMMU_HELPER=y
# CONFIG_MAXSMP is not setCONFIG_NR_CPUS=64CONFIG_SCHED_SMT=yCONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not setCONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not setCONFIG_X86_LOCAL_APIC=yCONFIG_X86_IO_APIC=yCONFIG_X86_MCE=yCONFIG_X86_MCE_INTEL=yCONFIG_X86_MCE_AMD=yCONFIG_I8K=mCONFIG_MICROCODE=mCONFIG_MICROCODE_OLD_INTERFACE=yCONFIG_X86_MSR=yCONFIG_X86_CPUID=yCONFIG_NUMA=yCONFIG_K8_NUMA=yCONFIG_X86_64_ACPI_NUMA=yCONFIG_NODES_SPAN_OTHER_NODES=y
# CONFIG_NUMA_EMU is not setCONFIG_NODES_SHIFT=9CONFIG_ARCH_SPARSEMEM_DEFAULT=yCONFIG_ARCH_SPARSEMEM_ENABLE=yCONFIG_ARCH_SELECT_MEMORY_MODEL=yCONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not setCONFIG_SPARSEMEM_MANUAL=yCONFIG_SPARSEMEM=yCONFIG_HAVE_GET_USER_PAGES_FAST=yCONFIG_NEED_MULTIPLE_NODES=yCONFIG_HAVE_MEMORY_PRESENT=y
# CONFIG_SPARSEMEM_STATIC is not setCONFIG_SPARSEMEM_EXTREME=yCONFIG_SPARSEMEM_VMEMMAP_ENABLE=yCONFIG_SPARSEMEM_VMEMMAP=y
#
# Memory hotplug is currently incompatible with Software Suspend #CONFIG_PAGEFLAGS_EXTENDED=yCONFIG_SPLIT_PTLOCK_CPUS=4CONFIG_MIGRATION=yCONFIG_RESOURCES_64BIT=yCONFIG_ZONE_DMA_FLAG=1CONFIG_BOUNCE=yCONFIG_VIRT_TO_BUS=yCONFIG_MMU_NOTIFIER=yCONFIG_MTRR=yCONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=yCONFIG_EFI=yCONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not setCONFIG_HZ_1000=yCONFIG_HZ=1000CONFIG_SCHED_HRTICK=yCONFIG_KEXEC=yCONFIG_CRASH_DUMP=yCONFIG_PHYSICAL_START=0x1000000CONFIG_RELOCATABLE=yCONFIG_PHYSICAL_ALIGN=0x200000CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
#
# Power management options
#CONFIG_ARCH_HIBERNATION_HEADER=yCONFIG_PM=yCONFIG_PM_DEBUG=y
# CONFIG_PM_VERBOSE is not setCONFIG_CAN_PM_TRACE=yCONFIG_PM_TRACE=yCONFIG_PM_TRACE_RTC=yCONFIG_PM_SLEEP_SMP=yCONFIG_PM_SLEEP=yCONFIG_SUSPEND=yCONFIG_PM_TEST_SUSPEND=yCONFIG_SUSPEND_FREEZER=yCONFIG_HIBERNATION=yCONFIG_PM_STD_PARTITION=""CONFIG_ACPI=yCONFIG_ACPI_SLEEP=yCONFIG_ACPI_PROCFS=yCONFIG_ACPI_PROCFS_POWER=yCONFIG_ACPI_SYSFS_POWER=yCONFIG_ACPI_PROC_EVENT=yCONFIG_ACPI_AC=mCONFIG_ACPI_BATTERY=mCONFIG_ACPI_BUTTON=yCONFIG_ACPI_VIDEO=mCONFIG_ACPI_FAN=yCONFIG_ACPI_DOCK=yCONFIG_ACPI_BAY=mCONFIG_ACPI_PROCESSOR=yCONFIG_ACPI_HOTPLUG_CPU=yCONFIG_ACPI_THERMAL=yCONFIG_ACPI_NUMA=yCONFIG_ACPI_WMI=m
# CONFIG_ACPI_ASUS is not setCONFIG_ACPI_TOSHIBA=m
# CONFIG_ACPI_CUSTOM_DSDT is not setCONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not setCONFIG_ACPI_EC=yCONFIG_ACPI_PCI_SLOT=mCONFIG_ACPI_POWER=yCONFIG_ACPI_SYSTEM=yCONFIG_X86_PM_TIMER=yCONFIG_ACPI_CONTAINER=yCONFIG_ACPI_SBS=m
#
# CPU Frequency scaling
#CONFIG_CPU_FREQ=yCONFIG_CPU_FREQ_TABLE=m CONFIG_CPU_FREQ_DEBUG=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
#
# CPUFreq processor drivers
#CONFIG_X86_ACPI_CPUFREQ=mCONFIG_X86_POWERNOW_K8=mCONFIG_X86_POWERNOW_K8_ACPI=y
# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
# CONFIG_X86_P4_CLOCKMOD is not set
#
# shared options # # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set # CONFIG_X86_SPEEDSTEP_LIB is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y
#
# Bus options (PCI etc.)
#CONFIG_PCI=yCONFIG_PCI_DIRECT=yCONFIG_PCI_MMCONFIG=yCONFIG_PCI_DOMAINS=y
# CONFIG_DMAR is not setCONFIG_PCIEPORTBUS=yCONFIG_HOTPLUG_PCI_PCIE=mCONFIG_PCIEAER=yCONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not setCONFIG_ARCH_SUPPORTS_MSI=yCONFIG_PCI_MSI=yCONFIG_PCI_LEGACY=y
# CONFIG_PCI_DEBUG is not setCONFIG_HT_IRQ=yCONFIG_ISA_DMA_API=yCONFIG_K8_NB=yCONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not setCONFIG_PCMCIA=yCONFIG_PCMCIA_LOAD_CIS=yCONFIG_PCMCIA_IOCTL=yCONFIG_CARDBUS=y
#
# PC-card bridges
#CONFIG_YENTA=mCONFIG_YENTA_O2=yCONFIG_YENTA_RICOH=yCONFIG_YENTA_TI=yCONFIG_YENTA_ENE_TUNE=yCONFIG_YENTA_TOSHIBA=yCONFIG_PD6729=mCONFIG_I82092=mCONFIG_PCCARD_NONSTATIC=mCONFIG_HOTPLUG_PCI=yCONFIG_HOTPLUG_PCI_FAKE=mCONFIG_HOTPLUG_PCI_ACPI=mCONFIG_HOTPLUG_PCI_ACPI_IBM=m
# CONFIG_HOTPLUG_PCI_CPCI is not setCONFIG_HOTPLUG_PCI_SHPC=m
#
# Executable file formats / Emulations
#CONFIG_BINFMT_ELF=yCONFIG_COMPAT_BINFMT_ELF=yCONFIG_BINFMT_MISC=yCONFIG_IA32_EMULATION=y
# CONFIG_IA32_AOUT is not setCONFIG_COMPAT=yCONFIG_COMPAT_FOR_U64_ALIGNMENT=yCONFIG_SYSVIPC_COMPAT=yCONFIG_NET=y
#
# Networking options
#CONFIG_PACKET=yCONFIG_PACKET_MMAP=yCONFIG_UNIX=yCONFIG_XFRM=yCONFIG_XFRM_USER=yCONFIG_XFRM_SUB_POLICY=yCONFIG_XFRM_MIGRATE=yCONFIG_XFRM_STATISTICS=yCONFIG_XFRM_IPCOMP=mCONFIG_NET_KEY=mCONFIG_NET_KEY_MIGRATE=yCONFIG_INET=yCONFIG_IP_MULTICAST=yCONFIG_IP_ADVANCED_ROUTER=yCONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not setCONFIG_IP_FIB_HASH=yCONFIG_IP_MULTIPLE_TABLES=yCONFIG_IP_ROUTE_MULTIPATH=yCONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not setCONFIG_NET_IPIP=mCONFIG_NET_IPGRE=mCONFIG_NET_IPGRE_BROADCAST=yCONFIG_IP_MROUTE=yCONFIG_IP_PIMSM_V1=yCONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not setCONFIG_SYN_COOKIES=yCONFIG_INET_AH=mCONFIG_INET_ESP=mCONFIG_INET_IPCOMP=mCONFIG_INET_XFRM_TUNNEL=mCONFIG_INET_TUNNEL=mCONFIG_INET_XFRM_MODE_TRANSPORT=mCONFIG_INET_XFRM_MODE_TUNNEL=mCONFIG_INET_XFRM_MODE_BEET=mCONFIG_INET_LRO=yCONFIG_INET_DIAG=mCONFIG_INET_TCP_DIAG=mCONFIG_TCP_CONG_ADVANCED=yCONFIG_TCP_CONG_BIC=mCONFIG_TCP_CONG_CUBIC=yCONFIG_TCP_CONG_WESTWOOD=mCONFIG_TCP_CONG_HTCP=mCONFIG_TCP_CONG_HSTCP=mCONFIG_TCP_CONG_HYBLA=mCONFIG_TCP_CONG_VEGAS=mCONFIG_TCP_CONG_SCALABLE=mCONFIG_TCP_CONG_LP=mCONFIG_TCP_CONG_VENO=mCONFIG_TCP_CONG_YEAH=mCONFIG_TCP_CONG_ILLINOIS=m
# CONFIG_DEFAULT_BIC is not setCONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_HTCP is not set
# CONFIG_DEFAULT_VEGAS is not set
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEFAULT_RENO is not setCONFIG_DEFAULT_TCP_CONG="cubic"CONFIG_TCP_MD5SIG=yCONFIG_IP_VS=m
# CONFIG_IP_VS_DEBUG is not setCONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#CONFIG_IP_VS_PROTO_TCP=yCONFIG_IP_VS_PROTO_UDP=yCONFIG_IP_VS_PROTO_ESP=yCONFIG_IP_VS_PROTO_AH=y
#
# IPVS scheduler
#CONFIG_IP_VS_RR=mCONFIG_IP_VS_WRR=mCONFIG_IP_VS_LC=mCONFIG_IP_VS_WLC=mCONFIG_IP_VS_LBLC=mCONFIG_IP_VS_LBLCR=mCONFIG_IP_VS_DH=mCONFIG_IP_VS_SH=mCONFIG_IP_VS_SED=mCONFIG_IP_VS_NQ=m
#
# IPVS application helper
#CONFIG_IP_VS_FTP=mCONFIG_IPV6=mCONFIG_IPV6_PRIVACY=yCONFIG_IPV6_ROUTER_PREF=yCONFIG_IPV6_ROUTE_INFO=yCONFIG_IPV6_OPTIMISTIC_DAD=yCONFIG_INET6_AH=mCONFIG_INET6_ESP=mCONFIG_INET6_IPCOMP=mCONFIG_IPV6_MIP6=mCONFIG_INET6_XFRM_TUNNEL=mCONFIG_INET6_TUNNEL=mCONFIG_INET6_XFRM_MODE_TRANSPORT=mCONFIG_INET6_XFRM_MODE_TUNNEL=mCONFIG_INET6_XFRM_MODE_BEET=mCONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=mCONFIG_IPV6_SIT=mCONFIG_IPV6_NDISC_NODETYPE=yCONFIG_IPV6_TUNNEL=mCONFIG_IPV6_MULTIPLE_TABLES=yCONFIG_IPV6_SUBTREES=yCONFIG_IPV6_MROUTE=yCONFIG_IPV6_PIMSM_V2=yCONFIG_NETLABEL=yCONFIG_NETWORK_SECMARK=yCONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not setCONFIG_NETFILTER_ADVANCED=yCONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#CONFIG_NETFILTER_NETLINK=mCONFIG_NETFILTER_NETLINK_QUEUE=mCONFIG_NETFILTER_NETLINK_LOG=mCONFIG_NF_CONNTRACK=mCONFIG_NF_CT_ACCT=yCONFIG_NF_CONNTRACK_MARK=yCONFIG_NF_CONNTRACK_SECMARK=yCONFIG_NF_CONNTRACK_EVENTS=yCONFIG_NF_CT_PROTO_DCCP=mCONFIG_NF_CT_PROTO_GRE=mCONFIG_NF_CT_PROTO_SCTP=mCONFIG_NF_CT_PROTO_UDPLITE=mCONFIG_NF_CONNTRACK_AMANDA=mCONFIG_NF_CONNTRACK_FTP=mCONFIG_NF_CONNTRACK_H323=mCONFIG_NF_CONNTRACK_IRC=mCONFIG_NF_CONNTRACK_NETBIOS_NS=mCONFIG_NF_CONNTRACK_PPTP=mCONFIG_NF_CONNTRACK_SANE=mCONFIG_NF_CONNTRACK_SIP=mCONFIG_NF_CONNTRACK_TFTP=mCONFIG_NF_CT_NETLINK=mCONFIG_NETFILTER_XTABLES=mCONFIG_NETFILTER_XT_TARGET_CLASSIFY=mCONFIG_NETFILTER_XT_TARGET_CONNMARK=mCONFIG_NETFILTER_XT_TARGET_DSCP=mCONFIG_NETFILTER_XT_TARGET_MARK=mCONFIG_NETFILTER_XT_TARGET_NFQUEUE=mCONFIG_NETFILTER_XT_TARGET_NFLOG=mCONFIG_NETFILTER_XT_TARGET_NOTRACK=mCONFIG_NETFILTER_XT_TARGET_RATEEST=mCONFIG_NETFILTER_XT_TARGET_TRACE=mCONFIG_NETFILTER_XT_TARGET_SECMARK=mCONFIG_NETFILTER_XT_TARGET_CONNSECMARK=mCONFIG_NETFILTER_XT_TARGET_TCPMSS=mCONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=mCONFIG_NETFILTER_XT_MATCH_COMMENT=mCONFIG_NETFILTER_XT_MATCH_CONNBYTES=mCONFIG_NETFILTER_XT_MATCH_CONNLIMIT=mCONFIG_NETFILTER_XT_MATCH_CONNMARK=mCONFIG_NETFILTER_XT_MATCH_CONNTRACK=mCONFIG_NETFILTER_XT_MATCH_DCCP=mCONFIG_NETFILTER_XT_MATCH_DSCP=mCONFIG_NETFILTER_XT_MATCH_ESP=mCONFIG_NETFILTER_XT_MATCH_HELPER=mCONFIG_NETFILTER_XT_MATCH_IPRANGE=mCONFIG_NETFILTER_XT_MATCH_LENGTH=mCONFIG_NETFILTER_XT_MATCH_LIMIT=mCONFIG_NETFILTER_XT_MATCH_MAC=mCONFIG_NETFILTER_XT_MATCH_MARK=mCONFIG_NETFILTER_XT_MATCH_OWNER=mCONFIG_NETFILTER_XT_MATCH_POLICY=mCONFIG_NETFILTER_XT_MATCH_MULTIPORT=mCONFIG_NETFILTER_XT_MATCH_PHYSDEV=mCONFIG_NETFILTER_XT_MATCH_PKTTYPE=mCONFIG_NETFILTER_XT_MATCH_QUOTA=mCONFIG_NETFILTER_XT_MATCH_RATEEST=mCONFIG_NETFILTER_XT_MATCH_REALM=mCONFIG_NETFILTER_XT_MATCH_SCTP=mCONFIG_NETFILTER_XT_MATCH_STATE=mCONFIG_NETFILTER_XT_MATCH_STATISTIC=mCONFIG_NETFILTER_XT_MATCH_STRING=mCONFIG_NETFILTER_XT_MATCH_TCPMSS=mCONFIG_NETFILTER_XT_MATCH_TIME=mCONFIG_NETFILTER_XT_MATCH_U32=mCONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
# IP: Netfilter Configuration
#CONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not setCONFIG_IP_NF_QUEUE=mCONFIG_IP_NF_IPTABLES=mCONFIG_IP_NF_MATCH_RECENT=mCONFIG_IP_NF_MATCH_ECN=mCONFIG_IP_NF_MATCH_AH=mCONFIG_IP_NF_MATCH_TTL=mCONFIG_IP_NF_MATCH_ADDRTYPE=mCONFIG_IP_NF_FILTER=mCONFIG_IP_NF_TARGET_REJECT=mCONFIG_IP_NF_TARGET_LOG=mCONFIG_IP_NF_TARGET_ULOG=mCONFIG_NF_NAT=mCONFIG_NF_NAT_NEEDED=yCONFIG_IP_NF_TARGET_MASQUERADE=mCONFIG_IP_NF_TARGET_REDIRECT=mCONFIG_IP_NF_TARGET_NETMAP=mCONFIG_NF_NAT_SNMP_BASIC=mCONFIG_NF_NAT_PROTO_DCCP=mCONFIG_NF_NAT_PROTO_GRE=mCONFIG_NF_NAT_PROTO_UDPLITE=mCONFIG_NF_NAT_PROTO_SCTP=mCONFIG_NF_NAT_FTP=mCONFIG_NF_NAT_IRC=mCONFIG_NF_NAT_TFTP=mCONFIG_NF_NAT_AMANDA=mCONFIG_NF_NAT_PPTP=mCONFIG_NF_NAT_H323=mCONFIG_NF_NAT_SIP=mCONFIG_IP_NF_MANGLE=mCONFIG_IP_NF_TARGET_ECN=mCONFIG_IP_NF_TARGET_TTL=mCONFIG_IP_NF_TARGET_CLUSTERIP=mCONFIG_IP_NF_RAW=mCONFIG_IP_NF_SECURITY=mCONFIG_IP_NF_ARPTABLES=mCONFIG_IP_NF_ARPFILTER=mCONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#CONFIG_NF_CONNTRACK_IPV6=mCONFIG_IP6_NF_QUEUE=mCONFIG_IP6_NF_IPTABLES=mCONFIG_IP6_NF_MATCH_RT=mCONFIG_IP6_NF_MATCH_OPTS=mCONFIG_IP6_NF_MATCH_FRAG=mCONFIG_IP6_NF_MATCH_HL=mCONFIG_IP6_NF_MATCH_IPV6HEADER=mCONFIG_IP6_NF_MATCH_AH=mCONFIG_IP6_NF_MATCH_MH=mCONFIG_IP6_NF_MATCH_EUI64=mCONFIG_IP6_NF_FILTER=mCONFIG_IP6_NF_TARGET_LOG=mCONFIG_IP6_NF_TARGET_REJECT=mCONFIG_IP6_NF_MANGLE=mCONFIG_IP6_NF_TARGET_HL=mCONFIG_IP6_NF_RAW=mCONFIG_IP6_NF_SECURITY=m
#
# DECnet: Netfilter Configuration
#
# CONFIG_DECNET_NF_GRABULATOR is not set
#
# Bridge: Netfilter Configuration
#CONFIG_BRIDGE_NF_EBTABLES=mCONFIG_BRIDGE_EBT_BROUTE=mCONFIG_BRIDGE_EBT_T_FILTER=mCONFIG_BRIDGE_EBT_T_NAT=mCONFIG_BRIDGE_EBT_802_3=mCONFIG_BRIDGE_EBT_AMONG=mCONFIG_BRIDGE_EBT_ARP=mCONFIG_BRIDGE_EBT_IP=mCONFIG_BRIDGE_EBT_IP6=mCONFIG_BRIDGE_EBT_LIMIT=mCONFIG_BRIDGE_EBT_MARK=mCONFIG_BRIDGE_EBT_PKTTYPE=mCONFIG_BRIDGE_EBT_STP=mCONFIG_BRIDGE_EBT_VLAN=mCONFIG_BRIDGE_EBT_ARPREPLY=mCONFIG_BRIDGE_EBT_DNAT=mCONFIG_BRIDGE_EBT_MARK_T=mCONFIG_BRIDGE_EBT_REDIRECT=mCONFIG_BRIDGE_EBT_SNAT=mCONFIG_BRIDGE_EBT_LOG=mCONFIG_BRIDGE_EBT_ULOG=mCONFIG_BRIDGE_EBT_NFLOG=mCONFIG_IP_DCCP=mCONFIG_INET_DCCP_DIAG=mCONFIG_IP_DCCP_ACKVEC=y
#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#CONFIG_IP_DCCP_CCID2=m
# CONFIG_IP_DCCP_CCID2_DEBUG is not setCONFIG_IP_DCCP_CCID3=m
# CONFIG_IP_DCCP_CCID3_DEBUG is not setCONFIG_IP_DCCP_CCID3_RTO=100CONFIG_IP_DCCP_TFRC_LIB=m
#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not setCONFIG_NET_DCCPPROBE=mCONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not setCONFIG_SCTP_HMAC_MD5=yCONFIG_TIPC=m
# CONFIG_TIPC_ADVANCED is not set
# CONFIG_TIPC_DEBUG is not setCONFIG_ATM=mCONFIG_ATM_CLIP=m
# CONFIG_ATM_CLIP_NO_ICMP is not setCONFIG_ATM_LANE=m
# CONFIG_ATM_MPOA is not setCONFIG_ATM_BR2684=m
# CONFIG_ATM_BR2684_IPFILTER is not setCONFIG_STP=mCONFIG_GARP=mCONFIG_BRIDGE=mCONFIG_VLAN_8021Q=mCONFIG_VLAN_8021Q_GVRP=yCONFIG_DECNET=mCONFIG_DECNET_ROUTER=yCONFIG_LLC=y
# CONFIG_LLC2 is not setCONFIG_IPX=m
# CONFIG_IPX_INTERN is not setCONFIG_ATALK=mCONFIG_DEV_APPLETALK=mCONFIG_IPDDP=mCONFIG_IPDDP_ENCAP=yCONFIG_IPDDP_DECAP=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not setCONFIG_WAN_ROUTER=mCONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#CONFIG_NET_SCH_CBQ=mCONFIG_NET_SCH_HTB=mCONFIG_NET_SCH_HFSC=mCONFIG_NET_SCH_ATM=mCONFIG_NET_SCH_PRIO=mCONFIG_NET_SCH_RED=mCONFIG_NET_SCH_SFQ=mCONFIG_NET_SCH_TEQL=mCONFIG_NET_SCH_TBF=mCONFIG_NET_SCH_GRED=mCONFIG_NET_SCH_DSMARK=mCONFIG_NET_SCH_NETEM=mCONFIG_NET_SCH_INGRESS=m
#
# Classification
#CONFIG_NET_CLS=yCONFIG_NET_CLS_BASIC=mCONFIG_NET_CLS_TCINDEX=mCONFIG_NET_CLS_ROUTE4=mCONFIG_NET_CLS_ROUTE=yCONFIG_NET_CLS_FW=mCONFIG_NET_CLS_U32=mCONFIG_CLS_U32_PERF=yCONFIG_CLS_U32_MARK=yCONFIG_NET_CLS_RSVP=mCONFIG_NET_CLS_RSVP6=mCONFIG_NET_CLS_FLOW=mCONFIG_NET_EMATCH=yCONFIG_NET_EMATCH_STACK=32CONFIG_NET_EMATCH_CMP=mCONFIG_NET_EMATCH_NBYTE=mCONFIG_NET_EMATCH_U32=mCONFIG_NET_EMATCH_META=mCONFIG_NET_EMATCH_TEXT=mCONFIG_NET_CLS_ACT=yCONFIG_NET_ACT_POLICE=mCONFIG_NET_ACT_GACT=mCONFIG_GACT_PROB=yCONFIG_NET_ACT_MIRRED=mCONFIG_NET_ACT_IPT=mCONFIG_NET_ACT_NAT=mCONFIG_NET_ACT_PEDIT=mCONFIG_NET_ACT_SIMP=mCONFIG_NET_CLS_IND=yCONFIG_NET_SCH_FIFO=y
#
# Network testing
#CONFIG_NET_PKTGEN=m
# CONFIG_NET_TCPPROBE is not setCONFIG_HAMRADIO=y
#
# Packet Radio protocols
#CONFIG_AX25=mCONFIG_AX25_DAMA_SLAVE=yCONFIG_NETROM=mCONFIG_ROSE=m
#
# AX.25 network device drivers
#CONFIG_MKISS=mCONFIG_6PACK=mCONFIG_BPQETHER=mCONFIG_BAYCOM_SER_FDX=mCONFIG_BAYCOM_SER_HDX=mCONFIG_BAYCOM_PAR=mCONFIG_YAM=mCONFIG_CAN=mCONFIG_CAN_RAW=mCONFIG_CAN_BCM=m
#
# CAN Device Drivers
#CONFIG_CAN_VCAN=mCONFIG_CAN_DEBUG_DEVICES=yCONFIG_IRDA=m
#
# IrDA protocols
#CONFIG_IRLAN=mCONFIG_IRNET=mCONFIG_IRCOMM=m
# CONFIG_IRDA_ULTRA is not set
#
# IrDA options
#CONFIG_IRDA_CACHE_LAST_LSAP=yCONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set
#
# Infrared-port device drivers
#
#
# SIR device drivers
#CONFIG_IRTTY_SIR=m
#
# Dongle support
#CONFIG_DONGLE=yCONFIG_ESI_DONGLE=mCONFIG_ACTISYS_DONGLE=mCONFIG_TEKRAM_DONGLE=mCONFIG_TOIM3232_DONGLE=mCONFIG_LITELINK_DONGLE=mCONFIG_MA600_DONGLE=mCONFIG_GIRBIL_DONGLE=mCONFIG_MCP2120_DONGLE=mCONFIG_OLD_BELKIN_DONGLE=mCONFIG_ACT200L_DONGLE=mCONFIG_KINGSUN_DONGLE=mCONFIG_KSDAZZLE_DONGLE=mCONFIG_KS959_DONGLE=m
#
# FIR device drivers
#CONFIG_USB_IRDA=mCONFIG_SIGMATEL_FIR=mCONFIG_NSC_FIR=mCONFIG_WINBOND_FIR=mCONFIG_SMC_IRCC_FIR=mCONFIG_ALI_FIR=mCONFIG_VLSI_FIR=mCONFIG_VIA_FIR=mCONFIG_MCS_FIR=mCONFIG_BT=mCONFIG_BT_L2CAP=mCONFIG_BT_SCO=mCONFIG_BT_RFCOMM=mCONFIG_BT_RFCOMM_TTY=yCONFIG_BT_BNEP=mCONFIG_BT_BNEP_MC_FILTER=yCONFIG_BT_BNEP_PROTO_FILTER=yCONFIG_BT_CMTP=mCONFIG_BT_HIDP=m
#
# Bluetooth device drivers
#CONFIG_BT_HCIUSB=mCONFIG_BT_HCIUSB_SCO=yCONFIG_BT_HCIBTSDIO=mCONFIG_BT_HCIUART=mCONFIG_BT_HCIUART_H4=yCONFIG_BT_HCIUART_BCSP=yCONFIG_BT_HCIUART_LL=yCONFIG_BT_HCIBCM203X=mCONFIG_BT_HCIBPA10X=mCONFIG_BT_HCIBFUSB=mCONFIG_BT_HCIDTL1=mCONFIG_BT_HCIBT3C=mCONFIG_BT_HCIBLUECARD=mCONFIG_BT_HCIBTUART=mCONFIG_BT_HCIVHCI=m
# CONFIG_AF_RXRPC is not setCONFIG_FIB_RULES=y
#
# Wireless
#CONFIG_CFG80211=mCONFIG_NL80211=yCONFIG_WIRELESS_EXT=yCONFIG_WIRELESS_EXT_SYSFS=yCONFIG_MAC80211=m
#
# Rate control algorithm selection
#CONFIG_MAC80211_RC_PID=yCONFIG_MAC80211_RC_DEFAULT_PID=yCONFIG_MAC80211_RC_DEFAULT="pid"CONFIG_MAC80211_MESH=yCONFIG_MAC80211_LEDS=yCONFIG_MAC80211_DEBUGFS=y
# CONFIG_MAC80211_DEBUG_MENU is not setCONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not setCONFIG_IEEE80211_CRYPT_WEP=mCONFIG_IEEE80211_CRYPT_CCMP=mCONFIG_IEEE80211_CRYPT_TKIP=mCONFIG_RFKILL=mCONFIG_RFKILL_INPUT=mCONFIG_RFKILL_LEDS=yCONFIG_NET_9P=mCONFIG_NET_9P_VIRTIO=m
# CONFIG_NET_9P_DEBUG is not set
#
# Device Drivers
#
#
# Generic Driver Options
#CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"CONFIG_STANDALONE=yCONFIG_PREVENT_FIRMWARE_BUILD=yCONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not setCONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not setCONFIG_DEBUG_DEVRES=y
# CONFIG_SYS_HYPERVISOR is not setCONFIG_CONNECTOR=yCONFIG_PROC_EVENTS=yCONFIG_MTD=m
# CONFIG_MTD_DEBUG is not setCONFIG_MTD_CONCAT=mCONFIG_MTD_PARTITIONS=yCONFIG_MTD_REDBOOT_PARTS=mCONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
# CONFIG_MTD_REDBOOT_PARTS_READONLY is not setCONFIG_MTD_AR7_PARTS=m
#
# User Modules And Translation Layers
#CONFIG_MTD_CHAR=mCONFIG_MTD_BLKDEVS=mCONFIG_MTD_BLOCK=mCONFIG_MTD_BLOCK_RO=mCONFIG_FTL=mCONFIG_NFTL=mCONFIG_NFTL_RW=yCONFIG_INFTL=mCONFIG_RFD_FTL=mCONFIG_SSFDC=mCONFIG_MTD_OOPS=m
#
# RAM/ROM/Flash chip drivers
#CONFIG_MTD_CFI=mCONFIG_MTD_JEDECPROBE=mCONFIG_MTD_GEN_PROBE=m
# CONFIG_MTD_CFI_ADV_OPTIONS is not setCONFIG_MTD_MAP_BANK_WIDTH_1=yCONFIG_MTD_MAP_BANK_WIDTH_2=yCONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not setCONFIG_MTD_CFI_I1=yCONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not setCONFIG_MTD_CFI_INTELEXT=mCONFIG_MTD_CFI_AMDSTD=mCONFIG_MTD_CFI_STAA=mCONFIG_MTD_CFI_UTIL=mCONFIG_MTD_RAM=mCONFIG_MTD_ROM=mCONFIG_MTD_ABSENT=m
#
# Mapping drivers for chip access
#CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_PHYSMAP is not setCONFIG_MTD_SC520CDP=mCONFIG_MTD_NETSC520=mCONFIG_MTD_TS5500=m
# CONFIG_MTD_SBC_GXX is not set
# CONFIG_MTD_AMD76XROM is not set
# CONFIG_MTD_ICHXROM is not setCONFIG_MTD_ESB2ROM=mCONFIG_MTD_CK804XROM=mCONFIG_MTD_SCB2_FLASH=m
# CONFIG_MTD_NETtel is not set
# CONFIG_MTD_DILNETPC is not set
# CONFIG_MTD_L440GX is not setCONFIG_MTD_PCI=m
# CONFIG_MTD_INTEL_VR_NOR is not set
# CONFIG_MTD_PLATRAM is not set
#
# Self-contained MTD device drivers
#CONFIG_MTD_PMC551=m
# CONFIG_MTD_PMC551_BUGFIX is not set
# CONFIG_MTD_PMC551_DEBUG is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not setCONFIG_MTD_MTDRAM=mCONFIG_MTDRAM_TOTAL_SIZE=4096CONFIG_MTDRAM_ERASE_SIZE=128CONFIG_MTD_BLOCK2MTD=m
#
# Disk-On-Chip Device Drivers
#
# CONFIG_MTD_DOC2000 is not set
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set CONFIG_MTD_NAND=m
# CONFIG_MTD_NAND_VERIFY_WRITE is not set CONFIG_MTD_NAND_ECC_SMC=y
# CONFIG_MTD_NAND_MUSEUM_IDS is not set CONFIG_MTD_NAND_IDS=m CONFIG_MTD_NAND_DISKONCHIP=m
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set # CONFIG_MTD_NAND_CAFE is not set CONFIG_MTD_NAND_NANDSIM=m
# CONFIG_MTD_NAND_PLATFORM is not set CONFIG_MTD_ALAUDA=m
# CONFIG_MTD_ONENAND is not set
#
# UBI - Unsorted block images
#CONFIG_MTD_UBI=mCONFIG_MTD_UBI_WL_THRESHOLD=4096CONFIG_MTD_UBI_BEB_RESERVE=1
# CONFIG_MTD_UBI_GLUEBI is not set
#
# UBI debugging options
#
# CONFIG_MTD_UBI_DEBUG is not setCONFIG_PARPORT=mCONFIG_PARPORT_PC=mCONFIG_PARPORT_SERIAL=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not setCONFIG_PARPORT_PC_PCMCIA=m
# CONFIG_PARPORT_GSC is not set
# CONFIG_PARPORT_AX88796 is not setCONFIG_PARPORT_1284=yCONFIG_PARPORT_NOT_PC=yCONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#CONFIG_PNPACPI=yCONFIG_BLK_DEV=yCONFIG_BLK_DEV_FD=mCONFIG_PARIDE=m
#
# Parallel IDE high-level drivers
#CONFIG_PARIDE_PD=mCONFIG_PARIDE_PCD=mCONFIG_PARIDE_PF=mCONFIG_PARIDE_PT=mCONFIG_PARIDE_PG=m
#
# Parallel IDE protocol modules
#CONFIG_PARIDE_ATEN=mCONFIG_PARIDE_BPCK=mCONFIG_PARIDE_COMM=mCONFIG_PARIDE_DSTR=mCONFIG_PARIDE_FIT2=mCONFIG_PARIDE_FIT3=mCONFIG_PARIDE_EPAT=mCONFIG_PARIDE_EPATC8=yCONFIG_PARIDE_EPIA=mCONFIG_PARIDE_FRIQ=mCONFIG_PARIDE_FRPW=mCONFIG_PARIDE_KBIC=mCONFIG_PARIDE_KTTI=mCONFIG_PARIDE_ON20=mCONFIG_PARIDE_ON26=mCONFIG_BLK_CPQ_DA=mCONFIG_BLK_CPQ_CISS_DA=mCONFIG_CISS_SCSI_TAPE=yCONFIG_BLK_DEV_DAC960=mCONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not setCONFIG_BLK_DEV_LOOP=mCONFIG_BLK_DEV_CRYPTOLOOP=mCONFIG_BLK_DEV_NBD=mCONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_UB is not setCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=16384
# CONFIG_BLK_DEV_XIP is not setCONFIG_CDROM_PKTCDVD=mCONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not setCONFIG_ATA_OVER_ETH=mCONFIG_XEN_BLKDEV_FRONTEND=mCONFIG_VIRTIO_BLK=m
# CONFIG_BLK_DEV_HD is not setCONFIG_MISC_DEVICES=y
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not setCONFIG_EEPROM_93CX6=mCONFIG_SGI_IOC4=mCONFIG_TIFM_CORE=mCONFIG_TIFM_7XX1=mCONFIG_ACER_WMI=mCONFIG_ASUS_LAPTOP=mCONFIG_FUJITSU_LAPTOP=m
# CONFIG_FUJITSU_LAPTOP_DEBUG is not setCONFIG_HP_WMI=mCONFIG_MSI_LAPTOP=mCONFIG_COMPAL_LAPTOP=mCONFIG_SONY_LAPTOP=mCONFIG_SONYPI_COMPAT=yCONFIG_THINKPAD_ACPI=m
# CONFIG_THINKPAD_ACPI_DEBUG is not setCONFIG_THINKPAD_ACPI_BAY=yCONFIG_THINKPAD_ACPI_VIDEO=yCONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
# CONFIG_INTEL_MENLOW is not set
# CONFIG_EEEPC_LAPTOP is not setCONFIG_ENCLOSURE_SERVICES=mCONFIG_SGI_XP=m
# CONFIG_HP_ILO is not setCONFIG_SGI_GRU=m
# CONFIG_SGI_GRU_DEBUG is not setCONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#CONFIG_RAID_ATTRS=mCONFIG_SCSI=yCONFIG_SCSI_DMA=yCONFIG_SCSI_TGT=mCONFIG_SCSI_NETLINK=yCONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#CONFIG_BLK_DEV_SD=yCONFIG_CHR_DEV_ST=mCONFIG_CHR_DEV_OSST=mCONFIG_BLK_DEV_SR=mCONFIG_BLK_DEV_SR_VENDOR=yCONFIG_CHR_DEV_SG=yCONFIG_CHR_DEV_SCH=mCONFIG_SCSI_ENCLOSURE=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs #CONFIG_SCSI_MULTI_LUN=yCONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=yCONFIG_SCSI_SCAN_ASYNC=yCONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#CONFIG_SCSI_SPI_ATTRS=mCONFIG_SCSI_FC_ATTRS=mCONFIG_SCSI_FC_TGT_ATTRS=yCONFIG_SCSI_ISCSI_ATTRS=mCONFIG_SCSI_SAS_ATTRS=mCONFIG_SCSI_SAS_LIBSAS=mCONFIG_SCSI_SAS_ATA=yCONFIG_SCSI_SAS_HOST_SMP=y
# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not setCONFIG_SCSI_SRP_ATTRS=mCONFIG_SCSI_SRP_TGT_ATTRS=yCONFIG_SCSI_LOWLEVEL=yCONFIG_ISCSI_TCP=mCONFIG_BLK_DEV_3W_XXXX_RAID=mCONFIG_SCSI_3W_9XXX=mCONFIG_SCSI_ACARD=mCONFIG_SCSI_AACRAID=mCONFIG_SCSI_AIC7XXX=mCONFIG_AIC7XXX_CMDS_PER_DEVICE=4CONFIG_AIC7XXX_RESET_DELAY_MS=15000
# CONFIG_AIC7XXX_DEBUG_ENABLE is not setCONFIG_AIC7XXX_DEBUG_MASK=0
# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not setCONFIG_SCSI_AIC7XXX_OLD=mCONFIG_SCSI_AIC79XX=mCONFIG_AIC79XX_CMDS_PER_DEVICE=4CONFIG_AIC79XX_RESET_DELAY_MS=15000
# CONFIG_AIC79XX_DEBUG_ENABLE is not setCONFIG_AIC79XX_DEBUG_MASK=0
# CONFIG_AIC79XX_REG_PRETTY_PRINT is not setCONFIG_SCSI_AIC94XX=m
# CONFIG_AIC94XX_DEBUG is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not setCONFIG_SCSI_ARCMSR=mCONFIG_SCSI_ARCMSR_AER=yCONFIG_MEGARAID_NEWGEN=yCONFIG_MEGARAID_MM=mCONFIG_MEGARAID_MAILBOX=mCONFIG_MEGARAID_LEGACY=mCONFIG_MEGARAID_SAS=mCONFIG_SCSI_HPTIOP=mCONFIG_SCSI_BUSLOGIC=m
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not setCONFIG_SCSI_GDTH=mCONFIG_SCSI_IPS=mCONFIG_SCSI_INITIO=mCONFIG_SCSI_INIA100=mCONFIG_SCSI_PPA=mCONFIG_SCSI_IMM=m
# CONFIG_SCSI_IZIP_EPP16 is not set
# CONFIG_SCSI_IZIP_SLOW_CTR is not setCONFIG_SCSI_MVSAS=mCONFIG_SCSI_STEX=mCONFIG_SCSI_SYM53C8XX_2=mCONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_IPR is not setCONFIG_SCSI_QLOGIC_1280=mCONFIG_SCSI_QLA_FC=mCONFIG_SCSI_QLA_ISCSI=mCONFIG_SCSI_LPFC=m
CONFIG_SCSI_DC395x=mCONFIG_SCSI_DC390T=m
# CONFIG_SCSI_DEBUG is not setCONFIG_SCSI_SRP=mCONFIG_SCSI_LOWLEVEL_PCMCIA=y
# CONFIG_PCMCIA_FDOMAIN is not setCONFIG_PCMCIA_QLOGIC=mCONFIG_PCMCIA_SYM53C500=mCONFIG_SCSI_DH=yCONFIG_SCSI_DH_RDAC=mCONFIG_SCSI_DH_HP_SW=mCONFIG_SCSI_DH_EMC=mCONFIG_SCSI_DH_ALUA=mCONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not setCONFIG_ATA_ACPI=yCONFIG_SATA_PMP=yCONFIG_SATA_AHCI=mCONFIG_SATA_SIL24=mCONFIG_ATA_SFF=yCONFIG_SATA_SVW=mCONFIG_ATA_PIIX=mCONFIG_SATA_MV=mCONFIG_SATA_NV=mCONFIG_PDC_ADMA=mCONFIG_SATA_QSTOR=mCONFIG_SATA_PROMISE=mCONFIG_SATA_SX4=mCONFIG_SATA_SIL=mCONFIG_SATA_SIS=mCONFIG_SATA_ULI=mCONFIG_SATA_VIA=mCONFIG_SATA_VITESSE=mCONFIG_SATA_INIC162X=mCONFIG_PATA_ACPI=mCONFIG_PATA_ALI=mCONFIG_PATA_AMD=mCONFIG_PATA_ARTOP=mCONFIG_PATA_ATIIXP=mCONFIG_PATA_CMD640_PCI=mCONFIG_PATA_CMD64X=mCONFIG_PATA_CS5520=mCONFIG_PATA_CS5530=mCONFIG_PATA_CYPRESS=mCONFIG_PATA_EFAR=mCONFIG_ATA_GENERIC=mCONFIG_PATA_HPT366=mCONFIG_PATA_HPT37X=mCONFIG_PATA_HPT3X2N=mCONFIG_PATA_HPT3X3=mCONFIG_PATA_HPT3X3_DMA=yCONFIG_PATA_IT821X=mCONFIG_PATA_IT8213=mCONFIG_PATA_JMICRON=mCONFIG_PATA_TRIFLEX=mCONFIG_PATA_MARVELL=mCONFIG_PATA_MPIIX=mCONFIG_PATA_OLDPIIX=mCONFIG_PATA_NETCELL=mCONFIG_PATA_NINJA32=mCONFIG_PATA_NS87410=mCONFIG_PATA_NS87415=mCONFIG_PATA_OPTI=mCONFIG_PATA_OPTIDMA=mCONFIG_PATA_PCMCIA=mCONFIG_PATA_PDC_OLD=m
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not setCONFIG_PATA_SERVERWORKS=mCONFIG_PATA_PDC2027X=mCONFIG_PATA_SIL680=mCONFIG_PATA_SIS=mCONFIG_PATA_VIA=mCONFIG_PATA_WINBOND=mCONFIG_PATA_SCH=mCONFIG_MD=yCONFIG_BLK_DEV_MD=yCONFIG_MD_LINEAR=mCONFIG_MD_RAID0=mCONFIG_MD_RAID1=mCONFIG_MD_RAID10=mCONFIG_MD_RAID456=mCONFIG_MD_RAID5_RESHAPE=yCONFIG_MD_MULTIPATH=mCONFIG_MD_FAULTY=mCONFIG_BLK_DEV_DM=mCONFIG_DM_DEBUG=yCONFIG_DM_CRYPT=mCONFIG_DM_SNAPSHOT=mCONFIG_DM_MIRROR=mCONFIG_DM_ZERO=mCONFIG_DM_MULTIPATH=m
# CONFIG_DM_DELAY is not setCONFIG_DM_UEVENT=yCONFIG_FUSION=yCONFIG_FUSION_SPI=mCONFIG_FUSION_FC=mCONFIG_FUSION_SAS=mCONFIG_FUSION_MAX_SGE=40CONFIG_FUSION_CTL=mCONFIG_FUSION_LAN=mCONFIG_FUSION_LOGGING=y
#
# IEEE 1394 (FireWire) support
#
#
# Enable only one of the two stacks, unless you know what you are doing #CONFIG_FIREWIRE=mCONFIG_FIREWIRE_OHCI=mCONFIG_FIREWIRE_OHCI_DEBUG=yCONFIG_FIREWIRE_SBP2=m
# CONFIG_IEEE1394 is not setCONFIG_I2O=m
# CONFIG_I2O_LCT_NOTIFY_ON_CHANGES is not set CONFIG_I2O_EXT_ADAPTEC=yCONFIG_I2O_EXT_ADAPTEC_DMA64=yCONFIG_I2O_CONFIG=mCONFIG_I2O_CONFIG_OLD_IOCTL=yCONFIG_I2O_BUS=mCONFIG_I2O_BLOCK=mCONFIG_I2O_SCSI=mCONFIG_I2O_PROC=mCONFIG_MACINTOSH_DRIVERS=yCONFIG_MAC_EMUMOUSEBTN=yCONFIG_NETDEVICES=yCONFIG_IFB=mCONFIG_DUMMY=mCONFIG_BONDING=mCONFIG_MACVLAN=mCONFIG_EQUALIZER=mCONFIG_TUN=mCONFIG_VETH=mCONFIG_NET_SB1000=m
# CONFIG_ARCNET is not setCONFIG_PHYLIB=m
#
# MII PHY device drivers
#CONFIG_MARVELL_PHY=mCONFIG_DAVICOM_PHY=mCONFIG_QSEMI_PHY=mCONFIG_LXT_PHY=mCONFIG_CICADA_PHY=mCONFIG_VITESSE_PHY=mCONFIG_SMSC_PHY=mCONFIG_BROADCOM_PHY=mCONFIG_ICPLUS_PHY=mCONFIG_REALTEK_PHY=mCONFIG_MDIO_BITBANG=mCONFIG_NET_ETHERNET=yCONFIG_MII=mCONFIG_HAPPYMEAL=mCONFIG_SUNGEM=mCONFIG_CASSINI=mCONFIG_NET_VENDOR_3COM=yCONFIG_VORTEX=mCONFIG_TYPHOON=mCONFIG_NET_TULIP=yCONFIG_DE2104X=mCONFIG_TULIP=m
# CONFIG_TULIP_MWI is not setCONFIG_TULIP_MMIO=y
# CONFIG_TULIP_NAPI is not setCONFIG_DE4X5=mCONFIG_WINBOND_840=mCONFIG_DM9102=mCONFIG_ULI526X=mCONFIG_PCMCIA_XIRCOM=m
# CONFIG_HP100 is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not setCONFIG_NET_PCI=yCONFIG_PCNET32=mCONFIG_AMD8111_ETH=mCONFIG_ADAPTEC_STARFIRE=mCONFIG_B44=mCONFIG_B44_PCI_AUTOSELECT=yCONFIG_B44_PCICORE_AUTOSELECT=yCONFIG_B44_PCI=yCONFIG_FORCEDETH=mCONFIG_FORCEDETH_NAPI=y
# CONFIG_EEPRO100 is not setCONFIG_E100=mCONFIG_FEALNX=mCONFIG_NATSEMI=mCONFIG_NE2K_PCI=mCONFIG_8139CP=mCONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not setCONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not setCONFIG_R6040=mCONFIG_SIS900=mCONFIG_EPIC100=mCONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not setCONFIG_TLAN=mCONFIG_VIA_RHINE=mCONFIG_VIA_RHINE_MMIO=yCONFIG_SC92031=mCONFIG_NET_POCKET=yCONFIG_ATP=mCONFIG_DE600=mCONFIG_DE620=mCONFIG_NETDEV_1000=yCONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not setCONFIG_DL2K=mCONFIG_E1000=m
# CONFIG_E1000_DISABLE_PACKET_SPLIT is not setCONFIG_E1000E=mCONFIG_IP1000=mCONFIG_IGB=m
# CONFIG_IGB_LRO is not setCONFIG_NS83820=mCONFIG_HAMACHI=mCONFIG_YELLOWFIN=mCONFIG_R8169=mCONFIG_R8169_VLAN=yCONFIG_SIS190=mCONFIG_SKGE=m
# CONFIG_SKGE_DEBUG is not setCONFIG_SKY2=m
# CONFIG_SKY2_DEBUG is not setCONFIG_VIA_VELOCITY=mCONFIG_TIGON3=mCONFIG_BNX2=mCONFIG_QLA3XXX=mCONFIG_ATL1=mCONFIG_ATL1E=mCONFIG_ATL2=mCONFIG_NETDEV_10000=yCONFIG_CHELSIO_T1=mCONFIG_CHELSIO_T1_1G=yCONFIG_CHELSIO_T3=mCONFIG_IXGBE=mCONFIG_IXGB=mCONFIG_S2IO=mCONFIG_MYRI10GE=mCONFIG_NETXEN_NIC=mCONFIG_NIU=mCONFIG_MLX4_CORE=mCONFIG_MLX4_DEBUG=yCONFIG_TEHUTI=mCONFIG_BNX2X=m
# CONFIG_SFC is not setCONFIG_TR=yCONFIG_IBMOL=mCONFIG_3C359=m
# CONFIG_TMS380TR is not set
#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not setCONFIG_WLAN_80211=y
# CONFIG_PCMCIA_RAYCS is not setCONFIG_IPW2100=mCONFIG_IPW2100_MONITOR=y
# CONFIG_IPW2100_DEBUG is not setCONFIG_IPW2200=mCONFIG_IPW2200_MONITOR=yCONFIG_IPW2200_RADIOTAP=yCONFIG_IPW2200_PROMISCUOUS=yCONFIG_IPW2200_QOS=y
# CONFIG_IPW2200_DEBUG is not setCONFIG_LIBERTAS=mCONFIG_LIBERTAS_USB=mCONFIG_LIBERTAS_CS=mCONFIG_LIBERTAS_SDIO=mCONFIG_LIBERTAS_DEBUG=yCONFIG_AIRO=mCONFIG_HERMES=mCONFIG_PLX_HERMES=mCONFIG_TMD_HERMES=mCONFIG_NORTEL_HERMES=mCONFIG_PCI_HERMES=mCONFIG_PCMCIA_HERMES=mCONFIG_PCMCIA_SPECTRUM=mCONFIG_ATMEL=mCONFIG_PCI_ATMEL=mCONFIG_PCMCIA_ATMEL=mCONFIG_USB_ATMEL=mCONFIG_AIRO_CS=mCONFIG_PCMCIA_WL3501=mCONFIG_PRISM54=mCONFIG_USB_ZD1201=mCONFIG_USB_NET_RNDIS_WLAN=mCONFIG_RTL8180=mCONFIG_RTL8187=mCONFIG_ADM8211=mCONFIG_MAC80211_HWSIM=mCONFIG_P54_COMMON=mCONFIG_P54_USB=mCONFIG_P54_PCI=mCONFIG_ATH5K=mCONFIG_ATH5K_DEBUG=yCONFIG_IWLWIFI=mCONFIG_IWLCORE=mCONFIG_IWLWIFI_LEDS=yCONFIG_IWLWIFI_RFKILL=yCONFIG_IWLWIFI_DEBUG=yCONFIG_IWLWIFI_DEBUGFS=yCONFIG_IWLAGN=mCONFIG_IWLAGN_SPECTRUM_MEASUREMENT=yCONFIG_IWLAGN_LEDS=yCONFIG_IWL4965=yCONFIG_IWL5000=yCONFIG_IWL3945=mCONFIG_IWL3945_RFKILL=yCONFIG_IWL3945_SPECTRUM_MEASUREMENT=yCONFIG_IWL3945_LEDS=yCONFIG_IWL3945_DEBUG=yCONFIG_HOSTAP=mCONFIG_HOSTAP_FIRMWARE=yCONFIG_HOSTAP_FIRMWARE_NVRAM=yCONFIG_HOSTAP_PLX=mCONFIG_HOSTAP_PCI=mCONFIG_HOSTAP_CS=mCONFIG_B43=mCONFIG_B43_PCI_AUTOSELECT=yCONFIG_B43_PCICORE_AUTOSELECT=yCONFIG_B43_PCMCIA=yCONFIG_B43_PIO=yCONFIG_B43_LEDS=yCONFIG_B43_RFKILL=yCONFIG_B43_DEBUG=y
# CONFIG_B43_FORCE_PIO is not setCONFIG_B43LEGACY=mCONFIG_B43LEGACY_PCI_AUTOSELECT=yCONFIG_B43LEGACY_PCICORE_AUTOSELECT=yCONFIG_B43LEGACY_LEDS=yCONFIG_B43LEGACY_RFKILL=yCONFIG_B43LEGACY_DEBUG=yCONFIG_B43LEGACY_DMA=yCONFIG_B43LEGACY_PIO=yCONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
# CONFIG_B43LEGACY_DMA_MODE is not set
# CONFIG_B43LEGACY_PIO_MODE is not setCONFIG_ZD1211RW=m
# CONFIG_ZD1211RW_DEBUG is not setCONFIG_RT2X00=mCONFIG_RT2X00_LIB=mCONFIG_RT2X00_LIB_PCI=mCONFIG_RT2X00_LIB_USB=mCONFIG_RT2X00_LIB_FIRMWARE=yCONFIG_RT2X00_LIB_RFKILL=yCONFIG_RT2X00_LIB_LEDS=yCONFIG_RT2400PCI=mCONFIG_RT2400PCI_RFKILL=yCONFIG_RT2400PCI_LEDS=yCONFIG_RT2500PCI=mCONFIG_RT2500PCI_RFKILL=yCONFIG_RT2500PCI_LEDS=yCONFIG_RT61PCI=mCONFIG_RT61PCI_RFKILL=yCONFIG_RT61PCI_LEDS=yCONFIG_RT2500USB=mCONFIG_RT2500USB_LEDS=yCONFIG_RT73USB=mCONFIG_RT73USB_LEDS=yCONFIG_RT2X00_LIB_DEBUGFS=y
# CONFIG_RT2X00_DEBUG is not set
#
# USB Network Adapters
#CONFIG_USB_CATC=mCONFIG_USB_KAWETH=mCONFIG_USB_PEGASUS=mCONFIG_USB_RTL8150=mCONFIG_USB_USBNET=mCONFIG_USB_NET_AX8817X=mCONFIG_USB_HSO=mCONFIG_USB_NET_CDCETHER=mCONFIG_USB_NET_DM9601=mCONFIG_USB_NET_GL620A=mCONFIG_USB_NET_NET1080=mCONFIG_USB_NET_PLUSB=mCONFIG_USB_NET_MCS7830=mCONFIG_USB_NET_RNDIS_HOST=mCONFIG_USB_NET_CDC_SUBSET=mCONFIG_USB_ALI_M5632=yCONFIG_USB_AN2720=yCONFIG_USB_BELKIN=yCONFIG_USB_ARMLINUX=yCONFIG_USB_EPSON2888=yCONFIG_USB_KC2190=yCONFIG_USB_NET_ZAURUS=mCONFIG_NET_PCMCIA=yCONFIG_PCMCIA_3C589=mCONFIG_PCMCIA_3C574=mCONFIG_PCMCIA_FMVJ18X=mCONFIG_PCMCIA_PCNET=mCONFIG_PCMCIA_NMCLAN=mCONFIG_PCMCIA_SMC91C92=mCONFIG_PCMCIA_XIRC2PS=mCONFIG_PCMCIA_AXNET=m
# CONFIG_WAN is not setCONFIG_ATM_DRIVERS=y
# CONFIG_ATM_DUMMY is not setCONFIG_ATM_TCP=mCONFIG_ATM_LANAI=mCONFIG_ATM_ENI=m
# CONFIG_ATM_ENI_DEBUG is not set
# CONFIG_ATM_ENI_TUNE_BURST is not setCONFIG_ATM_FIRESTREAM=m
# CONFIG_ATM_ZATM is not setCONFIG_ATM_IDT77252=m
# CONFIG_ATM_IDT77252_DEBUG is not set
# CONFIG_ATM_IDT77252_RCV_ALL is not setCONFIG_ATM_IDT77252_USE_SUNI=yCONFIG_ATM_AMBASSADOR=m
# CONFIG_ATM_AMBASSADOR_DEBUG is not setCONFIG_ATM_HORIZON=m
# CONFIG_ATM_HORIZON_DEBUG is not set
# CONFIG_ATM_IA is not setCONFIG_ATM_FORE200E=m
# CONFIG_ATM_FORE200E_USE_TASKLET is not setCONFIG_ATM_FORE200E_TX_RETRY=16CONFIG_ATM_FORE200E_DEBUG=0CONFIG_ATM_HE=m
# CONFIG_ATM_HE_USE_SUNI is not setCONFIG_XEN_NETDEV_FRONTEND=mCONFIG_FDDI=y
# CONFIG_DEFXX is not setCONFIG_SKFP=m
# CONFIG_HIPPI is not setCONFIG_PLIP=mCONFIG_PPP=mCONFIG_PPP_MULTILINK=yCONFIG_PPP_FILTER=yCONFIG_PPP_ASYNC=mCONFIG_PPP_SYNC_TTY=mCONFIG_PPP_DEFLATE=m
# CONFIG_PPP_BSDCOMP is not setCONFIG_PPP_MPPE=mCONFIG_PPPOE=mCONFIG_PPPOATM=mCONFIG_PPPOL2TP=mCONFIG_SLIP=mCONFIG_SLIP_COMPRESSED=yCONFIG_SLHC=mCONFIG_SLIP_SMART=y
# CONFIG_SLIP_MODE_SLIP6 is not setCONFIG_NET_FC=yCONFIG_NETCONSOLE=mCONFIG_NETCONSOLE_DYNAMIC=yCONFIG_NETPOLL=yCONFIG_NETPOLL_TRAP=yCONFIG_NET_POLL_CONTROLLER=yCONFIG_VIRTIO_NET=mCONFIG_ISDN=yCONFIG_MISDN=mCONFIG_MISDN_DSP=mCONFIG_MISDN_L1OIP=m
#
# mISDN hardware drivers
#CONFIG_MISDN_HFCPCI=mCONFIG_MISDN_HFCMULTI=mCONFIG_ISDN_I4L=mCONFIG_ISDN_PPP=yCONFIG_ISDN_PPP_VJ=yCONFIG_ISDN_MPP=yCONFIG_IPPP_FILTER=y
# CONFIG_ISDN_PPP_BSDCOMP is not setCONFIG_ISDN_AUDIO=yCONFIG_ISDN_TTY_FAX=y
#
# ISDN feature submodules
#CONFIG_ISDN_DIVERSION=m
#
# ISDN4Linux hardware drivers
#
#
# Passive cards
#CONFIG_ISDN_DRV_HISAX=m
#
# D-channel protocol features
#CONFIG_HISAX_EURO=yCONFIG_DE_AOC=yCONFIG_HISAX_NO_SENDCOMPLETE=yCONFIG_HISAX_NO_LLC=yCONFIG_HISAX_NO_KEYPAD=yCONFIG_HISAX_1TR6=yCONFIG_HISAX_NI1=yCONFIG_HISAX_MAX_CARDS=8
#
# HiSax supported cards
#CONFIG_HISAX_16_3=yCONFIG_HISAX_TELESPCI=yCONFIG_HISAX_S0BOX=yCONFIG_HISAX_FRITZPCI=yCONFIG_HISAX_AVM_A1_PCMCIA=yCONFIG_HISAX_ELSA=yCONFIG_HISAX_DIEHLDIVA=yCONFIG_HISAX_SEDLBAUER=yCONFIG_HISAX_NETJET=yCONFIG_HISAX_NETJET_U=yCONFIG_HISAX_NICCY=yCONFIG_HISAX_BKM_A4T=yCONFIG_HISAX_SCT_QUADRO=yCONFIG_HISAX_GAZEL=yCONFIG_HISAX_HFC_PCI=yCONFIG_HISAX_W6692=yCONFIG_HISAX_HFC_SX=yCONFIG_HISAX_ENTERNOW_PCI=y
# CONFIG_HISAX_DEBUG is not set
#
# HiSax PCMCIA card service modules
#CONFIG_HISAX_SEDLBAUER_CS=mCONFIG_HISAX_ELSA_CS=mCONFIG_HISAX_AVM_A1_CS=mCONFIG_HISAX_TELES_CS=m
#
# HiSax sub driver modules
#CONFIG_HISAX_ST5481=m
# CONFIG_HISAX_HFCUSB is not setCONFIG_HISAX_HFC4S8S=mCONFIG_HISAX_FRITZ_PCIPNP=mCONFIG_HISAX_HDLC=y
#
# Active cards
#CONFIG_HYSDN=mCONFIG_HYSDN_CAPI=yCONFIG_ISDN_DRV_GIGASET=mCONFIG_GIGASET_BASE=mCONFIG_GIGASET_M105=mCONFIG_GIGASET_M101=m
# CONFIG_GIGASET_DEBUG is not set
# CONFIG_GIGASET_UNDOCREQ is not setCONFIG_ISDN_CAPI=mCONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
# CONFIG_CAPI_TRACE is not setCONFIG_ISDN_CAPI_MIDDLEWARE=yCONFIG_ISDN_CAPI_CAPI20=mCONFIG_ISDN_CAPI_CAPIFS_BOOL=yCONFIG_ISDN_CAPI_CAPIFS=mCONFIG_ISDN_CAPI_CAPIDRV=m
#
# CAPI hardware drivers
#CONFIG_CAPI_AVM=yCONFIG_ISDN_DRV_AVMB1_B1PCI=mCONFIG_ISDN_DRV_AVMB1_B1PCIV4=yCONFIG_ISDN_DRV_AVMB1_B1PCMCIA=mCONFIG_ISDN_DRV_AVMB1_AVM_CS=mCONFIG_ISDN_DRV_AVMB1_T1PCI=mCONFIG_ISDN_DRV_AVMB1_C4=m
# CONFIG_CAPI_EICON is not set
# CONFIG_PHONE is not set
#
# Input device support
#CONFIG_INPUT=yCONFIG_INPUT_FF_MEMLESS=yCONFIG_INPUT_POLLDEV=m
#
# Userland interfaces
#CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not setCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768CONFIG_INPUT_JOYDEV=mCONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not setCONFIG_XEN_KBDDEV_FRONTEND=y
#
# Input Device Drivers
#CONFIG_INPUT_KEYBOARD=yCONFIG_KEYBOARD_ATKBD=y
# 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 setCONFIG_INPUT_MOUSE=yCONFIG_MOUSE_PS2=yCONFIG_MOUSE_PS2_ALPS=yCONFIG_MOUSE_PS2_LOGIPS2PP=yCONFIG_MOUSE_PS2_SYNAPTICS=yCONFIG_MOUSE_PS2_LIFEBOOK=yCONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not setCONFIG_MOUSE_SERIAL=mCONFIG_MOUSE_APPLETOUCH=mCONFIG_MOUSE_VSXXXAA=mCONFIG_INPUT_JOYSTICK=yCONFIG_JOYSTICK_ANALOG=mCONFIG_JOYSTICK_A3D=mCONFIG_JOYSTICK_ADI=mCONFIG_JOYSTICK_COBRA=mCONFIG_JOYSTICK_GF2K=mCONFIG_JOYSTICK_GRIP=mCONFIG_JOYSTICK_GRIP_MP=mCONFIG_JOYSTICK_GUILLEMOT=mCONFIG_JOYSTICK_INTERACT=mCONFIG_JOYSTICK_SIDEWINDER=mCONFIG_JOYSTICK_TMDC=mCONFIG_JOYSTICK_IFORCE=mCONFIG_JOYSTICK_IFORCE_USB=yCONFIG_JOYSTICK_IFORCE_232=yCONFIG_JOYSTICK_WARRIOR=mCONFIG_JOYSTICK_MAGELLAN=mCONFIG_JOYSTICK_SPACEORB=mCONFIG_JOYSTICK_SPACEBALL=mCONFIG_JOYSTICK_STINGER=mCONFIG_JOYSTICK_TWIDJOY=mCONFIG_JOYSTICK_ZHENHUA=mCONFIG_JOYSTICK_DB9=mCONFIG_JOYSTICK_GAMECON=mCONFIG_JOYSTICK_TURBOGRAFX=mCONFIG_JOYSTICK_JOYDUMP=mCONFIG_JOYSTICK_XPAD=mCONFIG_JOYSTICK_XPAD_FF=yCONFIG_JOYSTICK_XPAD_LEDS=yCONFIG_INPUT_TABLET=yCONFIG_TABLET_USB_ACECAD=mCONFIG_TABLET_USB_AIPTEK=mCONFIG_TABLET_USB_GTCO=mCONFIG_TABLET_USB_KBTAB=mCONFIG_TABLET_USB_WACOM=mCONFIG_INPUT_TOUCHSCREEN=yCONFIG_TOUCHSCREEN_FUJITSU=mCONFIG_TOUCHSCREEN_GUNZE=mCONFIG_TOUCHSCREEN_ELO=mCONFIG_TOUCHSCREEN_MTOUCH=mCONFIG_TOUCHSCREEN_INEXIO=mCONFIG_TOUCHSCREEN_MK712=mCONFIG_TOUCHSCREEN_PENMOUNT=mCONFIG_TOUCHSCREEN_TOUCHRIGHT=mCONFIG_TOUCHSCREEN_TOUCHWIN=mCONFIG_TOUCHSCREEN_UCB1400=m
# CONFIG_TOUCHSCREEN_WM97XX is not setCONFIG_TOUCHSCREEN_USB_COMPOSITE=mCONFIG_TOUCHSCREEN_USB_EGALAX=yCONFIG_TOUCHSCREEN_USB_PANJIT=yCONFIG_TOUCHSCREEN_USB_3M=yCONFIG_TOUCHSCREEN_USB_ITM=yCONFIG_TOUCHSCREEN_USB_ETURBO=yCONFIG_TOUCHSCREEN_USB_GUNZE=yCONFIG_TOUCHSCREEN_USB_DMC_TSC10=yCONFIG_TOUCHSCREEN_USB_IRTOUCH=yCONFIG_TOUCHSCREEN_USB_IDEALTEK=yCONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=yCONFIG_TOUCHSCREEN_USB_GOTOP=yCONFIG_TOUCHSCREEN_TOUCHIT213=mCONFIG_INPUT_MISC=yCONFIG_INPUT_PCSPKR=mCONFIG_INPUT_APANEL=mCONFIG_INPUT_ATLAS_BTNS=mCONFIG_INPUT_ATI_REMOTE=mCONFIG_INPUT_ATI_REMOTE2=mCONFIG_INPUT_KEYSPAN_REMOTE=mCONFIG_INPUT_POWERMATE=mCONFIG_INPUT_YEALINK=mCONFIG_INPUT_UINPUT=m
#
# Hardware I/O ports
#CONFIG_SERIO=yCONFIG_SERIO_I8042=yCONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not setCONFIG_SERIO_LIBPS2=yCONFIG_SERIO_RAW=mCONFIG_GAMEPORT=mCONFIG_GAMEPORT_NS558=mCONFIG_GAMEPORT_L4=mCONFIG_GAMEPORT_EMU10K1=mCONFIG_GAMEPORT_FM801=mCONFIG_INPUT_LIRC=yCONFIG_LIRC_DEV=mCONFIG_LIRC_ATIUSB=mCONFIG_LIRC_BT829=mCONFIG_LIRC_CMDIR=mCONFIG_LIRC_I2C=mCONFIG_LIRC_IGORPLUGUSB=mCONFIG_LIRC_IMON=mCONFIG_LIRC_IT87=mCONFIG_LIRC_MCEUSB=mCONFIG_LIRC_MCEUSB2=mCONFIG_LIRC_PVR150=mCONFIG_LIRC_SERIAL=mCONFIG_LIRC_SIR=mCONFIG_LIRC_STREAMZAP=mCONFIG_LIRC_TTUSBIR=m
#
# Character devices
#CONFIG_VT=yCONFIG_CONSOLE_TRANSLATIONS=yCONFIG_VT_CONSOLE=yCONFIG_HW_CONSOLE=yCONFIG_VT_HW_CONSOLE_BINDING=y
# CONFIG_DEVKMEM is not setCONFIG_SERIAL_NONSTANDARD=y
# CONFIG_COMPUTONE is not setCONFIG_ROCKETPORT=mCONFIG_CYCLADES=m
# CONFIG_CYZ_INTR is not set
# CONFIG_DIGIEPCA is not set
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_ISI is not setCONFIG_SYNCLINK=mCONFIG_SYNCLINKMP=mCONFIG_SYNCLINK_GT=mCONFIG_N_HDLC=m
# CONFIG_RISCOM8 is not set
# CONFIG_SPECIALIX is not set
# CONFIG_SX is not set
# CONFIG_RIO is not set
# CONFIG_STALDRV is not setCONFIG_NOZOMI=m
#
# Serial drivers
#CONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=yCONFIG_FIX_EARLYCON_MEM=yCONFIG_SERIAL_8250_PCI=yCONFIG_SERIAL_8250_PNP=yCONFIG_SERIAL_8250_CS=mCONFIG_SERIAL_8250_NR_UARTS=32CONFIG_SERIAL_8250_RUNTIME_UARTS=4CONFIG_SERIAL_8250_EXTENDED=yCONFIG_SERIAL_8250_MANY_PORTS=yCONFIG_SERIAL_8250_SHARE_IRQ=yCONFIG_SERIAL_8250_DETECT_IRQ=yCONFIG_SERIAL_8250_RSA=y
#
# Non-8250 serial port support
#CONFIG_SERIAL_CORE=yCONFIG_SERIAL_CORE_CONSOLE=yCONFIG_CONSOLE_POLL=yCONFIG_SERIAL_JSM=mCONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not setCONFIG_CRASH=mCONFIG_PRINTER=mCONFIG_LP_CONSOLE=yCONFIG_PPDEV=mCONFIG_HVC_DRIVER=yCONFIG_HVC_IRQ=yCONFIG_HVC_XEN=yCONFIG_VIRTIO_CONSOLE=mCONFIG_IPMI_HANDLER=m
# CONFIG_IPMI_PANIC_EVENT is not setCONFIG_IPMI_DEVICE_INTERFACE=mCONFIG_IPMI_SI=mCONFIG_IPMI_WATCHDOG=mCONFIG_IPMI_POWEROFF=mCONFIG_HW_RANDOM=yCONFIG_HW_RANDOM_INTEL=mCONFIG_HW_RANDOM_AMD=mCONFIG_HW_RANDOM_VIRTIO=mCONFIG_NVRAM=yCONFIG_R3964=m
# CONFIG_APPLICOM is not set
#
# PCMCIA character devices
#
# CONFIG_SYNCLINK_CS is not setCONFIG_CARDMAN_4000=mCONFIG_CARDMAN_4040=mCONFIG_IPWIRELESS=mCONFIG_MWAVE=m
# CONFIG_PC8736x_GPIO is not set
# CONFIG_RAW_DRIVER is not setCONFIG_HPET=y
# CONFIG_HPET_MMAP is not setCONFIG_HANGCHECK_TIMER=mCONFIG_TCG_TPM=mCONFIG_TCG_TIS=mCONFIG_TCG_NSC=mCONFIG_TCG_ATMEL=mCONFIG_TCG_INFINEON=mCONFIG_TELCLOCK=mCONFIG_DEVPORT=yCONFIG_I2C=mCONFIG_I2C_BOARDINFO=yCONFIG_I2C_CHARDEV=mCONFIG_I2C_ALGOBIT=mCONFIG_I2C_ALGOPCA=m
#
# I2C Hardware Bus support
#
#
# PC SMBus host controller drivers
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not setCONFIG_I2C_AMD756=mCONFIG_I2C_AMD756_S4882=mCONFIG_I2C_AMD8111=mCONFIG_I2C_I801=mCONFIG_I2C_ISCH=mCONFIG_I2C_PIIX4=mCONFIG_I2C_NFORCE2=mCONFIG_I2C_NFORCE2_S4985=m
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not setCONFIG_I2C_SIS96X=mCONFIG_I2C_VIA=mCONFIG_I2C_VIAPRO=m
#
# I2C system bus drivers (mostly embedded / system-on-chip) #
# CONFIG_I2C_OCORES is not setCONFIG_I2C_SIMTEC=m
#
# External I2C/SMBus adapter drivers
#CONFIG_I2C_PARPORT=mCONFIG_I2C_PARPORT_LIGHT=m
# CONFIG_I2C_TAOS_EVM is not setCONFIG_I2C_TINY_USB=m
#
# Graphics adapter I2C/DDC channel drivers
#CONFIG_I2C_VOODOO3=m
#
# Other I2C/SMBus bus drivers
#CONFIG_I2C_PCA_PLATFORM=mCONFIG_I2C_STUB=m
#
# Miscellaneous I2C Chip support
#
# CONFIG_DS1682 is not setCONFIG_AT24=mCONFIG_SENSORS_EEPROM=mCONFIG_SENSORS_PCF8574=mCONFIG_PCF8575=mCONFIG_SENSORS_PCA9539=mCONFIG_SENSORS_PCF8591=mCONFIG_SENSORS_MAX6875=mCONFIG_SENSORS_TSL2550=m
# 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
# CONFIG_SPI is not setCONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIOLIB is not setCONFIG_W1=mCONFIG_W1_CON=y
#
# 1-wire Bus Masters
#
# CONFIG_W1_MASTER_MATROX is not setCONFIG_W1_MASTER_DS2490=mCONFIG_W1_MASTER_DS2482=m
#
# 1-wire Slaves
#CONFIG_W1_SLAVE_THERM=mCONFIG_W1_SLAVE_SMEM=mCONFIG_W1_SLAVE_DS2433=mCONFIG_W1_SLAVE_DS2433_CRC=yCONFIG_W1_SLAVE_DS2760=mCONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
# CONFIG_PDA_POWER is not set
# CONFIG_BATTERY_DS2760 is not setCONFIG_HWMON=mCONFIG_HWMON_VID=mCONFIG_SENSORS_ABITUGURU=mCONFIG_SENSORS_ABITUGURU3=mCONFIG_SENSORS_AD7418=mCONFIG_SENSORS_ADM1021=mCONFIG_SENSORS_ADM1025=mCONFIG_SENSORS_ADM1026=mCONFIG_SENSORS_ADM1029=mCONFIG_SENSORS_ADM1031=mCONFIG_SENSORS_ADM9240=mCONFIG_SENSORS_ADT7470=mCONFIG_SENSORS_ADT7473=mCONFIG_SENSORS_K8TEMP=mCONFIG_SENSORS_ASB100=mCONFIG_SENSORS_ATXP1=mCONFIG_SENSORS_DS1621=mCONFIG_SENSORS_I5K_AMB=mCONFIG_SENSORS_F71805F=mCONFIG_SENSORS_F71882FG=mCONFIG_SENSORS_F75375S=mCONFIG_SENSORS_FSCHER=mCONFIG_SENSORS_FSCPOS=mCONFIG_SENSORS_FSCHMD=mCONFIG_SENSORS_GL518SM=mCONFIG_SENSORS_GL520SM=mCONFIG_SENSORS_CORETEMP=mCONFIG_SENSORS_IBMAEM=mCONFIG_SENSORS_IBMPEX=mCONFIG_SENSORS_IT87=mCONFIG_SENSORS_LM63=mCONFIG_SENSORS_LM75=mCONFIG_SENSORS_LM77=mCONFIG_SENSORS_LM78=mCONFIG_SENSORS_LM80=mCONFIG_SENSORS_LM83=mCONFIG_SENSORS_LM85=mCONFIG_SENSORS_LM87=mCONFIG_SENSORS_LM90=mCONFIG_SENSORS_LM92=mCONFIG_SENSORS_LM93=mCONFIG_SENSORS_MAX1619=mCONFIG_SENSORS_MAX6650=mCONFIG_SENSORS_PC87360=mCONFIG_SENSORS_PC87427=mCONFIG_SENSORS_SIS5595=mCONFIG_SENSORS_DME1737=mCONFIG_SENSORS_SMSC47M1=mCONFIG_SENSORS_SMSC47M192=mCONFIG_SENSORS_SMSC47B397=mCONFIG_SENSORS_ADS7828=mCONFIG_SENSORS_THMC50=mCONFIG_SENSORS_VIA686A=mCONFIG_SENSORS_VT1211=mCONFIG_SENSORS_VT8231=mCONFIG_SENSORS_W83781D=mCONFIG_SENSORS_W83791D=mCONFIG_SENSORS_W83792D=mCONFIG_SENSORS_W83793=mCONFIG_SENSORS_W83L785TS=mCONFIG_SENSORS_W83L786NG=mCONFIG_SENSORS_W83627HF=mCONFIG_SENSORS_W83627EHF=mCONFIG_SENSORS_HDAPS=mCONFIG_SENSORS_APPLESMC=m
# CONFIG_HWMON_DEBUG_CHIP is not setCONFIG_THERMAL=yCONFIG_WATCHDOG=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
#
# Watchdog Device Drivers
#CONFIG_SOFT_WATCHDOG=m
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_ADVANTECH_WDT is not setCONFIG_ALIM1535_WDT=mCONFIG_ALIM7101_WDT=m
# CONFIG_SC520_WDT is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_IB700_WDT is not setCONFIG_IBMASR=m
# CONFIG_WAFER_WDT is not setCONFIG_I6300ESB_WDT=mCONFIG_ITCO_WDT=mCONFIG_ITCO_VENDOR_SUPPORT=yCONFIG_IT8712F_WDT=mCONFIG_HP_WATCHDOG=m
# 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 setCONFIG_W83627HF_WDT=mCONFIG_W83697HF_WDT=mCONFIG_W83877F_WDT=mCONFIG_W83977F_WDT=mCONFIG_MACHZ_WDT=m
# CONFIG_SBC_EPX_C3_WATCHDOG is not set
#
# PCI-based Watchdog Cards
#CONFIG_PCIPCWATCHDOG=mCONFIG_WDTPCI=mCONFIG_WDT_501_PCI=y
#
# USB-based Watchdog Cards
#CONFIG_USBPCWATCHDOG=m
#
# Sonics Silicon Backplane
#CONFIG_SSB_POSSIBLE=yCONFIG_SSB=mCONFIG_SSB_SPROM=yCONFIG_SSB_BLOCKIO=yCONFIG_SSB_PCIHOST_POSSIBLE=yCONFIG_SSB_PCIHOST=yCONFIG_SSB_B43_PCI_BRIDGE=yCONFIG_SSB_PCMCIAHOST_POSSIBLE=yCONFIG_SSB_PCMCIAHOST=y
# CONFIG_SSB_DEBUG is not setCONFIG_SSB_DRIVER_PCICORE_POSSIBLE=yCONFIG_SSB_DRIVER_PCICORE=y
#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not setCONFIG_MFD_SM501=m
# CONFIG_HTC_PASIC3 is not set
#
# Multimedia devices
#
#
# Multimedia core support
#CONFIG_VIDEO_DEV=mCONFIG_VIDEO_V4L2_COMMON=mCONFIG_VIDEO_ALLOW_V4L1=yCONFIG_VIDEO_V4L1_COMPAT=yCONFIG_DVB_CORE=mCONFIG_VIDEO_MEDIA=m
#
# Multimedia drivers
#CONFIG_VIDEO_SAA7146=mCONFIG_VIDEO_SAA7146_VV=mCONFIG_MEDIA_ATTACH=yCONFIG_MEDIA_TUNER=m
# CONFIG_MEDIA_TUNER_CUSTOMIZE is not setCONFIG_MEDIA_TUNER_SIMPLE=mCONFIG_MEDIA_TUNER_TDA8290=mCONFIG_MEDIA_TUNER_TDA827X=mCONFIG_MEDIA_TUNER_TDA18271=mCONFIG_MEDIA_TUNER_TDA9887=mCONFIG_MEDIA_TUNER_TEA5761=mCONFIG_MEDIA_TUNER_TEA5767=mCONFIG_MEDIA_TUNER_MT20XX=mCONFIG_MEDIA_TUNER_MT2060=mCONFIG_MEDIA_TUNER_MT2266=mCONFIG_MEDIA_TUNER_MT2131=mCONFIG_MEDIA_TUNER_QT1010=mCONFIG_MEDIA_TUNER_XC2028=mCONFIG_MEDIA_TUNER_XC5000=mCONFIG_MEDIA_TUNER_MXL5005S=mCONFIG_MEDIA_TUNER_MXL5007T=mCONFIG_VIDEO_V4L2=mCONFIG_VIDEO_V4L1=mCONFIG_VIDEOBUF_GEN=mCONFIG_VIDEOBUF_DMA_SG=mCONFIG_VIDEOBUF_VMALLOC=mCONFIG_VIDEOBUF_DVB=mCONFIG_VIDEO_BTCX=mCONFIG_VIDEO_IR=mCONFIG_VIDEO_TVEEPROM=mCONFIG_VIDEO_TUNER=mCONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not setCONFIG_VIDEO_IR_I2C=m
#
# Encoders/decoders and other helper chips
#
#
# Audio decoders
#CONFIG_VIDEO_TVAUDIO=mCONFIG_VIDEO_TDA7432=mCONFIG_VIDEO_TDA9840=mCONFIG_VIDEO_TDA9875=mCONFIG_VIDEO_TEA6415C=mCONFIG_VIDEO_TEA6420=mCONFIG_VIDEO_MSP3400=mCONFIG_VIDEO_CS5345=mCONFIG_VIDEO_CS53L32A=mCONFIG_VIDEO_M52790=mCONFIG_VIDEO_TLV320AIC23B=mCONFIG_VIDEO_WM8775=mCONFIG_VIDEO_WM8739=mCONFIG_VIDEO_VP27SMPX=m
#
# Video decoders
#CONFIG_VIDEO_BT819=mCONFIG_VIDEO_BT856=mCONFIG_VIDEO_BT866=mCONFIG_VIDEO_KS0127=mCONFIG_VIDEO_OV7670=mCONFIG_VIDEO_TCM825X=mCONFIG_VIDEO_SAA7110=mCONFIG_VIDEO_SAA7111=mCONFIG_VIDEO_SAA7114=mCONFIG_VIDEO_SAA711X=mCONFIG_VIDEO_SAA717X=mCONFIG_VIDEO_SAA7191=mCONFIG_VIDEO_TVP5150=mCONFIG_VIDEO_VPX3220=m
#
# Video and audio decoders
#CONFIG_VIDEO_CX25840=m
#
# MPEG video encoders
#CONFIG_VIDEO_CX2341X=m
#
# Video encoders
#CONFIG_VIDEO_SAA7127=mCONFIG_VIDEO_SAA7185=mCONFIG_VIDEO_ADV7170=mCONFIG_VIDEO_ADV7175=m
#
# Video improvement chips
#CONFIG_VIDEO_UPD64031A=mCONFIG_VIDEO_UPD64083=m
# CONFIG_VIDEO_VIVI is not setCONFIG_VIDEO_BT848=mCONFIG_VIDEO_BT848_DVB=yCONFIG_VIDEO_SAA6588=mCONFIG_VIDEO_BWQCAM=mCONFIG_VIDEO_CQCAM=mCONFIG_VIDEO_W9966=mCONFIG_VIDEO_CPIA=mCONFIG_VIDEO_CPIA_PP=mCONFIG_VIDEO_CPIA_USB=mCONFIG_VIDEO_CPIA2=mCONFIG_VIDEO_SAA5246A=mCONFIG_VIDEO_SAA5249=mCONFIG_TUNER_3036=mCONFIG_VIDEO_STRADIS=mCONFIG_VIDEO_ZORAN=mCONFIG_VIDEO_ZORAN_DC30=mCONFIG_VIDEO_ZORAN_ZR36060=mCONFIG_VIDEO_ZORAN_BUZ=mCONFIG_VIDEO_ZORAN_DC10=mCONFIG_VIDEO_ZORAN_LML33=mCONFIG_VIDEO_ZORAN_LML33R10=mCONFIG_VIDEO_ZORAN_AVS6EYES=mCONFIG_VIDEO_MEYE=mCONFIG_VIDEO_SAA7134=mCONFIG_VIDEO_SAA7134_ALSA=mCONFIG_VIDEO_SAA7134_DVB=mCONFIG_VIDEO_MXB=mCONFIG_VIDEO_DPC=mCONFIG_VIDEO_HEXIUM_ORION=mCONFIG_VIDEO_HEXIUM_GEMINI=mCONFIG_VIDEO_CX88=mCONFIG_VIDEO_CX88_ALSA=mCONFIG_VIDEO_CX88_BLACKBIRD=mCONFIG_VIDEO_CX88_DVB=mCONFIG_VIDEO_CX88_VP3054=mCONFIG_VIDEO_CX23885=mCONFIG_VIDEO_AU0828=mCONFIG_VIDEO_IVTV=mCONFIG_VIDEO_FB_IVTV=mCONFIG_VIDEO_CX18=m
# CONFIG_VIDEO_CAFE_CCIC is not setCONFIG_V4L_USB_DRIVERS=yCONFIG_USB_VIDEO_CLASS=mCONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=yCONFIG_USB_GSPCA=mCONFIG_VIDEO_PVRUSB2=mCONFIG_VIDEO_PVRUSB2_SYSFS=yCONFIG_VIDEO_PVRUSB2_DVB=y
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not setCONFIG_VIDEO_EM28XX=mCONFIG_VIDEO_EM28XX_ALSA=mCONFIG_VIDEO_EM28XX_DVB=mCONFIG_VIDEO_USBVISION=mCONFIG_VIDEO_USBVIDEO=mCONFIG_USB_VICAM=mCONFIG_USB_IBMCAM=mCONFIG_USB_KONICAWC=mCONFIG_USB_QUICKCAM_MESSENGER=mCONFIG_USB_ET61X251=mCONFIG_VIDEO_OVCAMCHIP=mCONFIG_USB_W9968CF=mCONFIG_USB_OV511=mCONFIG_USB_SE401=mCONFIG_USB_SN9C102=mCONFIG_USB_STV680=mCONFIG_USB_ZC0301=mCONFIG_USB_PWC=m
# CONFIG_USB_PWC_DEBUG is not setCONFIG_USB_ZR364XX=mCONFIG_USB_STKWEBCAM=mCONFIG_USB_S2255=mCONFIG_SOC_CAMERA=mCONFIG_SOC_CAMERA_MT9M001=mCONFIG_SOC_CAMERA_MT9V022=mCONFIG_SOC_CAMERA_PLATFORM=m
# CONFIG_VIDEO_SH_MOBILE_CEU is not setCONFIG_RADIO_ADAPTERS=yCONFIG_RADIO_GEMTEK_PCI=mCONFIG_RADIO_MAXIRADIO=mCONFIG_RADIO_MAESTRO=mCONFIG_USB_DSBR=mCONFIG_USB_SI470X=mCONFIG_DVB_CAPTURE_DRIVERS=y
#
# Supported SAA7146 based PCI Adapters
#CONFIG_TTPCI_EEPROM=mCONFIG_DVB_AV7110=mCONFIG_DVB_AV7110_OSD=yCONFIG_DVB_BUDGET_CORE=mCONFIG_DVB_BUDGET=mCONFIG_DVB_BUDGET_CI=mCONFIG_DVB_BUDGET_AV=mCONFIG_DVB_BUDGET_PATCH=m
#
# Supported USB Adapters
#CONFIG_DVB_USB=m
# CONFIG_DVB_USB_DEBUG is not setCONFIG_DVB_USB_A800=mCONFIG_DVB_USB_DIBUSB_MB=m
# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not setCONFIG_DVB_USB_DIBUSB_MC=mCONFIG_DVB_USB_DIB0700=mCONFIG_DVB_USB_UMT_010=mCONFIG_DVB_USB_CXUSB=mCONFIG_DVB_USB_M920X=mCONFIG_DVB_USB_GL861=mCONFIG_DVB_USB_AU6610=mCONFIG_DVB_USB_DIGITV=mCONFIG_DVB_USB_VP7045=mCONFIG_DVB_USB_VP702X=mCONFIG_DVB_USB_GP8PSK=mCONFIG_DVB_USB_NOVA_T_USB2=mCONFIG_DVB_USB_TTUSB2=mCONFIG_DVB_USB_DTT200U=mCONFIG_DVB_USB_OPERA1=mCONFIG_DVB_USB_AF9005=mCONFIG_DVB_USB_AF9005_REMOTE=mCONFIG_DVB_USB_DW2102=mCONFIG_DVB_USB_ANYSEE=mCONFIG_DVB_TTUSB_BUDGET=mCONFIG_DVB_TTUSB_DEC=mCONFIG_DVB_CINERGYT2=mCONFIG_DVB_CINERGYT2_TUNING=yCONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=yCONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100CONFIG_DVB_SIANO_SMS1XXX=mCONFIG_DVB_SIANO_SMS1XXX_SMS_IDS=y
#
# Supported FlexCopII (B2C2) Adapters
#CONFIG_DVB_B2C2_FLEXCOP=mCONFIG_DVB_B2C2_FLEXCOP_PCI=mCONFIG_DVB_B2C2_FLEXCOP_USB=m
# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
#
# Supported BT878 Adapters
#CONFIG_DVB_BT8XX=m
#
# Supported Pluto2 Adapters
#CONFIG_DVB_PLUTO2=m
#
# Supported DVB Frontends
#
#
# Customise DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
#
# DVB-S (satellite) frontends
#CONFIG_DVB_CX24110=mCONFIG_DVB_CX24123=mCONFIG_DVB_MT312=mCONFIG_DVB_S5H1420=mCONFIG_DVB_STV0299=mCONFIG_DVB_TDA8083=mCONFIG_DVB_TDA10086=mCONFIG_DVB_VES1X93=mCONFIG_DVB_TUNER_ITD1000=mCONFIG_DVB_TDA826X=mCONFIG_DVB_TUA6100=m
#
# DVB-T (terrestrial) frontends
#CONFIG_DVB_SP8870=mCONFIG_DVB_SP887X=mCONFIG_DVB_CX22700=mCONFIG_DVB_CX22702=mCONFIG_DVB_DRX397XD=mCONFIG_DVB_L64781=mCONFIG_DVB_TDA1004X=mCONFIG_DVB_NXT6000=mCONFIG_DVB_MT352=mCONFIG_DVB_ZL10353=mCONFIG_DVB_DIB3000MB=mCONFIG_DVB_DIB3000MC=mCONFIG_DVB_DIB7000M=mCONFIG_DVB_DIB7000P=mCONFIG_DVB_TDA10048=m
#
# DVB-C (cable) frontends
#CONFIG_DVB_VES1820=mCONFIG_DVB_TDA10021=mCONFIG_DVB_TDA10023=mCONFIG_DVB_STV0297=m
#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends #CONFIG_DVB_NXT200X=mCONFIG_DVB_OR51211=mCONFIG_DVB_OR51132=mCONFIG_DVB_BCM3510=mCONFIG_DVB_LGDT330X=mCONFIG_DVB_S5H1409=mCONFIG_DVB_AU8522=mCONFIG_DVB_S5H1411=m
#
# Digital terrestrial only tuners/PLL
#CONFIG_DVB_PLL=mCONFIG_DVB_TUNER_DIB0070=m
#
# SEC control devices for DVB-S
#CONFIG_DVB_LNBP21=mCONFIG_DVB_ISL6405=mCONFIG_DVB_ISL6421=mCONFIG_DAB=yCONFIG_USB_DABUSB=m
#
# Graphics support
#CONFIG_AGP=yCONFIG_AGP_AMD64=yCONFIG_AGP_INTEL=yCONFIG_AGP_SIS=yCONFIG_AGP_VIA=yCONFIG_DRM=mCONFIG_DRM_TDFX=mCONFIG_DRM_R128=mCONFIG_DRM_RADEON=mCONFIG_DRM_I810=mCONFIG_DRM_I830=mCONFIG_DRM_I915=mCONFIG_DRM_MGA=mCONFIG_DRM_SIS=mCONFIG_DRM_VIA=mCONFIG_DRM_SAVAGE=mCONFIG_VGASTATE=mCONFIG_VIDEO_OUTPUT_CONTROL=mCONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not setCONFIG_FB_DDC=mCONFIG_FB_CFB_FILLRECT=yCONFIG_FB_CFB_COPYAREA=yCONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not setCONFIG_FB_SYS_FILLRECT=yCONFIG_FB_SYS_COPYAREA=yCONFIG_FB_SYS_IMAGEBLIT=y
# CONFIG_FB_FOREIGN_ENDIAN is not setCONFIG_FB_SYS_FOPS=yCONFIG_FB_DEFERRED_IO=yCONFIG_FB_SVGALIB=m
# CONFIG_FB_MACMODES is not setCONFIG_FB_BACKLIGHT=yCONFIG_FB_MODE_HELPERS=yCONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#CONFIG_FB_CIRRUS=m
# 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 setCONFIG_FB_VGA16=m
# CONFIG_FB_UVESA is not setCONFIG_FB_VESA=yCONFIG_FB_EFI=y
# CONFIG_FB_N411 is not set
# CONFIG_FB_HGA is not set
# CONFIG_FB_S1D13XXX is not setCONFIG_FB_NVIDIA=mCONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_NVIDIA_DEBUG is not setCONFIG_FB_NVIDIA_BACKLIGHT=yCONFIG_FB_RIVA=m
# CONFIG_FB_RIVA_I2C is not set
# CONFIG_FB_RIVA_DEBUG is not setCONFIG_FB_RIVA_BACKLIGHT=y
# CONFIG_FB_LE80578 is not setCONFIG_FB_INTEL=m
# CONFIG_FB_INTEL_DEBUG is not setCONFIG_FB_INTEL_I2C=yCONFIG_FB_MATROX=mCONFIG_FB_MATROX_MILLENIUM=yCONFIG_FB_MATROX_MYSTIQUE=yCONFIG_FB_MATROX_G=yCONFIG_FB_MATROX_I2C=mCONFIG_FB_MATROX_MAVEN=mCONFIG_FB_MATROX_MULTIHEAD=yCONFIG_FB_RADEON=mCONFIG_FB_RADEON_I2C=yCONFIG_FB_RADEON_BACKLIGHT=y
# CONFIG_FB_RADEON_DEBUG is not setCONFIG_FB_ATY128=mCONFIG_FB_ATY128_BACKLIGHT=yCONFIG_FB_ATY=mCONFIG_FB_ATY_CT=yCONFIG_FB_ATY_GENERIC_LCD=yCONFIG_FB_ATY_GX=yCONFIG_FB_ATY_BACKLIGHT=yCONFIG_FB_S3=mCONFIG_FB_SAVAGE=mCONFIG_FB_SAVAGE_I2C=yCONFIG_FB_SAVAGE_ACCEL=y
# CONFIG_FB_SIS is not setCONFIG_FB_NEOMAGIC=mCONFIG_FB_KYRO=mCONFIG_FB_3DFX=mCONFIG_FB_3DFX_ACCEL=yCONFIG_FB_VOODOO1=m
# CONFIG_FB_VT8623 is not setCONFIG_FB_TRIDENT=mCONFIG_FB_TRIDENT_ACCEL=y
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_GEODE is not setCONFIG_FB_SM501=m
# CONFIG_FB_VIRTUAL is not setCONFIG_XEN_FBDEV_FRONTEND=yCONFIG_BACKLIGHT_LCD_SUPPORT=yCONFIG_LCD_CLASS_DEVICE=m
# CONFIG_LCD_ILI9320 is not setCONFIG_LCD_PLATFORM=mCONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_CORGI is not setCONFIG_BACKLIGHT_PROGEAR=mCONFIG_BACKLIGHT_MBP_NVIDIA=m
#
# Display device support
#CONFIG_DISPLAY_SUPPORT=m
#
# Display hardware drivers
#
#
# Console display driver support
#CONFIG_VGA_CONSOLE=yCONFIG_VGACON_SOFT_SCROLLBACK=yCONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64CONFIG_VIDEO_SELECT=yCONFIG_DUMMY_CONSOLE=yCONFIG_FRAMEBUFFER_CONSOLE=yCONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=yCONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=yCONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not setCONFIG_LOGO_LINUX_CLUT224=yCONFIG_SOUND=mCONFIG_SND=mCONFIG_SND_TIMER=mCONFIG_SND_PCM=mCONFIG_SND_HWDEP=mCONFIG_SND_RAWMIDI=mCONFIG_SND_SEQUENCER=mCONFIG_SND_SEQ_DUMMY=mCONFIG_SND_OSSEMUL=yCONFIG_SND_MIXER_OSS=mCONFIG_SND_PCM_OSS=mCONFIG_SND_PCM_OSS_PLUGINS=yCONFIG_SND_SEQUENCER_OSS=yCONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not setCONFIG_SND_VERBOSE_PROCFS=yCONFIG_SND_VERBOSE_PRINTK=yCONFIG_SND_DEBUG=yCONFIG_SND_DEBUG_VERBOSE=yCONFIG_SND_PCM_XRUN_DEBUG=yCONFIG_SND_VMASTER=yCONFIG_SND_MPU401_UART=mCONFIG_SND_OPL3_LIB=mCONFIG_SND_VX_LIB=mCONFIG_SND_AC97_CODEC=mCONFIG_SND_DRIVERS=yCONFIG_SND_PCSP=mCONFIG_SND_DUMMY=mCONFIG_SND_VIRMIDI=mCONFIG_SND_MTPAV=mCONFIG_SND_MTS64=mCONFIG_SND_SERIAL_U16550=mCONFIG_SND_MPU401=mCONFIG_SND_PORTMAN2X4=mCONFIG_SND_AC97_POWER_SAVE=yCONFIG_SND_AC97_POWER_SAVE_DEFAULT=5CONFIG_SND_SB_COMMON=mCONFIG_SND_SB16_DSP=mCONFIG_SND_PCI=yCONFIG_SND_AD1889=mCONFIG_SND_ALS300=mCONFIG_SND_ALS4000=mCONFIG_SND_ALI5451=mCONFIG_SND_ATIIXP=mCONFIG_SND_ATIIXP_MODEM=mCONFIG_SND_AU8810=mCONFIG_SND_AU8820=mCONFIG_SND_AU8830=mCONFIG_SND_AW2=mCONFIG_SND_AZT3328=mCONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not setCONFIG_SND_CA0106=mCONFIG_SND_CMIPCI=mCONFIG_SND_OXYGEN_LIB=mCONFIG_SND_OXYGEN=mCONFIG_SND_CS4281=mCONFIG_SND_CS46XX=mCONFIG_SND_CS46XX_NEW_DSP=yCONFIG_SND_CS5530=mCONFIG_SND_DARLA20=mCONFIG_SND_GINA20=mCONFIG_SND_LAYLA20=mCONFIG_SND_DARLA24=mCONFIG_SND_GINA24=mCONFIG_SND_LAYLA24=mCONFIG_SND_MONA=mCONFIG_SND_MIA=mCONFIG_SND_ECHO3G=mCONFIG_SND_INDIGO=mCONFIG_SND_INDIGOIO=mCONFIG_SND_INDIGODJ=mCONFIG_SND_EMU10K1=mCONFIG_SND_EMU10K1X=mCONFIG_SND_ENS1370=mCONFIG_SND_ENS1371=mCONFIG_SND_ES1938=mCONFIG_SND_ES1968=mCONFIG_SND_FM801=mCONFIG_SND_FM801_TEA575X_BOOL=yCONFIG_SND_FM801_TEA575X=mCONFIG_SND_HDA_INTEL=mCONFIG_SND_HDA_HWDEP=yCONFIG_SND_HDA_CODEC_REALTEK=yCONFIG_SND_HDA_CODEC_ANALOG=yCONFIG_SND_HDA_CODEC_SIGMATEL=yCONFIG_SND_HDA_CODEC_VIA=yCONFIG_SND_HDA_CODEC_ATIHDMI=yCONFIG_SND_HDA_CODEC_CONEXANT=yCONFIG_SND_HDA_CODEC_CMEDIA=yCONFIG_SND_HDA_CODEC_SI3054=yCONFIG_SND_HDA_GENERIC=yCONFIG_SND_HDA_POWER_SAVE=yCONFIG_SND_HDA_POWER_SAVE_DEFAULT=0CONFIG_SND_HDSP=mCONFIG_SND_HDSPM=mCONFIG_SND_HIFIER=mCONFIG_SND_ICE1712=mCONFIG_SND_ICE1724=mCONFIG_SND_INTEL8X0=mCONFIG_SND_INTEL8X0M=mCONFIG_SND_KORG1212=mCONFIG_SND_MAESTRO3=mCONFIG_SND_MIXART=mCONFIG_SND_NM256=mCONFIG_SND_PCXHR=mCONFIG_SND_RIPTIDE=mCONFIG_SND_RME32=mCONFIG_SND_RME96=mCONFIG_SND_RME9652=mCONFIG_SND_SONICVIBES=mCONFIG_SND_TRIDENT=mCONFIG_SND_VIA82XX=mCONFIG_SND_VIA82XX_MODEM=mCONFIG_SND_VIRTUOSO=mCONFIG_SND_VX222=mCONFIG_SND_YMFPCI=mCONFIG_SND_USB=yCONFIG_SND_USB_AUDIO=mCONFIG_SND_USB_USX2Y=mCONFIG_SND_USB_CAIAQ=mCONFIG_SND_USB_CAIAQ_INPUT=y
# CONFIG_SND_PCMCIA is not set
# CONFIG_SND_SOC is not set
# CONFIG_SOUND_PRIME is not setCONFIG_AC97_BUS=mCONFIG_HID_SUPPORT=yCONFIG_HID=yCONFIG_HID_DEBUG=yCONFIG_HIDRAW=y
#
# USB Input Devices
#CONFIG_USB_HID=yCONFIG_USB_HIDINPUT_POWERBOOK=yCONFIG_HID_FF=yCONFIG_HID_PID=yCONFIG_LOGITECH_FF=yCONFIG_LOGIRUMBLEPAD2_FF=yCONFIG_PANTHERLORD_FF=yCONFIG_THRUSTMASTER_FF=yCONFIG_ZEROPLUS_FF=yCONFIG_USB_HIDDEV=yCONFIG_USB_SUPPORT=yCONFIG_USB_ARCH_HAS_HCD=yCONFIG_USB_ARCH_HAS_OHCI=yCONFIG_USB_ARCH_HAS_EHCI=yCONFIG_USB=yCONFIG_USB_DEBUG=yCONFIG_USB_ANNOUNCE_NEW_DEVICES=y
#
# Miscellaneous USB options
#CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not setCONFIG_USB_SUSPEND=y
# CONFIG_USB_OTG is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not setCONFIG_USB_EHCI_HCD=mCONFIG_USB_EHCI_ROOT_HUB_TT=yCONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not setCONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not setCONFIG_USB_OHCI_LITTLE_ENDIAN=yCONFIG_USB_UHCI_HCD=mCONFIG_USB_U132_HCD=mCONFIG_USB_SL811_HCD=m
# CONFIG_USB_SL811_CS is not set
# CONFIG_USB_R8A66597_HCD is not set
#
# USB Device Class drivers
#CONFIG_USB_ACM=mCONFIG_USB_PRINTER=mCONFIG_USB_WDM=m
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' #
#
# may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_DATAFAB=y CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_ISD200=y CONFIG_USB_STORAGE_DPCM=y CONFIG_USB_STORAGE_USBAT=y CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y CONFIG_USB_STORAGE_ALAUDA=y CONFIG_USB_STORAGE_ONETOUCH=y CONFIG_USB_STORAGE_KARMA=y CONFIG_USB_STORAGE_CYPRESS_ATACB=y # CONFIG_USB_LIBUSUAL is not set
#
# USB Imaging devices
#CONFIG_USB_MDC800=mCONFIG_USB_MICROTEK=mCONFIG_USB_MON=y
#
# USB port drivers
#CONFIG_USB_USS720=mCONFIG_USB_SERIAL=mCONFIG_USB_EZUSB=yCONFIG_USB_SERIAL_GENERIC=yCONFIG_USB_SERIAL_AIRCABLE=mCONFIG_USB_SERIAL_ARK3116=mCONFIG_USB_SERIAL_BELKIN=mCONFIG_USB_SERIAL_CH341=mCONFIG_USB_SERIAL_WHITEHEAT=mCONFIG_USB_SERIAL_DIGI_ACCELEPORT=mCONFIG_USB_SERIAL_CP2101=mCONFIG_USB_SERIAL_CYPRESS_M8=mCONFIG_USB_SERIAL_EMPEG=mCONFIG_USB_SERIAL_FTDI_SIO=mCONFIG_USB_SERIAL_FUNSOFT=mCONFIG_USB_SERIAL_VISOR=mCONFIG_USB_SERIAL_IPAQ=mCONFIG_USB_SERIAL_IR=mCONFIG_USB_SERIAL_EDGEPORT=mCONFIG_USB_SERIAL_EDGEPORT_TI=m
# CONFIG_USB_SERIAL_GARMIN is not setCONFIG_USB_SERIAL_IPW=mCONFIG_USB_SERIAL_IUU=mCONFIG_USB_SERIAL_KEYSPAN_PDA=mCONFIG_USB_SERIAL_KEYSPAN=mCONFIG_USB_SERIAL_KLSI=mCONFIG_USB_SERIAL_KOBIL_SCT=mCONFIG_USB_SERIAL_MCT_U232=mCONFIG_USB_SERIAL_MOS7720=mCONFIG_USB_SERIAL_MOS7840=mCONFIG_USB_SERIAL_MOTOROLA=mCONFIG_USB_SERIAL_NAVMAN=mCONFIG_USB_SERIAL_PL2303=mCONFIG_USB_SERIAL_OTI6858=mCONFIG_USB_SERIAL_SPCP8X5=mCONFIG_USB_SERIAL_HP4X=mCONFIG_USB_SERIAL_SAFE=mCONFIG_USB_SERIAL_SAFE_PADDED=yCONFIG_USB_SERIAL_SIERRAWIRELESS=mCONFIG_USB_SERIAL_TI=mCONFIG_USB_SERIAL_CYBERJACK=mCONFIG_USB_SERIAL_XIRCOM=mCONFIG_USB_SERIAL_OPTION=mCONFIG_USB_SERIAL_OMNINET=mCONFIG_USB_SERIAL_DEBUG=m
#
# USB Miscellaneous drivers
#CONFIG_USB_EMI62=mCONFIG_USB_EMI26=mCONFIG_USB_ADUTUX=mCONFIG_USB_AUERSWALD=m
# CONFIG_USB_RIO500 is not setCONFIG_USB_LEGOTOWER=mCONFIG_USB_LCD=mCONFIG_USB_BERRY_CHARGE=mCONFIG_USB_LED=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not setCONFIG_USB_PHIDGET=mCONFIG_USB_PHIDGETKIT=mCONFIG_USB_PHIDGETMOTORCONTROL=mCONFIG_USB_PHIDGETSERVO=mCONFIG_USB_IDMOUSE=mCONFIG_USB_FTDI_ELAN=mCONFIG_USB_APPLEDISPLAY=mCONFIG_USB_SISUSBVGA=mCONFIG_USB_SISUSBVGA_CON=yCONFIG_USB_LD=mCONFIG_USB_TRANCEVIBRATOR=mCONFIG_USB_IOWARRIOR=m
# CONFIG_USB_TEST is not setCONFIG_USB_ISIGHTFW=mCONFIG_USB_ATM=mCONFIG_USB_SPEEDTOUCH=mCONFIG_USB_CXACRU=mCONFIG_USB_UEAGLEATM=mCONFIG_USB_XUSBATM=m
# CONFIG_USB_GADGET is not setCONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
#
# MMC/SD Card Drivers
#CONFIG_MMC_BLOCK=mCONFIG_MMC_BLOCK_BOUNCE=yCONFIG_SDIO_UART=m
# CONFIG_MMC_TEST is not set
#
# MMC/SD Host Controller Drivers
#CONFIG_MMC_SDHCI=mCONFIG_MMC_SDHCI_PCI=mCONFIG_MMC_RICOH_MMC=mCONFIG_MMC_WBSD=mCONFIG_MMC_TIFM_SD=mCONFIG_MMC_SDRICOH_CS=mCONFIG_MEMSTICK=mCONFIG_MEMSTICK_DEBUG=y
#
# MemoryStick drivers
#
# CONFIG_MEMSTICK_UNSAFE_RESUME is not setCONFIG_MSPRO_BLOCK=m
#
# MemoryStick Host Controller Drivers
#CONFIG_MEMSTICK_TIFM_MS=mCONFIG_MEMSTICK_JMICRON_38X=mCONFIG_NEW_LEDS=yCONFIG_LEDS_CLASS=y
#
# LED drivers
#
# CONFIG_LEDS_PCA9532 is not setCONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_PCA955X is not set
#
# LED Triggers
#CONFIG_LEDS_TRIGGERS=yCONFIG_LEDS_TRIGGER_TIMER=mCONFIG_LEDS_TRIGGER_HEARTBEAT=mCONFIG_LEDS_TRIGGER_DEFAULT_ON=mCONFIG_ACCESSIBILITY=yCONFIG_A11Y_BRAILLE_CONSOLE=yCONFIG_INFINIBAND=mCONFIG_INFINIBAND_USER_MAD=mCONFIG_INFINIBAND_USER_ACCESS=mCONFIG_INFINIBAND_USER_MEM=yCONFIG_INFINIBAND_ADDR_TRANS=yCONFIG_INFINIBAND_MTHCA=mCONFIG_INFINIBAND_MTHCA_DEBUG=yCONFIG_INFINIBAND_IPATH=mCONFIG_INFINIBAND_AMSO1100=m
# CONFIG_INFINIBAND_AMSO1100_DEBUG is not setCONFIG_INFINIBAND_CXGB3=m
# CONFIG_INFINIBAND_CXGB3_DEBUG is not setCONFIG_MLX4_INFINIBAND=mCONFIG_INFINIBAND_NES=m
# CONFIG_INFINIBAND_NES_DEBUG is not setCONFIG_INFINIBAND_IPOIB=mCONFIG_INFINIBAND_IPOIB_CM=yCONFIG_INFINIBAND_IPOIB_DEBUG=yCONFIG_INFINIBAND_IPOIB_DEBUG_DATA=yCONFIG_INFINIBAND_SRP=mCONFIG_INFINIBAND_ISER=mCONFIG_EDAC=y
#
# Reporting subsystems
#
# CONFIG_EDAC_DEBUG is not setCONFIG_EDAC_MM_EDAC=mCONFIG_EDAC_E752X=mCONFIG_EDAC_I82975X=mCONFIG_EDAC_I3000=mCONFIG_EDAC_I5000=mCONFIG_EDAC_I5100=mCONFIG_RTC_LIB=yCONFIG_RTC_CLASS=y
# CONFIG_RTC_HCTOSYS is not set
# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
#CONFIG_RTC_INTF_SYSFS=yCONFIG_RTC_INTF_PROC=yCONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
# CONFIG_RTC_DRV_TEST is not set
#
# I2C RTC drivers
#CONFIG_RTC_DRV_DS1307=mCONFIG_RTC_DRV_DS1374=mCONFIG_RTC_DRV_DS1672=mCONFIG_RTC_DRV_MAX6900=mCONFIG_RTC_DRV_RS5C372=mCONFIG_RTC_DRV_ISL1208=mCONFIG_RTC_DRV_X1205=mCONFIG_RTC_DRV_PCF8563=mCONFIG_RTC_DRV_PCF8583=mCONFIG_RTC_DRV_M41T80=mCONFIG_RTC_DRV_M41T80_WDT=y
# CONFIG_RTC_DRV_S35390A is not setCONFIG_RTC_DRV_FM3130=m
#
# SPI RTC drivers
#
#
# Platform RTC drivers
#CONFIG_RTC_DRV_CMOS=yCONFIG_RTC_DRV_DS1511=mCONFIG_RTC_DRV_DS1553=mCONFIG_RTC_DRV_DS1742=mCONFIG_RTC_DRV_STK17TA8=m
# CONFIG_RTC_DRV_M48T86 is not setCONFIG_RTC_DRV_M48T59=mCONFIG_RTC_DRV_V3020=m
#
# on-CPU RTC drivers
#CONFIG_DMADEVICES=y
#
# DMA Devices
#CONFIG_INTEL_IOATDMA=mCONFIG_DMA_ENGINE=y
#
# DMA Clients
#CONFIG_NET_DMA=y
# CONFIG_DMATEST is not setCONFIG_DCA=mCONFIG_AUXDISPLAY=yCONFIG_KS0108=mCONFIG_KS0108_PORT=0x378CONFIG_KS0108_DELAY=2CONFIG_CFAG12864B=mCONFIG_CFAG12864B_RATE=20CONFIG_UIO=mCONFIG_UIO_CIF=mCONFIG_UIO_PDRV=mCONFIG_UIO_SMX=mCONFIG_XEN_BALLOON=yCONFIG_XEN_SCRUB_PAGES=y
#
# Firmware Drivers
#CONFIG_EDD=m
# CONFIG_EDD_OFF is not setCONFIG_FIRMWARE_MEMMAP=yCONFIG_EFI_VARS=yCONFIG_DELL_RBU=mCONFIG_DCDBAS=mCONFIG_DMIID=yCONFIG_ISCSI_IBFT_FIND=yCONFIG_ISCSI_IBFT=m
#
# File systems
#CONFIG_EXT2_FS=mCONFIG_EXT2_FS_XATTR=yCONFIG_EXT2_FS_POSIX_ACL=yCONFIG_EXT2_FS_SECURITY=yCONFIG_EXT2_FS_XIP=yCONFIG_FS_XIP=yCONFIG_EXT3_FS=mCONFIG_EXT3_FS_XATTR=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_EXT3_FS_SECURITY=yCONFIG_EXT4DEV_FS=mCONFIG_EXT4DEV_FS_XATTR=yCONFIG_EXT4DEV_FS_POSIX_ACL=yCONFIG_EXT4DEV_FS_SECURITY=yCONFIG_JBD=m
# CONFIG_JBD_DEBUG is not setCONFIG_JBD2=mCONFIG_JBD2_DEBUG=yCONFIG_FS_MBCACHE=mCONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not setCONFIG_REISERFS_PROC_INFO=yCONFIG_REISERFS_FS_XATTR=yCONFIG_REISERFS_FS_POSIX_ACL=yCONFIG_REISERFS_FS_SECURITY=yCONFIG_JFS_FS=mCONFIG_JFS_POSIX_ACL=yCONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not setCONFIG_FS_POSIX_ACL=yCONFIG_XFS_FS=mCONFIG_XFS_QUOTA=yCONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_DEBUG is not setCONFIG_GFS2_FS=mCONFIG_GFS2_FS_LOCKING_DLM=mCONFIG_OCFS2_FS=mCONFIG_OCFS2_FS_O2CB=mCONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
# CONFIG_OCFS2_FS_STATS is not set
# CONFIG_OCFS2_DEBUG_MASKLOG is not set
# CONFIG_OCFS2_DEBUG_FS is not setCONFIG_DNOTIFY=yCONFIG_INOTIFY=yCONFIG_INOTIFY_USER=yCONFIG_QUOTA=yCONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_PRINT_QUOTA_WARNING is not set
# CONFIG_QFMT_V1 is not setCONFIG_QFMT_V2=yCONFIG_QUOTACTL=yCONFIG_AUTOFS_FS=mCONFIG_AUTOFS4_FS=mCONFIG_FUSE_FS=mCONFIG_GENERIC_ACL=y
#
# CD-ROM/DVD Filesystems
#CONFIG_ISO9660_FS=yCONFIG_JOLIET=yCONFIG_ZISOFS=yCONFIG_UDF_FS=mCONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#CONFIG_FAT_FS=mCONFIG_MSDOS_FS=mCONFIG_VFAT_FS=mCONFIG_FAT_DEFAULT_CODEPAGE=437CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#CONFIG_PROC_FS=yCONFIG_PROC_KCORE=yCONFIG_PROC_VMCORE=yCONFIG_PROC_SYSCTL=yCONFIG_SYSFS=yCONFIG_TMPFS=yCONFIG_TMPFS_POSIX_ACL=yCONFIG_HUGETLBFS=yCONFIG_HUGETLB_PAGE=yCONFIG_CONFIGFS_FS=m
#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not setCONFIG_AFFS_FS=mCONFIG_ECRYPT_FS=mCONFIG_HFS_FS=mCONFIG_HFSPLUS_FS=mCONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not setCONFIG_BFS_FS=mCONFIG_EFS_FS=mCONFIG_JFFS2_FS=mCONFIG_JFFS2_FS_DEBUG=0CONFIG_JFFS2_FS_WRITEBUFFER=y
# CONFIG_JFFS2_FS_WBUF_VERIFY is not setCONFIG_JFFS2_SUMMARY=yCONFIG_JFFS2_FS_XATTR=yCONFIG_JFFS2_FS_POSIX_ACL=yCONFIG_JFFS2_FS_SECURITY=y
# CONFIG_JFFS2_COMPRESSION_OPTIONS is not setCONFIG_JFFS2_ZLIB=y
# CONFIG_JFFS2_LZO is not setCONFIG_JFFS2_RTIME=y
# CONFIG_JFFS2_RUBIN is not setCONFIG_UBIFS_FS=mCONFIG_UBIFS_FS_XATTR=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not setCONFIG_UBIFS_FS_LZO=yCONFIG_UBIFS_FS_ZLIB=y
# CONFIG_UBIFS_FS_DEBUG is not setCONFIG_CRAMFS=mCONFIG_SQUASHFS=m
# CONFIG_SQUASHFS_EMBEDDED is not setCONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3CONFIG_VXFS_FS=mCONFIG_MINIX_FS=mCONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not setCONFIG_QNX4FS_FS=mCONFIG_ROMFS_FS=mCONFIG_SYSV_FS=mCONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not setCONFIG_NETWORK_FILESYSTEMS=yCONFIG_NFS_FS=mCONFIG_NFS_V3=yCONFIG_NFS_V3_ACL=yCONFIG_NFS_V4=yCONFIG_NFSD=mCONFIG_NFSD_V2_ACL=yCONFIG_NFSD_V3=yCONFIG_NFSD_V3_ACL=yCONFIG_NFSD_V4=yCONFIG_LOCKD=mCONFIG_LOCKD_V4=yCONFIG_EXPORTFS=mCONFIG_NFS_ACL_SUPPORT=mCONFIG_NFS_COMMON=yCONFIG_SUNRPC=mCONFIG_SUNRPC_GSS=mCONFIG_SUNRPC_XPRT_RDMA=mCONFIG_RPCSEC_GSS_KRB5=mCONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not setCONFIG_CIFS=m
# CONFIG_CIFS_STATS is not setCONFIG_CIFS_WEAK_PW_HASH=yCONFIG_CIFS_XATTR=yCONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not setCONFIG_CIFS_EXPERIMENTAL=yCONFIG_CIFS_UPCALL=yCONFIG_CIFS_DFS_UPCALL=yCONFIG_NCP_FS=mCONFIG_NCPFS_PACKET_SIGNING=yCONFIG_NCPFS_IOCTL_LOCKING=yCONFIG_NCPFS_STRONG=yCONFIG_NCPFS_NFS_NS=yCONFIG_NCPFS_OS2_NS=yCONFIG_NCPFS_SMALLDOS=yCONFIG_NCPFS_NLS=yCONFIG_NCPFS_EXTRAS=yCONFIG_CODA_FS=m
# CONFIG_AFS_FS is not setCONFIG_9P_FS=m
#
# Partition Types
#CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not setCONFIG_OSF_PARTITION=yCONFIG_AMIGA_PARTITION=y
# CONFIG_ATARI_PARTITION is not setCONFIG_MAC_PARTITION=yCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=yCONFIG_MINIX_SUBPARTITION=yCONFIG_SOLARIS_X86_PARTITION=yCONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not setCONFIG_SGI_PARTITION=y
# CONFIG_ULTRIX_PARTITION is not setCONFIG_SUN_PARTITION=yCONFIG_KARMA_PARTITION=yCONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not setCONFIG_NLS=yCONFIG_NLS_DEFAULT="utf8"CONFIG_NLS_CODEPAGE_437=yCONFIG_NLS_CODEPAGE_737=mCONFIG_NLS_CODEPAGE_775=mCONFIG_NLS_CODEPAGE_850=mCONFIG_NLS_CODEPAGE_852=mCONFIG_NLS_CODEPAGE_855=mCONFIG_NLS_CODEPAGE_857=mCONFIG_NLS_CODEPAGE_860=mCONFIG_NLS_CODEPAGE_861=mCONFIG_NLS_CODEPAGE_862=mCONFIG_NLS_CODEPAGE_863=mCONFIG_NLS_CODEPAGE_864=mCONFIG_NLS_CODEPAGE_865=mCONFIG_NLS_CODEPAGE_866=mCONFIG_NLS_CODEPAGE_869=mCONFIG_NLS_CODEPAGE_936=mCONFIG_NLS_CODEPAGE_950=mCONFIG_NLS_CODEPAGE_932=mCONFIG_NLS_CODEPAGE_949=mCONFIG_NLS_CODEPAGE_874=mCONFIG_NLS_ISO8859_8=mCONFIG_NLS_CODEPAGE_1250=mCONFIG_NLS_CODEPAGE_1251=mCONFIG_NLS_ASCII=yCONFIG_NLS_ISO8859_1=mCONFIG_NLS_ISO8859_2=mCONFIG_NLS_ISO8859_3=mCONFIG_NLS_ISO8859_4=mCONFIG_NLS_ISO8859_5=mCONFIG_NLS_ISO8859_6=mCONFIG_NLS_ISO8859_7=mCONFIG_NLS_ISO8859_9=mCONFIG_NLS_ISO8859_13=mCONFIG_NLS_ISO8859_14=mCONFIG_NLS_ISO8859_15=mCONFIG_NLS_KOI8_R=mCONFIG_NLS_KOI8_U=mCONFIG_NLS_UTF8=mCONFIG_DLM=mCONFIG_DLM_DEBUG=y
#
# Kernel hacking
#CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
# CONFIG_ENABLE_WARN_DEPRECATED is not setCONFIG_ENABLE_MUST_CHECK=yCONFIG_FRAME_WARN=2048CONFIG_MAGIC_SYSRQ=yCONFIG_UNUSED_SYMBOLS=yCONFIG_DEBUG_FS=yCONFIG_HEADERS_CHECK=yCONFIG_DEBUG_KERNEL=yCONFIG_DEBUG_SHIRQ=yCONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not setCONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0CONFIG_SCHED_DEBUG=yCONFIG_SCHEDSTATS=yCONFIG_DEBUG_NMI_TIMEOUT=5CONFIG_TIMER_STATS=yCONFIG_DEBUG_OBJECTS=y
# CONFIG_DEBUG_OBJECTS_SELFTEST is not setCONFIG_DEBUG_OBJECTS_FREE=yCONFIG_DEBUG_OBJECTS_TIMERS=yCONFIG_SLUB_DEBUG_ON=y
# CONFIG_SLUB_STATS is not setCONFIG_DEBUG_RT_MUTEXES=yCONFIG_DEBUG_PI_LIST=y
# CONFIG_RT_MUTEX_TESTER is not setCONFIG_DEBUG_SPINLOCK=yCONFIG_DEBUG_MUTEXES=yCONFIG_DEBUG_LOCK_ALLOC=yCONFIG_PROVE_LOCKING=yCONFIG_LOCKDEP=yCONFIG_LOCK_STAT=y
# CONFIG_DEBUG_LOCKDEP is not setCONFIG_TRACE_IRQFLAGS=yCONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not setCONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not setCONFIG_DEBUG_BUGVERBOSE=yCONFIG_DEBUG_INFO=yCONFIG_DEBUG_VM=yCONFIG_DEBUG_WRITECOUNT=yCONFIG_DEBUG_MEMORY_INIT=yCONFIG_DEBUG_LIST=yCONFIG_DEBUG_SG=yCONFIG_FRAME_POINTER=yCONFIG_BOOT_PRINTK_DELAY=y
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_LKDTM is not setCONFIG_FAULT_INJECTION=yCONFIG_FAILSLAB=yCONFIG_FAIL_PAGE_ALLOC=yCONFIG_FAIL_MAKE_REQUEST=yCONFIG_FAULT_INJECTION_DEBUG_FS=yCONFIG_LATENCYTOP=yCONFIG_HAVE_FTRACE=yCONFIG_HAVE_DYNAMIC_FTRACE=yCONFIG_TRACER_MAX_TRACE=yCONFIG_TRACING=yCONFIG_FTRACE=yCONFIG_IRQSOFF_TRACER=yCONFIG_SYSPROF_TRACER=yCONFIG_SCHED_TRACER=yCONFIG_CONTEXT_SWITCH_TRACER=yCONFIG_DYNAMIC_FTRACE=y
# CONFIG_FTRACE_STARTUP_TEST is not setCONFIG_PROVIDE_OHCI1394_DMA_INIT=y
# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
# CONFIG_SAMPLES is not setCONFIG_HAVE_ARCH_KGDB=yCONFIG_KGDB=yCONFIG_KGDB_SERIAL_CONSOLE=yCONFIG_KGDB_TESTS=y
# CONFIG_KGDB_TESTS_ON_BOOT is not setCONFIG_STRICT_DEVMEM=y
# CONFIG_X86_VERBOSE_BOOTUP is not setCONFIG_EARLY_PRINTK=yCONFIG_DEBUG_STACKOVERFLOW=yCONFIG_DEBUG_STACK_USAGE=yCONFIG_DEBUG_PAGEALLOC=y
# CONFIG_DEBUG_PER_CPU_MAPS is not setCONFIG_X86_PTDUMP=yCONFIG_DEBUG_RODATA=yCONFIG_DIRECT_GBPAGES=y
# CONFIG_DEBUG_RODATA_TEST is not set
# CONFIG_DEBUG_NX_TEST is not set
# CONFIG_IOMMU_DEBUG is not set
# CONFIG_MMIOTRACE is not setCONFIG_IO_DELAY_TYPE_0X80=0CONFIG_IO_DELAY_TYPE_0XED=1CONFIG_IO_DELAY_TYPE_UDELAY=2CONFIG_IO_DELAY_TYPE_NONE=3CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not setCONFIG_DEFAULT_IO_DELAY_TYPE=0CONFIG_DEBUG_BOOT_PARAMS=y
# CONFIG_CPA_DEBUG is not setCONFIG_OPTIMIZE_INLINING=y
#
# Security options
#CONFIG_KEYS=yCONFIG_KEYS_DEBUG_PROC_KEYS=yCONFIG_SECURITY=yCONFIG_SECURITY_NETWORK=y CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_FILE_CAPABILITIES=y
# CONFIG_SECURITY_ROOTPLUG is not set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT=y # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set # CONFIG_SECURITY_SMACK is not set CONFIG_XOR_BLOCKS=mCONFIG_ASYNC_CORE=mCONFIG_ASYNC_MEMCPY=mCONFIG_ASYNC_XOR=mCONFIG_CRYPTO=y
#
# Crypto core or helper
#CONFIG_CRYPTO_ALGAPI=yCONFIG_CRYPTO_AEAD=mCONFIG_CRYPTO_BLKCIPHER=mCONFIG_CRYPTO_HASH=yCONFIG_CRYPTO_MANAGER=yCONFIG_CRYPTO_GF128MUL=mCONFIG_CRYPTO_NULL=m
# CONFIG_CRYPTO_CRYPTD is not setCONFIG_CRYPTO_AUTHENC=mCONFIG_CRYPTO_TEST=m
#
# Authenticated Encryption with Associated Data
#CONFIG_CRYPTO_CCM=mCONFIG_CRYPTO_GCM=mCONFIG_CRYPTO_SEQIV=m
#
# Block modes
#CONFIG_CRYPTO_CBC=mCONFIG_CRYPTO_CTR=mCONFIG_CRYPTO_CTS=mCONFIG_CRYPTO_ECB=mCONFIG_CRYPTO_LRW=mCONFIG_CRYPTO_PCBC=mCONFIG_CRYPTO_XTS=m
#
# Hash modes
#CONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_XCBC=m
#
# Digest
#CONFIG_CRYPTO_CRC32C=mCONFIG_CRYPTO_MD4=mCONFIG_CRYPTO_MD5=yCONFIG_CRYPTO_MICHAEL_MIC=mCONFIG_CRYPTO_RMD128=mCONFIG_CRYPTO_RMD160=mCONFIG_CRYPTO_RMD256=mCONFIG_CRYPTO_RMD320=mCONFIG_CRYPTO_SHA1=yCONFIG_CRYPTO_SHA256=mCONFIG_CRYPTO_SHA512=mCONFIG_CRYPTO_TGR192=mCONFIG_CRYPTO_WP512=m
#
# Ciphers
#CONFIG_CRYPTO_AES=mCONFIG_CRYPTO_AES_X86_64=mCONFIG_CRYPTO_ANUBIS=mCONFIG_CRYPTO_ARC4=mCONFIG_CRYPTO_BLOWFISH=mCONFIG_CRYPTO_CAMELLIA=mCONFIG_CRYPTO_CAST5=mCONFIG_CRYPTO_CAST6=mCONFIG_CRYPTO_DES=mCONFIG_CRYPTO_FCRYPT=mCONFIG_CRYPTO_KHAZAD=mCONFIG_CRYPTO_SALSA20=mCONFIG_CRYPTO_SALSA20_X86_64=mCONFIG_CRYPTO_SEED=mCONFIG_CRYPTO_SERPENT=mCONFIG_CRYPTO_TEA=mCONFIG_CRYPTO_TWOFISH=mCONFIG_CRYPTO_TWOFISH_COMMON=mCONFIG_CRYPTO_TWOFISH_X86_64=m
#
# Compression
#CONFIG_CRYPTO_DEFLATE=mCONFIG_CRYPTO_LZO=mCONFIG_CRYPTO_HW=yCONFIG_CRYPTO_DEV_HIFN_795X=mCONFIG_CRYPTO_DEV_HIFN_795X_RNG=yCONFIG_HAVE_KVM=yCONFIG_VIRTUALIZATION=yCONFIG_KVM=mCONFIG_KVM_INTEL=mCONFIG_KVM_AMD=mCONFIG_KVM_TRACE=yCONFIG_VIRTIO=mCONFIG_VIRTIO_RING=mCONFIG_VIRTIO_PCI=mCONFIG_VIRTIO_BALLOON=m
#
# Library routines
#CONFIG_BITREVERSE=yCONFIG_GENERIC_FIND_FIRST_BIT=yCONFIG_GENERIC_FIND_NEXT_BIT=yCONFIG_CRC_CCITT=mCONFIG_CRC16=mCONFIG_CRC_T10DIF=yCONFIG_CRC_ITU_T=mCONFIG_CRC32=y
# CONFIG_CRC7 is not setCONFIG_LIBCRC32C=mCONFIG_ZLIB_INFLATE=yCONFIG_ZLIB_DEFLATE=mCONFIG_LZO_COMPRESS=mCONFIG_LZO_DECOMPRESS=mCONFIG_GENERIC_ALLOCATOR=yCONFIG_REED_SOLOMON=mCONFIG_REED_SOLOMON_DEC16=yCONFIG_TEXTSEARCH=yCONFIG_TEXTSEARCH_KMP=mCONFIG_TEXTSEARCH_BM=mCONFIG_TEXTSEARCH_FSM=mCONFIG_PLIST=yCONFIG_HAS_IOMEM=yCONFIG_HAS_IOPORT=yCONFIG_HAS_DMA=yCONFIG_CHECK_SIGNATURE=y
Quoted 59 lines · Hans de Goede
Quoted 34 lines · Eric Dumazet
Quoted 33 lines · Hans de Goede
Quoted 2 lines · Eric Dumazet
Quoted 1 line · Dave Jones
Just had this bug reported against our development tree..
<snip>
Quoted 11 lines
Quoted 10 lines
Quoted 7 lines
[hans@localhost devel]$ time cat
/proc/net/tcp
<snip>real 0m0.520s user 0m0.000s sys 0m0.446sQuoted 2 lines
Thats amazingly slow, esp as I only have 8 tcp connections open. Some maybe usefull info: top reports a very high load (50%)
from soft IRQ's.
Quoted 1 line
Quoted 1 line
Anyways changing this to a kernel bug.
Quoted 2 lines
I wonder why this qualifies as a "kernel bug". This is a well known problem.
No its not,
/proc/net/tcpmay be slow in general but not *this* slow ...<snip>
Quoted 10 lines
Time difference between
/proc/net/tcpand netlink on a 4GBx86_64machine :# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/nullreal 0m0.091s user 0m0.001s sys 0m0.090sQuoted 9 lines
Quoted 5 lines
As quoted above my idle
x86_64, using the exact same hash table size, running 2.6.27-rc2.git1 uses 0.520 seconds for that same command, thats a difference of more then a factor 50 !!This is not about
/proc/net/tcpnot being fast, this is about it haven gotten slower by a factor of 50!Also notice that this slowdown does not happen on i386.
And your .config files on i386 and
x86_64are ?
Some configuration options can slow down all lock/unlock operations (CONFIG_SMP,CONFIG_PREEMPT,CONFIG_PROVE_LOCKING,CONFIG_DEBUG_SPINLOCK,CONFIG_NR_CPUS...)Attached
Quoted 1 line
If you TCP hash table has 512.000 slots (I am just guessing, you didnt provide this information), it can make a huge difference.
I did provide that information: "using the exact same hash table size" and then quoting your first mail in this thread:
"TCP established hash table entries: 262144 (order: 10, 4194304 bytes)"Quoted 6 lines
Quoted 3 lines
Anyways I'll try 2.6.27-rc4 and report back with its results.
Yes, please, but nothing really changed in this area in the recent times...
Quoted 6 lines
I'm afraid that atleast the Fedora rc4 build won't boot on my machine ...
Quoted 2 lines
We added some checks so that softirqs can preempt us.
Latencies used to be very high, and are now bonded, at the price of potential slowdown for the/proc/net/tcpreader.Slowdown as in 2x or 4x as slow I presume, not 50x ?
I dont know, you tell us 50x, but nowhere I saw your numbers on i386, nor the amount of memory of your test machine.
One important thing to remember is that on i386, LOWMEM is less than 1GB, so a 4GB server will give different hash sizes depending on being 32 or 64 bits.
With a 32 bits kernel:
# dmesg | grep "TCP established" TCP established hash table entries: 131072 (order: 8, 1048576 bytes) # time cat /proc/net/tcp >/dev/null
real 0m0.025s user 0m0.000s sys 0m0.017s
While on a 64 bits kernel :
# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/null
real 0m0.091s user 0m0.001s sys 0m0.090s
So I see a 3x on my machine, not a 50x as you ?
Quoted 4 lines · Eric Dumazet
I dont know, you tell us 50x, but nowhere I saw your numbers on i386, nor the amount of memory of your test machine.
My machine has 2 Gb of memory, but that is not really relevant as I'm not the reporter of the problem (but I can reproduce it) I'm only in the loop because I maintain the gkrellm package in Fedora which exhibits this problem. Also I gave you no i386 numbers on the same machine because I don't have an i386 install readily available on this machine.
Now you can spin this anyway you want, but lets cut to the chase, gkrellmd which is a system monitoring daemon reads /proc/net/tcp and /proc/net/tcp6 3 times a second, with slightly older kernel this used to give a CPU load of 2-3% on x86_64 now it gives a load of 50-70% (on my test machine with a whole 8 tcp connections open).
Now you can wing it any way you want, but this is a serious regression. I don't want to go to lkml and start shouting regression REGRESSION regression, but given the treating and enormous amount of help I've received sofar (and remember I'm only the messenger I didn't write nor use gkrellmd) I'm tending towards starting shouting regression on lkml, as atleast there this seems to get some attention.
Regards,
Hans
David Miller
maintainerFrom: Hans de Goede <[email protected]>
Date: Wed, 27 Aug 2008 11:14:17 +0200
Quoted 7 lines
Now you can wing it any way you want, but this is a serious regression. I don't want to go to lkml and start shouting regression REGRESSION regression, but given the treating and enormous amount of help I've received sofar (and remember I'm only the messenger I didn't write nor use gkrellmd) I'm tending towards starting shouting regression on lkml, as atleast there this seems to get some attention.
Last time I checked, one doesn't throw threats at people when they want help from them.
Please don't do that to us.
Quoted 11 lines · David Miller
From: Hans de Goede <[email protected]>
Date: Wed, 27 Aug 2008 11:14:17 +0200Quoted 7 lines
Now you can wing it any way you want, but this is a serious regression. I don't want to go to lkml and start shouting regression REGRESSION regression, but given the treating and enormous amount of help I've received sofar (and remember I'm only the messenger I didn't write nor use gkrellmd) I'm tending towards starting shouting regression on lkml, as atleast there this seems to get some attention.
Quoted 5 lines
Last time I checked, one doesn't throw threats at people when they want help from them.
Please don't do that to us.
I'm sorry, but I didn't have the feeling I had many options left. I've reported a serious performance regression and all the answer I've been getting sofar is: "well if that is slow don't do that you silly" which is anything but a satisfying answer.
Anyways as said I'm just the man in the middle, people are hitting this performance regression in real life scenarios. I've done my best to make this regression clear and known to you, and now I'm done with this thread, please remove me from the CC for further replies.
Regards,
Hans
David Miller
maintainerFrom: Hans de Goede <[email protected]>
Date: Wed, 27 Aug 2008 11:45:07 +0200
Quoted 4 lines
I'm sorry, but I didn't have the feeling I had many options left. I've reported a serious performance regression and all the answer I've been getting sofar is: "well if that is slow don't do that you silly" which is anything but a satisfying answer.
Eric said merely that applications can get better performance by using the netlink socket dumping interfaces. It was "for your information", rather than being suggested as a fix for the bug.
People have given other forms of useful feedback as well, and the bug seems to be being looked into.
Quoted 6 lines · Hans de Goede
Quoted 4 lines · Eric Dumazet
# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/null
Quoted 7 lines
Quoted 3 lines
real 0m0.091s user 0m0.001s sys 0m0.090sAs quoted above my idle
x86_64, using the exact same hash table size, running 2.6.27-rc2.git1 uses 0.520 seconds for that same command, thats a difference of more then a factor 50 !!
That looks like a factor of 5 to me, not 50.
Cheers,
Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txtQuoted 7 lines · Herbert Xu
Quoted 6 lines · Hans de Goede
Quoted 4 lines · Eric Dumazet
# dmesg | grep "TCP established hash" TCP established hash table entries: 262144 (order: 10, 4194304 bytes) # time cat /proc/net/tcp >/dev/null
Quoted 7 lines
Quoted 4 lines
Quoted 3 lines
real 0m0.091s user 0m0.001s sys 0m0.090sAs quoted above my idle
x86_64, using the exact same hash table size, running 2.6.27-rc2.git1 uses 0.520 seconds for that same command, thats a difference of more then a factor 50 !!That looks like a factor of 5 to me, not 50.
Erm, you are completely right ofcourse.
Regards,
Hans
Quoted 1 line · Dave Jones
Just had this bug reported against our development tree..
SUSE had an old patch for this which unfortunately got rejected some time ago for some bogus reason.
The reason why it's so slow is because the hash table walk takes a read lock for each bucket, which is just not fast. On some architectures like POWER it is even slower than on x86.
The patch simply skipped that for empty buckets.
I append the old patch (haven't checked if it applies to an recent kernel)
-Andi
Skip empty hash buckets faster in /proc/net/tcp
On most systems most of the TCP established/time-wait hash buckets are empty. When walking the hash table for /proc/net/tcp their read locks would always be aquired just to find out they're empty. This patch changes the code to check first if the buckets have any entries before taking the lock, which is much cheaper than taking a lock. Since the hash tables are large this makes a measurable difference on processing /proc/net/tcp, especially on architectures with slow read_lock (e.g. PPC)
On a 2GB Core2 system here I see a time cat /proc/net/tcp > /dev/null constently dropping from 0.44s to 0.4-0.8s system time with this change. This is with mostly empty hash tables.
On systems with slower atomics (like P4 or POWER4) or larger hash tables (more RAM) the difference is much higher.
This can be noticeable because there are some daemons around who regularly scan /proc/net/tcp.
Original idea for this patch from Marcus Meissner, but redone by me.
--- net/ipv4/tcp_ipv4.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-)
net/ipv4/tcp_ipv4.c +19 -7
@@ -2039,6 +2039,12 @@ static void *listening_get_idx(struct sereturn rc; } +static inline int empty_bucket (struct tcp_iter_state *st) +{ +return hlist_empty (&tcp_hashinfo.ehash[st->bucket].chain) && +hlist_empty (&tcp_hashinfo.ehash[st->bucket].twchain); +} +static void *established_get_first (struct seq_file *seq) {struct tcp_iter_state * st = seq->private;
@@ -2050,6 +2056,10 @@ static void *established_get_first(strucstruct inet_timewait_sock *tw;rwlock_t *lock =inet_ehash_lockp (&tcp_hashinfo, st->bucket); +/* Lockless fast path for the common case of empty buckets */ +if (empty_bucket (st)) +continue ; +read_lock_bh (lock);sk_for_each (sk, node, &tcp_hashinfo.ehash[st->bucket].chain) {if (sk->sk_family != st->family) {
@@ -2097,13 +2107,15 @@ get_tw:read_unlock_bh (inet_ehash_lockp (&tcp_hashinfo, st->bucket)); st->state =TCP_SEQ_STATE_ESTABLISHED ; -if (++st->bucket < tcp_hashinfo.ehash_size) { -read_lock_bh (inet_ehash_lockp (&tcp_hashinfo, st->bucket)); - sk =sk_head (&tcp_hashinfo.ehash[st->bucket].chain); - }else { - cur =NULL ; - goto out; - } +/* Look for next non empty bucket */ +while (++st->bucket < tcp_hashinfo.ehash_size && +empty_bucket (st)) + ; +if (st->bucket >= tcp_hashinfo.ehash_size) +return NULL ; + +read_lock_bh (inet_ehash_lockp (&tcp_hashinfo, st->bucket)); + sk =sk_head (&tcp_hashinfo.ehash[st->bucket].chain); }else sk =sk_next (sk);
David Miller
maintainerFrom: Andi Kleen <[email protected]>
Date: Wed, 27 Aug 2008 14:41:52 +0200
Quoted 6 lines
Quoted 1 line · Dave Jones
Just had this bug reported against our development tree..
SUSE had an old patch for this which unfortunately got rejected some time ago for some bogus reason.
Really, your patch fixes this specific slowdown that got introduced recently? I really doubt it Andi, so please don't use this as an opportunity to toot your own horn, thanks.
Quoted 10 lines · On Wed, 27 Aug 2008 14:29:41 -0700 (PDT) David Miller <[email protected]>…
From: Andi Kleen <[email protected]>
Date: Wed, 27 Aug 2008 14:41:52 +0200Quoted 6 lines
Quoted 1 line · Dave Jones
Just had this bug reported against our development tree..
SUSE had an old patch for this which unfortunately got rejected some time ago for some bogus reason.
Quoted 7 lines
Really, your patch fixes this specific slowdown that got introduced recently? I really doubt it Andi, so please don't use this as an opportunity to toot your own horn, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
I do wonder if having large hash table actually helps? When TCP hash table gets too big, it means every lookup is a cache miss. Assuming a busy server with 2000 connections and perfect hash. On a 4G mem x86-64 we are doing 512K hash entries which is ridiculous. Something like 64K entries is more than enough.
David Miller
maintainerFrom: Stephen Hemminger <[email protected]>
Date: Wed, 27 Aug 2008 14:48:00 -0700
Quoted 5 lines
I do wonder if having large hash table actually helps? When TCP hash table gets too big, it means every lookup is a cache miss. Assuming a busy server with 2000 connections and perfect hash. On a 4G mem x86-64 we are doing 512K hash entries which is ridiculous. Something like 64K entries is more than enough.
That's true, but it's nearly guaranteed to only be a single cache miss at worst (if the hash function is working) compared to potentially multiple ones if we sized it too small.
I really see the only way to move forward is to dynamically size the thing. And nobody has been strong enough to implement that yet :)
Quoted 9 lines · David Miller
From: Stephen Hemminger <[email protected]>
Date: Wed, 27 Aug 2008 14:48:00 -0700Quoted 5 lines
I do wonder if having large hash table actually helps? When TCP hash table gets too big, it means every lookup is a cache miss. Assuming a busy server with 2000 connections and perfect hash. On a 4G mem x86-64 we are doing 512K hash entries which is ridiculous. Something like 64K entries is more than enough.
Quoted 7 lines
That's true, but it's nearly guaranteed to only be a single cache miss at worst (if the hash function is working) compared to potentially multiple ones if we sized it too small.
I really see the only way to move forward is to dynamically size the thing. And nobody has been strong enough to implement that yet :)
You are right. For TCP hash table thats probably hard to implement.
But for route cache, it is probably doable since we added the rt_genid
thing in commit 29e75252da20f3ab9e132c68c9aed156b87beae6 ([IPV4] route cache: Introduce rt_genid for smooth cache invalidation)
If we add a hash table for each "struct net" (net->ipv4.rt_hash_table),
we then could do something sensible when an admin writes to /proc/sys/net/ipv4/route/hash_size or at rt_check_expire() time, if hash table is found to be full...
1) Instead of using alloc_large_system_hash() at boot time to allocate
rt_hash_table, use a plain vmalloc()
Initial hash size could be small (one page) unless "rhash_entries=xxx" boot parameter says otherwise.
2) If an admin writes a new value to /proc/sys/net/ipv4/route/hash_size :
- Allocate a new table with vmalloc()
- Change the net->ipv4.rt_genid and net->ipv4.rt_hash_table
- Old table contains obsolete entries, rt_free() them all.
- vfree() old hash table, now empty.
3) In rt_check_expire(), adds some metrics to trigger an expand of the hash table in case we found too many entries in it.
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 08:20:51 +0200
Quoted 9 lines
But for route cache, it is probably doable since we added the
rt_genidthing in commit29e75252da20f3ab9e132c68c9aed156b87beae6([IPV4] route cache: Introducert_genidfor smooth cache invalidation)If we add a hash table for each "struct net" (
net->ipv4.rt_hash_table), we then could do something sensible when an admin writes to/proc/sys/net/ipv4/route/hash_sizeor atrt_check_expire()time, if hash table is found to be full...
The synchronization and implementation is not a problem for the route cache, I implemented this eons ago.
Quoted 2 lines
3) In
rt_check_expire(), adds some metrics to trigger an expand of the hash table in case we found too many entries in it.
This is the problem and why I didn't just commit the patch I had back then.
We could not define a reasonable way to trigger hash table growth.
GC attempts to keep a resident set of entries in the cache, and these heuristics are guided by the table size itself. So if you grow the table too aggressively this never has a chance to work.
You want to respond dynamically to traffic in a reasonable amount of time, but you don't want to get tricked by bursts of RCU effects.
We never came up with an algorithm that addresses all of these issues.
Quoted 19 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 08:20:51 +0200Quoted 9 lines
But for route cache, it is probably doable since we added the
rt_genidthing in commit29e75252da20f3ab9e132c68c9aed156b87beae6([IPV4] route cache: Introducert_genidfor smooth cache invalidation)If we add a hash table for each "struct net" (
net->ipv4.rt_hash_table), we then could do something sensible when an admin writes to/proc/sys/net/ipv4/route/hash_sizeor atrt_check_expire()time, if hash table is found to be full...The synchronization and implementation is not a problem for the route cache, I implemented this eons ago.
Quoted 2 lines
3) In
rt_check_expire(), adds some metrics to trigger an expand of the hash table in case we found too many entries in it.
Quoted 8 lines
This is the problem and why I didn't just commit the patch I had back then.
We could not define a reasonable way to trigger hash table growth.
GC attempts to keep a resident set of entries in the cache, and these heuristics are guided by the table size itself. So if you grow the table too aggressively this never has a chance to work.
Maybe because of overcomplicated algos in net/ipv4/route.c, and mixing "number of entries in cache", and "hash table size" things...
Fact is that nobody wants to have eight elements per hash bucket, especially in case of DDOS.
Quoted 4 lines
You want to respond dynamically to traffic in a reasonable amount of time, but you don't want to get tricked by bursts of RCU effects.
Right, but we also use process context processing instead of plain timer soft irq things, so at least RCU effects should now be OK.
Quoted 2 lines
We never came up with an algorithm that addresses all of these issues.
Could you give us the pointer to your previous work ?
Thank you
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 09:13:13 +0200
Quoted 8 lines
Quoted 4 lines · David Miller
We could not define a reasonable way to trigger hash table growth. GC attempts to keep a resident set of entries in the cache, and these heuristics are guided by the table size itself. So if you grow the table too aggressively this never has a chance to work.
Maybe because of overcomplicated algos in
net/ipv4/route.c, and mixing "number of entries in cache", and "hash table size" things...
But it is exactly what we want to use to create equilabrium when the size is large enough.
Quoted 2 lines
Fact is that nobody wants to have eight elements per hash bucket, especially in case of DDOS.
Of this there is no doubt. But also, nobody wants to use 1GB hash table simply because of poorly implemented interactions between GC and hash table growth :-)
Quoted 6 lines
Quoted 3 lines
You want to respond dynamically to traffic in a reasonable amount of time, but you don't want to get tricked by bursts of RCU effects.
Right, but we also use process context processing instead of plain timer soft irq things, so at least RCU effects should now be OK.
I meant to say "bursts or RCU effects".
Quoted 4 lines
Quoted 2 lines
We never came up with an algorithm that addresses all of these issues.
Could you give us the pointer to your previous work ?
It was a series of patches I started posting in August 2006:
http://marc.info/?l=linux-netdev&m=115510979129323&w=2
There was a bunch of discussion, the locking and synchronization were worked out but the resize logic was not.
Quoted 14 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 09:13:13 +0200Quoted 7 lines
Quoted 4 lines · David Miller
We could not define a reasonable way to trigger hash table growth. GC attempts to keep a resident set of entries in the cache, and these heuristics are guided by the table size itself. So if you grow the table too aggressively this never has a chance to work.
Maybe because of overcomplicated algos in
net/ipv4/route.c, and mixing "number of entries in cache", and "hash table size" things...But it is exactly what we want to use to create equilabrium when the size is large enough.
Quoted 6 lines
Quoted 2 lines
Fact is that nobody wants to have eight elements per hash bucket, especially in case of DDOS.
Of this there is no doubt. But also, nobody wants to use 1GB hash table simply because of poorly implemented interactions between GC and hash table growth :-)
Sure, but we have /proc/sys/net/ipv4/route/max_size, so hash table size would be at most (sizeof(void *) * max_size) of course.
Quoted 7 lines
It was a series of patches I started posting in August 2006:
http://marc.info/?l=linux-netdev&m=115510979129323&w=2There was a bunch of discussion, the locking and synchronization were worked out but the resize logic was not.
Thanks David, I remembered this stuff but was unable to find it again in my archives.
Give me some days/weeks to work on this subject.
(Hans removed from CC)
Quoted 1 line
You are right. For TCP hash table thats probably hard to implement.
The alternative would be to use some kind of cache optimized tree. While they have in theory more steps if you assume that the upper levels of the tree are very small and usually are cached these steps could be very cheap.
-Andi
Signature · 1 line
[email protected]
Quoted 5 lines · David Miller
From: Andi Kleen <[email protected]>
Date: Wed, 27 Aug 2008 14:41:52 +0200Quoted 2 lines
Dave Jones <[email protected]> writes:
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Just had this bug reported against our development tree..
SUSE had an old patch for this which unfortunately got rejected some time ago for some bogus reason.
Really, your patch fixes this specific slowdown that got introduced recently?
Trick question?
It fixes an old performance problem at least. I'm not aware of any new ones in this area because the code in this function hasn't changed since I last looked.
Quoted 2 lines
I really doubt it Andi, so please don't use this as an opportunity to toot your own horn, thanks.
First I'm not posting patches to "toot my horn" (whatever you mean with that), but to improve Linux. Please do not insinuate anything else. Thank you.
Then the patch is still useful and makes sense IMHO. I just checked and it applies to 2.6.27-rc4 and boots and seems to still work from a quick check. I expect it would resolve the problem of the Fedora bug reporter.
Please reconsider. The patch is a straight forward optimization of a function that does something dumb. Doing hundred thousands of atomic operations unnecessarily (in most cases the hash table is mostly empty) just doesn't make much sense.
And no "use rtnetlink" is also not the answer, because rtnetlink does nothing to fix the extreme cost of the full hash table walk if you just want to see all connections.
I'm appending the patch again. Only difference is that it is rediffed to 2.6.27-rc4 to avoid fuzz and I redid the benchmark numbers (this time hopefully without missing zeroes)
-Andi
---
Skip empty hash buckets faster in /proc/net/tcp
On most systems most of the TCP established/time-wait hash buckets are empty. When walking the hash table for /proc/net/tcp their read locks would always be aquired just to find out they're empty. This patch changes the code to check first if the buckets have any entries before taking the lock, which is much cheaper than taking a lock. Since the hash tables are large this makes a measurable difference on processing /proc/net/tcp, especially on architectures with slow read_lock (e.g. PPC)
On a 2GB Core2 system time cat /proc/net/tcp > /dev/null (with a mostly empty hash table) goes from 0.046s to 0.005s.
On systems with slower atomics (like P4 or POWER4) or larger hash tables (more RAM) the difference is much higher.
This can be noticeable because there are some daemons around who regularly scan /proc/net/tcp.
Original idea for this patch from Marcus Meissner, but redone by me.
--- net/ipv4/tcp_ipv4.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-)
net/ipv4/tcp_ipv4.c +19 -7
@@ -1946,6 +1946,12 @@ static void *listening_get_idx(struct sereturn rc; } +static inline int empty_bucket (struct tcp_iter_state *st) +{ +return hlist_empty (&tcp_hashinfo.ehash[st->bucket].chain) && +hlist_empty (&tcp_hashinfo.ehash[st->bucket].twchain); +} +static void *established_get_first (struct seq_file *seq) {struct tcp_iter_state * st = seq->private;
@@ -1958,6 +1964,10 @@ static void *established_get_first(strucstruct inet_timewait_sock *tw;rwlock_t *lock =inet_ehash_lockp (&tcp_hashinfo, st->bucket); +/* Lockless fast path for the common case of empty buckets */ +if (empty_bucket (st)) +continue ; +read_lock_bh (lock);sk_for_each (sk, node, &tcp_hashinfo.ehash[st->bucket].chain) { if (sk->sk_family != st->family ||
@@ -2008,13 +2018,15 @@ get_tw:read_unlock_bh (inet_ehash_lockp (&tcp_hashinfo, st->bucket)); st->state =TCP_SEQ_STATE_ESTABLISHED ; -if (++st->bucket < tcp_hashinfo.ehash_size) { -read_lock_bh (inet_ehash_lockp (&tcp_hashinfo, st->bucket)); - sk =sk_head (&tcp_hashinfo.ehash[st->bucket].chain); - }else { - cur =NULL ; - goto out; - } +/* Look for next non empty bucket */ +while (++st->bucket < tcp_hashinfo.ehash_size && +empty_bucket (st)) + ; +if (st->bucket >= tcp_hashinfo.ehash_size) +return NULL ; + +read_lock_bh (inet_ehash_lockp (&tcp_hashinfo, st->bucket)); + sk =sk_head (&tcp_hashinfo.ehash[st->bucket].chain); }else sk =sk_next (sk);
David Miller
maintainerFrom: Andi Kleen <[email protected]>
Date: Thu, 28 Aug 2008 00:34:10 +0200
Quoted 3 lines
It fixes an old performance problem at least. I'm not aware of any new ones in this area because the code in this function hasn't changed since I last looked.
That's exactly what this thread is about, things got slower for some reason even though nothing specifically changed in this area.
I wonder if indirectly something changed in how the hash table allocator code down in mm/*.c works, perhaps it's taking NUMA into account differently now?
Quoted 9 lines · David Miller
From: Andi Kleen <[email protected]>
Date: Thu, 28 Aug 2008 00:34:10 +0200Quoted 3 lines
It fixes an old performance problem at least. I'm not aware of any new ones in this area because the code in this function hasn't changed since I last looked.
That's exactly what this thread is about, things got slower for some reason even though nothing specifically changed in this area.
I reread the original bug and it says nothing about a regression (unless I'm blind). I think the reporter just ran into the slowness that was pretty much always there[1] (and which my patch improves)
-Andi
[1] ok it got more noticeable over time because people have more memory than they used to have, which made the hash table bigger.
Signature · 1 line
[email protected]
David Miller
maintainerFrom: Andi Kleen <[email protected]>
Date: Thu, 28 Aug 2008 00:57:25 +0200
Quoted 9 lines
Quoted 7 lines · David Miller
From: Andi Kleen <[email protected]>
Date: Thu, 28 Aug 2008 00:34:10 +0200Quoted 3 lines
It fixes an old performance problem at least. I'm not aware of any new ones in this area because the code in this function hasn't changed since I last looked.
Quoted 6 lines
Quoted 2 lines
That's exactly what this thread is about, things got slower for some reason even though nothing specifically changed in this area.
I reread the original bug and it says nothing about a regression (unless I'm blind). I think the reporter just ran into the slowness that was pretty much always there[1] (and which my patch improves)
It's a regression compared to older kernels. It got slower by a factor of 5 or something like that.
Quoted 12 lines · David Miller
From: Andi Kleen <[email protected]>
Date: Thu, 28 Aug 2008 00:34:10 +0200Quoted 1 line
It fixes an old performance problem at least. I'm not aware of any new ones in this area because the code in this function hasn't changed since I last looked.
That's exactly what this thread is about, things got slower for some reason even though nothing specifically changed in this area.
I wonder if indirectly something changed in how the hash table allocator code down in
mm/*.cworks, perhaps it's taking NUMA into account differently now?
Not really, I suspect commit (a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b [TCPv4]: Improve BH latency in /proc/net/tcp) is responsible for longer delays. Note that its rather old :
Date: Sun Jun 10 17:33:08 2007 -0700
We used to disable bh once, while reading the table. This sucked.
In case machine is handling trafic, we now are preemptable by softirqs while reading /proc/net/tcp. Thats a good thing.
By the way, I find Andi patch usefull. Same thing could be done for /proc/net/rt_cache.
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 01:09:19 +0200
Quoted 2 lines
Not really, I suspect commit (
a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b[TCPv4]: Improve BH latency in/proc/net/tcp) is responsible for longer delays. Note that its rather old :
...
Quoted 4 lines
We used to disable bh once, while reading the table. This sucked.
In case machine is handling trafic, we now are preemptable by softirqs while reading
/proc/net/tcp. Thats a good thing.
Yes, that would account for it, good spotting.
Quoted 1 line
By the way, I find Andi patch usefull. Same thing could be done for
/proc/net/rt_cache.
Fair enough. If you can cook up a quick rt_cache patch I'll toss it and Andi's patch into net-next so it can cook for a while.
Quoted 11 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 01:09:19 +0200Quoted 2 lines
Not really, I suspect commit (
a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b[TCPv4]: Improve BH latency in/proc/net/tcp) is responsible for longer delays. Note that its rather old :...
Quoted 4 lines
We used to disable bh once, while reading the table. This sucked.
In case machine is handling trafic, we now are preemptable by softirqs while reading
/proc/net/tcp. Thats a good thing.
Quoted 6 lines
Yes, that would account for it, good spotting.
Quoted 1 line
By the way, I find Andi patch usefull. Same thing could be done for
/proc/net/rt_cache.Fair enough. If you can cook up a quick
rt_cachepatch I'll toss it and Andi's patch into net-next so it can cook for a while.
Thanks. Here's a little followup patch that implements the same optimization for inet_diag/ss.
-Andi
---
Add empty bucket optimization to inet_diag too
Skip quickly over empty buckets in inet_diag.
net/ipv4/inet_diag.c +5 -1
@@ -782,11 +782,15 @@ skip_listen_ht:struct sock *sk;struct hlist_node *node; + num =0 ; + +if (hlist_empty (&head->chain) &&hlist_empty (&head->twchain)) +continue ; +if (i > s_i) s_num =0 ;read_lock_bh (lock); - num =0 ;sk_for_each (sk, node, &head->chain) {struct inet_sock *inet =inet_sk (sk);
Quoted 11 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 01:09:19 +0200Quoted 2 lines
Not really, I suspect commit (
a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b[TCPv4]: Improve BH latency in/proc/net/tcp) is responsible for longer delays. Note that its rather old :...
Quoted 4 lines
We used to disable bh once, while reading the table. This sucked.
In case machine is handling trafic, we now are preemptable by softirqs while reading
/proc/net/tcp. Thats a good thing.
Quoted 6 lines
Yes, that would account for it, good spotting.
Quoted 1 line
By the way, I find Andi patch usefull. Same thing could be done for
/proc/net/rt_cache.Fair enough. If you can cook up a quick
rt_cachepatch I'll toss it and Andi's patch into net-next so it can cook for a while.
Well, first patch I would like to submit is about letting netlink being able to be faster than /proc/net/tcp again :)
Thank you
[PATCH] tcp: speedup tcp hash table lookups for NETLINK
Avoid taking locks for empty buckets.
net/ipv4/inet_diag.c +4 -1
@@ -778,10 +778,13 @@ skip_listen_ht:for (i = s_i; i < hashinfo->ehash_size; i++) {struct inet_ehash_bucket *head = &hashinfo->ehash[i]; -rwlock_t *lock =inet_ehash_lockp (hashinfo, i); +rwlock_t *lock;struct sock *sk;struct hlist_node *node; +if (hlist_empty (&head->chain) &&hlist_empty (&head->twchain)) +continue ; + lock =inet_ehash_lockp (hashinfo, i);if (i > s_i) s_num =0 ;
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 01:43:31 +0200
Quoted 11 lines
Quoted 10 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 01:09:19 +0200Quoted 2 lines
Not really, I suspect commit (
a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b[TCPv4]: Improve BH latency in/proc/net/tcp) is responsible for longer delays. Note that its rather old :...
Quoted 4 lines
We used to disable bh once, while reading the table. This sucked.
In case machine is handling trafic, we now are preemptable by softirqs while reading
/proc/net/tcp. Thats a good thing.
Quoted 7 lines
Quoted 5 lines
Yes, that would account for it, good spotting.
Quoted 1 line
By the way, I find Andi patch usefull. Same thing could be done for
/proc/net/rt_cache.Fair enough. If you can cook up a quick
rt_cachepatch I'll toss it and Andi's patch into net-next so it can cook for a while.Well, first patch I would like to submit is about letting netlink being able to be faster than
/proc/net/tcpagain :)
Andi just posted a very similar patch :)
Quoted 14 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 01:43:31 +0200Quoted 11 lines
Quoted 10 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Thu, 28 Aug 2008 01:09:19 +0200Quoted 2 lines
Not really, I suspect commit (
a7ab4b501f9b8a9dc4d5cee542db67b6ccd1088b[TCPv4]: Improve BH latency in/proc/net/tcp) is responsible for longer delays. Note that its rather old :...
Quoted 4 lines
We used to disable bh once, while reading the table. This sucked.
In case machine is handling trafic, we now are preemptable by softirqs while reading
/proc/net/tcp. Thats a good thing.
Quoted 8 lines
Quoted 6 lines
Quoted 5 lines
Yes, that would account for it, good spotting.
Quoted 1 line
By the way, I find Andi patch usefull. Same thing could be done for
/proc/net/rt_cache.Fair enough. If you can cook up a quick
rt_cachepatch I'll toss it and Andi's patch into net-next so it can cook for a while.Well, first patch I would like to submit is about letting netlink being able to be faster than
/proc/net/tcpagain :)Andi just posted a very similar patch :)
No problem :)
Here is the patch for /proc/net/rt_cache (legacy /proc and netlink interface)
Thank you
[PATCH] ip: speedup /proc/net/rt_cache handling
When scanning route cache hash table, we can avoid taking locks for empty buckets. Both /proc/net/rt_cache and NETLINK RTM_GETROUTE interface are taken into account.
net/ipv4/route.c +10 -4
@@ -282,6 +282,8 @@ static struct rtable *rt_cache_get_first(struct seq_file *seq)struct rtable *r =NULL ;for (st->bucket = rt_hash_mask; st->bucket >=0 ; --st->bucket) { +if (!rt_hash_table[st->bucket].chain) +continue ;rcu_read_lock_bh (); r =rcu_dereference (rt_hash_table[st->bucket].chain);while (r) {
@@ -299,11 +301,14 @@ static struct rtable *__rt_cache_get_next(struct seq_file *seq, struct rtable *r) {struct rt_cache_iter_state *st = seq->private; + r = r->u.dst.rt_next;while (!r) {rcu_read_unlock_bh (); -if (--st->bucket <0 ) -break ; +do { +if (--st->bucket <0 ) +return NULL ; + }while (!rt_hash_table[st->bucket].chain);rcu_read_lock_bh (); r = rt_hash_table[st->bucket].chain; }
@@ -2840,7 +2845,9 @@ int ip_rt_dump(struct sk_buff *skb, struct netlink_callback *cb)if (s_h <0 ) s_h =0 ; s_idx = idx = cb->args[1 ]; -for (h = s_h; h <= rt_hash_mask; h++) { +for (h = s_h; h <= rt_hash_mask; h++, s_idx =0 ) { +if (!rt_hash_table[h].chain) +continue ;rcu_read_lock_bh ();for (rt =rcu_dereference (rt_hash_table[h].chain), idx =0 ; rt; rt =rcu_dereference (rt->u.dst.rt_next), idx++) {
@@ -2859,7 +2866,6 @@ int ip_rt_dump(struct sk_buff *skb, struct netlink_callback *cb)dst_release (xchg (&skb->dst,NULL )); }rcu_read_unlock_bh (); - s_idx =0 ; } done:
Quoted 2 lines
When scanning route cache hash table, we can avoid taking locks for empty buckets.
I'm not sure it's worth it in this case. A rcu_read_lock() is a nop (on non preemptible kernel) to very cheap (non atomic increment/decrement in cached task_struct)
If you really wanted to make it faster I think a better strategy would be to not take it every bucket, but maybe only every 100th or so. That would still keep preempt off times reasonably low, but even help when the table is filled. But not sure it would be even measurable, really it should be quite cheap.
-Andi
David Miller
maintainerFrom: Andi Kleen <[email protected]>
Date: Thu, 28 Aug 2008 09:45:36 +0200
Quoted 6 lines
Quoted 2 lines
When scanning route cache hash table, we can avoid taking locks for empty buckets.
I'm not sure it's worth it in this case. A
rcu_read_lock()is a nop (on non preemptible kernel) to very cheap (non atomic increment/decrement in cachedtask_struct)
It's not one, it's at least two such increments, plus function calls, state checks, etc. since this is rcu_read_lock_bh().
Quoted 10 lines · David Miller
From: Andi Kleen <[email protected]>
Date: Thu, 28 Aug 2008 09:45:36 +0200Quoted 3 lines
Quoted 1 line
When scanning route cache hash table, we can avoid taking locks for empty buckets.
I'm not sure it's worth it in this case. A
rcu_read_lock()is a nop
(on non preemptible kernel) to very cheap (non atomic increment/decrement in cachedtask_struct)It's not one, it's at least two such increments, plus function calls, state checks, etc. since this is
rcu_read_lock_bh().
I'm very happy to see some progress on this and this leading to even more optimalizations elsewhere,
Thanks guys!
Regards,
Hans
p.s.
Can I please be removed from the CC, thanks!
David Miller
maintainerFrom: Hans de Goede <[email protected]>
Date: Thu, 28 Aug 2008 10:12:13 +0200
Quoted 1 line
Can I please be removed from the CC, thanks!
So let me get this straight.
Just the other day you threatened to go and scream regression bloody murder on lkml about this issue.
And now you don't even want to follow the discussions about us fixing the problem.
Some people can't be pleased...
Quoted 3 lines · Andi Kleen
On a 2GB Core2 system here I see a time cat
/proc/net/tcp>/dev/nullconstently dropping from 0.44s to 0.4-0.8s system time with this change. This is with mostly empty hash tables.
Umm, 0.4 to 0.8 seconds is on average _slower_ than 0.44 seconds. Did you mean .04 to .08?
Quoted 7 lines · Trent Piepho
Quoted 3 lines · Andi Kleen
On a 2GB Core2 system here I see a time cat
/proc/net/tcp>/dev/nullconstently dropping from 0.44s to 0.4-0.8s system time with this change. This is with mostly empty hash tables.Umm, 0.4 to 0.8 seconds is on average _slower_ than 0.44 seconds. Did you mean .04 to .08?
Yes noticed that too -- i think it must have been .04-.08 and the zeros got lost somewhere. I remember that it was significantly faster. It's really a benchmark how fast an read lock aquire/release is, but even on the best systems it's quite slow compared to lockless code.
-Andi
Signature · 1 line
[email protected]
Quoted 8 lines
Quoted 3 lines
Umm, 0.4 to 0.8 seconds is on average _slower_ than 0.44 seconds. Did you mean .04 to .08?
Yes noticed that too -- i think it must have been .04-.08 and the zeros got lost somewhere. I remember that it was significantly faster. It's really a benchmark how fast an read lock aquire/release is, but even on the best systems it's quite slow compared to lockless code.
FWIW I redid the benchmarks now and it's 0.046s (without) to 0.005s (with patch) on a different 2GB Core2 system with nearly empty hash table.
-Andi
Signature · 1 line
[email protected]