ring_buffer: updates for linux-tip
Subsystems (4)
Steven Rostedt
maintainercover ring_buffer: updates for linux-tip
The first patch is just a lockdep clean up of the ring buffer.
The next patch is a new locking design. It is not lockless (yet) but the locking is a bit cleaner than the original. The basic idea is that the reader now has its own page to read from that is not in the ring buffer. When the reader (a consumer) finishes a page, it then grabs a lock to pull out a new page from the ring buffer and replace it with the one that it just finished reading.
The writer only locks when it needs to go to the next page. We still disable interrupts, but it would not be too hard to allow interrupts to take place on writes. But I will leave that for version 2 (or 1.2)
The iterator (non consuming read) still expects the tracer to be disabled when iterating the loop (no locks taken).
The ring_buffer_{un}lock is now no longer around and not needed.
I ran this with lockdep on and it ran fine.
I did lots of testing of trace_pipe (consuming reader) while running the function trace. The function trace with out a doubt will stress the consumer/producer reads since the producer is much faster than the consumer.
Tomorrow, I'll change the buffer_page from being a page_frame to something that is allocated separately.
-- Steve
Steven Rostedt
maintainerPATCH 1/2 ring_buffer: remove raw from local_irq_save
The raw_local_irq_save causes issues with lockdep. We don't need it so replace them with local_irq_save.
--- kernel/trace/ring_buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
kernel/trace/ring_buffer.c +4 -4
@@ -847,7 +847,7 @@ ring_buffer_lock_reserve(struct ring_bufif (atomic_read (&buffer->record_disabled))return NULL ; -raw_local_irq_save (*flags); +local_irq_save (*flags); cpu =raw_smp_processor_id ();if (!cpu_isset (cpu, buffer->cpumask))
@@ -909,7 +909,7 @@ int ring_buffer_unlock_commit(struct rinrb_commit (cpu_buffer, event);spin_unlock (&cpu_buffer->lock); -raw_local_irq_restore (flags); +local_irq_restore (flags);return 0 ; }
@@ -1583,13 +1583,13 @@ void ring_buffer_reset_cpu(struct ring_bif (!cpu_isset (cpu, buffer->cpumask))return ; -raw_local_irq_save (flags); +local_irq_save (flags);spin_lock (&cpu_buffer->lock);rb_reset_cpu (cpu_buffer);spin_unlock (&cpu_buffer->lock); -raw_local_irq_restore (flags); +local_irq_restore (flags); }/**
Ingo Molnar
AppliedRe: [PATCH 1/2] ring_buffer: remove raw from local_irq_save
Quoted 7 lines · Steven Rostedt
The
raw_local_irq_savecauses issues with lockdep. We don't need it so replace them withlocal_irq_save.Signed-off-by Steven Rostedt <[email protected]>--- kernel/trace/ring_buffer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
applied to tip/tracing/ring-buffer, thanks Steve!
Ingo
Re: [PATCH 1/2] ring_buffer: remove raw from local_irq_save
Quoted 5 lines · Steven Rostedt
Quoted 3 lines
The
raw_local_irq_savecauses issues with lockdep. We don't need it so replace them withlocal_irq_save.
the same warning still occurs with your latest fixes - see the log below. Config attached. You should be able to reproduce it, it happens on every bootup with this config.
Ingo
[ 0.159313] initcall relay_init+0x0/0x14 returned 0 after 0 msecs [ 0.159345] calling tracer_alloc_buffers+0x0/0x1d9 @ 1 [ 0.160001] ------------[ cut here ]------------ [ 0.160001] WARNING: at kernel/lockdep.c:2880 check_flags+0x63/0x179() [ 0.160001] Modules linked in: [ 0.160001] Pid: 1, comm: swapper Not tainted 2.6.27-rc8-tip #37737 [ 0.160001] Call Trace: [ 0.160001] [<ffffffff80241faf>] warn_on_slowpath+0x5d/0x84 [ 0.160001] [<ffffffff80264776>] ? __lock_acquire+0xba4/0xbc5 [ 0.160001] [<ffffffff80261479>] ? __raw_spin_is_locked+0x17/0x1a [ 0.160001] [<ffffffff802617d8>] ? graph_unlock+0x79/0x7e [ 0.160001] [<ffffffff802632a2>] ? mark_lock+0x1c/0x361 [ 0.160001] [<ffffffff8026363d>] ? mark_held_locks+0x56/0x71 [ 0.160001] [<ffffffff8028c443>] ? time_hardirqs_off+0x12/0x26 [ 0.160001] [<ffffffff802622f4>] ? trace_hardirqs_off_caller+0x21/0xc2 [ 0.160001] [<ffffffff802615cf>] check_flags+0x63/0x179 [ 0.160001] [<ffffffff802654a4>] lock_acquire+0x51/0xc2 [ 0.160001] [<ffffffff80756775>] _spin_lock+0x36/0x65 [ 0.160001] [<ffffffff80287eec>] ? ring_buffer_reset_cpu+0x47/0x6b [ 0.160001] [<ffffffff80287eec>] ring_buffer_reset_cpu+0x47/0x6b [ 0.160001] [<ffffffff8028ac54>] tracing_reset+0xc/0xe [ 0.160001] [<ffffffff8028d966>] boot_trace_init+0x2a/0x44 [ 0.160001] [<ffffffff80a9c0fd>] tracer_alloc_buffers+0x19b/0x1d9 [ 0.160001] [<ffffffff80a9bf62>] ? tracer_alloc_buffers+0x0/0x1d9 [ 0.160001] [<ffffffff8020a062>] do_one_initcall+0x62/0x165 [ 0.160001] [<ffffffff80a935a0>] ? setup_boot_APIC_clock+0x397/0x3af [ 0.160001] [<ffffffff80226867>] ? get_apic_id+0x0/0x13 [ 0.160001] [<ffffffff80226867>] ? get_apic_id+0x0/0x13 [ 0.160001] [<ffffffff80a9bf62>] ? tracer_alloc_buffers+0x0/0x1d9 [ 0.160001] [<ffffffff80a898eb>] kernel_init+0x69/0x21f [ 0.160001] [<ffffffff80212a59>] child_rip+0xa/0x11 [ 0.160001] [<ffffffff80211be3>] ? restore_args+0x0/0x30 [ 0.160001] [<ffffffff802265ac>] ? __ticket_spin_unlock+0x0/0x8 [ 0.160001] [<ffffffff80a89882>] ? kernel_init+0x0/0x21f [ 0.160001] [<ffffffff80212a4f>] ? child_rip+0x0/0x11 [ 0.160001] ---[ end trace a7919e7f17c0a725 ]--- [ 0.160001] possible reason: unannotated irqs-off. [ 0.160001] irq event stamp: 3743 [ 0.160001] hardirqs last enabled at (3743): [<ffffffff802637c2>] trace_hardirqs_on+0xd/0xf [ 0.160001] hardirqs last disabled at (3742): [<ffffffff802623a2>] trace_hardirqs_off+0xd/0xf [ 0.160001] softirqs last enabled at (798): [<ffffffff8024731b>] __do_softirq+0xe0/0xed [ 0.160001] softirqs last disabled at (791): [<ffffffff80212f4c>] call_softirq+0x1c/0x28 [ 0.160011] initcall tracer_alloc_buffers+0x0/0x1d9 returned 0 after 3 msecs [ 0.160181] lockdep: fixing up alternatives. [ 0.160249] Booting processor 1 APIC 0x1 ip 0x6000 [ 0.004000] Initializing CPU#1
#
# Automatically generated make config: don't edit # Linux kernel version: 2.6.27-rc8
# Wed Oct 1 07:59:55 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=yCONFIG_GENERIC_GPIO=y 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_BOOTPARAM_SUPPORT_NOT_WANTED=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# General setup
#CONFIG_EXPERIMENTAL=yCONFIG_BROKEN_BOOT_ALLOWED4=yCONFIG_BROKEN_BOOT_ALLOWED3=y
# CONFIG_BROKEN_BOOT_ALLOWED2 is not setCONFIG_BROKEN_BOOT_EUROPE=yCONFIG_BROKEN_BOOT_TITAN=yCONFIG_LOCK_KERNEL=yCONFIG_INIT_ENV_ARG_LIMIT=32CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
# CONFIG_SWAP is not setCONFIG_SYSVIPC=yCONFIG_SYSVIPC_SYSCTL=yCONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not setCONFIG_TASKSTATS=y
# CONFIG_TASK_DELAY_ACCT is not set
# CONFIG_TASK_XACCT is not setCONFIG_AUDIT=yCONFIG_AUDITSYSCALL=yCONFIG_AUDIT_TREE=yCONFIG_IKCONFIG=mCONFIG_IKCONFIG_PROC=yCONFIG_LOG_BUF_SHIFT=21
# CONFIG_CGROUPS is not setCONFIG_HAVE_UNSTABLE_SCHED_CLOCK=yCONFIG_GROUP_SCHED=yCONFIG_FAIR_GROUP_SCHED=yCONFIG_RT_GROUP_SCHED=yCONFIG_USER_SCHED=y
# CONFIG_CGROUP_SCHED is not setCONFIG_SYSFS_DEPRECATED=y
# CONFIG_SYSFS_DEPRECATED_V2 is not setCONFIG_RELAY=yCONFIG_NAMESPACES=yCONFIG_UTS_NS=y
# CONFIG_IPC_NS is not setCONFIG_USER_NS=yCONFIG_PID_NS=y
# CONFIG_BLK_DEV_INITRD is not setCONFIG_CC_OPTIMIZE_FOR_SIZE=yCONFIG_FASTBOOT=yCONFIG_SYSCTL=yCONFIG_EMBEDDED=yCONFIG_UID16=yCONFIG_SYSCTL_SYSCALL=yCONFIG_KALLSYMS=yCONFIG_KALLSYMS_ALL=yCONFIG_KALLSYMS_EXTRA_PASS=yCONFIG_HOTPLUG=yCONFIG_PRINTK=yCONFIG_BUG=yCONFIG_ELF_CORE=y
# CONFIG_PCSPKR_PLATFORM is not set
# CONFIG_COMPAT_BRK is not setCONFIG_BASE_FULL=yCONFIG_FUTEX=yCONFIG_ANON_INODES=y
# CONFIG_EPOLL is not setCONFIG_SIGNALFD=yCONFIG_TIMERFD=yCONFIG_EVENTFD=yCONFIG_SHMEM=y
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_SLUB_DEBUG is not set
# CONFIG_SLAB is not setCONFIG_SLUB=y
# CONFIG_SLOB is not setCONFIG_PROFILING=yCONFIG_TRACEPOINTS=yCONFIG_MARKERS=y
# CONFIG_OPROFILE is not setCONFIG_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_HAVE_DYN_ARRAY=yCONFIG_PROC_PAGE_MONITOR=y
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not setCONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not setCONFIG_BASE_SMALL=0CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not setCONFIG_MODULE_UNLOAD=yCONFIG_MODULE_FORCE_UNLOAD=yCONFIG_MODVERSIONS=y
# CONFIG_MODULE_SRCVERSION_ALL is not setCONFIG_KMOD=yCONFIG_STOP_MACHINE=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=mCONFIG_IOSCHED_DEADLINE=yCONFIG_IOSCHED_CFQ=m
# CONFIG_DEFAULT_AS is not setCONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not setCONFIG_DEFAULT_IOSCHED="deadline"CONFIG_CLASSIC_RCU=y
#
# Processor type and features
#CONFIG_TICK_ONESHOT=yCONFIG_NO_HZ=yCONFIG_HIGH_RES_TIMERS=yCONFIG_GENERIC_CLOCKEVENTS_BUILD=yCONFIG_SMP_SUPPORT=yCONFIG_HAVE_SPARSE_IRQ=yCONFIG_X86_FIND_SMP_CONFIG=yCONFIG_X86_MPPARSE=yCONFIG_UP_WANTED_1=yCONFIG_UP_WANTED_2=yCONFIG_UP_WANTED=yCONFIG_SMP=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_XEN_DEBUG_FS=yCONFIG_KVM_CLOCK=yCONFIG_KVM_GUEST=yCONFIG_PARAVIRT=yCONFIG_PARAVIRT_CLOCK=yCONFIG_PARAVIRT_DEBUG=y
# 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_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=y
# CONFIG_PROCESSOR_SELECT is not setCONFIG_CPU_SUP_INTEL=yCONFIG_CPU_SUP_AMD=yCONFIG_CPU_SUP_CENTAUR_64=y
# CONFIG_X86_DS is not setCONFIG_HPET_TIMER=yCONFIG_HPET_EMULATE_RTC=yCONFIG_DMI=yCONFIG_GART_IOMMU=y
# CONFIG_CALGARY_IOMMU is not setCONFIG_SWIOTLB=yCONFIG_IOMMU_HELPER=y
# CONFIG_MAXSMP is not setCONFIG_NR_CPUS=8
# CONFIG_SCHED_SMT is not set
# CONFIG_SCHED_MC is not setCONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not setCONFIG_X86_LOCAL_APIC=yCONFIG_X86_IO_APIC=yCONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=yCONFIG_X86_MCE=yCONFIG_X86_MCE_INTEL=y
# CONFIG_X86_MCE_AMD is not setCONFIG_I8K=m
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not setCONFIG_X86_CPUID=yCONFIG_ARCH_PHYS_ADDR_T_64BIT=y
# CONFIG_NUMA is not setCONFIG_ARCH_SPARSEMEM_DEFAULT=yCONFIG_ARCH_SPARSEMEM_ENABLE=yCONFIG_ARCH_SELECT_MEMORY_MODEL=yCONFIG_ARCH_MEMORY_PROBE=yCONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not setCONFIG_SPARSEMEM_MANUAL=yCONFIG_SPARSEMEM=yCONFIG_HAVE_MEMORY_PRESENT=y
# CONFIG_SPARSEMEM_STATIC is not setCONFIG_SPARSEMEM_EXTREME=yCONFIG_SPARSEMEM_VMEMMAP_ENABLE=yCONFIG_SPARSEMEM_VMEMMAP=yCONFIG_MEMORY_HOTPLUG=yCONFIG_MEMORY_HOTPLUG_SPARSE=yCONFIG_PAGEFLAGS_EXTENDED=yCONFIG_SPLIT_PTLOCK_CPUS=4CONFIG_RESOURCES_64BIT=yCONFIG_PHYS_ADDR_T_64BIT=yCONFIG_ZONE_DMA_FLAG=1CONFIG_BOUNCE=yCONFIG_VIRT_TO_BUS=yCONFIG_MMU_NOTIFIER=y
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not setCONFIG_X86_RESERVE_LOW_64K=y
# CONFIG_MTRR is not setCONFIG_SECCOMP=yCONFIG_CC_STACKPROTECTOR_ALL=yCONFIG_CC_STACKPROTECTOR=y
# CONFIG_HZ_100 is not setCONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not setCONFIG_HZ=250CONFIG_SCHED_HRTICK=yCONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not setCONFIG_PHYSICAL_START=0x200000
# CONFIG_RELOCATABLE is not setCONFIG_PHYSICAL_ALIGN=0x200000CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not setCONFIG_CMDLINE_BOOL=yCONFIG_CMDLINE=""CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
#
# Power management options
#CONFIG_PM=y
# CONFIG_PM_DEBUG is not setCONFIG_PM_SLEEP_SMP=yCONFIG_PM_SLEEP=yCONFIG_SUSPEND=yCONFIG_SUSPEND_FREEZER=y
# CONFIG_ACPI is not set
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not setCONFIG_CPU_IDLE=yCONFIG_CPU_IDLE_GOV_LADDER=yCONFIG_CPU_IDLE_GOV_MENU=y
#
# Bus options (PCI etc.)
#CONFIG_PCI=yCONFIG_PCI_DIRECT=yCONFIG_PCI_DOMAINS=yCONFIG_PCIEPORTBUS=yCONFIG_PCIEAER=yCONFIG_PCIEASPM=y
# CONFIG_PCIEASPM_DEBUG is not setCONFIG_ARCH_SUPPORTS_MSI=yCONFIG_PCI_MSI=y
# CONFIG_PCI_LEGACY is not set
# CONFIG_PCI_DEBUG is not setCONFIG_HT_IRQ=yCONFIG_ISA_DMA_API=yCONFIG_K8_NB=yCONFIG_PCCARD=mCONFIG_PCMCIA_DEBUG=y
# CONFIG_PCMCIA is not setCONFIG_CARDBUS=y
#
# PC-card bridges
#CONFIG_YENTA=mCONFIG_YENTA_O2=y
# CONFIG_YENTA_RICOH is not set
# CONFIG_YENTA_TI is not set
# CONFIG_YENTA_TOSHIBA is not setCONFIG_PCCARD_NONSTATIC=m
# CONFIG_HOTPLUG_PCI is not set
#
# Executable file formats / Emulations
#CONFIG_BINFMT_ELF=yCONFIG_COMPAT_BINFMT_ELF=yCONFIG_BINFMT_MISC=yCONFIG_IA32_EMULATION=yCONFIG_IA32_AOUT=yCONFIG_COMPAT=yCONFIG_COMPAT_FOR_U64_ALIGNMENT=yCONFIG_SYSVIPC_COMPAT=yCONFIG_NET=y
#
# Networking options
#CONFIG_PACKET=yCONFIG_PACKET_MMAP=yCONFIG_UNIX=yCONFIG_XFRM=y
# CONFIG_XFRM_USER is not setCONFIG_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=yCONFIG_IP_PNP=yCONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not setCONFIG_IP_PNP_RARP=yCONFIG_NET_IPIP=m
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not setCONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not setCONFIG_INET_ESP=m
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not setCONFIG_INET_TUNNEL=mCONFIG_INET_XFRM_MODE_TRANSPORT=yCONFIG_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=yCONFIG_TCP_CONG_CUBIC=mCONFIG_TCP_CONG_WESTWOOD=m
# CONFIG_TCP_CONG_HTCP is not setCONFIG_TCP_CONG_HSTCP=mCONFIG_TCP_CONG_HYBLA=m
# CONFIG_TCP_CONG_VEGAS is not set
# CONFIG_TCP_CONG_SCALABLE is not set
# CONFIG_TCP_CONG_LP is not setCONFIG_TCP_CONG_VENO=y
# CONFIG_TCP_CONG_YEAH is not setCONFIG_TCP_CONG_ILLINOIS=mCONFIG_DEFAULT_BIC=y
# CONFIG_DEFAULT_CUBIC is not set
# 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="bic"
# CONFIG_TCP_MD5SIG is not setCONFIG_IP_VS=mCONFIG_IP_VS_DEBUG=yCONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#
# CONFIG_IP_VS_PROTO_TCP is not setCONFIG_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=m
# CONFIG_IP_VS_SED is not setCONFIG_IP_VS_NQ=m
#
# IPVS application helper
#CONFIG_IPV6=m
# CONFIG_IPV6_PRIVACY is not set CONFIG_IPV6_ROUTER_PREF=y
# CONFIG_IPV6_ROUTE_INFO is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=mCONFIG_INET6_ESP=mCONFIG_INET6_IPCOMP=m
# CONFIG_IPV6_MIP6 is not set CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m
# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set CONFIG_IPV6_SIT=m CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y
# CONFIG_IPV6_SUBTREES is not set CONFIG_IPV6_MROUTE=yCONFIG_IPV6_PIMSM_V2=yCONFIG_NETLABEL=y
# CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=yCONFIG_NETFILTER_DEBUG=y CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#CONFIG_NETFILTER_NETLINK=yCONFIG_NETFILTER_NETLINK_QUEUE=y
# CONFIG_NETFILTER_NETLINK_LOG is not set
# CONFIG_NF_CONNTRACK is not setCONFIG_NETFILTER_XTABLES=mCONFIG_NETFILTER_XT_TARGET_CLASSIFY=mCONFIG_NETFILTER_XT_TARGET_DSCP=mCONFIG_NETFILTER_XT_TARGET_MARK=mCONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
# CONFIG_NETFILTER_XT_TARGET_NFLOG is not setCONFIG_NETFILTER_XT_TARGET_RATEEST=mCONFIG_NETFILTER_XT_TARGET_TRACE=m
# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not setCONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not setCONFIG_NETFILTER_XT_MATCH_DCCP=mCONFIG_NETFILTER_XT_MATCH_DSCP=mCONFIG_NETFILTER_XT_MATCH_ESP=mCONFIG_NETFILTER_XT_MATCH_IPRANGE=m
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not setCONFIG_NETFILTER_XT_MATCH_LIMIT=m
# CONFIG_NETFILTER_XT_MATCH_MAC is not setCONFIG_NETFILTER_XT_MATCH_MARK=mCONFIG_NETFILTER_XT_MATCH_OWNER=mCONFIG_NETFILTER_XT_MATCH_POLICY=mCONFIG_NETFILTER_XT_MATCH_MULTIPORT=mCONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not setCONFIG_NETFILTER_XT_MATCH_QUOTA=mCONFIG_NETFILTER_XT_MATCH_RATEEST=m
# CONFIG_NETFILTER_XT_MATCH_REALM is not setCONFIG_NETFILTER_XT_MATCH_SCTP=mCONFIG_NETFILTER_XT_MATCH_STATISTIC=mCONFIG_NETFILTER_XT_MATCH_STRING=mCONFIG_NETFILTER_XT_MATCH_TCPMSS=m
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not setCONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
#
# IP: Netfilter Configuration
#CONFIG_IP_NF_QUEUE=yCONFIG_IP_NF_IPTABLES=mCONFIG_IP_NF_MATCH_RECENT=m
# CONFIG_IP_NF_MATCH_ECN is not set
# CONFIG_IP_NF_MATCH_AH is not setCONFIG_IP_NF_MATCH_TTL=mCONFIG_IP_NF_MATCH_ADDRTYPE=m
# CONFIG_IP_NF_FILTER is not setCONFIG_IP_NF_TARGET_LOG=mCONFIG_IP_NF_TARGET_ULOG=mCONFIG_IP_NF_MANGLE=m
# CONFIG_IP_NF_TARGET_ECN is not set
# CONFIG_IP_NF_TARGET_TTL is not set
# CONFIG_IP_NF_RAW is not setCONFIG_IP_NF_SECURITY=mCONFIG_IP_NF_ARPTABLES=mCONFIG_IP_NF_ARPFILTER=m
# CONFIG_IP_NF_ARP_MANGLE is not set
#
# IPv6: Netfilter Configuration
#CONFIG_IP6_NF_QUEUE=mCONFIG_IP6_NF_IPTABLES=m
# CONFIG_IP6_NF_MATCH_RT is not set
# CONFIG_IP6_NF_MATCH_OPTS is not setCONFIG_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=m
# CONFIG_IP6_NF_FILTER is not set
# CONFIG_IP6_NF_MANGLE is not setCONFIG_IP6_NF_RAW=mCONFIG_IP6_NF_SECURITY=m
#
# Bridge: Netfilter Configuration
#CONFIG_BRIDGE_NF_EBTABLES=mCONFIG_BRIDGE_EBT_BROUTE=mCONFIG_BRIDGE_EBT_T_FILTER=m
# CONFIG_BRIDGE_EBT_T_NAT is not setCONFIG_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=m
# CONFIG_BRIDGE_EBT_PKTTYPE is not setCONFIG_BRIDGE_EBT_STP=mCONFIG_BRIDGE_EBT_VLAN=mCONFIG_BRIDGE_EBT_ARPREPLY=m
# CONFIG_BRIDGE_EBT_DNAT is not set
# CONFIG_BRIDGE_EBT_MARK_T is not setCONFIG_BRIDGE_EBT_REDIRECT=mCONFIG_BRIDGE_EBT_SNAT=mCONFIG_BRIDGE_EBT_LOG=mCONFIG_BRIDGE_EBT_ULOG=m
# CONFIG_BRIDGE_EBT_NFLOG is not setCONFIG_IP_DCCP=yCONFIG_INET_DCCP_DIAG=mCONFIG_IP_DCCP_ACKVEC=y
#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#CONFIG_IP_DCCP_CCID2=y
# CONFIG_IP_DCCP_CCID2_DEBUG is not setCONFIG_IP_DCCP_CCID3=mCONFIG_IP_DCCP_CCID3_DEBUG=yCONFIG_IP_DCCP_CCID3_RTO=100CONFIG_IP_DCCP_TFRC_LIB=mCONFIG_IP_DCCP_TFRC_DEBUG=y
#
# DCCP Kernel Hacking
#CONFIG_IP_DCCP_DEBUG=y
# CONFIG_NET_DCCPPROBE is not setCONFIG_IP_SCTP=m
# CONFIG_SCTP_DBG_MSG is not setCONFIG_SCTP_DBG_OBJCNT=y
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not setCONFIG_SCTP_HMAC_MD5=yCONFIG_TIPC=mCONFIG_TIPC_ADVANCED=yCONFIG_TIPC_ZONES=3CONFIG_TIPC_CLUSTERS=1CONFIG_TIPC_NODES=255CONFIG_TIPC_SLAVE_NODES=0CONFIG_TIPC_PORTS=8191CONFIG_TIPC_LOG=0CONFIG_TIPC_DEBUG=yCONFIG_ATM=yCONFIG_ATM_CLIP=mCONFIG_ATM_CLIP_NO_ICMP=yCONFIG_ATM_LANE=mCONFIG_ATM_MPOA=y
# CONFIG_ATM_BR2684 is not setCONFIG_STP=mCONFIG_BRIDGE=mCONFIG_VLAN_8021Q=y
# CONFIG_VLAN_8021Q_GVRP is not set
# CONFIG_DECNET is not setCONFIG_LLC=y
# CONFIG_LLC2 is not setCONFIG_IPX=yCONFIG_IPX_INTERN=yCONFIG_ATALK=m
# CONFIG_DEV_APPLETALK is not setCONFIG_X25=yCONFIG_LAPB=y
# CONFIG_ECONET is not setCONFIG_WAN_ROUTER=mCONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#
# CONFIG_NET_SCH_CBQ is not setCONFIG_NET_SCH_HTB=yCONFIG_NET_SCH_HFSC=mCONFIG_NET_SCH_ATM=mCONFIG_NET_SCH_PRIO=yCONFIG_NET_SCH_RED=mCONFIG_NET_SCH_SFQ=mCONFIG_NET_SCH_TEQL=m
# CONFIG_NET_SCH_TBF is not set
# CONFIG_NET_SCH_GRED is not set
# CONFIG_NET_SCH_DSMARK is not setCONFIG_NET_SCH_NETEM=yCONFIG_NET_SCH_INGRESS=y
#
# Classification
#CONFIG_NET_CLS=yCONFIG_NET_CLS_BASIC=yCONFIG_NET_CLS_TCINDEX=mCONFIG_NET_CLS_ROUTE4=yCONFIG_NET_CLS_ROUTE=yCONFIG_NET_CLS_FW=mCONFIG_NET_CLS_U32=yCONFIG_CLS_U32_PERF=yCONFIG_CLS_U32_MARK=yCONFIG_NET_CLS_RSVP=yCONFIG_NET_CLS_RSVP6=yCONFIG_NET_CLS_FLOW=y
# CONFIG_NET_EMATCH is not setCONFIG_NET_CLS_ACT=yCONFIG_NET_ACT_POLICE=yCONFIG_NET_ACT_GACT=yCONFIG_GACT_PROB=y
# CONFIG_NET_ACT_MIRRED is not setCONFIG_NET_ACT_IPT=mCONFIG_NET_ACT_NAT=y
# CONFIG_NET_ACT_PEDIT is not setCONFIG_NET_ACT_SIMP=yCONFIG_NET_CLS_IND=yCONFIG_NET_SCH_FIFO=y
#
# Network testing
#
# CONFIG_NET_PKTGEN is not setCONFIG_NET_TCPPROBE=m
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not setCONFIG_IRDA=y
#
# IrDA protocols
#CONFIG_IRLAN=yCONFIG_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=y
#
# Dongle support
#CONFIG_DONGLE=yCONFIG_ESI_DONGLE=mCONFIG_ACTISYS_DONGLE=mCONFIG_TEKRAM_DONGLE=y
# CONFIG_TOIM3232_DONGLE is not set
# CONFIG_LITELINK_DONGLE is not setCONFIG_MA600_DONGLE=mCONFIG_GIRBIL_DONGLE=yCONFIG_MCP2120_DONGLE=y
# CONFIG_OLD_BELKIN_DONGLE is not setCONFIG_ACT200L_DONGLE=yCONFIG_KINGSUN_DONGLE=m
# CONFIG_KSDAZZLE_DONGLE is not setCONFIG_KS959_DONGLE=y
#
# FIR device drivers
#CONFIG_USB_IRDA=mCONFIG_SIGMATEL_FIR=mCONFIG_NSC_FIR=m
# CONFIG_WINBOND_FIR is not setCONFIG_SMC_IRCC_FIR=yCONFIG_ALI_FIR=yCONFIG_VLSI_FIR=m
# CONFIG_VIA_FIR is not setCONFIG_MCS_FIR=mCONFIG_BT=mCONFIG_BT_L2CAP=m
# CONFIG_BT_SCO is not set
# CONFIG_BT_RFCOMM is not setCONFIG_BT_BNEP=m
# CONFIG_BT_BNEP_MC_FILTER is not set
# CONFIG_BT_BNEP_PROTO_FILTER is not setCONFIG_BT_CMTP=m
# CONFIG_BT_HIDP is not set
#
# Bluetooth device drivers
#CONFIG_BT_HCIBTUSB=m
# CONFIG_BT_HCIBTSDIO is not setCONFIG_BT_HCIUART=m
# CONFIG_BT_HCIUART_H4 is not set
# CONFIG_BT_HCIUART_BCSP is not setCONFIG_BT_HCIUART_LL=yCONFIG_BT_HCIBCM203X=mCONFIG_BT_HCIBPA10X=mCONFIG_BT_HCIBFUSB=mCONFIG_BT_HCIVHCI=mCONFIG_AF_RXRPC=yCONFIG_AF_RXRPC_DEBUG=yCONFIG_RXKAD=yCONFIG_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 is not set
# CONFIG_MAC80211_RC_DEFAULT_PID is not set CONFIG_MAC80211_RC_DEFAULT="" CONFIG_MAC80211_MESH=y
# CONFIG_MAC80211_LEDS is not set
# CONFIG_MAC80211_DEBUGFS is not set CONFIG_MAC80211_DEBUG_MENU=y
# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set CONFIG_MAC80211_NOINLINE=y CONFIG_MAC80211_VERBOSE_DEBUG=y CONFIG_MAC80211_HT_DEBUG=y
# CONFIG_MAC80211_TKIP_DEBUG is not set CONFIG_MAC80211_IBSS_DEBUG=y
# CONFIG_MAC80211_VERBOSE_PS_DEBUG is not set # CONFIG_MAC80211_VERBOSE_MPL_DEBUG is not set CONFIG_MAC80211_LOWTX_FRAME_DUMP=y CONFIG_MAC80211_VERBOSE_SPECT_MGMT_DEBUG=y CONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not set
# CONFIG_IEEE80211_CRYPT_WEP is not set CONFIG_IEEE80211_CRYPT_CCMP=m CONFIG_IEEE80211_CRYPT_TKIP=m CONFIG_RFKILL=yCONFIG_RFKILL_INPUT=yCONFIG_NET_9P=yCONFIG_NET_9P_VIRTIO=y CONFIG_NET_9P_DEBUG=y
#
# 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=mCONFIG_PARPORT=mCONFIG_PARPORT_PC=mCONFIG_PARPORT_SERIAL=mCONFIG_PARPORT_PC_FIFO=yCONFIG_PARPORT_PC_SUPERIO=y
# CONFIG_PARPORT_GSC is not setCONFIG_PARPORT_AX88796=m
# CONFIG_PARPORT_1284 is not setCONFIG_PARPORT_NOT_PC=yCONFIG_BLK_DEV=yCONFIG_BLK_DEV_FD=mCONFIG_BLK_CPQ_DA=yCONFIG_BLK_CPQ_CISS_DA=m
# CONFIG_CISS_SCSI_TAPE is not set
# CONFIG_BLK_DEV_DAC960 is not setCONFIG_BLK_DEV_UMEM=m
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not setCONFIG_BLK_DEV_NBD=yCONFIG_BLK_DEV_SX8=mCONFIG_BLK_DEV_UB=mCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=4096CONFIG_BLK_DEV_XIP=yCONFIG_CDROM_PKTCDVD=mCONFIG_CDROM_PKTCDVD_BUFFERS=8CONFIG_CDROM_PKTCDVD_WCACHE=yCONFIG_ATA_OVER_ETH=yCONFIG_XEN_BLKDEV_FRONTEND=yCONFIG_VIRTIO_BLK=yCONFIG_BLK_DEV_HD=yCONFIG_MISC_DEVICES=yCONFIG_IBM_ASM=y
# CONFIG_PHANTOM is not setCONFIG_EEPROM_93CX6=mCONFIG_SGI_IOC4=yCONFIG_TIFM_CORE=mCONFIG_TIFM_7XX1=mCONFIG_ENCLOSURE_SERVICES=mCONFIG_SGI_XP=y
# CONFIG_HP_ILO is not setCONFIG_SGI_GRU=y
# CONFIG_SGI_GRU_DEBUG is not setCONFIG_HAVE_IDE=y
#
# SCSI device support
#CONFIG_RAID_ATTRS=yCONFIG_SCSI=yCONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not setCONFIG_SCSI_NETLINK=yCONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not setCONFIG_CHR_DEV_OSST=yCONFIG_BLK_DEV_SR=mCONFIG_BLK_DEV_SR_VENDOR=y
# CONFIG_CHR_DEV_SG is not setCONFIG_CHR_DEV_SCH=yCONFIG_SCSI_ENCLOSURE=m
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs #
# CONFIG_SCSI_MULTI_LUN is not set CONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=yCONFIG_SCSI_SCAN_ASYNC=yCONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#CONFIG_SCSI_SPI_ATTRS=yCONFIG_SCSI_FC_ATTRS=yCONFIG_SCSI_ISCSI_ATTRS=m
# CONFIG_SCSI_SAS_ATTRS is not setCONFIG_SCSI_SRP_ATTRS=yCONFIG_SCSI_LOWLEVEL=yCONFIG_ISCSI_TCP=mCONFIG_BLK_DEV_3W_XXXX_RAID=m
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not setCONFIG_SCSI_AIC7XXX=yCONFIG_AIC7XXX_CMDS_PER_DEVICE=32CONFIG_AIC7XXX_RESET_DELAY_MS=5000CONFIG_AIC7XXX_DEBUG_ENABLE=yCONFIG_AIC7XXX_DEBUG_MASK=0CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
# CONFIG_SCSI_AIC7XXX_OLD is not setCONFIG_SCSI_AIC79XX=mCONFIG_AIC79XX_CMDS_PER_DEVICE=32CONFIG_AIC79XX_RESET_DELAY_MS=5000CONFIG_AIC79XX_DEBUG_ENABLE=yCONFIG_AIC79XX_DEBUG_MASK=0CONFIG_AIC79XX_REG_PRETTY_PRINT=yCONFIG_SCSI_DPT_I2O=m
# CONFIG_SCSI_ADVANSYS is not setCONFIG_SCSI_ARCMSR=m
# CONFIG_SCSI_ARCMSR_AER is not setCONFIG_MEGARAID_NEWGEN=yCONFIG_MEGARAID_MM=yCONFIG_MEGARAID_MAILBOX=mCONFIG_MEGARAID_LEGACY=m
# CONFIG_MEGARAID_SAS is not setCONFIG_SCSI_HPTIOP=yCONFIG_SCSI_BUSLOGIC=mCONFIG_SCSI_DMX3191D=mCONFIG_SCSI_EATA=mCONFIG_SCSI_EATA_TAGGED_QUEUE=yCONFIG_SCSI_EATA_LINKED_COMMANDS=yCONFIG_SCSI_EATA_MAX_TAGS=16CONFIG_SCSI_FUTURE_DOMAIN=yCONFIG_SCSI_GDTH=yCONFIG_SCSI_IPS=y
# CONFIG_SCSI_INITIO is not setCONFIG_SCSI_INIA100=yCONFIG_SCSI_PPA=m
# CONFIG_SCSI_IMM is not setCONFIG_SCSI_IZIP_EPP16=y
# CONFIG_SCSI_IZIP_SLOW_CTR is not setCONFIG_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=yCONFIG_SCSI_IPR=m
# CONFIG_SCSI_IPR_TRACE is not set
# CONFIG_SCSI_IPR_DUMP is not setCONFIG_SCSI_QLOGIC_1280=mCONFIG_SCSI_QLA_FC=m
# CONFIG_SCSI_QLA_ISCSI is not setCONFIG_SCSI_LPFC=y
CONFIG_SCSI_DC395x=yCONFIG_SCSI_DC390T=y
# CONFIG_SCSI_SRP is not setCONFIG_SCSI_DH=yCONFIG_SCSI_DH_RDAC=m
# CONFIG_SCSI_DH_HP_SW is not set
# CONFIG_SCSI_DH_EMC is not setCONFIG_SCSI_DH_ALUA=mCONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not setCONFIG_SATA_PMP=yCONFIG_SATA_AHCI=yCONFIG_SATA_SIL24=yCONFIG_ATA_SFF=yCONFIG_SATA_SVW=mCONFIG_ATA_PIIX=yCONFIG_SATA_MV=yCONFIG_SATA_NV=yCONFIG_PDC_ADMA=yCONFIG_SATA_QSTOR=mCONFIG_SATA_PROMISE=m
# CONFIG_SATA_SX4 is not setCONFIG_SATA_SIL=y
# CONFIG_SATA_SIS is not setCONFIG_SATA_ULI=mCONFIG_SATA_VIA=y
# CONFIG_SATA_VITESSE is not setCONFIG_SATA_INIC162X=y
# CONFIG_PATA_ALI is not setCONFIG_PATA_AMD=y
# CONFIG_PATA_ARTOP is not setCONFIG_PATA_ATIIXP=yCONFIG_PATA_CMD640_PCI=mCONFIG_PATA_CMD64X=mCONFIG_PATA_CS5520=mCONFIG_PATA_CS5530=mCONFIG_PATA_CYPRESS=mCONFIG_PATA_EFAR=m
# CONFIG_ATA_GENERIC is not setCONFIG_PATA_HPT366=yCONFIG_PATA_HPT37X=yCONFIG_PATA_HPT3X2N=m
# CONFIG_PATA_HPT3X3 is not setCONFIG_PATA_IT821X=mCONFIG_PATA_IT8213=yCONFIG_PATA_JMICRON=yCONFIG_PATA_TRIFLEX=yCONFIG_PATA_MARVELL=m
# CONFIG_PATA_MPIIX is not setCONFIG_PATA_OLDPIIX=yCONFIG_PATA_NETCELL=mCONFIG_PATA_NINJA32=yCONFIG_PATA_NS87410=mCONFIG_PATA_NS87415=mCONFIG_PATA_OPTI=yCONFIG_PATA_OPTIDMA=mCONFIG_PATA_PDC_OLD=m
# CONFIG_PATA_RADISYS is not setCONFIG_PATA_RZ1000=y
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not setCONFIG_PATA_PDC2027X=yCONFIG_PATA_SIL680=yCONFIG_PATA_SIS=mCONFIG_PATA_VIA=y
# CONFIG_PATA_WINBOND is not setCONFIG_PATA_PLATFORM=yCONFIG_PATA_SCH=y
# CONFIG_MD is not setCONFIG_FUSION=yCONFIG_FUSION_SPI=yCONFIG_FUSION_FC=m
# CONFIG_FUSION_SAS is not setCONFIG_FUSION_MAX_SGE=128CONFIG_FUSION_CTL=y
# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
#
#
# Enable only one of the two stacks, unless you know what you are doing #CONFIG_FIREWIRE=yCONFIG_FIREWIRE_OHCI=yCONFIG_FIREWIRE_OHCI_DEBUG=yCONFIG_FIREWIRE_SBP2=yCONFIG_IEEE1394=yCONFIG_IEEE1394_OHCI1394=yCONFIG_IEEE1394_PCILYNX=mCONFIG_IEEE1394_SBP2=yCONFIG_IEEE1394_SBP2_PHYS_DMA=y CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y CONFIG_IEEE1394_ETH1394=mCONFIG_IEEE1394_RAWIO=y
# CONFIG_IEEE1394_VIDEO1394 is not set CONFIG_IEEE1394_DV1394=mCONFIG_IEEE1394_VERBOSEDEBUG=y
# CONFIG_I2O is not setCONFIG_MACINTOSH_DRIVERS=y
# CONFIG_MAC_EMUMOUSEBTN is not setCONFIG_NETDEVICES=yCONFIG_IFB=yCONFIG_DUMMY=mCONFIG_BONDING=y
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not setCONFIG_TUN=yCONFIG_VETH=mCONFIG_ARCNET=mCONFIG_ARCNET_1201=mCONFIG_ARCNET_1051=mCONFIG_ARCNET_RAW=mCONFIG_ARCNET_CAP=m
CONFIG_ARCNET_COM90xx=m
CONFIG_ARCNET_COM90xxIO=mCONFIG_ARCNET_RIM_I=mCONFIG_ARCNET_COM20020=mCONFIG_ARCNET_COM20020_PCI=mCONFIG_PHYLIB=y
#
# MII PHY device drivers
#CONFIG_MARVELL_PHY=mCONFIG_DAVICOM_PHY=yCONFIG_QSEMI_PHY=mCONFIG_LXT_PHY=yCONFIG_CICADA_PHY=mCONFIG_VITESSE_PHY=yCONFIG_SMSC_PHY=yCONFIG_BROADCOM_PHY=y
# CONFIG_ICPLUS_PHY is not setCONFIG_REALTEK_PHY=mCONFIG_FIXED_PHY=yCONFIG_MDIO_BITBANG=mCONFIG_NET_ETHERNET=yCONFIG_MII=yCONFIG_HAPPYMEAL=y
# CONFIG_SUNGEM is not setCONFIG_CASSINI=m
# CONFIG_NET_VENDOR_3COM is not setCONFIG_VORTEX=yCONFIG_NET_TULIP=yCONFIG_DE2104X=m
# CONFIG_TULIP is not set
# CONFIG_DE4X5 is not setCONFIG_WINBOND_840=yCONFIG_DM9102=mCONFIG_ULI526X=mCONFIG_PCMCIA_XIRCOM=mCONFIG_HP100=y
# 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=yCONFIG_AMD8111_ETH=yCONFIG_ADAPTEC_STARFIRE=mCONFIG_B44=mCONFIG_B44_PCI_AUTOSELECT=yCONFIG_B44_PCICORE_AUTOSELECT=yCONFIG_B44_PCI=yCONFIG_FORCEDETH=y
# CONFIG_FORCEDETH_NAPI is not setCONFIG_EEPRO100=yCONFIG_E100=y
# CONFIG_FEALNX is not setCONFIG_NATSEMI=m
# CONFIG_NE2K_PCI is not setCONFIG_8139CP=mCONFIG_8139TOO=y
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not setCONFIG_8139TOO_8129=y
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_R6040 is not set
# CONFIG_SIS900 is not setCONFIG_EPIC100=yCONFIG_SUNDANCE=y
# CONFIG_SUNDANCE_MMIO is not setCONFIG_TLAN=yCONFIG_VIA_RHINE=mCONFIG_VIA_RHINE_MMIO=y
# CONFIG_SC92031 is not setCONFIG_NET_POCKET=yCONFIG_ATP=mCONFIG_DE600=m
# CONFIG_DE620 is not setCONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not setCONFIG_DL2K=mCONFIG_E1000=yCONFIG_E1000_DISABLE_PACKET_SPLIT=yCONFIG_E1000E=yCONFIG_IP1000=y
# CONFIG_IGB is not setCONFIG_NS83820=y
# CONFIG_HAMACHI is not setCONFIG_YELLOWFIN=m
# CONFIG_R8169 is not setCONFIG_SIS190=yCONFIG_SKGE=m
# CONFIG_SKGE_DEBUG is not setCONFIG_SKY2=mCONFIG_SKY2_DEBUG=yCONFIG_VIA_VELOCITY=yCONFIG_TIGON3=y
# CONFIG_BNX2 is not set
# CONFIG_QLA3XXX is not setCONFIG_ATL1=mCONFIG_ATL1E=y
# CONFIG_NETDEV_10000 is not setCONFIG_MLX4_CORE=mCONFIG_TR=yCONFIG_IBMOL=m
# CONFIG_3C359 is not setCONFIG_TMS380TR=yCONFIG_TMSPCI=yCONFIG_ABYSS=y
#
# Wireless LAN
#CONFIG_WLAN_PRE80211=yCONFIG_STRIP=m
# CONFIG_WLAN_80211 is not set
# CONFIG_IWLWIFI_LEDS is not set
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not setCONFIG_USB_KAWETH=mCONFIG_USB_PEGASUS=mCONFIG_USB_RTL8150=mCONFIG_USB_USBNET=mCONFIG_USB_NET_AX8817X=mCONFIG_USB_NET_CDCETHER=mCONFIG_USB_NET_DM9601=m
# CONFIG_USB_NET_GL620A is not set
# CONFIG_USB_NET_NET1080 is not setCONFIG_USB_NET_PLUSB=mCONFIG_USB_NET_MCS7830=mCONFIG_USB_NET_RNDIS_HOST=mCONFIG_USB_NET_CDC_SUBSET=m
# CONFIG_USB_ALI_M5632 is not set
# CONFIG_USB_AN2720 is not setCONFIG_USB_BELKIN=yCONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not setCONFIG_USB_KC2190=yCONFIG_USB_NET_ZAURUS=mCONFIG_USB_HSO=mCONFIG_WAN=y
# CONFIG_LANMEDIA is not setCONFIG_HDLC=mCONFIG_HDLC_RAW=m
# CONFIG_HDLC_RAW_ETH is not set
# CONFIG_HDLC_CISCO is not setCONFIG_HDLC_FR=m
# CONFIG_HDLC_PPP is not set
# CONFIG_HDLC_X25 is not set
# CONFIG_PCI200SYN is not set
# CONFIG_WANXL is not set
# CONFIG_PC300 is not setCONFIG_PC300TOO=m
# CONFIG_FARSYNC is not setCONFIG_DSCC4=mCONFIG_DSCC4_PCISYNC=yCONFIG_DSCC4_PCI_RST=y
# CONFIG_DLCI is not set
# CONFIG_WAN_ROUTER_DRIVERS is not set
# CONFIG_LAPBETHER is not setCONFIG_X25_ASY=yCONFIG_SBNI=mCONFIG_SBNI_MULTILINE=yCONFIG_ATM_DRIVERS=yCONFIG_ATM_DUMMY=mCONFIG_ATM_TCP=yCONFIG_ATM_LANAI=y
# CONFIG_ATM_ENI is not set
# CONFIG_ATM_FIRESTREAM is not setCONFIG_ATM_ZATM=yCONFIG_ATM_ZATM_DEBUG=y
# CONFIG_ATM_IDT77252 is not setCONFIG_ATM_AMBASSADOR=m
# CONFIG_ATM_AMBASSADOR_DEBUG is not setCONFIG_ATM_HORIZON=yCONFIG_ATM_HORIZON_DEBUG=yCONFIG_ATM_IA=mCONFIG_ATM_IA_DEBUG=yCONFIG_ATM_FORE200E=mCONFIG_ATM_FORE200E_USE_TASKLET=yCONFIG_ATM_FORE200E_TX_RETRY=16CONFIG_ATM_FORE200E_DEBUG=0
# CONFIG_ATM_HE is not set
# CONFIG_XEN_NETDEV_FRONTEND is not setCONFIG_FDDI=yCONFIG_DEFXX=mCONFIG_DEFXX_MMIO=y
# CONFIG_SKFP is not setCONFIG_HIPPI=y
# CONFIG_ROADRUNNER is not setCONFIG_PLIP=mCONFIG_PPP=y
# CONFIG_PPP_MULTILINK is not setCONFIG_PPP_FILTER=y
# CONFIG_PPP_ASYNC is not setCONFIG_PPP_SYNC_TTY=y
# CONFIG_PPP_DEFLATE is not setCONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
# CONFIG_PPPOE is not setCONFIG_PPPOATM=mCONFIG_PPPOL2TP=yCONFIG_SLIP=y
# CONFIG_SLIP_COMPRESSED is not setCONFIG_SLHC=yCONFIG_SLIP_SMART=yCONFIG_SLIP_MODE_SLIP6=y
# CONFIG_NET_FC is not setCONFIG_NETCONSOLE=yCONFIG_NETCONSOLE_DYNAMIC=yCONFIG_NETPOLL=yCONFIG_NETPOLL_TRAP=yCONFIG_NET_POLL_CONTROLLER=yCONFIG_VIRTIO_NET=yCONFIG_ISDN=yCONFIG_ISDN_I4L=mCONFIG_ISDN_PPP=y
# CONFIG_ISDN_PPP_VJ is not set
# CONFIG_ISDN_MPP is not set
# CONFIG_IPPP_FILTER is not setCONFIG_ISDN_PPP_BSDCOMP=mCONFIG_ISDN_AUDIO=yCONFIG_ISDN_TTY_FAX=y
# CONFIG_ISDN_X25 is not set
#
# ISDN feature submodules
#
# CONFIG_ISDN_DIVERSION is not set
#
# ISDN4Linux hardware drivers
#
#
# Passive cards
#
# CONFIG_ISDN_DRV_HISAX is not set
#
# Active cards
#CONFIG_HYSDN=mCONFIG_HYSDN_CAPI=yCONFIG_ISDN_DRV_GIGASET=mCONFIG_GIGASET_BASE=m
# CONFIG_GIGASET_M105 is not setCONFIG_GIGASET_M101=m
# CONFIG_GIGASET_DEBUG is not set
# CONFIG_GIGASET_UNDOCREQ is not setCONFIG_ISDN_CAPI=y
# CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON is not set
# CONFIG_CAPI_TRACE is not setCONFIG_ISDN_CAPI_MIDDLEWARE=y
# CONFIG_ISDN_CAPI_CAPI20 is not setCONFIG_ISDN_CAPI_CAPIDRV=m
#
# CAPI hardware drivers
#
# CONFIG_CAPI_AVM is not setCONFIG_CAPI_EICON=y
# CONFIG_ISDN_DIVAS is not setCONFIG_PHONE=y
#
# Input device support
#CONFIG_INPUT=yCONFIG_INPUT_FF_MEMLESS=yCONFIG_INPUT_POLLDEV=y
#
# Userland interfaces
#CONFIG_INPUT_MOUSEDEV=yCONFIG_INPUT_MOUSEDEV_PSAUX=yCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768CONFIG_INPUT_JOYDEV=yCONFIG_INPUT_EVDEV=mCONFIG_INPUT_EVBUG=m
#
# Input Device Drivers
#CONFIG_INPUT_KEYBOARD=yCONFIG_KEYBOARD_ATKBD=yCONFIG_KEYBOARD_SUNKBD=m
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not setCONFIG_KEYBOARD_NEWTON=yCONFIG_KEYBOARD_STOWAWAY=mCONFIG_KEYBOARD_GPIO=m
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not setCONFIG_INPUT_TOUCHSCREEN=yCONFIG_TOUCHSCREEN_FUJITSU=mCONFIG_TOUCHSCREEN_GUNZE=yCONFIG_TOUCHSCREEN_ELO=yCONFIG_TOUCHSCREEN_MTOUCH=y
# CONFIG_TOUCHSCREEN_INEXIO is not setCONFIG_TOUCHSCREEN_MK712=yCONFIG_TOUCHSCREEN_PENMOUNT=y
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not setCONFIG_TOUCHSCREEN_TOUCHWIN=y
# CONFIG_TOUCHSCREEN_UCB1400 is not set
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not setCONFIG_TOUCHSCREEN_TOUCHIT213=yCONFIG_INPUT_MISC=yCONFIG_INPUT_APANEL=mCONFIG_INPUT_ATI_REMOTE=mCONFIG_INPUT_ATI_REMOTE2=mCONFIG_INPUT_KEYSPAN_REMOTE=m
# CONFIG_INPUT_POWERMATE is not setCONFIG_INPUT_YEALINK=m
# CONFIG_INPUT_UINPUT is not set
#
# Hardware I/O ports
#CONFIG_SERIO=yCONFIG_SERIO_I8042=yCONFIG_SERIO_SERPORT=m
# 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=yCONFIG_GAMEPORT_NS558=m
# CONFIG_GAMEPORT_L4 is not setCONFIG_GAMEPORT_EMU10K1=mCONFIG_GAMEPORT_FM801=y
#
# Character devices
#CONFIG_VT=yCONFIG_CONSOLE_TRANSLATIONS=yCONFIG_VT_CONSOLE=yCONFIG_HW_CONSOLE=yCONFIG_VT_HW_CONSOLE_BINDING=yCONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
#
# Serial drivers
#CONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=yCONFIG_FIX_EARLYCON_MEM=yCONFIG_SERIAL_8250_PCI=mCONFIG_SERIAL_8250_NR_UARTS=4CONFIG_SERIAL_8250_RUNTIME_UARTS=4CONFIG_SERIAL_8250_EXTENDED=yCONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_SHARE_IRQ is not setCONFIG_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=yCONFIG_LEGACY_PTYS=yCONFIG_LEGACY_PTY_COUNT=256CONFIG_PRINTER=mCONFIG_LP_CONSOLE=yCONFIG_PPDEV=m
# CONFIG_HVC_XEN is not set
# CONFIG_VIRTIO_CONSOLE is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not setCONFIG_R3964=m
# CONFIG_APPLICOM is not setCONFIG_MWAVE=m
# CONFIG_PC8736x_GPIO is not setCONFIG_RAW_DRIVER=mCONFIG_MAX_RAW_DEVS=256CONFIG_HANGCHECK_TIMER=y
# CONFIG_TCG_TPM is not setCONFIG_TELCLOCK=mCONFIG_DEVPORT=yCONFIG_I2C=mCONFIG_I2C_BOARDINFO=yCONFIG_I2C_CHARDEV=m
# CONFIG_I2C_HELPER_AUTO is not set
#
# I2C Algorithms
#CONFIG_I2C_ALGOBIT=m
# CONFIG_I2C_ALGOPCF is not setCONFIG_I2C_ALGOPCA=m
#
# I2C Hardware Bus support
#
#
# PC SMBus host controller drivers
#CONFIG_I2C_ALI1535=m
# CONFIG_I2C_ALI1563 is not setCONFIG_I2C_ALI15X3=m
# CONFIG_I2C_AMD756 is not setCONFIG_I2C_AMD8111=mCONFIG_I2C_I801=mCONFIG_I2C_ISCH=m
# CONFIG_I2C_PIIX4 is not setCONFIG_I2C_NFORCE2=m
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not setCONFIG_I2C_SIS96X=m
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
#
# I2C system bus drivers (mostly embedded / system-on-chip) #CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not setCONFIG_I2C_SIMTEC=m
#
# External I2C/SMBus adapter drivers
#CONFIG_I2C_PARPORT=mCONFIG_I2C_PARPORT_LIGHT=mCONFIG_I2C_TAOS_EVM=m
# CONFIG_I2C_TINY_USB is not set
#
# Graphics adapter I2C/DDC channel drivers
#
# CONFIG_I2C_VOODOO3 is not set
#
# Other I2C/SMBus bus drivers
#CONFIG_I2C_PCA_PLATFORM=mCONFIG_I2C_STUB=m
#
# Miscellaneous I2C Chip support
#CONFIG_DS1682=mCONFIG_AT24=mCONFIG_SENSORS_EEPROM=m
# CONFIG_SENSORS_PCF8574 is not setCONFIG_PCF8575=mCONFIG_SENSORS_PCF8591=mCONFIG_TPS65010=m
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_SENSORS_TSL2550 is not setCONFIG_I2C_DEBUG_CORE=yCONFIG_I2C_DEBUG_ALGO=yCONFIG_I2C_DEBUG_BUS=yCONFIG_I2C_DEBUG_CHIP=y
# CONFIG_SPI is not setCONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=yCONFIG_GPIOLIB=yCONFIG_DEBUG_GPIO=y
# CONFIG_GPIO_SYSFS is not set
#
# I2C GPIO expanders:
#
# CONFIG_GPIO_MAX732X is not setCONFIG_GPIO_PCA953X=m
# CONFIG_GPIO_PCF857X is not set
#
# PCI GPIO expanders:
#CONFIG_GPIO_BT8XX=m
#
# SPI GPIO expanders:
#CONFIG_W1=yCONFIG_W1_CON=y
#
# 1-wire Bus Masters
#CONFIG_W1_MASTER_MATROX=mCONFIG_W1_MASTER_DS2490=mCONFIG_W1_MASTER_DS2482=mCONFIG_W1_MASTER_GPIO=y
#
# 1-wire Slaves
#CONFIG_W1_SLAVE_THERM=mCONFIG_W1_SLAVE_SMEM=mCONFIG_W1_SLAVE_DS2433=m
# CONFIG_W1_SLAVE_DS2433_CRC is not setCONFIG_W1_SLAVE_DS2760=mCONFIG_POWER_SUPPLY=yCONFIG_POWER_SUPPLY_DEBUG=yCONFIG_PDA_POWER=yCONFIG_BATTERY_DS2760=mCONFIG_HWMON=mCONFIG_HWMON_VID=m
# CONFIG_SENSORS_ABITUGURU is not setCONFIG_SENSORS_ABITUGURU3=mCONFIG_SENSORS_AD7414=mCONFIG_SENSORS_AD7418=mCONFIG_SENSORS_ADM1021=mCONFIG_SENSORS_ADM1025=mCONFIG_SENSORS_ADM1026=m
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not setCONFIG_SENSORS_ADM9240=mCONFIG_SENSORS_ADT7470=mCONFIG_SENSORS_ADT7473=m
# CONFIG_SENSORS_K8TEMP is not setCONFIG_SENSORS_ASB100=m
# CONFIG_SENSORS_ATXP1 is not setCONFIG_SENSORS_DS1621=mCONFIG_SENSORS_I5K_AMB=mCONFIG_SENSORS_F71805F=m
# CONFIG_SENSORS_F71882FG is not setCONFIG_SENSORS_F75375S=mCONFIG_SENSORS_FSCHER=mCONFIG_SENSORS_FSCPOS=m
# CONFIG_SENSORS_FSCHMD is not set
# CONFIG_SENSORS_GL518SM is not setCONFIG_SENSORS_GL520SM=mCONFIG_SENSORS_CORETEMP=m
# CONFIG_SENSORS_IT87 is not setCONFIG_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=m
# CONFIG_SENSORS_LM93 is not set
# CONFIG_SENSORS_MAX1619 is not setCONFIG_SENSORS_MAX6650=m
# CONFIG_SENSORS_PC87360 is not setCONFIG_SENSORS_PC87427=mCONFIG_SENSORS_SIS5595=mCONFIG_SENSORS_DME1737=mCONFIG_SENSORS_SMSC47M1=mCONFIG_SENSORS_SMSC47M192=m
# CONFIG_SENSORS_SMSC47B397 is not setCONFIG_SENSORS_ADS7828=mCONFIG_SENSORS_THMC50=m
# CONFIG_SENSORS_VIA686A is not setCONFIG_SENSORS_VT1211=m
# CONFIG_SENSORS_VT8231 is not setCONFIG_SENSORS_W83781D=mCONFIG_SENSORS_W83791D=mCONFIG_SENSORS_W83792D=mCONFIG_SENSORS_W83793=m
# CONFIG_SENSORS_W83L785TS is not setCONFIG_SENSORS_W83L786NG=m
# CONFIG_SENSORS_W83627HF is not set
# CONFIG_SENSORS_W83627EHF is not setCONFIG_SENSORS_HDAPS=mCONFIG_SENSORS_APPLESMC=mCONFIG_HWMON_DEBUG_CHIP=yCONFIG_THERMAL=m
# CONFIG_THERMAL_HWMON is not set
# CONFIG_WATCHDOG is not set
#
# Sonics Silicon Backplane
#CONFIG_SSB_POSSIBLE=yCONFIG_SSB=mCONFIG_SSB_SPROM=yCONFIG_SSB_PCIHOST_POSSIBLE=yCONFIG_SSB_PCIHOST=y
# CONFIG_SSB_B43_PCI_BRIDGE is not set
# CONFIG_SSB_SILENT is not set
# CONFIG_SSB_DEBUG is not setCONFIG_SSB_DRIVER_PCICORE_POSSIBLE=yCONFIG_SSB_DRIVER_PCICORE=y
#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_SM501 is not setCONFIG_HTC_PASIC3=m
# CONFIG_MFD_TMIO is not set
#
# Multimedia devices
#
#
# Multimedia core support
#CONFIG_VIDEO_DEV=yCONFIG_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_MT2131=mCONFIG_MEDIA_TUNER_XC2028=mCONFIG_MEDIA_TUNER_XC5000=mCONFIG_VIDEO_V4L2=mCONFIG_VIDEO_V4L1=mCONFIG_VIDEOBUF_GEN=mCONFIG_VIDEOBUF_DMA_SG=mCONFIG_VIDEOBUF_DMA_CONTIG=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=m
# CONFIG_VIDEO_TDA7432 is not set
# CONFIG_VIDEO_TDA9840 is not setCONFIG_VIDEO_TDA9875=mCONFIG_VIDEO_TEA6415C=mCONFIG_VIDEO_TEA6420=mCONFIG_VIDEO_MSP3400=m
# CONFIG_VIDEO_CS5345 is not setCONFIG_VIDEO_CS53L32A=mCONFIG_VIDEO_M52790=m
# CONFIG_VIDEO_TLV320AIC23B is not setCONFIG_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=m
# CONFIG_VIDEO_SAA7110 is not setCONFIG_VIDEO_SAA7111=m
# CONFIG_VIDEO_SAA7114 is not setCONFIG_VIDEO_SAA711X=mCONFIG_VIDEO_SAA717X=mCONFIG_VIDEO_SAA7191=m
# CONFIG_VIDEO_TVP5150 is not setCONFIG_VIDEO_VPX3220=m
#
# Video and audio decoders
#CONFIG_VIDEO_CX25840=m
#
# MPEG video encoders
#CONFIG_VIDEO_CX2341X=m
#
# Video encoders
#CONFIG_VIDEO_SAA7127=m
# CONFIG_VIDEO_SAA7185 is not setCONFIG_VIDEO_ADV7170=mCONFIG_VIDEO_ADV7175=m
#
# Video improvement chips
#CONFIG_VIDEO_UPD64031A=mCONFIG_VIDEO_UPD64083=m
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_BWQCAM is not setCONFIG_VIDEO_CQCAM=mCONFIG_VIDEO_CPIA=m
# CONFIG_VIDEO_CPIA_USB is not set
# CONFIG_VIDEO_CPIA2 is not setCONFIG_VIDEO_SAA5246A=mCONFIG_VIDEO_SAA5249=mCONFIG_TUNER_3036=mCONFIG_VIDEO_STRADIS=m
# CONFIG_VIDEO_ZORAN is not setCONFIG_VIDEO_SAA7134=m
# CONFIG_VIDEO_SAA7134_ALSA is not setCONFIG_VIDEO_SAA7134_DVB=mCONFIG_VIDEO_MXB=mCONFIG_VIDEO_DPC=m
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not setCONFIG_VIDEO_CX88=mCONFIG_VIDEO_CX88_ALSA=mCONFIG_VIDEO_CX88_BLACKBIRD=m
# CONFIG_VIDEO_CX88_DVB is not setCONFIG_VIDEO_CX23885=m
# CONFIG_VIDEO_AU0828 is not setCONFIG_VIDEO_IVTV=mCONFIG_VIDEO_FB_IVTV=m
# CONFIG_VIDEO_CX18 is not setCONFIG_VIDEO_CAFE_CCIC=m
# CONFIG_V4L_USB_DRIVERS is not setCONFIG_SOC_CAMERA=mCONFIG_SOC_CAMERA_MT9M001=mCONFIG_MT9M001_PCA9536_SWITCH=yCONFIG_SOC_CAMERA_MT9V022=mCONFIG_MT9V022_PCA9536_SWITCH=yCONFIG_SOC_CAMERA_PLATFORM=mCONFIG_VIDEO_SH_MOBILE_CEU=mCONFIG_RADIO_ADAPTERS=yCONFIG_RADIO_GEMTEK_PCI=m
# CONFIG_RADIO_MAXIRADIO is not setCONFIG_RADIO_MAESTRO=m
# CONFIG_USB_DSBR is not setCONFIG_USB_SI470X=m
# CONFIG_DVB_CAPTURE_DRIVERS is not setCONFIG_DVB_TDA10086=mCONFIG_DVB_TDA826X=mCONFIG_DVB_TDA1004X=mCONFIG_DVB_MT352=mCONFIG_DVB_DIB7000P=mCONFIG_DVB_TDA10048=mCONFIG_DVB_NXT200X=mCONFIG_DVB_LGDT330X=mCONFIG_DVB_S5H1409=mCONFIG_DVB_S5H1411=mCONFIG_DVB_PLL=mCONFIG_DVB_ISL6421=m
# CONFIG_DAB is not set
#
# Graphics support
#CONFIG_AGP=yCONFIG_AGP_AMD64=yCONFIG_AGP_INTEL=mCONFIG_AGP_SIS=m
# CONFIG_AGP_VIA is not set
# CONFIG_DRM is not setCONFIG_VGASTATE=m
# CONFIG_VIDEO_OUTPUT_CONTROL is not setCONFIG_FB=mCONFIG_FIRMWARE_EDID=yCONFIG_FB_DDC=mCONFIG_FB_CFB_FILLRECT=mCONFIG_FB_CFB_COPYAREA=mCONFIG_FB_CFB_IMAGEBLIT=m
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not setCONFIG_FB_SYS_FILLRECT=mCONFIG_FB_SYS_COPYAREA=mCONFIG_FB_SYS_IMAGEBLIT=mCONFIG_FB_FOREIGN_ENDIAN=yCONFIG_FB_BOTH_ENDIAN=y
# CONFIG_FB_BIG_ENDIAN is not set
# CONFIG_FB_LITTLE_ENDIAN is not setCONFIG_FB_SYS_FOPS=mCONFIG_FB_DEFERRED_IO=yCONFIG_FB_HECUBA=mCONFIG_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_PM2=mCONFIG_FB_PM2_FIFO_DISCONNECT=y
# CONFIG_FB_CYBER2000 is not setCONFIG_FB_ARC=mCONFIG_FB_UVESA=mCONFIG_FB_N411=mCONFIG_FB_HGA=mCONFIG_FB_HGA_ACCEL=yCONFIG_FB_S1D13XXX=mCONFIG_FB_NVIDIA=mCONFIG_FB_NVIDIA_I2C=yCONFIG_FB_NVIDIA_DEBUG=yCONFIG_FB_NVIDIA_BACKLIGHT=y
# CONFIG_FB_RIVA is not setCONFIG_FB_LE80578=mCONFIG_FB_CARILLO_RANCH=mCONFIG_FB_INTEL=mCONFIG_FB_INTEL_DEBUG=yCONFIG_FB_INTEL_I2C=y
# CONFIG_FB_MATROX is not set
# CONFIG_FB_ATY128 is not setCONFIG_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=y
# CONFIG_FB_SAVAGE_ACCEL is not setCONFIG_FB_SIS=mCONFIG_FB_SIS_300=yCONFIG_FB_SIS_315=yCONFIG_FB_NEOMAGIC=m
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not setCONFIG_FB_VOODOO1=mCONFIG_FB_VT8623=mCONFIG_FB_TRIDENT=mCONFIG_FB_TRIDENT_ACCEL=yCONFIG_FB_ARK=mCONFIG_FB_PM3=mCONFIG_FB_CARMINE=mCONFIG_FB_CARMINE_DRAM_EVAL=y
# CONFIG_CARMINE_DRAM_CUSTOM is not setCONFIG_FB_GEODE=yCONFIG_FB_GEODE_LX=m
# CONFIG_FB_GEODE_GX is not set
# CONFIG_FB_GEODE_GX1 is not set
# CONFIG_XEN_FBDEV_FRONTEND is not setCONFIG_BACKLIGHT_LCD_SUPPORT=yCONFIG_LCD_CLASS_DEVICE=m
# CONFIG_LCD_ILI9320 is not setCONFIG_LCD_PLATFORM=mCONFIG_BACKLIGHT_CLASS_DEVICE=yCONFIG_BACKLIGHT_CORGI=yCONFIG_BACKLIGHT_PROGEAR=mCONFIG_BACKLIGHT_CARILLO_RANCH=m
# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
#
# Display device support
#CONFIG_DISPLAY_SUPPORT=m
#
# Display hardware drivers
#
#
# Console display driver support
#CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not setCONFIG_DUMMY_CONSOLE=yCONFIG_LOGO=yCONFIG_LOGO_LINUX_MONO=yCONFIG_LOGO_LINUX_VGA16=yCONFIG_LOGO_LINUX_CLUT224=yCONFIG_SOUND=yCONFIG_SND=yCONFIG_SND_TIMER=yCONFIG_SND_PCM=yCONFIG_SND_HWDEP=mCONFIG_SND_RAWMIDI=yCONFIG_SND_SEQUENCER=yCONFIG_SND_SEQ_DUMMY=yCONFIG_SND_OSSEMUL=y
# CONFIG_SND_MIXER_OSS is not set
# CONFIG_SND_PCM_OSS is not setCONFIG_SND_SEQUENCER_OSS=yCONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not setCONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not setCONFIG_SND_DEBUG=yCONFIG_SND_DEBUG_VERBOSE=yCONFIG_SND_PCM_XRUN_DEBUG=yCONFIG_SND_MPU401_UART=mCONFIG_SND_DRIVERS=yCONFIG_SND_DUMMY=yCONFIG_SND_VIRMIDI=mCONFIG_SND_MTPAV=yCONFIG_SND_MTS64=mCONFIG_SND_SERIAL_U16550=yCONFIG_SND_MPU401=mCONFIG_SND_PORTMAN2X4=m
# CONFIG_SND_PCI is not setCONFIG_SND_USB=yCONFIG_SND_USB_AUDIO=m
# CONFIG_SND_USB_USX2Y is not set
# CONFIG_SND_USB_CAIAQ is not setCONFIG_SND_SOC=yCONFIG_SOUND_PRIME=yCONFIG_SOUND_OSS=yCONFIG_SOUND_TRACEINIT=yCONFIG_SOUND_DMAP=yCONFIG_SOUND_SSCAPE=yCONFIG_SOUND_VMIDI=yCONFIG_SOUND_TRIX=yCONFIG_SOUND_MSS=mCONFIG_SOUND_MPU401=y
# CONFIG_SOUND_PAS is not setCONFIG_SOUND_PSS=yCONFIG_PSS_MIXER=y
# CONFIG_SOUND_SB is not setCONFIG_SOUND_YM3812=mCONFIG_SOUND_UART6850=mCONFIG_SOUND_AEDSP16=yCONFIG_SC6600=y
# CONFIG_SC6600_JOY is not setCONFIG_SC6600_CDROM=4CONFIG_SC6600_CDROMBASE=0
# CONFIG_AEDSP16_MSS is not set
# CONFIG_AEDSP16_SBPRO is not setCONFIG_HID_SUPPORT=yCONFIG_HID=y
# CONFIG_HID_DEBUG is not setCONFIG_HIDRAW=y
#
# USB Input Devices
#CONFIG_USB_HID=y
# CONFIG_USB_HIDINPUT_POWERBOOK is not setCONFIG_HID_FF=y
# CONFIG_HID_PID is not set
# CONFIG_LOGITECH_FF is not setCONFIG_LOGIRUMBLEPAD2_FF=y
# CONFIG_PANTHERLORD_FF is not set
# CONFIG_THRUSTMASTER_FF is not setCONFIG_ZEROPLUS_FF=yCONFIG_USB_HIDDEV=yCONFIG_USB_MOUSE=yCONFIG_USB_SUPPORT=yCONFIG_USB_ARCH_HAS_HCD=yCONFIG_USB_ARCH_HAS_OHCI=yCONFIG_USB_ARCH_HAS_EHCI=yCONFIG_USB=y
# CONFIG_USB_DEBUG is not setCONFIG_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 set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not setCONFIG_USB_OTG_WHITELIST=yCONFIG_USB_OTG_BLACKLIST_HUB=yCONFIG_USB_MON=y
#
# USB Host Controller Drivers
#CONFIG_USB_C67X00_HCD=yCONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_ROOT_HUB_TT is not setCONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not setCONFIG_USB_OHCI_HCD=y
# 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=yCONFIG_USB_U132_HCD=mCONFIG_USB_SL811_HCD=yCONFIG_USB_R8A66597_HCD=m
#
# USB Device Class drivers
#CONFIG_USB_ACM=m
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_WDM is not set
#
# 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=y CONFIG_USB_STORAGE_DATAFAB=y CONFIG_USB_STORAGE_FREECOM=y # CONFIG_USB_STORAGE_ISD200 is not set CONFIG_USB_STORAGE_DPCM=y CONFIG_USB_STORAGE_USBAT=y # CONFIG_USB_STORAGE_SDDR09 is not set CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y CONFIG_USB_STORAGE_ALAUDA=y # CONFIG_USB_STORAGE_ONETOUCH is not set CONFIG_USB_STORAGE_KARMA=y CONFIG_USB_STORAGE_CYPRESS_ATACB=y CONFIG_USB_LIBUSUAL=y
#
# USB Imaging devices
#CONFIG_USB_MDC800=y
# CONFIG_USB_MICROTEK is not set
#
# USB port drivers
#CONFIG_USB_USS720=m
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#CONFIG_USB_EMI62=yCONFIG_USB_EMI26=mCONFIG_USB_ADUTUX=mCONFIG_USB_RIO500=y
# CONFIG_USB_LEGOTOWER is not setCONFIG_USB_LCD=y
# CONFIG_USB_BERRY_CHARGE is not setCONFIG_USB_LED=yCONFIG_USB_CYPRESS_CY7C63=mCONFIG_USB_CYTHERM=yCONFIG_USB_PHIDGET=mCONFIG_USB_PHIDGETKIT=mCONFIG_USB_PHIDGETMOTORCONTROL=m
# CONFIG_USB_PHIDGETSERVO is not setCONFIG_USB_IDMOUSE=mCONFIG_USB_FTDI_ELAN=y
# CONFIG_USB_APPLEDISPLAY is not setCONFIG_USB_SISUSBVGA=m
# CONFIG_USB_SISUSBVGA_CON is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not setCONFIG_USB_IOWARRIOR=yCONFIG_USB_TEST=mCONFIG_USB_ISIGHTFW=yCONFIG_USB_ATM=yCONFIG_USB_SPEEDTOUCH=y
# CONFIG_USB_CXACRU is not setCONFIG_USB_UEAGLEATM=yCONFIG_USB_XUSBATM=yCONFIG_MMC=mCONFIG_MMC_DEBUG=yCONFIG_MMC_UNSAFE_RESUME=y
#
# 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_MEMSTICK=mCONFIG_MEMSTICK_DEBUG=y
#
# MemoryStick drivers
#CONFIG_MEMSTICK_UNSAFE_RESUME=yCONFIG_MSPRO_BLOCK=m
#
# MemoryStick Host Controller Drivers
#CONFIG_MEMSTICK_TIFM_MS=mCONFIG_MEMSTICK_JMICRON_38X=mCONFIG_NEW_LEDS=yCONFIG_LEDS_CLASS=m
#
# LED drivers
#
# CONFIG_LEDS_PCA9532 is not set
# CONFIG_LEDS_GPIO is not setCONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_PCA955X is not set
#
# LED Triggers
#
# CONFIG_LEDS_TRIGGERS is not set
# CONFIG_ACCESSIBILITY is not setCONFIG_INFINIBAND=mCONFIG_INFINIBAND_USER_MAD=mCONFIG_INFINIBAND_USER_ACCESS=mCONFIG_INFINIBAND_USER_MEM=yCONFIG_INFINIBAND_ADDR_TRANS=y
# CONFIG_INFINIBAND_MTHCA is not setCONFIG_INFINIBAND_IPATH=mCONFIG_INFINIBAND_AMSO1100=mCONFIG_INFINIBAND_AMSO1100_DEBUG=yCONFIG_MLX4_INFINIBAND=m
# CONFIG_INFINIBAND_NES is not set
# CONFIG_INFINIBAND_IPOIB is not setCONFIG_INFINIBAND_SRP=mCONFIG_INFINIBAND_ISER=m
# CONFIG_EDAC is not setCONFIG_RTC_LIB=yCONFIG_RTC_CLASS=yCONFIG_RTC_HCTOSYS=yCONFIG_RTC_HCTOSYS_DEVICE="rtc0"CONFIG_RTC_DEBUG=y
#
# RTC interfaces
#CONFIG_RTC_INTF_SYSFS=y
# CONFIG_RTC_INTF_PROC is not set
# CONFIG_RTC_INTF_DEV is not setCONFIG_RTC_DRV_TEST=m
#
# I2C RTC drivers
#CONFIG_RTC_DRV_DS1307=mCONFIG_RTC_DRV_DS1374=m
# CONFIG_RTC_DRV_DS1672 is not setCONFIG_RTC_DRV_MAX6900=m
# CONFIG_RTC_DRV_RS5C372 is not setCONFIG_RTC_DRV_ISL1208=mCONFIG_RTC_DRV_X1205=mCONFIG_RTC_DRV_PCF8563=mCONFIG_RTC_DRV_PCF8583=mCONFIG_RTC_DRV_M41T80=m
# CONFIG_RTC_DRV_M41T80_WDT is not setCONFIG_RTC_DRV_S35390A=mCONFIG_RTC_DRV_FM3130=m
#
# SPI RTC drivers
#
#
# Platform RTC drivers
#CONFIG_RTC_DRV_CMOS=mCONFIG_RTC_DRV_DS1511=mCONFIG_RTC_DRV_DS1553=yCONFIG_RTC_DRV_DS1742=y
# CONFIG_RTC_DRV_STK17TA8 is not setCONFIG_RTC_DRV_M48T86=m
# CONFIG_RTC_DRV_M48T59 is not setCONFIG_RTC_DRV_V3020=y
#
# on-CPU RTC drivers
#CONFIG_DMADEVICES=y
#
# DMA Devices
#CONFIG_INTEL_IOATDMA=yCONFIG_DMA_ENGINE=y
#
# DMA Clients
#
# CONFIG_NET_DMA is not setCONFIG_DMATEST=yCONFIG_DCA=y
# CONFIG_AUXDISPLAY is not setCONFIG_UIO=m
# CONFIG_UIO_CIF is not set
# CONFIG_UIO_PDRV is not setCONFIG_UIO_PDRV_GENIRQ=m
# CONFIG_UIO_SMX is not setCONFIG_XEN_BALLOON=yCONFIG_XEN_SCRUB_PAGES=y
#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_FIRMWARE_MEMMAP is not setCONFIG_DELL_RBU=y
# CONFIG_DCDBAS is not set
# CONFIG_DMIID is not set
# CONFIG_ISCSI_IBFT_FIND is not set
#
# File systems
#
# CONFIG_EXT2_FS is not setCONFIG_EXT3_FS=yCONFIG_EXT3_FS_XATTR=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_EXT3_FS_SECURITY=yCONFIG_EXT4DEV_FS=yCONFIG_EXT4DEV_FS_XATTR=yCONFIG_EXT4DEV_FS_POSIX_ACL=y
# CONFIG_EXT4DEV_FS_SECURITY is not setCONFIG_JBD=yCONFIG_JBD_DEBUG=yCONFIG_JBD2=yCONFIG_JBD2_DEBUG=yCONFIG_FS_MBCACHE=yCONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not setCONFIG_REISERFS_PROC_INFO=yCONFIG_REISERFS_FS_XATTR=y
# CONFIG_REISERFS_FS_POSIX_ACL is not setCONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not setCONFIG_FS_POSIX_ACL=y
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not setCONFIG_OCFS2_FS=y
# CONFIG_OCFS2_FS_O2CB is not setCONFIG_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=y
# CONFIG_INOTIFY_USER is not setCONFIG_QUOTA=yCONFIG_QUOTA_NETLINK_INTERFACE=yCONFIG_PRINT_QUOTA_WARNING=yCONFIG_QFMT_V1=y
# CONFIG_QFMT_V2 is not setCONFIG_QUOTACTL=yCONFIG_AUTOFS_FS=mCONFIG_AUTOFS4_FS=yCONFIG_FUSE_FS=yCONFIG_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="iso8859-1"CONFIG_NTFS_FS=m
# CONFIG_NTFS_DEBUG is not set
# CONFIG_NTFS_RW is not set
#
# Pseudo filesystems
#CONFIG_PROC_FS=yCONFIG_PROC_KCORE=y
# CONFIG_PROC_SYSCTL is not setCONFIG_SYSFS=yCONFIG_TMPFS=yCONFIG_TMPFS_POSIX_ACL=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not setCONFIG_CONFIGFS_FS=y
#
# Miscellaneous filesystems
#CONFIG_ADFS_FS=m
# CONFIG_ADFS_FS_RW is not setCONFIG_AFFS_FS=mCONFIG_HFS_FS=yCONFIG_HFSPLUS_FS=mCONFIG_BEFS_FS=yCONFIG_BEFS_DEBUG=yCONFIG_BFS_FS=yCONFIG_EFS_FS=mCONFIG_CRAMFS=yCONFIG_VXFS_FS=m
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not setCONFIG_QNX4FS_FS=mCONFIG_ROMFS_FS=y
# CONFIG_SYSV_FS is not setCONFIG_UFS_FS=yCONFIG_UFS_FS_WRITE=yCONFIG_UFS_DEBUG=yCONFIG_NETWORK_FILESYSTEMS=yCONFIG_NFS_FS=mCONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not setCONFIG_NFS_V4=yCONFIG_NFSD=m
# CONFIG_NFSD_V3 is not set
# CONFIG_NFSD_V4 is not setCONFIG_LOCKD=mCONFIG_LOCKD_V4=yCONFIG_EXPORTFS=mCONFIG_NFS_COMMON=yCONFIG_SUNRPC=mCONFIG_SUNRPC_GSS=mCONFIG_SUNRPC_XPRT_RDMA=mCONFIG_RPCSEC_GSS_KRB5=mCONFIG_RPCSEC_GSS_SPKM3=mCONFIG_SMB_FS=yCONFIG_SMB_NLS_DEFAULT=yCONFIG_SMB_NLS_REMOTE="cp437"
# CONFIG_CIFS is not setCONFIG_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=yCONFIG_AFS_FS=y
# CONFIG_AFS_DEBUG is not set
# CONFIG_9P_FS is not set
#
# Partition Types
#CONFIG_PARTITION_ADVANCED=yCONFIG_ACORN_PARTITION=yCONFIG_ACORN_PARTITION_CUMANA=yCONFIG_ACORN_PARTITION_EESOX=yCONFIG_ACORN_PARTITION_ICS=yCONFIG_ACORN_PARTITION_ADFS=y
# CONFIG_ACORN_PARTITION_POWERTEC is not setCONFIG_ACORN_PARTITION_RISCIX=yCONFIG_OSF_PARTITION=yCONFIG_AMIGA_PARTITION=yCONFIG_ATARI_PARTITION=y
# CONFIG_MAC_PARTITION is not setCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=yCONFIG_MINIX_SUBPARTITION=y
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not setCONFIG_SGI_PARTITION=yCONFIG_ULTRIX_PARTITION=y
# CONFIG_SUN_PARTITION is not setCONFIG_KARMA_PARTITION=yCONFIG_EFI_PARTITION=yCONFIG_SYSV68_PARTITION=yCONFIG_NLS=yCONFIG_NLS_DEFAULT="iso8859-1"CONFIG_NLS_CODEPAGE_437=mCONFIG_NLS_CODEPAGE_737=mCONFIG_NLS_CODEPAGE_775=yCONFIG_NLS_CODEPAGE_850=mCONFIG_NLS_CODEPAGE_852=m
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not setCONFIG_NLS_CODEPAGE_860=yCONFIG_NLS_CODEPAGE_861=yCONFIG_NLS_CODEPAGE_862=yCONFIG_NLS_CODEPAGE_863=yCONFIG_NLS_CODEPAGE_864=yCONFIG_NLS_CODEPAGE_865=m
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not setCONFIG_NLS_CODEPAGE_936=mCONFIG_NLS_CODEPAGE_950=mCONFIG_NLS_CODEPAGE_932=m
# CONFIG_NLS_CODEPAGE_949 is not setCONFIG_NLS_CODEPAGE_874=yCONFIG_NLS_ISO8859_8=y
# CONFIG_NLS_CODEPAGE_1250 is not setCONFIG_NLS_CODEPAGE_1251=mCONFIG_NLS_ASCII=m
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not setCONFIG_NLS_ISO8859_4=yCONFIG_NLS_ISO8859_5=m
# CONFIG_NLS_ISO8859_6 is not setCONFIG_NLS_ISO8859_7=yCONFIG_NLS_ISO8859_9=yCONFIG_NLS_ISO8859_13=yCONFIG_NLS_ISO8859_14=yCONFIG_NLS_ISO8859_15=y
# CONFIG_NLS_KOI8_R is not setCONFIG_NLS_KOI8_U=mCONFIG_NLS_UTF8=mCONFIG_DLM=mCONFIG_DLM_DEBUG=y
#
# Kernel hacking
#CONFIG_TRACE_IRQFLAGS_SUPPORT=yCONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_WARN_DEPRECATED is not setCONFIG_ENABLE_MUST_CHECK=yCONFIG_FRAME_WARN=2048CONFIG_MAGIC_SYSRQ=yCONFIG_UNUSED_SYMBOLS=yCONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not setCONFIG_DEBUG_KERNEL=yCONFIG_DEBUG_SHIRQ=yCONFIG_DETECT_SOFTLOCKUP=yCONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=yCONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1CONFIG_SCHED_DEBUG=yCONFIG_SCHEDSTATS=yCONFIG_TIMER_STATS=yCONFIG_DEBUG_OBJECTS=yCONFIG_DEBUG_OBJECTS_SELFTEST=y
# CONFIG_DEBUG_OBJECTS_FREE is not set
# CONFIG_DEBUG_OBJECTS_TIMERS is not setCONFIG_DEBUG_RT_MUTEXES=yCONFIG_DEBUG_PI_LIST=yCONFIG_RT_MUTEX_TESTER=yCONFIG_DEBUG_SPINLOCK=yCONFIG_DEBUG_MUTEXES=yCONFIG_DEBUG_LOCK_ALLOC=yCONFIG_PROVE_LOCKING=yCONFIG_LOCKDEP=yCONFIG_LOCK_STAT=yCONFIG_DEBUG_LOCKDEP=yCONFIG_TRACE_IRQFLAGS=yCONFIG_DEBUG_SPINLOCK_SLEEP=yCONFIG_DEBUG_LOCKING_API_SELFTESTS=yCONFIG_STACKTRACE=yCONFIG_DEBUG_BUGVERBOSE=yCONFIG_DEBUG_VM=y
# CONFIG_DEBUG_VIRTUAL is not setCONFIG_DEBUG_WRITECOUNT=y
# CONFIG_DEBUG_MEMORY_INIT is not setCONFIG_DEBUG_LIST=yCONFIG_DEBUG_SG=yCONFIG_DEBUG_NOTIFIERS=yCONFIG_FRAME_POINTER=yCONFIG_BOOT_PRINTK_DELAY=y
# CONFIG_RCU_TORTURE_TEST is not setCONFIG_RCU_CPU_STALL=yCONFIG_KPROBES_SANITY_TEST=y
# CONFIG_BACKTRACE_SELF_TEST is not setCONFIG_LKDTM=yCONFIG_FAULT_INJECTION=yCONFIG_FAILSLAB=yCONFIG_FAIL_PAGE_ALLOC=yCONFIG_FAIL_MAKE_REQUEST=yCONFIG_FAULT_INJECTION_DEBUG_FS=yCONFIG_LATENCYTOP=yCONFIG_SYSCTL_SYSCALL_CHECK=yCONFIG_NOP_TRACER=yCONFIG_HAVE_FTRACE=yCONFIG_HAVE_DYNAMIC_FTRACE=yCONFIG_HAVE_FTRACE_MCOUNT_RECORD=yCONFIG_TRACER_MAX_TRACE=yCONFIG_RING_BUFFER=yCONFIG_TRACING=yCONFIG_FTRACE=yCONFIG_IRQSOFF_TRACER=yCONFIG_SYSPROF_TRACER=yCONFIG_SCHED_TRACER=yCONFIG_CONTEXT_SWITCH_TRACER=yCONFIG_BOOT_TRACER=yCONFIG_STACK_TRACER=y
# CONFIG_DYNAMIC_FTRACE is not setCONFIG_PROVIDE_OHCI1394_DMA_INIT=yCONFIG_FIREWIRE_OHCI_REMOTE_DMA=y
# CONFIG_SAMPLES is not setCONFIG_HAVE_ARCH_KGDB=yCONFIG_KGDB=yCONFIG_KGDB_SERIAL_CONSOLE=mCONFIG_KGDB_TESTS=y
# CONFIG_STRICT_DEVMEM is not setCONFIG_X86_VERBOSE_BOOTUP=yCONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_DEBUG_STACKOVERFLOW is not setCONFIG_DEBUG_STACK_USAGE=yCONFIG_DEBUG_PAGEALLOC=yCONFIG_DEBUG_PER_CPU_MAPS=y
# CONFIG_X86_PTDUMP is not setCONFIG_DEBUG_RODATA=yCONFIG_DIRECT_GBPAGES=yCONFIG_DEBUG_RODATA_TEST=yCONFIG_DEBUG_NX_TEST=m
# CONFIG_IOMMU_DEBUG is not setCONFIG_MMIOTRACE_HOOKS=yCONFIG_MMIOTRACE=yCONFIG_MMIOTRACE_TEST=mCONFIG_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=yCONFIG_CPA_DEBUG=yCONFIG_OPTIMIZE_INLINING=y
#
# Security options
#CONFIG_KEYS=yCONFIG_KEYS_DEBUG_PROC_KEYS=yCONFIG_SECURITY=y
# CONFIG_SECURITY_NETWORK is not setCONFIG_SECURITY_FILE_CAPABILITIES=yCONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0CONFIG_CRYPTO=y
#
# Crypto core or helper
#CONFIG_CRYPTO_ALGAPI=yCONFIG_CRYPTO_AEAD=yCONFIG_CRYPTO_BLKCIPHER=yCONFIG_CRYPTO_HASH=yCONFIG_CRYPTO_MANAGER=yCONFIG_CRYPTO_GF128MUL=yCONFIG_CRYPTO_NULL=y
# CONFIG_CRYPTO_CRYPTD is not setCONFIG_CRYPTO_AUTHENC=yCONFIG_CRYPTO_TEST=m
#
# Authenticated Encryption with Associated Data
#CONFIG_CRYPTO_CCM=m
# CONFIG_CRYPTO_GCM is not setCONFIG_CRYPTO_SEQIV=m
#
# Block modes
#CONFIG_CRYPTO_CBC=yCONFIG_CRYPTO_CTR=mCONFIG_CRYPTO_CTS=yCONFIG_CRYPTO_ECB=mCONFIG_CRYPTO_LRW=yCONFIG_CRYPTO_PCBC=y
# CONFIG_CRYPTO_XTS is not set
#
# Hash modes
#CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
#
# Digest
#CONFIG_CRYPTO_CRC32C=yCONFIG_CRYPTO_MD4=yCONFIG_CRYPTO_MD5=mCONFIG_CRYPTO_MICHAEL_MIC=mCONFIG_CRYPTO_RMD128=yCONFIG_CRYPTO_RMD160=yCONFIG_CRYPTO_RMD256=m
# CONFIG_CRYPTO_RMD320 is not setCONFIG_CRYPTO_SHA1=m
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not setCONFIG_CRYPTO_WP512=m
#
# Ciphers
#CONFIG_CRYPTO_AES=mCONFIG_CRYPTO_AES_X86_64=mCONFIG_CRYPTO_ANUBIS=yCONFIG_CRYPTO_ARC4=mCONFIG_CRYPTO_BLOWFISH=m
# CONFIG_CRYPTO_CAMELLIA is not setCONFIG_CRYPTO_CAST5=mCONFIG_CRYPTO_CAST6=yCONFIG_CRYPTO_DES=yCONFIG_CRYPTO_FCRYPT=yCONFIG_CRYPTO_KHAZAD=y
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_X86_64 is not set
# CONFIG_CRYPTO_SEED is not setCONFIG_CRYPTO_SERPENT=mCONFIG_CRYPTO_TEA=m
# CONFIG_CRYPTO_TWOFISH is not setCONFIG_CRYPTO_TWOFISH_COMMON=mCONFIG_CRYPTO_TWOFISH_X86_64=m
#
# Compression
#CONFIG_CRYPTO_DEFLATE=mCONFIG_CRYPTO_LZO=mCONFIG_CRYPTO_HW=yCONFIG_CRYPTO_DEV_HIFN_795X=y
# CONFIG_CRYPTO_DEV_HIFN_795X_RNG is not setCONFIG_HAVE_KVM=yCONFIG_VIRTUALIZATION=y
# CONFIG_KVM is not setCONFIG_VIRTIO=yCONFIG_VIRTIO_RING=yCONFIG_VIRTIO_PCI=mCONFIG_VIRTIO_BALLOON=y
#
# Library routines
#CONFIG_BITREVERSE=yCONFIG_GENERIC_FIND_FIRST_BIT=yCONFIG_GENERIC_FIND_NEXT_BIT=yCONFIG_CRC_CCITT=yCONFIG_CRC16=yCONFIG_CRC_T10DIF=yCONFIG_CRC_ITU_T=yCONFIG_CRC32=yCONFIG_CRC7=yCONFIG_LIBCRC32C=yCONFIG_ZLIB_INFLATE=yCONFIG_ZLIB_DEFLATE=mCONFIG_LZO_COMPRESS=mCONFIG_LZO_DECOMPRESS=mCONFIG_TEXTSEARCH=yCONFIG_TEXTSEARCH_KMP=mCONFIG_TEXTSEARCH_BM=mCONFIG_TEXTSEARCH_FSM=mCONFIG_PLIST=yCONFIG_HAS_IOMEM=yCONFIG_HAS_IOPORT=yCONFIG_HAS_DMA=yCONFIG_CHECK_SIGNATURE=yCONFIG_FORCE_SUCCESSFUL_BUILD=yCONFIG_FORCE_MINIMAL_CONFIG=yCONFIG_FORCE_MINIMAL_CONFIG_64=yCONFIG_FORCE_MINIMAL_CONFIG_PHYS=y
Re: [PATCH 1/2] ring_buffer: remove raw from local_irq_save
Quoted 8 lines · Ingo Molnar
Quoted 4 lines · Steven Rostedt
Quoted 3 lines
The
raw_local_irq_savecauses issues with lockdep. We don't need it so replace them withlocal_irq_save.the same warning still occurs with your latest fixes - see the log below. Config attached. You should be able to reproduce it, it happens on every bootup with this config.
ignore me, my bad ... i messed up the test. The warning is indeed fixed.
Ingo
Steven Rostedt
maintainerPATCH 2/2 ring_buffer: implement new locking
In reply to Steven RostedtThe old "lock always" scheme had issues with lockdep, and was not very efficient anyways.
This patch does a new design to be partially lockless on writes. Writes will add new entries to the per cpu pages by simply disabling interrupts. When a write needs to go to another page than it will grab the lock.
A new "read page" has been added so that the reader can pull out a page from the ring buffer to read without worrying about the writer writing over it. This allows us to not take the lock for all reads. The lock is now only taken when a read needs to go to a new page.
This is far from lockless, and interrupts still need to be disabled, but it is a step towards a more lockless solution, and it also solves a lot of the issues that were noticed by the first conversion of ftrace to the ring buffers.
Note: the ring_buffer_{un}lock API has been removed.
--- include/linux/ring_buffer.h | 3 kernel/trace/ring_buffer.c | 298 +++++++++++++++++++++++++------------------- kernel/trace/trace.c | 113 +++++++++++----- 3 files changed, 247 insertions(+), 167 deletions(-)
include/linux/ring_buffer.h +0 -3
@@ -63,9 +63,6 @@ ring_buffer_event_time_delta(struct ringreturn event->time_delta; } -void ring_buffer_lock (struct ring_buffer *buffer,unsigned long *flags); -void ring_buffer_unlock (struct ring_buffer *buffer,unsigned long flags); -/* * size is in bytes for each per CPU buffer. */
kernel/trace/ring_buffer.c +170 -128
545 lines not on this page · raw message
kernel/trace/trace.c +77 -36
266 lines not on this page · raw message
Ingo Molnar
AppliedRe: [PATCH 2/2] ring_buffer: implement new locking
Quoted 18 lines · Steven Rostedt
The old "lock always" scheme had issues with lockdep, and was not very efficient anyways.
This patch does a new design to be partially lockless on writes. Writes will add new entries to the per cpu pages by simply disabling interrupts. When a write needs to go to another page than it will grab the lock.
A new "read page" has been added so that the reader can pull out a page from the ring buffer to read without worrying about the writer writing over it. This allows us to not take the lock for all reads. The lock is now only taken when a read needs to go to a new page.
This is far from lockless, and interrupts still need to be disabled, but it is a step towards a more lockless solution, and it also solves a lot of the issues that were noticed by the first conversion of ftrace to the ring buffers.
Quoted 8 lines
Note: the ring_buffer_{un}lock API has been removed.
Signed-off-by Steven Rostedt <[email protected]>--- include/linux/ring_buffer.h | 3 kernel/trace/ring_buffer.c | 298 +++++++++++++++++++++++++------------------- kernel/trace/trace.c | 113 +++++++++++----- 3 files changed, 247 insertions(+), 167 deletions(-)
applied to tip/tracing/ring-buffer, thanks Steve!
the simplification factor is significant as well - both in linecount and in locking complexity. A robust tracer almost never wants to impose heavy locking semantics - a good way to disable/enable it on a per CPU basis is more than enough to 'freeze' the trace and get it out to the user.
Perhaps, before we free trace buffers, we should do an RCU sync to make sure no access can linger? Right now we dont seem to free buffers anywhere.
Ingo
2008/10/1 Steven Rostedt <[email protected]>:
Quoted 8 lines
The first patch is just a lockdep clean up of the ring buffer.
The next patch is a new locking design. It is not lockless (yet) but the locking is a bit cleaner than the original. The basic idea is that the reader now has its own page to read from that is not in the ring buffer. When the reader (a consumer) finishes a page, it then grabs a lock to pull out a new page from the ring buffer and replace it with the one that it just finished reading.
Good idea! Sounds a real saner approach.
Quoted 11 lines · Frédéric Weisbecker
2008/10/1 Steven Rostedt <[email protected]>:
Quoted 8 lines
The first patch is just a lockdep clean up of the ring buffer.
The next patch is a new locking design. It is not lockless (yet) but the locking is a bit cleaner than the original. The basic idea is that the reader now has its own page to read from that is not in the ring buffer. When the reader (a consumer) finishes a page, it then grabs a lock to pull out a new page from the ring buffer and replace it with the one that it just finished reading.
Good idea! Sounds a real saner approach.
are the tracer problems you've reported yesterday fixed in latest tip/master?
Ingo
2008/10/1 Ingo Molnar <[email protected]>:
Quoted 2 lines
are the tracer problems you've reported yesterday fixed in latest tip/master?
I will not have time to check until this evening. So I will report any potential feedback tomorrow.
2008/10/1 Frédéric Weisbecker <[email protected]>:
Quoted 6 lines
2008/10/1 Ingo Molnar <[email protected]>:
Quoted 2 lines
are the tracer problems you've reported yesterday fixed in latest tip/master?
I will not have time to check until this evening. So I will report any potential feedback tomorrow.
Ok I just tested and it's fixed now.
Thanks Steven :)
Steven Rostedt
maintainerPATCH 1/1 ftrace: preempt disable over interrupt disable
In reply to Ingo MolnarWith the new ring buffer infrastructure in ftrace, I'm trying to make ftrace a little more light weight.
This patch converts a lot of the local_irq_save/restore into preempt_disable/enable. The original preempt count in a lot of cases has to be sent in as a parameter so that it can be recorded correctly. Some places were recording it incorrectly before anyway.
This is also laying the ground work to make ftrace a little bit more reentrant, and remove all locking. The function tracers must still protect from reentrancy.
Note: All the function tracers must be careful when using preempt_disable.
It must do the following:
resched = need_resched();
preempt_disable_notrace();
[...]
if (resched)
preempt_enable_no_resched_notrace(); else preempt_enable_notrace();
The reason is that if this function traces schedule() itself, the preempt_enable_notrace() will cause a schedule, which will lead us into a recursive failure.
If we needed to reschedule before calling preempt_disable, we should have already scheduled. Since we did not, this is most likely that we should not and are probably inside a schedule function.
If resched was not set, we still need to catch the need resched flag being set when preemption was off and the if case at the end will catch that for us.
--- kernel/trace/trace.c | 123 +++++++++++++++++++------------------- kernel/trace/trace.h | 13 ++-- kernel/trace/trace_boot.c | 2 kernel/trace/trace_irqsoff.c | 13 ++-- kernel/trace/trace_mmiotrace.c | 4 - kernel/trace/trace_sched_switch.c | 9 +- kernel/trace/trace_sched_wakeup.c | 13 +++- 7 files changed, 97 insertions(+), 80 deletions(-)
kernel/trace/trace.c +63 -60
@@ -652,12 +652,10 @@ void tracing_record_cmdline(struct task_ }void -tracing_generic_entry_update (struct trace_entry *entry,unsigned long flags) +tracing_generic_entry_update (struct trace_entry *entry,unsigned long flags, +int pc) {struct task_struct *tsk = current; -unsigned long pc; - - pc =preempt_count (); entry->preempt_count = pc &0xff ; entry->pid = (tsk) ? tsk->pid :0 ;
@@ -670,7 +668,8 @@ tracing_generic_entry_update(struct tracvoid trace_function (struct trace_array *tr,struct trace_array_cpu *data, -unsigned long ip,unsigned long parent_ip,unsigned long flags) +unsigned long ip,unsigned long parent_ip,unsigned long flags, +int pc) {struct ring_buffer_event *event;struct ftrace_entry *entry;
@@ -685,7 +684,7 @@ trace_function(struct trace_array *tr, sif (!event)return ; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent, flags); +tracing_generic_entry_update (&entry->ent, flags, pc); entry->ent.type =TRACE_FN ; entry->ip = ip; entry->parent_ip = parent_ip;
@@ -694,16 +693,17 @@ trace_function(struct trace_array *tr, svoid ftrace (struct trace_array *tr,struct trace_array_cpu *data, -unsigned long ip,unsigned long parent_ip,unsigned long flags) +unsigned long ip,unsigned long parent_ip,unsigned long flags, +int pc) {if (likely (!atomic_read (&data->disabled))) -trace_function (tr, data, ip, parent_ip, flags); +trace_function (tr, data, ip, parent_ip, flags, pc); } -void __trace_stack (struct trace_array *tr, -struct trace_array_cpu *data, -unsigned long flags, -int skip) +static void ftrace_trace_stack (struct trace_array *tr, +struct trace_array_cpu *data, +unsigned long flags, +int skip,int pc) {struct ring_buffer_event *event;struct stack_entry *entry;
@@ -718,7 +718,7 @@ void __trace_stack(struct trace_array *tif (!event)return ; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent, flags); +tracing_generic_entry_update (&entry->ent, flags, pc); entry->ent.type =TRACE_STACK ;memset (&entry->caller,0 ,sizeof (entry->caller));
@@ -732,9 +732,18 @@ void __trace_stack(struct trace_array *tring_buffer_unlock_commit (tr->buffer, event, irq_flags); } -void -__trace_special (void *__tr,void *__data, -unsigned long arg1,unsigned long arg2,unsigned long arg3) +void __trace_stack (struct trace_array *tr, +struct trace_array_cpu *data, +unsigned long flags, +int skip) +{ +ftrace_trace_stack (tr, data, flags, skip,preempt_count ()); +} + +static void +ftrace_trace_special (void *__tr,void *__data, +unsigned long arg1,unsigned long arg2,unsigned long arg3, +int pc) {struct ring_buffer_event *event;struct trace_array_cpu *data = __data;
@@ -747,23 +756,30 @@ __trace_special(void *__tr, void *__dataif (!event)return ; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent,0 ); +tracing_generic_entry_update (&entry->ent,0 , pc); entry->ent.type =TRACE_SPECIAL ; entry->arg1 = arg1; entry->arg2 = arg2; entry->arg3 = arg3;ring_buffer_unlock_commit (tr->buffer, event, irq_flags); -__trace_stack (tr, data, irq_flags,4 ); +ftrace_trace_stack (tr, data, irq_flags,4 , pc);trace_wake_up (); }void +__trace_special (void *__tr,void *__data, +unsigned long arg1,unsigned long arg2,unsigned long arg3) +{ +ftrace_trace_special (__tr, __data, arg1, arg2, arg3,preempt_count ()); +} + +void tracing_sched_switch_trace (struct trace_array *tr,struct trace_array_cpu *data,struct task_struct *prev,struct task_struct *next, -unsigned long flags) +unsigned long flags,int pc) {struct ring_buffer_event *event;struct ctx_switch_entry *entry;
@@ -774,7 +790,7 @@ tracing_sched_switch_trace(struct trace_if (!event)return ; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent, flags); +tracing_generic_entry_update (&entry->ent, flags, pc); entry->ent.type =TRACE_CTX ; entry->prev_pid = prev->pid; entry->prev_prio = prev->prio;
@@ -784,7 +800,7 @@ tracing_sched_switch_trace(struct trace_ entry->next_state = next->state; entry->next_cpu =task_cpu (next);ring_buffer_unlock_commit (tr->buffer, event, irq_flags); -__trace_stack (tr, data, flags,5 ); +ftrace_trace_stack (tr, data, flags,5 , pc); }void
@@ -792,7 +808,7 @@ tracing_sched_wakeup_trace(struct trace_struct trace_array_cpu *data, struct task_struct *wakee, struct task_struct *curr, - unsigned long flags) + unsigned long flags, int pc) { struct ring_buffer_event *event;struct ctx_switch_entry *entry;
@@ -803,7 +819,7 @@ tracing_sched_wakeup_trace(struct trace_if (!event)return ; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent, flags); +tracing_generic_entry_update (&entry->ent, flags, pc); entry->ent.type =TRACE_WAKE ; entry->prev_pid = curr->pid; entry->prev_prio = curr->prio;
@@ -813,7 +829,7 @@ tracing_sched_wakeup_trace(struct trace_ entry->next_state = wakee->state; entry->next_cpu =task_cpu (wakee);ring_buffer_unlock_commit (tr->buffer, event, irq_flags); -__trace_stack (tr, data, flags,6 ); +ftrace_trace_stack (tr, data, flags,6 , pc);trace_wake_up (); }
@@ -823,23 +839,24 @@ ftrace_special(unsigned long arg1, unsig {struct trace_array *tr = &global_trace;struct trace_array_cpu *data; -unsigned long flags;long disabled;int cpu; +int pc;if (tracing_disabled || !tr->ctrl)return ; -local_irq_save (flags); + pc =preempt_count (); +preempt_disable_notrace (); cpu =raw_smp_processor_id (); data = tr->data[cpu]; disabled =atomic_inc_return (&data->disabled);if (likely (disabled ==1 )) -__trace_special (tr, data, arg1, arg2, arg3); +ftrace_trace_special (tr, data, arg1, arg2, arg3, pc);atomic_dec (&data->disabled); -local_irq_restore (flags); +preempt_enable_notrace (); }#ifdef CONFIG_FTRACE
@@ -850,7 +867,8 @@ function_trace_call(unsigned long ip, unstruct trace_array_cpu *data;unsigned long flags;long disabled; -int cpu; +int cpu, resched; +int pc;if (unlikely (!ftrace_function_enabled))return ;
@@ -858,16 +876,22 @@ function_trace_call(unsigned long ip, unif (skip_trace (ip))return ; -local_irq_save (flags); + pc =preempt_count (); + resched =need_resched (); +preempt_disable_notrace (); +local_save_flags (flags); cpu =raw_smp_processor_id (); data = tr->data[cpu]; disabled =atomic_inc_return (&data->disabled);if (likely (disabled ==1 )) -trace_function (tr, data, ip, parent_ip, flags); +trace_function (tr, data, ip, parent_ip, flags, pc);atomic_dec (&data->disabled); -local_irq_restore (flags); +if (resched) +preempt_enable_no_resched_notrace (); +else +preempt_enable_notrace (); } static struct ftrace_ops trace_ops __read_mostly =
@@ -2508,9 +2532,6 @@ tracing_read_pipe(struct file *filp, cha size_t cnt, loff_t *ppos) { struct trace_iterator *iter = filp->private_data; -#ifdef CONFIG_FTRACE -int ftrace_save; -#endif ssize_t sret;/* return any leftover data */
@@ -2593,20 +2614,6 @@ waitagain: offsetof(struct trace_iterator, seq)); iter->pos =-1 ; -/* -* We need to stop all tracing on all CPUS to read the -* the next buffer. This is a bit expensive, but is -* not done often. We fill all what we can read, -* and then release the locks again. -*/ - -local_irq_disable (); -#ifdef CONFIG_FTRACE - ftrace_save = ftrace_enabled; - ftrace_enabled =0 ; -#endif -smp_wmb (); -while (find_next_entry_inc (iter) !=NULL ) {enum print_line_t ret;int len = iter->seq.len;
@@ -2624,11 +2631,6 @@ waitagain:break ; } -#ifdef CONFIG_FTRACE - ftrace_enabled = ftrace_save; -#endif -local_irq_enable (); -/* Now copy what we have to the user */ sret =trace_seq_to_user (&iter->seq, ubuf, cnt);if (iter->seq.readpos >= iter->seq.len)
@@ -2960,12 +2962,13 @@ int trace_vprintk(unsigned long ip, consstruct print_entry *entry;unsigned long flags, irq_flags;long disabled; -int cpu, len =0 , size; +int cpu, len =0 , size, pc;if (!tr->ctrl || tracing_disabled)return 0 ; -local_irq_save (flags); + pc =preempt_count (); +preempt_disable_notrace (); cpu =raw_smp_processor_id (); data = tr->data[cpu]; disabled =atomic_inc_return (&data->disabled);
@@ -2973,7 +2976,7 @@ int trace_vprintk(unsigned long ip, consif (unlikely (disabled !=1 )) goto out; -spin_lock (&trace_buf_lock); +spin_lock_irqsave (&trace_buf_lock, flags); len =vsnprintf (trace_buf,TRACE_BUF_SIZE , fmt, args); len =min (len,TRACE_BUF_SIZE -1 );
@@ -2984,7 +2987,7 @@ int trace_vprintk(unsigned long ip, consif (!event) goto out_unlock; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent, flags); +tracing_generic_entry_update (&entry->ent, flags, pc); entry->ent.type =TRACE_PRINT ; entry->ip = ip;
@@ -2993,11 +2996,11 @@ int trace_vprintk(unsigned long ip, consring_buffer_unlock_commit (tr->buffer, event, irq_flags); out_unlock: -spin_unlock (&trace_buf_lock); +spin_unlock_irqrestore (&trace_buf_lock, flags); out:atomic_dec (&data->disabled); -local_irq_restore (flags); +preempt_enable_notrace ();return len; }
kernel/trace/trace.h +7 -6
@@ -288,35 +288,36 @@ void init_tracer_sysprof_debugfs(structstruct trace_entry *tracing_get_trace_entry (struct trace_array *tr,struct trace_array_cpu *data);void tracing_generic_entry_update (struct trace_entry *entry, -unsigned long flags); +unsigned long flags, +int pc);void ftrace (struct trace_array *tr,struct trace_array_cpu *data,unsigned long ip,unsigned long parent_ip, -unsigned long flags); +unsigned long flags,int pc);void tracing_sched_switch_trace (struct trace_array *tr,struct trace_array_cpu *data,struct task_struct *prev,struct task_struct *next, -unsigned long flags); +unsigned long flags,int pc);void tracing_record_cmdline (struct task_struct *tsk);void tracing_sched_wakeup_trace (struct trace_array *tr,struct trace_array_cpu *data,struct task_struct *wakee,struct task_struct *cur, -unsigned long flags); +unsigned long flags,int pc);void trace_special (struct trace_array *tr,struct trace_array_cpu *data,unsigned long arg1,unsigned long arg2, -unsigned long arg3); +unsigned long arg3,int pc);void trace_function (struct trace_array *tr,struct trace_array_cpu *data,unsigned long ip,unsigned long parent_ip, -unsigned long flags); +unsigned long flags,int pc);void tracing_start_cmdline_record (void );void tracing_stop_cmdline_record (void );
kernel/trace/trace_boot.c +1 -1
@@ -95,7 +95,7 @@ void trace_boot(struct boot_trace *it)if (!event) goto out; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent,0 ); +tracing_generic_entry_update (&entry->ent,0 ,0 ); entry->ent.type =TRACE_BOOT ; entry->initcall = *it;ring_buffer_unlock_commit (tr->buffer, event, irq_flags);
kernel/trace/trace_irqsoff.c +8 -5
@@ -95,7 +95,7 @@ irqsoff_tracer_call(unsigned long ip, un disabled =atomic_inc_return (&data->disabled);if (likely (disabled ==1 )) -trace_function (tr, data, ip, parent_ip, flags); +trace_function (tr, data, ip, parent_ip, flags,preempt_count ());atomic_dec (&data->disabled); }
@@ -130,6 +130,7 @@ check_critical_timing(struct trace_arrayunsigned long latency, t0, t1;cycle_t T0 ,T1 , delta;unsigned long flags; +int pc;/* * usecs conversion is slow so we try to delay the conversion
@@ -144,13 +145,15 @@ check_critical_timing(struct trace_arrayif (!report_latency (delta)) goto out; + pc =preempt_count (); +spin_lock_irqsave (&max_trace_lock, flags);/* check if we are still the max latency */ if (!report_latency (delta)) goto out_unlock; -trace_function (tr, data,CALLER_ADDR0 , parent_ip, flags); +trace_function (tr, data,CALLER_ADDR0 , parent_ip, flags, pc); latency =nsecs_to_usecs (delta);
@@ -174,7 +177,7 @@ out: data->critical_sequence = max_sequence; data->preempt_timestamp =ftrace_now (cpu);tracing_reset (tr, cpu); -trace_function (tr, data,CALLER_ADDR0 , parent_ip, flags); +trace_function (tr, data,CALLER_ADDR0 , parent_ip, flags, pc); } static inline void
@@ -207,7 +210,7 @@ start_critical_timing(unsigned long ip,local_save_flags (flags); -trace_function (tr, data, ip, parent_ip, flags); +trace_function (tr, data, ip, parent_ip, flags,preempt_count ());per_cpu (tracing_cpu, cpu) =1 ;
@@ -241,7 +244,7 @@ stop_critical_timing(unsigned long ip, uatomic_inc (&data->disabled);local_save_flags (flags); -trace_function (tr, data, ip, parent_ip, flags); +trace_function (tr, data, ip, parent_ip, flags,preempt_count ());check_critical_timing (tr, data, parent_ip ? : ip, cpu); data->critical_start =0 ;atomic_dec (&data->disabled);
kernel/trace/trace_mmiotrace.c +2 -2
@@ -324,7 +324,7 @@ static void __trace_mmiotrace_rw(structif (!event)return ; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent,0 ); +tracing_generic_entry_update (&entry->ent,0 ,preempt_count ()); entry->ent.type =TRACE_MMIO_RW ; entry->rw = *rw;ring_buffer_unlock_commit (tr->buffer, event, irq_flags);
@@ -352,7 +352,7 @@ static void __trace_mmiotrace_map(structif (!event)return ; entry =ring_buffer_event_data (event); -tracing_generic_entry_update (&entry->ent,0 ); +tracing_generic_entry_update (&entry->ent,0 ,preempt_count ()); entry->ent.type =TRACE_MMIO_MAP ; entry->map = *map;ring_buffer_unlock_commit (tr->buffer, event, irq_flags);
kernel/trace/trace_sched_switch.c +6 -3
@@ -26,6 +26,7 @@ probe_sched_switch(struct rq *__rq, struunsigned long flags;long disabled;int cpu; +int pc;if (!atomic_read (&sched_ref))return ;
@@ -36,13 +37,14 @@ probe_sched_switch(struct rq *__rq, struif (!tracer_enabled)return ; + pc =preempt_count ();local_irq_save (flags); cpu =raw_smp_processor_id (); data = ctx_trace->data[cpu]; disabled =atomic_inc_return (&data->disabled);if (likely (disabled ==1 )) -tracing_sched_switch_trace (ctx_trace, data, prev, next, flags); +tracing_sched_switch_trace (ctx_trace, data, prev, next, flags, pc);atomic_dec (&data->disabled);local_irq_restore (flags);
@@ -54,11 +56,12 @@ probe_sched_wakeup(struct rq *__rq, strustruct trace_array_cpu *data;unsigned long flags;long disabled; -int cpu; +int cpu, pc;if (!likely (tracer_enabled))return ; + pc =preempt_count ();tracing_record_cmdline (current);local_irq_save (flags);
@@ -68,7 +71,7 @@ probe_sched_wakeup(struct rq *__rq, struif (likely (disabled ==1 ))tracing_sched_wakeup_trace (ctx_trace, data, wakee, current, - flags); + flags, pc);atomic_dec (&data->disabled);local_irq_restore (flags);
kernel/trace/trace_sched_wakeup.c +10 -3
@@ -44,10 +44,12 @@ wakeup_tracer_call(unsigned long ip, unslong disabled;int resched;int cpu; +int pc;if (likely (!wakeup_task))return ; + pc =preempt_count (); resched =need_resched ();preempt_disable_notrace ();
@@ -70,7 +72,7 @@ wakeup_tracer_call(unsigned long ip, unsif (task_cpu (wakeup_task) != cpu) goto unlock; -trace_function (tr, data, ip, parent_ip, flags); +trace_function (tr, data, ip, parent_ip, flags, pc); unlock:__raw_spin_unlock (&wakeup_lock);
@@ -121,6 +123,7 @@ probe_wakeup_sched_switch(struct rq *rq,unsigned long flags;long disabled;int cpu; +int pc;tracing_record_cmdline (prev);
@@ -139,6 +142,8 @@ probe_wakeup_sched_switch(struct rq *rq,if (next != wakeup_task)return ; + pc =preempt_count (); +/* The task we are waiting for is waking up */ data = wakeup_trace->data[wakeup_cpu];
@@ -155,7 +160,7 @@ probe_wakeup_sched_switch(struct rq *rq,if (unlikely (!tracer_enabled || next != wakeup_task)) goto out_unlock; -trace_function (wakeup_trace, data,CALLER_ADDR1 ,CALLER_ADDR2 , flags); +trace_function (wakeup_trace, data,CALLER_ADDR1 ,CALLER_ADDR2 , flags, pc);/* * usecs conversion is slow so we try to delay the conversion
@@ -220,6 +225,7 @@ probe_wakeup(struct rq *rq, struct task_int cpu =smp_processor_id ();unsigned long flags;long disabled; +int pc;if (likely (!tracer_enabled))return ;
@@ -232,6 +238,7 @@ probe_wakeup(struct rq *rq, struct task_ p->prio >= current->prio)return ; + pc =preempt_count (); disabled =atomic_inc_return (&wakeup_trace->data[cpu]->disabled);if (unlikely (disabled !=1 )) goto out;
@@ -256,7 +263,7 @@ probe_wakeup(struct rq *rq, struct task_ wakeup_trace->data[wakeup_cpu]->preempt_timestamp =ftrace_now (cpu);trace_function (wakeup_trace, wakeup_trace->data[wakeup_cpu], -CALLER_ADDR1 ,CALLER_ADDR2 , flags); +CALLER_ADDR1 ,CALLER_ADDR2 , flags, pc); out_locked:__raw_spin_unlock (&wakeup_lock);