* Weird rcu lockdep warning
@ 2010-04-13 20:04 Frederic Weisbecker
2010-04-13 23:40 ` Paul E. McKenney
0 siblings, 1 reply; 13+ messages in thread
From: Frederic Weisbecker @ 2010-04-13 20:04 UTC (permalink / raw)
To: Paul E. McKenney, David Miller, Peter Zijlstra, Ingo Molnar
Cc: SparcLinux, LKML
[-- Attachment #1: Type: text/plain, Size: 2357 bytes --]
Hi,
I just ran the following on -rc4 with the latest pending sparc pull
request manually merged (no -tip bits):
perf record -a -f -g sleep 5
And I got this warning:
[ 2235.846071] ===================================================
[ 2235.857419] [ INFO: suspicious rcu_dereference_check() usage. ]
[ 2235.863127] ---------------------------------------------------
[ 2235.868734] kernel/perf_event.c:2232 invoked rcu_dereference_check() without protection!
[ 2235.879843]
[ 2235.879848] other info that might help us debug this:
[ 2235.879855]
[ 2235.895659]
[ 2235.895663] rcu_scheduler_active = 1, debug_locks = 0
[ 2235.905505] 1 lock held by swapper/0:
[ 2235.910333] #0: (&ctx->lock){-.....}, at: [<00000000004d9e00>] __perf_event_enable+0x60/0x1e8
[ 2235.920430]
[ 2235.920434] stack backtrace:
[ 2235.929691] Call Trace:
[ 2235.934143] [000000000049fca0] lockdep_rcu_dereference+0x88/0x98
[ 2235.938700] [00000000004d9304] perf_event_update_userpage+0x74/0x16c
[ 2235.943221] [000000000044c148] sparc_perf_event_set_period+0xb4/0xc4
[ 2235.947593] [000000000044c238] perf_event_nmi_handler+0xe0/0x190
[ 2235.951801] [0000000000494924] notifier_call_chain+0x2c/0x84
[ 2235.956112] [0000000000495008] __atomic_notifier_call_chain+0x54/0x9c
[ 2235.960493] [0000000000495070] atomic_notifier_call_chain+0x20/0x34
[ 2235.964830] [00000000004950a8] notify_die+0x24/0x38
[ 2235.969175] [000000000043a650] perfctr_irq+0xa4/0x3f4
[ 2235.973493] [00000000004209f4] tl0_irq15+0x14/0x20
[ 2235.977744] [0000000000406920] sun4v_niagara2_setperf+0x8/0x28
[ 2235.982265] [000000000044c448] hw_perf_enable+0x160/0x170
[ 2235.986494] [00000000004d89b4] perf_enable+0x3c/0x4c
[ 2235.990513] [00000000004d9f2c] __perf_event_enable+0x18c/0x1e8
[ 2235.994665] [00000000004aad5c] generic_smp_call_function_single_interrupt+0x114/0x16c
[ 2236.002975] [0000000000764770] smp_call_function_single_client+0x20/0x30
This is weird as everything looks fine there, it seems we have
a well matching rcu_read_lock/rcu_dereference couple:
void perf_event_update_userpage(struct perf_event *event)
{
struct perf_event_mmap_page *userpg;
struct perf_mmap_data *data;
rcu_read_lock();
data = rcu_dereference(event->data);
if (!data)
goto unlock;
userpg = data->user_page;
[...]
I've attached the config in case someone has an idea.
Thanks.
[-- Attachment #2: sparc.config --]
[-- Type: text/plain, Size: 38026 bytes --]
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.34-rc4
# Tue Apr 13 20:18:15 2010
#
CONFIG_64BIT=y
CONFIG_SPARC=y
# CONFIG_SPARC32 is not set
CONFIG_SPARC64=y
CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig"
CONFIG_BITS=64
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_IOMMU_HELPER=y
CONFIG_QUICKLIST=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_AUDIT_ARCH=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_OF=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
#
# General setup
#
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
#
# RCU Subsystem
#
CONFIG_TREE_RCU=y
# CONFIG_TREE_PREEMPT_RCU is not set
# CONFIG_TINY_RCU is not set
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=64
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_IKCONFIG=y
# CONFIG_IKCONFIG_PROC is not set
CONFIG_LOG_BUF_SHIFT=18
# CONFIG_CGROUPS is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
CONFIG_RELAY=y
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_IPC_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_NET_NS is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
CONFIG_PERF_COUNTERS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_SYSCALL_WRAPPERS=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_HAVE_DMA_API_DEBUG=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not set
# CONFIG_SLOW_WORK is not set
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
CONFIG_BLOCK_COMPAT=y
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_DEADLINE is not set
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
# CONFIG_INLINE_SPIN_TRYLOCK is not set
# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK is not set
# CONFIG_INLINE_SPIN_LOCK_BH is not set
# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
# CONFIG_INLINE_SPIN_UNLOCK is not set
# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_READ_TRYLOCK is not set
# CONFIG_INLINE_READ_LOCK is not set
# CONFIG_INLINE_READ_LOCK_BH is not set
# CONFIG_INLINE_READ_LOCK_IRQ is not set
# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
# CONFIG_INLINE_READ_UNLOCK is not set
# CONFIG_INLINE_READ_UNLOCK_BH is not set
# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
# CONFIG_INLINE_WRITE_TRYLOCK is not set
# CONFIG_INLINE_WRITE_LOCK is not set
# CONFIG_INLINE_WRITE_LOCK_BH is not set
# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
# CONFIG_INLINE_WRITE_UNLOCK is not set
# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
# CONFIG_MUTEX_SPIN_ON_OWNER is not set
# CONFIG_FREEZER is not set
#
# Processor type and features
#
CONFIG_SMP=y
CONFIG_NR_CPUS=64
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
CONFIG_HZ_300=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=300
CONFIG_SCHED_HRTICK=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_SPARC64_SMP=y
CONFIG_EARLYFB=y
CONFIG_SPARC64_PAGE_SIZE_8KB=y
# CONFIG_SPARC64_PAGE_SIZE_64KB is not set
# CONFIG_SECCOMP is not set
CONFIG_HOTPLUG_CPU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_CPU_FREQ is not set
CONFIG_US3_MC=y
CONFIG_GENERIC_LOCKBREAK=y
CONFIG_HUGETLB_PAGE_SIZE_4MB=y
# CONFIG_HUGETLB_PAGE_SIZE_512K is not set
# CONFIG_HUGETLB_PAGE_SIZE_64K is not set
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=4
CONFIG_NODES_SPAN_OTHER_NODES=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=999999
CONFIG_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=0
CONFIG_NR_QUICK=1
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=8192
CONFIG_SCHED_SMT=y
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
# CONFIG_CMDLINE_BOOL is not set
#
# Bus options (PCI etc.)
#
CONFIG_SBUS=y
CONFIG_SBUSCHAR=y
CONFIG_SUN_LDOMS=y
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_IOV is not set
# CONFIG_PCCARD is not set
CONFIG_SUN_OPENPROMFS=m
CONFIG_SPARC64_PCI=y
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
CONFIG_XFRM_MIGRATE=y
# CONFIG_XFRM_STATISTICS is not set
CONFIG_XFRM_IPCOMP=m
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
CONFIG_ARPD=y
CONFIG_SYN_COOKIES=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=m
CONFIG_INET_XFRM_MODE_TUNNEL=m
CONFIG_INET_XFRM_MODE_BEET=m
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_DROP_MONITOR is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_WIRELESS is not set
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
# CONFIG_DEVTMPFS is not set
CONFIG_STANDALONE=y
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
CONFIG_CONNECTOR=m
# CONFIG_MTD is not set
CONFIG_OF_DEVICE=y
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_SUNVDC=m
# CONFIG_BLK_DEV_HD is not set
CONFIG_MISC_DEVICES=y
# CONFIG_AD525X_DPOT is not set
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ICS932S401 is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_ISL29003 is not set
# CONFIG_SENSORS_TSL2550 is not set
# CONFIG_DS1682 is not set
# CONFIG_C2PORT is not set
#
# EEPROM support
#
# CONFIG_EEPROM_AT24 is not set
# CONFIG_EEPROM_LEGACY is not set
# CONFIG_EEPROM_MAX6875 is not set
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_CB710_CORE is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
CONFIG_SCSI_NETLINK=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=m
# CONFIG_CHR_DEV_SCH is not set
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_ISCSI_ATTRS is not set
CONFIG_SCSI_SAS_ATTRS=y
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
CONFIG_SCSI_LOWLEVEL=y
# CONFIG_ISCSI_TCP is not set
# CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_BE2ISCSI is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_HPSA is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_MPT2SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_LIBFC is not set
# CONFIG_LIBFCOE is not set
# CONFIG_FCOE is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLOGICPTI is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SUNESP is not set
# CONFIG_SCSI_PMCRAID is not set
# CONFIG_SCSI_PM8001 is not set
# CONFIG_SCSI_SRP is not set
# CONFIG_SCSI_BFA_FC is not set
# CONFIG_SCSI_DH is not set
# CONFIG_SCSI_OSD_INITIATOR is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
CONFIG_FUSION=y
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_FC is not set
CONFIG_FUSION_SAS=y
CONFIG_FUSION_MAX_SGE=128
CONFIG_FUSION_CTL=m
# CONFIG_FUSION_LOGGING is not set
#
# IEEE 1394 (FireWire) support
#
#
# You can enable one or both FireWire driver stacks.
#
#
# The newer stack is recommended.
#
# CONFIG_FIREWIRE is not set
# CONFIG_IEEE1394 is not set
# CONFIG_I2O is not set
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_MACVLAN is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_ARCNET is not set
# CONFIG_NET_ETHERNET is not set
CONFIG_NETDEV_1000=y
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
CONFIG_E1000E=m
# CONFIG_IP1000 is not set
# CONFIG_IGB is not set
# CONFIG_IGBVF is not set
# CONFIG_MYRI_SBUS is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_CNIC is not set
# CONFIG_QLA3XXX is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
# CONFIG_ATL1C is not set
# CONFIG_JME is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set
# CONFIG_WLAN is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set
# CONFIG_PHONE is not set
#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_ADP5588 is not set
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_QT2160 is not set
CONFIG_KEYBOARD_LKKBD=m
# CONFIG_KEYBOARD_MAX7359 is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_KEYBOARD_SUNKBD=y
# CONFIG_KEYBOARD_XTKBD is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_ELANTECH is not set
# CONFIG_MOUSE_PS2_SENTELIC is not set
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
CONFIG_MOUSE_SERIAL=y
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_BCM5974 is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_MOUSE_SYNAPTICS_I2C is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
CONFIG_INPUT_MISC=y
CONFIG_INPUT_SPARCSPKR=y
# CONFIG_INPUT_ATI_REMOTE is not set
# CONFIG_INPUT_ATI_REMOTE2 is not set
# CONFIG_INPUT_KEYSPAN_REMOTE is not set
# CONFIG_INPUT_POWERMATE is not set
# CONFIG_INPUT_YEALINK is not set
# CONFIG_INPUT_CM109 is not set
# CONFIG_INPUT_UINPUT is not set
#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
CONFIG_SERIO_PCIPS2=m
CONFIG_SERIO_LIBPS2=y
CONFIG_SERIO_RAW=m
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_DEVKMEM is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_SUNCORE=y
# CONFIG_SERIAL_SUNZILOG is not set
CONFIG_SERIAL_SUNSU=y
CONFIG_SERIAL_SUNSU_CONSOLE=y
CONFIG_SERIAL_SUNSAB=y
CONFIG_SERIAL_SUNSAB_CONSOLE=y
CONFIG_SERIAL_SUNHV=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=m
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HW_RANDOM_N2RNG=m
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
CONFIG_RAW_DRIVER=y
CONFIG_MAX_RAW_DEVS=256
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
# CONFIG_I2C_CHARDEV is not set
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
#
# 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 set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_SIMTEC is not set
# CONFIG_I2C_XILINX is not set
#
# External I2C/SMBus adapter drivers
#
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_TAOS_EVM is not set
# CONFIG_I2C_TINY_USB is not set
#
# Other I2C/SMBus bus drivers
#
# CONFIG_I2C_PCA_PLATFORM is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_SPI is not set
#
# PPS support
#
# CONFIG_PPS is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_PMIC_DA903X is not set
# CONFIG_PMIC_ADP5520 is not set
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_WM8400 is not set
# CONFIG_MFD_WM831X is not set
# CONFIG_MFD_WM8350_I2C is not set
# CONFIG_MFD_WM8994 is not set
# CONFIG_MFD_PCF50633 is not set
# CONFIG_AB3100_CORE is not set
# CONFIG_LPC_SCH is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
CONFIG_FB_DDC=y
# CONFIG_FB_BOOT_VESA_SUPPORT is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
#
# Frame buffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_UVESA is not set
# CONFIG_FB_SBUS is not set
# CONFIG_FB_XVR500 is not set
# CONFIG_FB_XVR2500 is not set
# CONFIG_FB_XVR1000 is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
# CONFIG_FB_MATROX is not set
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_BACKLIGHT is not set
# CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_FB_ATY128 is not set
CONFIG_FB_ATY=y
CONFIG_FB_ATY_CT=y
# CONFIG_FB_ATY_GENERIC_LCD is not set
CONFIG_FB_ATY_GX=y
# CONFIG_FB_ATY_BACKLIGHT is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_VIA is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
#
# Console display driver support
#
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
# CONFIG_FONT_8x16 is not set
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
CONFIG_FONT_SUN8x16=y
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set
CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_MONO is not set
# CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set
CONFIG_LOGO_SUN_CLUT224=y
# CONFIG_SOUND is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
# CONFIG_HIDRAW is not set
#
# USB Input Devices
#
CONFIG_USB_HID=m
# CONFIG_HID_PID is not set
CONFIG_USB_HIDDEV=y
#
# Special HID drivers
#
# CONFIG_HID_3M_PCT is not set
CONFIG_HID_A4TECH=m
CONFIG_HID_APPLE=m
CONFIG_HID_BELKIN=m
CONFIG_HID_CHERRY=m
CONFIG_HID_CHICONY=m
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
# CONFIG_DRAGONRISE_FF is not set
CONFIG_HID_EZKEY=m
CONFIG_HID_KYE=m
CONFIG_HID_GYRATION=m
CONFIG_HID_TWINHAN=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LOGITECH=m
# CONFIG_LOGITECH_FF is not set
# CONFIG_LOGIRUMBLEPAD2_FF is not set
# CONFIG_LOGIG940_FF is not set
CONFIG_HID_MICROSOFT=m
# CONFIG_HID_MOSART is not set
CONFIG_HID_MONTEREY=m
CONFIG_HID_NTRIG=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
# CONFIG_PANTHERLORD_FF is not set
CONFIG_HID_PETALYNX=m
# CONFIG_HID_QUANTA is not set
CONFIG_HID_SAMSUNG=m
CONFIG_HID_SONY=m
# CONFIG_HID_STANTUM is not set
CONFIG_HID_SUNPLUS=m
CONFIG_HID_GREENASIA=m
# CONFIG_GREENASIA_FF is not set
CONFIG_HID_SMARTJOYPLUS=m
# CONFIG_SMARTJOYPLUS_FF is not set
CONFIG_HID_TOPSEED=m
CONFIG_HID_THRUSTMASTER=m
# CONFIG_THRUSTMASTER_FF is not set
CONFIG_HID_ZEROPLUS=m
# CONFIG_ZEROPLUS_FF is not set
CONFIG_USB_SUPPORT=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
#
# Miscellaneous USB options
#
# CONFIG_USB_DEVICEFS is not set
# CONFIG_USB_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_OTG is not set
# CONFIG_USB_MON is not set
# CONFIG_USB_WUSB is not set
# CONFIG_USB_WUSB_CBAF is not set
#
# USB Host Controller Drivers
#
# CONFIG_USB_C67X00_HCD is not set
# CONFIG_USB_XHCI_HCD is not set
CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
# CONFIG_USB_ISP1362_HCD is not set
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_UHCI_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_WHCI_HCD is not set
# CONFIG_USB_HWA_HCD is not set
#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_WDM is not set
# CONFIG_USB_TMC is not set
#
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
#
#
# also be needed; see USB_STORAGE Help for more info
#
CONFIG_USB_STORAGE=m
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_STORAGE_DATAFAB is not set
# CONFIG_USB_STORAGE_FREECOM is not set
# CONFIG_USB_STORAGE_ISD200 is not set
# CONFIG_USB_STORAGE_USBAT is not set
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_LIBUSUAL is not set
#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
#
# USB port drivers
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_SEVSEG is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set
# CONFIG_USB_ISIGHTFW is not set
# CONFIG_USB_GADGET is not set
#
# OTG and related infrastructure
#
# CONFIG_NOP_USB_XCEIV is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
#
# RTC interfaces
#
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_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 is not set
# CONFIG_RTC_DRV_DS1374 is not set
# CONFIG_RTC_DRV_DS1672 is not set
# CONFIG_RTC_DRV_MAX6900 is not set
# CONFIG_RTC_DRV_RS5C372 is not set
# CONFIG_RTC_DRV_ISL1208 is not set
# CONFIG_RTC_DRV_X1205 is not set
# CONFIG_RTC_DRV_PCF8563 is not set
# CONFIG_RTC_DRV_PCF8583 is not set
# CONFIG_RTC_DRV_M41T80 is not set
# CONFIG_RTC_DRV_BQ32K is not set
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
#
# SPI RTC drivers
#
#
# Platform RTC drivers
#
CONFIG_RTC_DRV_CMOS=y
# CONFIG_RTC_DRV_DS1286 is not set
# CONFIG_RTC_DRV_DS1511 is not set
# CONFIG_RTC_DRV_DS1553 is not set
# CONFIG_RTC_DRV_DS1742 is not set
# CONFIG_RTC_DRV_STK17TA8 is not set
# CONFIG_RTC_DRV_M48T86 is not set
# CONFIG_RTC_DRV_M48T35 is not set
CONFIG_RTC_DRV_M48T59=y
# CONFIG_RTC_DRV_MSM6242 is not set
CONFIG_RTC_DRV_BQ4802=y
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set
#
# on-CPU RTC drivers
#
CONFIG_RTC_DRV_SUN4V=y
CONFIG_RTC_DRV_STARFIRE=y
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
#
# TI VLYNQ
#
# CONFIG_STAGING is not set
#
# Misc Linux/SPARC drivers
#
CONFIG_SUN_OPENPROMIO=y
# CONFIG_OBP_FLASH is not set
# CONFIG_TADPOLE_TS102_UCTRL is not set
# CONFIG_BBC_I2C is not set
# CONFIG_ENVCTRL is not set
# CONFIG_DISPLAY7SEG is not set
#
# File systems
#
# CONFIG_EXT2_FS is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
# CONFIG_EXT3_FS_XATTR is not set
# CONFIG_EXT4_FS is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# Caches
#
# CONFIG_FSCACHE is not set
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
# CONFIG_JOLIET is not set
# CONFIG_ZISOFS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_CONFIGFS_FS=y
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_LOGFS is not set
# CONFIG_CRAMFS is not set
# CONFIG_SQUASHFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_OMFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
CONFIG_UFS_FS=m
CONFIG_UFS_FS_WRITE=y
# CONFIG_UFS_DEBUG is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
#
# Partition Types
#
CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not set
# CONFIG_MAC_PARTITION is not set
CONFIG_MSDOS_PARTITION=y
# CONFIG_BSD_DISKLABEL is not set
# CONFIG_MINIX_SUBPARTITION is not set
# CONFIG_SOLARIS_X86_PARTITION is not set
# CONFIG_UNIXWARE_DISKLABEL is not set
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
CONFIG_SUN_PARTITION=y
# CONFIG_KARMA_PARTITION is not set
# CONFIG_EFI_PARTITION is not set
# CONFIG_SYSV68_PARTITION is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=m
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
CONFIG_NLS_CODEPAGE_865=m
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=m
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=m
# CONFIG_DLM is not set
#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
# CONFIG_ENABLE_WARN_DEPRECATED is not set
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_FRAME_WARN=2048
CONFIG_MAGIC_SYSRQ=y
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
CONFIG_SCHEDSTATS=y
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KMEMLEAK is not set
CONFIG_DEBUG_PREEMPT=y
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_MUTEXES=y
CONFIG_DEBUG_LOCK_ALLOC=y
CONFIG_PROVE_LOCKING=y
CONFIG_PROVE_RCU=y
CONFIG_LOCKDEP=y
CONFIG_LOCK_STAT=y
# CONFIG_DEBUG_LOCKDEP is not set
CONFIG_TRACE_IRQFLAGS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
CONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_DETECTOR=y
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
# CONFIG_SYSCTL_SYSCALL_CHECK is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_RING_BUFFER=y
CONFIG_EVENT_TRACING=y
CONFIG_CONTEXT_SWITCH_TRACER=y
CONFIG_TRACING=y
CONFIG_GENERIC_TRACER=y
CONFIG_TRACING_SUPPORT=y
CONFIG_FTRACE=y
CONFIG_FUNCTION_TRACER=y
CONFIG_FUNCTION_GRAPH_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_SCHED_TRACER is not set
CONFIG_FTRACE_SYSCALLS=y
# CONFIG_BOOT_TRACER is not set
CONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_KMEMTRACE is not set
# CONFIG_WORKQUEUE_TRACER is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
CONFIG_DYNAMIC_FTRACE=y
# CONFIG_FUNCTION_PROFILER is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_DYNAMIC_DEBUG is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_DCFLUSH is not set
CONFIG_MCOUNT=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
# CONFIG_DEFAULT_SECURITY_SELINUX is not set
# CONFIG_DEFAULT_SECURITY_SMACK is not set
# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y
#
# Crypto core or helper
#
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_NULL=m
# CONFIG_CRYPTO_PCRYPT is not set
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=y
CONFIG_CRYPTO_TEST=m
#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set
#
# Block modes
#
CONFIG_CRYPTO_CBC=y
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XTS=m
#
# Hash modes
#
CONFIG_CRYPTO_HMAC=y
CONFIG_CRYPTO_XCBC=y
# CONFIG_CRYPTO_VMAC is not set
#
# Digest
#
CONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_GHASH is not set
CONFIG_CRYPTO_MD4=y
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_WP512=m
#
# Ciphers
#
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=y
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
# CONFIG_CRYPTO_SALSA20 is not set
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
#
# Compression
#
CONFIG_CRYPTO_DEFLATE=y
# CONFIG_CRYPTO_ZLIB is not set
# CONFIG_CRYPTO_LZO is not set
#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
CONFIG_BINARY_PRINTF=y
#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_CRC_CCITT=m
CONFIG_CRC16=m
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAVE_LMB=y
CONFIG_NLATTR=y
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: Weird rcu lockdep warning 2010-04-13 20:04 Weird rcu lockdep warning Frederic Weisbecker @ 2010-04-13 23:40 ` Paul E. McKenney 2010-04-14 0:02 ` Frederic Weisbecker 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2010-04-13 23:40 UTC (permalink / raw) To: Frederic Weisbecker Cc: David Miller, Peter Zijlstra, Ingo Molnar, SparcLinux, LKML On Tue, Apr 13, 2010 at 10:04:36PM +0200, Frederic Weisbecker wrote: > Hi, > > I just ran the following on -rc4 with the latest pending sparc pull > request manually merged (no -tip bits): > > perf record -a -f -g sleep 5 > > And I got this warning: > > > [ 2235.846071] =================================================== > [ 2235.857419] [ INFO: suspicious rcu_dereference_check() usage. ] > [ 2235.863127] --------------------------------------------------- > [ 2235.868734] kernel/perf_event.c:2232 invoked rcu_dereference_check() without protection! > [ 2235.879843] > [ 2235.879848] other info that might help us debug this: > [ 2235.879855] > [ 2235.895659] > [ 2235.895663] rcu_scheduler_active = 1, debug_locks = 0 > [ 2235.905505] 1 lock held by swapper/0: > [ 2235.910333] #0: (&ctx->lock){-.....}, at: [<00000000004d9e00>] __perf_event_enable+0x60/0x1e8 As far as lockdep is concerned, we are not in an RCU read-side critical section. > [ 2235.920434] stack backtrace: > [ 2235.929691] Call Trace: > [ 2235.934143] [000000000049fca0] lockdep_rcu_dereference+0x88/0x98 > [ 2235.938700] [00000000004d9304] perf_event_update_userpage+0x74/0x16c > [ 2235.943221] [000000000044c148] sparc_perf_event_set_period+0xb4/0xc4 > [ 2235.947593] [000000000044c238] perf_event_nmi_handler+0xe0/0x190 > [ 2235.951801] [0000000000494924] notifier_call_chain+0x2c/0x84 > [ 2235.956112] [0000000000495008] __atomic_notifier_call_chain+0x54/0x9c > [ 2235.960493] [0000000000495070] atomic_notifier_call_chain+0x20/0x34 > [ 2235.964830] [00000000004950a8] notify_die+0x24/0x38 > [ 2235.969175] [000000000043a650] perfctr_irq+0xa4/0x3f4 > [ 2235.973493] [00000000004209f4] tl0_irq15+0x14/0x20 > [ 2235.977744] [0000000000406920] sun4v_niagara2_setperf+0x8/0x28 > [ 2235.982265] [000000000044c448] hw_perf_enable+0x160/0x170 > [ 2235.986494] [00000000004d89b4] perf_enable+0x3c/0x4c > [ 2235.990513] [00000000004d9f2c] __perf_event_enable+0x18c/0x1e8 > [ 2235.994665] [00000000004aad5c] generic_smp_call_function_single_interrupt+0x114/0x16c > [ 2236.002975] [0000000000764770] smp_call_function_single_client+0x20/0x30 > > > This is weird as everything looks fine there, it seems we have > a well matching rcu_read_lock/rcu_dereference couple: > > void perf_event_update_userpage(struct perf_event *event) > { > struct perf_event_mmap_page *userpg; > struct perf_mmap_data *data; > > rcu_read_lock(); > data = rcu_dereference(event->data); > if (!data) > goto unlock; > > userpg = data->user_page; > [...] Very strange indeed. One question -- is it possible that your kernel does not match your source code? I freely admit that it is extremely unlikely that such a mismatch would happen to land on an rcu_dereference(), but... Another unlikely possibility is that an interrupt occurred between the rcu_read_lock() and the rcu_dereference(), and that this interrupt had an extra unmatched rcu_read_unlock(). > I've attached the config in case someone has an idea. Color me confused!!! Thanx, Paul > Thanks. > # > # Automatically generated make config: don't edit > # Linux kernel version: 2.6.34-rc4 > # Tue Apr 13 20:18:15 2010 > # > CONFIG_64BIT=y > CONFIG_SPARC=y > # CONFIG_SPARC32 is not set > CONFIG_SPARC64=y > CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig" > CONFIG_BITS=64 > CONFIG_GENERIC_TIME=y > CONFIG_GENERIC_CMOS_UPDATE=y > CONFIG_GENERIC_CLOCKEVENTS=y > CONFIG_IOMMU_HELPER=y > CONFIG_QUICKLIST=y > CONFIG_STACKTRACE_SUPPORT=y > CONFIG_LOCKDEP_SUPPORT=y > CONFIG_HAVE_LATENCYTOP_SUPPORT=y > CONFIG_AUDIT_ARCH=y > CONFIG_HAVE_SETUP_PER_CPU_AREA=y > CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y > CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y > CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y > CONFIG_MMU=y > CONFIG_NEED_DMA_MAP_STATE=y > CONFIG_ARCH_NO_VIRT_TO_BUS=y > CONFIG_OF=y > CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y > CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" > CONFIG_CONSTRUCTORS=y > > # > # General setup > # > CONFIG_EXPERIMENTAL=y > CONFIG_LOCK_KERNEL=y > CONFIG_INIT_ENV_ARG_LIMIT=32 > CONFIG_LOCALVERSION="" > # CONFIG_LOCALVERSION_AUTO is not set > CONFIG_SWAP=y > CONFIG_SYSVIPC=y > CONFIG_SYSVIPC_SYSCTL=y > CONFIG_POSIX_MQUEUE=y > CONFIG_POSIX_MQUEUE_SYSCTL=y > # CONFIG_BSD_PROCESS_ACCT is not set > # CONFIG_TASKSTATS is not set > # CONFIG_AUDIT is not set > > # > # RCU Subsystem > # > CONFIG_TREE_RCU=y > # CONFIG_TREE_PREEMPT_RCU is not set > # CONFIG_TINY_RCU is not set > # CONFIG_RCU_TRACE is not set > CONFIG_RCU_FANOUT=64 > # CONFIG_RCU_FANOUT_EXACT is not set > # CONFIG_RCU_FAST_NO_HZ is not set > # CONFIG_TREE_RCU_TRACE is not set > CONFIG_IKCONFIG=y > # CONFIG_IKCONFIG_PROC is not set > CONFIG_LOG_BUF_SHIFT=18 > # CONFIG_CGROUPS is not set > CONFIG_SYSFS_DEPRECATED=y > CONFIG_SYSFS_DEPRECATED_V2=y > CONFIG_RELAY=y > CONFIG_NAMESPACES=y > # CONFIG_UTS_NS is not set > # CONFIG_IPC_NS is not set > # CONFIG_USER_NS is not set > # CONFIG_PID_NS is not set > # CONFIG_NET_NS is not set > # CONFIG_BLK_DEV_INITRD is not set > CONFIG_CC_OPTIMIZE_FOR_SIZE=y > CONFIG_SYSCTL=y > CONFIG_ANON_INODES=y > # CONFIG_EMBEDDED is not set > CONFIG_UID16=y > CONFIG_SYSCTL_SYSCALL=y > CONFIG_KALLSYMS=y > CONFIG_KALLSYMS_ALL=y > # CONFIG_KALLSYMS_EXTRA_PASS is not set > CONFIG_HOTPLUG=y > CONFIG_PRINTK=y > CONFIG_BUG=y > CONFIG_ELF_CORE=y > CONFIG_BASE_FULL=y > CONFIG_FUTEX=y > CONFIG_EPOLL=y > CONFIG_SIGNALFD=y > CONFIG_TIMERFD=y > CONFIG_EVENTFD=y > CONFIG_SHMEM=y > CONFIG_AIO=y > CONFIG_HAVE_PERF_EVENTS=y > CONFIG_PERF_USE_VMALLOC=y > > # > # Kernel Performance Events And Counters > # > CONFIG_PERF_EVENTS=y > CONFIG_PERF_COUNTERS=y > # CONFIG_DEBUG_PERF_USE_VMALLOC is not set > CONFIG_VM_EVENT_COUNTERS=y > CONFIG_PCI_QUIRKS=y > # CONFIG_COMPAT_BRK is not set > CONFIG_SLAB=y > # CONFIG_SLUB is not set > # CONFIG_SLOB is not set > # CONFIG_PROFILING is not set > CONFIG_TRACEPOINTS=y > CONFIG_HAVE_OPROFILE=y > # CONFIG_KPROBES is not set > CONFIG_HAVE_SYSCALL_WRAPPERS=y > CONFIG_HAVE_KPROBES=y > CONFIG_HAVE_KRETPROBES=y > CONFIG_HAVE_ARCH_TRACEHOOK=y > CONFIG_HAVE_DMA_ATTRS=y > CONFIG_USE_GENERIC_SMP_HELPERS=y > CONFIG_HAVE_DMA_API_DEBUG=y > > # > # GCOV-based kernel profiling > # > # CONFIG_GCOV_KERNEL is not set > # CONFIG_SLOW_WORK is not set > # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set > CONFIG_SLABINFO=y > CONFIG_RT_MUTEXES=y > CONFIG_BASE_SMALL=0 > CONFIG_MODULES=y > # CONFIG_MODULE_FORCE_LOAD is not set > CONFIG_MODULE_UNLOAD=y > CONFIG_MODULE_FORCE_UNLOAD=y > CONFIG_MODVERSIONS=y > CONFIG_MODULE_SRCVERSION_ALL=y > CONFIG_STOP_MACHINE=y > CONFIG_BLOCK=y > # CONFIG_BLK_DEV_BSG is not set > # CONFIG_BLK_DEV_INTEGRITY is not set > CONFIG_BLOCK_COMPAT=y > > # > # IO Schedulers > # > CONFIG_IOSCHED_NOOP=y > # CONFIG_IOSCHED_DEADLINE is not set > CONFIG_IOSCHED_CFQ=y > # CONFIG_DEFAULT_DEADLINE is not set > CONFIG_DEFAULT_CFQ=y > # CONFIG_DEFAULT_NOOP is not set > CONFIG_DEFAULT_IOSCHED="cfq" > # CONFIG_INLINE_SPIN_TRYLOCK is not set > # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set > # CONFIG_INLINE_SPIN_LOCK is not set > # CONFIG_INLINE_SPIN_LOCK_BH is not set > # CONFIG_INLINE_SPIN_LOCK_IRQ is not set > # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set > # CONFIG_INLINE_SPIN_UNLOCK is not set > # CONFIG_INLINE_SPIN_UNLOCK_BH is not set > # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set > # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set > # CONFIG_INLINE_READ_TRYLOCK is not set > # CONFIG_INLINE_READ_LOCK is not set > # CONFIG_INLINE_READ_LOCK_BH is not set > # CONFIG_INLINE_READ_LOCK_IRQ is not set > # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set > # CONFIG_INLINE_READ_UNLOCK is not set > # CONFIG_INLINE_READ_UNLOCK_BH is not set > # CONFIG_INLINE_READ_UNLOCK_IRQ is not set > # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set > # CONFIG_INLINE_WRITE_TRYLOCK is not set > # CONFIG_INLINE_WRITE_LOCK is not set > # CONFIG_INLINE_WRITE_LOCK_BH is not set > # CONFIG_INLINE_WRITE_LOCK_IRQ is not set > # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set > # CONFIG_INLINE_WRITE_UNLOCK is not set > # CONFIG_INLINE_WRITE_UNLOCK_BH is not set > # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set > # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set > # CONFIG_MUTEX_SPIN_ON_OWNER is not set > # CONFIG_FREEZER is not set > > # > # Processor type and features > # > CONFIG_SMP=y > CONFIG_NR_CPUS=64 > # CONFIG_HZ_100 is not set > # CONFIG_HZ_250 is not set > CONFIG_HZ_300=y > # CONFIG_HZ_1000 is not set > CONFIG_HZ=300 > CONFIG_SCHED_HRTICK=y > CONFIG_RWSEM_XCHGADD_ALGORITHM=y > CONFIG_GENERIC_FIND_NEXT_BIT=y > CONFIG_GENERIC_HWEIGHT=y > CONFIG_GENERIC_CALIBRATE_DELAY=y > CONFIG_ARCH_MAY_HAVE_PC_FDC=y > CONFIG_SPARC64_SMP=y > CONFIG_EARLYFB=y > CONFIG_SPARC64_PAGE_SIZE_8KB=y > # CONFIG_SPARC64_PAGE_SIZE_64KB is not set > # CONFIG_SECCOMP is not set > CONFIG_HOTPLUG_CPU=y > CONFIG_GENERIC_HARDIRQS=y > CONFIG_TICK_ONESHOT=y > CONFIG_NO_HZ=y > CONFIG_HIGH_RES_TIMERS=y > CONFIG_GENERIC_CLOCKEVENTS_BUILD=y > # CONFIG_CPU_FREQ is not set > CONFIG_US3_MC=y > CONFIG_GENERIC_LOCKBREAK=y > CONFIG_HUGETLB_PAGE_SIZE_4MB=y > # CONFIG_HUGETLB_PAGE_SIZE_512K is not set > # CONFIG_HUGETLB_PAGE_SIZE_64K is not set > CONFIG_NUMA=y > CONFIG_NODES_SHIFT=4 > CONFIG_NODES_SPAN_OTHER_NODES=y > CONFIG_ARCH_POPULATES_NODE_MAP=y > CONFIG_ARCH_SELECT_MEMORY_MODEL=y > CONFIG_ARCH_SPARSEMEM_ENABLE=y > CONFIG_ARCH_SPARSEMEM_DEFAULT=y > CONFIG_SELECT_MEMORY_MODEL=y > # CONFIG_FLATMEM_MANUAL is not set > # CONFIG_DISCONTIGMEM_MANUAL is not set > CONFIG_SPARSEMEM_MANUAL=y > CONFIG_SPARSEMEM=y > CONFIG_NEED_MULTIPLE_NODES=y > CONFIG_HAVE_MEMORY_PRESENT=y > CONFIG_SPARSEMEM_EXTREME=y > CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y > CONFIG_SPARSEMEM_VMEMMAP=y > CONFIG_PAGEFLAGS_EXTENDED=y > CONFIG_SPLIT_PTLOCK_CPUS=999999 > CONFIG_MIGRATION=y > CONFIG_PHYS_ADDR_T_64BIT=y > CONFIG_ZONE_DMA_FLAG=0 > CONFIG_NR_QUICK=1 > # CONFIG_KSM is not set > CONFIG_DEFAULT_MMAP_MIN_ADDR=8192 > CONFIG_SCHED_SMT=y > CONFIG_SCHED_MC=y > # CONFIG_PREEMPT_NONE is not set > # CONFIG_PREEMPT_VOLUNTARY is not set > CONFIG_PREEMPT=y > # CONFIG_CMDLINE_BOOL is not set > > # > # Bus options (PCI etc.) > # > CONFIG_SBUS=y > CONFIG_SBUSCHAR=y > CONFIG_SUN_LDOMS=y > CONFIG_PCI=y > CONFIG_PCI_DOMAINS=y > CONFIG_PCI_SYSCALL=y > CONFIG_ARCH_SUPPORTS_MSI=y > CONFIG_PCI_MSI=y > # CONFIG_PCI_DEBUG is not set > # CONFIG_PCI_STUB is not set > # CONFIG_PCI_IOV is not set > # CONFIG_PCCARD is not set > CONFIG_SUN_OPENPROMFS=m > CONFIG_SPARC64_PCI=y > > # > # Executable file formats > # > CONFIG_BINFMT_ELF=y > CONFIG_COMPAT_BINFMT_ELF=y > # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set > # CONFIG_HAVE_AOUT is not set > # CONFIG_BINFMT_MISC is not set > CONFIG_COMPAT=y > CONFIG_SYSVIPC_COMPAT=y > CONFIG_NET=y > > # > # Networking options > # > CONFIG_PACKET=y > CONFIG_UNIX=y > CONFIG_XFRM=y > CONFIG_XFRM_USER=m > # CONFIG_XFRM_SUB_POLICY is not set > CONFIG_XFRM_MIGRATE=y > # CONFIG_XFRM_STATISTICS is not set > CONFIG_XFRM_IPCOMP=m > # CONFIG_NET_KEY is not set > CONFIG_INET=y > CONFIG_IP_MULTICAST=y > # CONFIG_IP_ADVANCED_ROUTER is not set > CONFIG_IP_FIB_HASH=y > # CONFIG_IP_PNP is not set > # CONFIG_NET_IPIP is not set > # CONFIG_NET_IPGRE is not set > # CONFIG_IP_MROUTE is not set > CONFIG_ARPD=y > CONFIG_SYN_COOKIES=y > CONFIG_INET_AH=m > CONFIG_INET_ESP=m > CONFIG_INET_IPCOMP=m > CONFIG_INET_XFRM_TUNNEL=m > CONFIG_INET_TUNNEL=m > CONFIG_INET_XFRM_MODE_TRANSPORT=m > CONFIG_INET_XFRM_MODE_TUNNEL=m > CONFIG_INET_XFRM_MODE_BEET=m > CONFIG_INET_LRO=y > CONFIG_INET_DIAG=m > CONFIG_INET_TCP_DIAG=m > # CONFIG_TCP_CONG_ADVANCED is not set > CONFIG_TCP_CONG_CUBIC=y > CONFIG_DEFAULT_TCP_CONG="cubic" > # CONFIG_TCP_MD5SIG is not set > # CONFIG_IPV6 is not set > # CONFIG_NETWORK_SECMARK is not set > # CONFIG_NETFILTER is not set > # CONFIG_IP_DCCP is not set > # CONFIG_IP_SCTP is not set > # CONFIG_RDS is not set > # CONFIG_TIPC is not set > # CONFIG_ATM is not set > # CONFIG_BRIDGE is not set > # CONFIG_NET_DSA is not set > # CONFIG_VLAN_8021Q is not set > # CONFIG_DECNET is not set > # CONFIG_LLC2 is not set > # CONFIG_IPX is not set > # CONFIG_ATALK is not set > # CONFIG_X25 is not set > # CONFIG_LAPB is not set > # CONFIG_ECONET is not set > # CONFIG_WAN_ROUTER is not set > # CONFIG_PHONET is not set > # CONFIG_IEEE802154 is not set > # CONFIG_NET_SCHED is not set > # CONFIG_DCB is not set > > # > # Network testing > # > # CONFIG_NET_PKTGEN is not set > # CONFIG_NET_DROP_MONITOR is not set > # CONFIG_HAMRADIO is not set > # CONFIG_CAN is not set > # CONFIG_IRDA is not set > # CONFIG_BT is not set > # CONFIG_AF_RXRPC is not set > # CONFIG_WIRELESS is not set > # CONFIG_WIMAX is not set > # CONFIG_RFKILL is not set > # CONFIG_NET_9P is not set > > # > # Device Drivers > # > > # > # Generic Driver Options > # > CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" > # CONFIG_DEVTMPFS is not set > CONFIG_STANDALONE=y > # CONFIG_PREVENT_FIRMWARE_BUILD is not set > CONFIG_FW_LOADER=y > CONFIG_FIRMWARE_IN_KERNEL=y > CONFIG_EXTRA_FIRMWARE="" > # CONFIG_DEBUG_DRIVER is not set > # CONFIG_DEBUG_DEVRES is not set > # CONFIG_SYS_HYPERVISOR is not set > CONFIG_CONNECTOR=m > # CONFIG_MTD is not set > CONFIG_OF_DEVICE=y > # CONFIG_PARPORT is not set > CONFIG_BLK_DEV=y > # CONFIG_BLK_DEV_FD is not set > # CONFIG_BLK_CPQ_CISS_DA is not set > # CONFIG_BLK_DEV_DAC960 is not set > # CONFIG_BLK_DEV_UMEM is not set > # CONFIG_BLK_DEV_COW_COMMON is not set > CONFIG_BLK_DEV_LOOP=m > # CONFIG_BLK_DEV_CRYPTOLOOP is not set > # CONFIG_BLK_DEV_DRBD is not set > # CONFIG_BLK_DEV_NBD is not set > # CONFIG_BLK_DEV_SX8 is not set > # CONFIG_BLK_DEV_UB is not set > # CONFIG_BLK_DEV_RAM is not set > # CONFIG_CDROM_PKTCDVD is not set > # CONFIG_ATA_OVER_ETH is not set > CONFIG_SUNVDC=m > # CONFIG_BLK_DEV_HD is not set > CONFIG_MISC_DEVICES=y > # CONFIG_AD525X_DPOT is not set > # CONFIG_PHANTOM is not set > # CONFIG_SGI_IOC4 is not set > # CONFIG_TIFM_CORE is not set > # CONFIG_ICS932S401 is not set > # CONFIG_ENCLOSURE_SERVICES is not set > # CONFIG_HP_ILO is not set > # CONFIG_ISL29003 is not set > # CONFIG_SENSORS_TSL2550 is not set > # CONFIG_DS1682 is not set > # CONFIG_C2PORT is not set > > # > # EEPROM support > # > # CONFIG_EEPROM_AT24 is not set > # CONFIG_EEPROM_LEGACY is not set > # CONFIG_EEPROM_MAX6875 is not set > # CONFIG_EEPROM_93CX6 is not set > # CONFIG_CB710_CORE is not set > CONFIG_HAVE_IDE=y > # CONFIG_IDE is not set > > # > # SCSI device support > # > CONFIG_SCSI_MOD=y > # CONFIG_RAID_ATTRS is not set > CONFIG_SCSI=y > CONFIG_SCSI_DMA=y > # CONFIG_SCSI_TGT is not set > CONFIG_SCSI_NETLINK=y > CONFIG_SCSI_PROC_FS=y > > # > # SCSI support type (disk, tape, CD-ROM) > # > CONFIG_BLK_DEV_SD=y > # CONFIG_CHR_DEV_ST is not set > # CONFIG_CHR_DEV_OSST is not set > CONFIG_BLK_DEV_SR=m > CONFIG_BLK_DEV_SR_VENDOR=y > CONFIG_CHR_DEV_SG=m > # CONFIG_CHR_DEV_SCH is not set > CONFIG_SCSI_MULTI_LUN=y > CONFIG_SCSI_CONSTANTS=y > # CONFIG_SCSI_LOGGING is not set > # CONFIG_SCSI_SCAN_ASYNC is not set > CONFIG_SCSI_WAIT_SCAN=m > > # > # SCSI Transports > # > CONFIG_SCSI_SPI_ATTRS=y > CONFIG_SCSI_FC_ATTRS=y > # CONFIG_SCSI_ISCSI_ATTRS is not set > CONFIG_SCSI_SAS_ATTRS=y > # CONFIG_SCSI_SAS_LIBSAS is not set > # CONFIG_SCSI_SRP_ATTRS is not set > CONFIG_SCSI_LOWLEVEL=y > # CONFIG_ISCSI_TCP is not set > # CONFIG_SCSI_BNX2_ISCSI is not set > # CONFIG_BE2ISCSI is not set > # CONFIG_BLK_DEV_3W_XXXX_RAID is not set > # CONFIG_SCSI_HPSA is not set > # CONFIG_SCSI_3W_9XXX is not set > # CONFIG_SCSI_3W_SAS is not set > # CONFIG_SCSI_ACARD is not set > # CONFIG_SCSI_AACRAID is not set > # CONFIG_SCSI_AIC7XXX is not set > # CONFIG_SCSI_AIC7XXX_OLD is not set > # CONFIG_SCSI_AIC79XX is not set > # CONFIG_SCSI_AIC94XX is not set > # CONFIG_SCSI_MVSAS is not set > # CONFIG_SCSI_ARCMSR is not set > # CONFIG_MEGARAID_NEWGEN is not set > # CONFIG_MEGARAID_LEGACY is not set > # CONFIG_MEGARAID_SAS is not set > # CONFIG_SCSI_MPT2SAS is not set > # CONFIG_SCSI_HPTIOP is not set > # CONFIG_LIBFC is not set > # CONFIG_LIBFCOE is not set > # CONFIG_FCOE is not set > # CONFIG_SCSI_DMX3191D is not set > # CONFIG_SCSI_FUTURE_DOMAIN is not set > # CONFIG_SCSI_IPS is not set > # CONFIG_SCSI_INITIO is not set > # CONFIG_SCSI_INIA100 is not set > # CONFIG_SCSI_STEX is not set > # CONFIG_SCSI_SYM53C8XX_2 is not set > # CONFIG_SCSI_QLOGIC_1280 is not set > # CONFIG_SCSI_QLOGICPTI is not set > # CONFIG_SCSI_QLA_FC is not set > # CONFIG_SCSI_QLA_ISCSI is not set > # CONFIG_SCSI_LPFC is not set > # CONFIG_SCSI_DC395x is not set > # CONFIG_SCSI_DC390T is not set > # CONFIG_SCSI_DEBUG is not set > # CONFIG_SCSI_SUNESP is not set > # CONFIG_SCSI_PMCRAID is not set > # CONFIG_SCSI_PM8001 is not set > # CONFIG_SCSI_SRP is not set > # CONFIG_SCSI_BFA_FC is not set > # CONFIG_SCSI_DH is not set > # CONFIG_SCSI_OSD_INITIATOR is not set > # CONFIG_ATA is not set > # CONFIG_MD is not set > CONFIG_FUSION=y > # CONFIG_FUSION_SPI is not set > # CONFIG_FUSION_FC is not set > CONFIG_FUSION_SAS=y > CONFIG_FUSION_MAX_SGE=128 > CONFIG_FUSION_CTL=m > # CONFIG_FUSION_LOGGING is not set > > # > # IEEE 1394 (FireWire) support > # > > # > # You can enable one or both FireWire driver stacks. > # > > # > # The newer stack is recommended. > # > # CONFIG_FIREWIRE is not set > # CONFIG_IEEE1394 is not set > # CONFIG_I2O is not set > CONFIG_NETDEVICES=y > # CONFIG_DUMMY is not set > # CONFIG_BONDING is not set > # CONFIG_MACVLAN is not set > # CONFIG_EQUALIZER is not set > # CONFIG_TUN is not set > # CONFIG_VETH is not set > # CONFIG_ARCNET is not set > # CONFIG_NET_ETHERNET is not set > CONFIG_NETDEV_1000=y > # CONFIG_ACENIC is not set > # CONFIG_DL2K is not set > # CONFIG_E1000 is not set > CONFIG_E1000E=m > # CONFIG_IP1000 is not set > # CONFIG_IGB is not set > # CONFIG_IGBVF is not set > # CONFIG_MYRI_SBUS is not set > # CONFIG_NS83820 is not set > # CONFIG_HAMACHI is not set > # CONFIG_YELLOWFIN is not set > # CONFIG_R8169 is not set > # CONFIG_SIS190 is not set > # CONFIG_SKGE is not set > # CONFIG_SKY2 is not set > # CONFIG_VIA_VELOCITY is not set > # CONFIG_TIGON3 is not set > # CONFIG_BNX2 is not set > # CONFIG_CNIC is not set > # CONFIG_QLA3XXX is not set > # CONFIG_ATL1 is not set > # CONFIG_ATL1E is not set > # CONFIG_ATL1C is not set > # CONFIG_JME is not set > # CONFIG_NETDEV_10000 is not set > # CONFIG_TR is not set > # CONFIG_WLAN is not set > > # > # Enable WiMAX (Networking options) to see the WiMAX drivers > # > > # > # USB Network Adapters > # > # CONFIG_USB_CATC is not set > # CONFIG_USB_KAWETH is not set > # CONFIG_USB_PEGASUS is not set > # CONFIG_USB_RTL8150 is not set > # CONFIG_USB_USBNET is not set > # CONFIG_WAN is not set > # CONFIG_FDDI is not set > # CONFIG_HIPPI is not set > # CONFIG_PPP is not set > # CONFIG_SLIP is not set > # CONFIG_NET_FC is not set > CONFIG_NETCONSOLE=m > CONFIG_NETCONSOLE_DYNAMIC=y > CONFIG_NETPOLL=y > # CONFIG_NETPOLL_TRAP is not set > CONFIG_NET_POLL_CONTROLLER=y > # CONFIG_VMXNET3 is not set > # CONFIG_ISDN is not set > # CONFIG_PHONE is not set > > # > # Input device support > # > CONFIG_INPUT=y > # CONFIG_INPUT_FF_MEMLESS is not set > # CONFIG_INPUT_POLLDEV is not set > # CONFIG_INPUT_SPARSEKMAP is not set > > # > # Userland interfaces > # > CONFIG_INPUT_MOUSEDEV=y > CONFIG_INPUT_MOUSEDEV_PSAUX=y > CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 > CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 > # CONFIG_INPUT_JOYDEV is not set > CONFIG_INPUT_EVDEV=y > # CONFIG_INPUT_EVBUG is not set > > # > # Input Device Drivers > # > CONFIG_INPUT_KEYBOARD=y > # CONFIG_KEYBOARD_ADP5588 is not set > CONFIG_KEYBOARD_ATKBD=y > # CONFIG_QT2160 is not set > CONFIG_KEYBOARD_LKKBD=m > # CONFIG_KEYBOARD_MAX7359 is not set > # CONFIG_KEYBOARD_NEWTON is not set > # CONFIG_KEYBOARD_OPENCORES is not set > # CONFIG_KEYBOARD_STOWAWAY is not set > CONFIG_KEYBOARD_SUNKBD=y > # CONFIG_KEYBOARD_XTKBD is not set > CONFIG_INPUT_MOUSE=y > CONFIG_MOUSE_PS2=y > CONFIG_MOUSE_PS2_ALPS=y > CONFIG_MOUSE_PS2_LOGIPS2PP=y > CONFIG_MOUSE_PS2_SYNAPTICS=y > CONFIG_MOUSE_PS2_TRACKPOINT=y > # CONFIG_MOUSE_PS2_ELANTECH is not set > # CONFIG_MOUSE_PS2_SENTELIC is not set > # CONFIG_MOUSE_PS2_TOUCHKIT is not set > CONFIG_MOUSE_SERIAL=y > # CONFIG_MOUSE_APPLETOUCH is not set > # CONFIG_MOUSE_BCM5974 is not set > # CONFIG_MOUSE_VSXXXAA is not set > # CONFIG_MOUSE_SYNAPTICS_I2C is not set > # CONFIG_INPUT_JOYSTICK is not set > # CONFIG_INPUT_TABLET is not set > # CONFIG_INPUT_TOUCHSCREEN is not set > CONFIG_INPUT_MISC=y > CONFIG_INPUT_SPARCSPKR=y > # CONFIG_INPUT_ATI_REMOTE is not set > # CONFIG_INPUT_ATI_REMOTE2 is not set > # CONFIG_INPUT_KEYSPAN_REMOTE is not set > # CONFIG_INPUT_POWERMATE is not set > # CONFIG_INPUT_YEALINK is not set > # CONFIG_INPUT_CM109 is not set > # CONFIG_INPUT_UINPUT is not set > > # > # Hardware I/O ports > # > CONFIG_SERIO=y > CONFIG_SERIO_I8042=y > # CONFIG_SERIO_SERPORT is not set > CONFIG_SERIO_PCIPS2=m > CONFIG_SERIO_LIBPS2=y > CONFIG_SERIO_RAW=m > # CONFIG_SERIO_ALTERA_PS2 is not set > # CONFIG_GAMEPORT is not set > > # > # Character devices > # > CONFIG_VT=y > CONFIG_CONSOLE_TRANSLATIONS=y > CONFIG_VT_CONSOLE=y > CONFIG_HW_CONSOLE=y > # CONFIG_VT_HW_CONSOLE_BINDING is not set > # CONFIG_DEVKMEM is not set > # CONFIG_SERIAL_NONSTANDARD is not set > # CONFIG_NOZOMI is not set > > # > # Serial drivers > # > # CONFIG_SERIAL_8250 is not set > > # > # Non-8250 serial port support > # > CONFIG_SERIAL_SUNCORE=y > # CONFIG_SERIAL_SUNZILOG is not set > CONFIG_SERIAL_SUNSU=y > CONFIG_SERIAL_SUNSU_CONSOLE=y > CONFIG_SERIAL_SUNSAB=y > CONFIG_SERIAL_SUNSAB_CONSOLE=y > CONFIG_SERIAL_SUNHV=y > CONFIG_SERIAL_CORE=y > CONFIG_SERIAL_CORE_CONSOLE=y > # CONFIG_SERIAL_JSM is not set > # CONFIG_SERIAL_TIMBERDALE is not set > # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set > CONFIG_UNIX98_PTYS=y > # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set > # CONFIG_LEGACY_PTYS is not set > # CONFIG_IPMI_HANDLER is not set > CONFIG_HW_RANDOM=m > # CONFIG_HW_RANDOM_TIMERIOMEM is not set > CONFIG_HW_RANDOM_N2RNG=m > # CONFIG_R3964 is not set > # CONFIG_APPLICOM is not set > CONFIG_RAW_DRIVER=y > CONFIG_MAX_RAW_DEVS=256 > # CONFIG_TCG_TPM is not set > CONFIG_DEVPORT=y > CONFIG_I2C=y > CONFIG_I2C_BOARDINFO=y > CONFIG_I2C_COMPAT=y > # CONFIG_I2C_CHARDEV is not set > CONFIG_I2C_HELPER_AUTO=y > CONFIG_I2C_ALGOBIT=y > > # > # 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 set > # CONFIG_I2C_AMD756 is not set > # CONFIG_I2C_AMD8111 is not set > # CONFIG_I2C_I801 is not set > # CONFIG_I2C_ISCH is not set > # CONFIG_I2C_PIIX4 is not set > # CONFIG_I2C_NFORCE2 is not set > # CONFIG_I2C_SIS5595 is not set > # CONFIG_I2C_SIS630 is not set > # CONFIG_I2C_SIS96X is not set > # CONFIG_I2C_VIA is not set > # CONFIG_I2C_VIAPRO is not set > > # > # I2C system bus drivers (mostly embedded / system-on-chip) > # > # CONFIG_I2C_OCORES is not set > # CONFIG_I2C_SIMTEC is not set > # CONFIG_I2C_XILINX is not set > > # > # External I2C/SMBus adapter drivers > # > # CONFIG_I2C_PARPORT_LIGHT is not set > # CONFIG_I2C_TAOS_EVM is not set > # CONFIG_I2C_TINY_USB is not set > > # > # Other I2C/SMBus bus drivers > # > # CONFIG_I2C_PCA_PLATFORM is not set > # CONFIG_I2C_STUB is not set > # CONFIG_I2C_DEBUG_CORE is not set > # CONFIG_I2C_DEBUG_ALGO is not set > # CONFIG_I2C_DEBUG_BUS is not set > # CONFIG_SPI is not set > > # > # PPS support > # > # CONFIG_PPS is not set > CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y > # CONFIG_GPIOLIB is not set > # CONFIG_W1 is not set > # CONFIG_POWER_SUPPLY is not set > # CONFIG_HWMON is not set > # CONFIG_THERMAL is not set > # CONFIG_WATCHDOG is not set > CONFIG_SSB_POSSIBLE=y > > # > # Sonics Silicon Backplane > # > # CONFIG_SSB is not set > > # > # Multifunction device drivers > # > # CONFIG_MFD_CORE is not set > # CONFIG_MFD_88PM860X is not set > # CONFIG_MFD_SM501 is not set > # CONFIG_HTC_PASIC3 is not set > # CONFIG_TWL4030_CORE is not set > # CONFIG_MFD_TMIO is not set > # CONFIG_PMIC_DA903X is not set > # CONFIG_PMIC_ADP5520 is not set > # CONFIG_MFD_MAX8925 is not set > # CONFIG_MFD_WM8400 is not set > # CONFIG_MFD_WM831X is not set > # CONFIG_MFD_WM8350_I2C is not set > # CONFIG_MFD_WM8994 is not set > # CONFIG_MFD_PCF50633 is not set > # CONFIG_AB3100_CORE is not set > # CONFIG_LPC_SCH is not set > # CONFIG_REGULATOR is not set > # CONFIG_MEDIA_SUPPORT is not set > > # > # Graphics support > # > CONFIG_VGA_ARB=y > CONFIG_VGA_ARB_MAX_GPUS=16 > # CONFIG_DRM is not set > # CONFIG_VGASTATE is not set > # CONFIG_VIDEO_OUTPUT_CONTROL is not set > CONFIG_FB=y > # CONFIG_FIRMWARE_EDID is not set > CONFIG_FB_DDC=y > # CONFIG_FB_BOOT_VESA_SUPPORT is not set > CONFIG_FB_CFB_FILLRECT=y > CONFIG_FB_CFB_COPYAREA=y > CONFIG_FB_CFB_IMAGEBLIT=y > # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set > # CONFIG_FB_SYS_FILLRECT is not set > # CONFIG_FB_SYS_COPYAREA is not set > # CONFIG_FB_SYS_IMAGEBLIT is not set > # CONFIG_FB_FOREIGN_ENDIAN is not set > # CONFIG_FB_SYS_FOPS is not set > # CONFIG_FB_SVGALIB is not set > # CONFIG_FB_MACMODES is not set > # CONFIG_FB_BACKLIGHT is not set > CONFIG_FB_MODE_HELPERS=y > CONFIG_FB_TILEBLITTING=y > > # > # Frame buffer hardware drivers > # > # CONFIG_FB_CIRRUS is not set > # CONFIG_FB_PM2 is not set > # CONFIG_FB_ASILIANT is not set > # CONFIG_FB_IMSTT is not set > # CONFIG_FB_UVESA is not set > # CONFIG_FB_SBUS is not set > # CONFIG_FB_XVR500 is not set > # CONFIG_FB_XVR2500 is not set > # CONFIG_FB_XVR1000 is not set > # CONFIG_FB_S1D13XXX is not set > # CONFIG_FB_NVIDIA is not set > # CONFIG_FB_RIVA is not set > # CONFIG_FB_MATROX is not set > CONFIG_FB_RADEON=y > CONFIG_FB_RADEON_I2C=y > # CONFIG_FB_RADEON_BACKLIGHT is not set > # CONFIG_FB_RADEON_DEBUG is not set > # CONFIG_FB_ATY128 is not set > CONFIG_FB_ATY=y > CONFIG_FB_ATY_CT=y > # CONFIG_FB_ATY_GENERIC_LCD is not set > CONFIG_FB_ATY_GX=y > # CONFIG_FB_ATY_BACKLIGHT is not set > # CONFIG_FB_S3 is not set > # CONFIG_FB_SAVAGE is not set > # CONFIG_FB_SIS is not set > # CONFIG_FB_VIA is not set > # CONFIG_FB_NEOMAGIC is not set > # CONFIG_FB_KYRO is not set > # CONFIG_FB_3DFX is not set > # CONFIG_FB_VOODOO1 is not set > # CONFIG_FB_VT8623 is not set > # CONFIG_FB_TRIDENT is not set > # CONFIG_FB_ARK is not set > # CONFIG_FB_PM3 is not set > # CONFIG_FB_CARMINE is not set > # CONFIG_FB_VIRTUAL is not set > # CONFIG_FB_METRONOME is not set > # CONFIG_FB_MB862XX is not set > # CONFIG_FB_BROADSHEET is not set > # CONFIG_BACKLIGHT_LCD_SUPPORT is not set > > # > # Display device support > # > # CONFIG_DISPLAY_SUPPORT is not set > > # > # Console display driver support > # > CONFIG_DUMMY_CONSOLE=y > CONFIG_FRAMEBUFFER_CONSOLE=y > CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y > # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set > CONFIG_FONTS=y > # CONFIG_FONT_8x8 is not set > # CONFIG_FONT_8x16 is not set > # CONFIG_FONT_6x11 is not set > # CONFIG_FONT_7x14 is not set > # CONFIG_FONT_PEARL_8x8 is not set > # CONFIG_FONT_ACORN_8x8 is not set > CONFIG_FONT_SUN8x16=y > # CONFIG_FONT_SUN12x22 is not set > # CONFIG_FONT_10x18 is not set > CONFIG_LOGO=y > # CONFIG_LOGO_LINUX_MONO is not set > # CONFIG_LOGO_LINUX_VGA16 is not set > # CONFIG_LOGO_LINUX_CLUT224 is not set > CONFIG_LOGO_SUN_CLUT224=y > # CONFIG_SOUND is not set > CONFIG_HID_SUPPORT=y > CONFIG_HID=y > # CONFIG_HIDRAW is not set > > # > # USB Input Devices > # > CONFIG_USB_HID=m > # CONFIG_HID_PID is not set > CONFIG_USB_HIDDEV=y > > # > # Special HID drivers > # > # CONFIG_HID_3M_PCT is not set > CONFIG_HID_A4TECH=m > CONFIG_HID_APPLE=m > CONFIG_HID_BELKIN=m > CONFIG_HID_CHERRY=m > CONFIG_HID_CHICONY=m > CONFIG_HID_CYPRESS=m > CONFIG_HID_DRAGONRISE=m > # CONFIG_DRAGONRISE_FF is not set > CONFIG_HID_EZKEY=m > CONFIG_HID_KYE=m > CONFIG_HID_GYRATION=m > CONFIG_HID_TWINHAN=m > CONFIG_HID_KENSINGTON=m > CONFIG_HID_LOGITECH=m > # CONFIG_LOGITECH_FF is not set > # CONFIG_LOGIRUMBLEPAD2_FF is not set > # CONFIG_LOGIG940_FF is not set > CONFIG_HID_MICROSOFT=m > # CONFIG_HID_MOSART is not set > CONFIG_HID_MONTEREY=m > CONFIG_HID_NTRIG=m > CONFIG_HID_ORTEK=m > CONFIG_HID_PANTHERLORD=m > # CONFIG_PANTHERLORD_FF is not set > CONFIG_HID_PETALYNX=m > # CONFIG_HID_QUANTA is not set > CONFIG_HID_SAMSUNG=m > CONFIG_HID_SONY=m > # CONFIG_HID_STANTUM is not set > CONFIG_HID_SUNPLUS=m > CONFIG_HID_GREENASIA=m > # CONFIG_GREENASIA_FF is not set > CONFIG_HID_SMARTJOYPLUS=m > # CONFIG_SMARTJOYPLUS_FF is not set > CONFIG_HID_TOPSEED=m > CONFIG_HID_THRUSTMASTER=m > # CONFIG_THRUSTMASTER_FF is not set > CONFIG_HID_ZEROPLUS=m > # CONFIG_ZEROPLUS_FF is not set > CONFIG_USB_SUPPORT=y > CONFIG_USB_ARCH_HAS_HCD=y > CONFIG_USB_ARCH_HAS_OHCI=y > CONFIG_USB_ARCH_HAS_EHCI=y > CONFIG_USB=y > # CONFIG_USB_DEBUG is not set > # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set > > # > # Miscellaneous USB options > # > # CONFIG_USB_DEVICEFS is not set > # CONFIG_USB_DEVICE_CLASS is not set > # CONFIG_USB_DYNAMIC_MINORS is not set > # CONFIG_USB_OTG is not set > # CONFIG_USB_MON is not set > # CONFIG_USB_WUSB is not set > # CONFIG_USB_WUSB_CBAF is not set > > # > # USB Host Controller Drivers > # > # CONFIG_USB_C67X00_HCD is not set > # CONFIG_USB_XHCI_HCD is not set > CONFIG_USB_EHCI_HCD=m > # CONFIG_USB_EHCI_ROOT_HUB_TT is not set > # CONFIG_USB_EHCI_TT_NEWSCHED is not set > # CONFIG_USB_OXU210HP_HCD is not set > # CONFIG_USB_ISP116X_HCD is not set > # CONFIG_USB_ISP1760_HCD is not set > # CONFIG_USB_ISP1362_HCD is not set > CONFIG_USB_OHCI_HCD=m > # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set > # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set > CONFIG_USB_OHCI_LITTLE_ENDIAN=y > # CONFIG_USB_UHCI_HCD is not set > # CONFIG_USB_SL811_HCD is not set > # CONFIG_USB_R8A66597_HCD is not set > # CONFIG_USB_WHCI_HCD is not set > # CONFIG_USB_HWA_HCD is not set > > # > # USB Device Class drivers > # > # CONFIG_USB_ACM is not set > # CONFIG_USB_PRINTER is not set > # CONFIG_USB_WDM is not set > # CONFIG_USB_TMC is not set > > # > # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may > # > > # > # also be needed; see USB_STORAGE Help for more info > # > CONFIG_USB_STORAGE=m > # CONFIG_USB_STORAGE_DEBUG is not set > # CONFIG_USB_STORAGE_DATAFAB is not set > # CONFIG_USB_STORAGE_FREECOM is not set > # CONFIG_USB_STORAGE_ISD200 is not set > # CONFIG_USB_STORAGE_USBAT is not set > # CONFIG_USB_STORAGE_SDDR09 is not set > # CONFIG_USB_STORAGE_SDDR55 is not set > # CONFIG_USB_STORAGE_JUMPSHOT is not set > # CONFIG_USB_STORAGE_ALAUDA is not set > # CONFIG_USB_STORAGE_ONETOUCH is not set > # CONFIG_USB_STORAGE_KARMA is not set > # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set > # CONFIG_USB_LIBUSUAL is not set > > # > # USB Imaging devices > # > # CONFIG_USB_MDC800 is not set > # CONFIG_USB_MICROTEK is not set > > # > # USB port drivers > # > # CONFIG_USB_SERIAL is not set > > # > # USB Miscellaneous drivers > # > # CONFIG_USB_EMI62 is not set > # CONFIG_USB_EMI26 is not set > # CONFIG_USB_ADUTUX is not set > # CONFIG_USB_SEVSEG is not set > # CONFIG_USB_RIO500 is not set > # CONFIG_USB_LEGOTOWER is not set > # CONFIG_USB_LCD is not set > # CONFIG_USB_LED is not set > # CONFIG_USB_CYPRESS_CY7C63 is not set > # CONFIG_USB_CYTHERM is not set > # CONFIG_USB_IDMOUSE is not set > # CONFIG_USB_FTDI_ELAN is not set > # CONFIG_USB_APPLEDISPLAY is not set > # CONFIG_USB_SISUSBVGA is not set > # CONFIG_USB_LD is not set > # CONFIG_USB_TRANCEVIBRATOR is not set > # CONFIG_USB_IOWARRIOR is not set > # CONFIG_USB_TEST is not set > # CONFIG_USB_ISIGHTFW is not set > # CONFIG_USB_GADGET is not set > > # > # OTG and related infrastructure > # > # CONFIG_NOP_USB_XCEIV is not set > # CONFIG_UWB is not set > # CONFIG_MMC is not set > # CONFIG_MEMSTICK is not set > # CONFIG_NEW_LEDS is not set > # CONFIG_ACCESSIBILITY is not set > # CONFIG_INFINIBAND is not set > CONFIG_RTC_LIB=y > CONFIG_RTC_CLASS=y > CONFIG_RTC_HCTOSYS=y > CONFIG_RTC_HCTOSYS_DEVICE="rtc0" > # CONFIG_RTC_DEBUG is not set > > # > # RTC interfaces > # > CONFIG_RTC_INTF_SYSFS=y > CONFIG_RTC_INTF_PROC=y > CONFIG_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 is not set > # CONFIG_RTC_DRV_DS1374 is not set > # CONFIG_RTC_DRV_DS1672 is not set > # CONFIG_RTC_DRV_MAX6900 is not set > # CONFIG_RTC_DRV_RS5C372 is not set > # CONFIG_RTC_DRV_ISL1208 is not set > # CONFIG_RTC_DRV_X1205 is not set > # CONFIG_RTC_DRV_PCF8563 is not set > # CONFIG_RTC_DRV_PCF8583 is not set > # CONFIG_RTC_DRV_M41T80 is not set > # CONFIG_RTC_DRV_BQ32K is not set > # CONFIG_RTC_DRV_S35390A is not set > # CONFIG_RTC_DRV_FM3130 is not set > # CONFIG_RTC_DRV_RX8581 is not set > # CONFIG_RTC_DRV_RX8025 is not set > > # > # SPI RTC drivers > # > > # > # Platform RTC drivers > # > CONFIG_RTC_DRV_CMOS=y > # CONFIG_RTC_DRV_DS1286 is not set > # CONFIG_RTC_DRV_DS1511 is not set > # CONFIG_RTC_DRV_DS1553 is not set > # CONFIG_RTC_DRV_DS1742 is not set > # CONFIG_RTC_DRV_STK17TA8 is not set > # CONFIG_RTC_DRV_M48T86 is not set > # CONFIG_RTC_DRV_M48T35 is not set > CONFIG_RTC_DRV_M48T59=y > # CONFIG_RTC_DRV_MSM6242 is not set > CONFIG_RTC_DRV_BQ4802=y > # CONFIG_RTC_DRV_RP5C01 is not set > # CONFIG_RTC_DRV_V3020 is not set > > # > # on-CPU RTC drivers > # > CONFIG_RTC_DRV_SUN4V=y > CONFIG_RTC_DRV_STARFIRE=y > # CONFIG_DMADEVICES is not set > # CONFIG_AUXDISPLAY is not set > # CONFIG_UIO is not set > > # > # TI VLYNQ > # > # CONFIG_STAGING is not set > > # > # Misc Linux/SPARC drivers > # > CONFIG_SUN_OPENPROMIO=y > # CONFIG_OBP_FLASH is not set > # CONFIG_TADPOLE_TS102_UCTRL is not set > # CONFIG_BBC_I2C is not set > # CONFIG_ENVCTRL is not set > # CONFIG_DISPLAY7SEG is not set > > # > # File systems > # > # CONFIG_EXT2_FS is not set > CONFIG_EXT3_FS=y > # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set > # CONFIG_EXT3_FS_XATTR is not set > # CONFIG_EXT4_FS is not set > CONFIG_JBD=y > # CONFIG_JBD_DEBUG is not set > # CONFIG_REISERFS_FS is not set > # CONFIG_JFS_FS is not set > # CONFIG_FS_POSIX_ACL is not set > # CONFIG_XFS_FS is not set > # CONFIG_GFS2_FS is not set > # CONFIG_OCFS2_FS is not set > # CONFIG_BTRFS_FS is not set > # CONFIG_NILFS2_FS is not set > CONFIG_FILE_LOCKING=y > CONFIG_FSNOTIFY=y > CONFIG_DNOTIFY=y > CONFIG_INOTIFY=y > CONFIG_INOTIFY_USER=y > # CONFIG_QUOTA is not set > # CONFIG_AUTOFS_FS is not set > # CONFIG_AUTOFS4_FS is not set > # CONFIG_FUSE_FS is not set > > # > # Caches > # > # CONFIG_FSCACHE is not set > > # > # CD-ROM/DVD Filesystems > # > CONFIG_ISO9660_FS=m > # CONFIG_JOLIET is not set > # CONFIG_ZISOFS is not set > # CONFIG_UDF_FS is not set > > # > # DOS/FAT/NT Filesystems > # > CONFIG_FAT_FS=m > CONFIG_MSDOS_FS=m > CONFIG_VFAT_FS=m > CONFIG_FAT_DEFAULT_CODEPAGE=437 > CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" > # CONFIG_NTFS_FS is not set > > # > # Pseudo filesystems > # > CONFIG_PROC_FS=y > CONFIG_PROC_KCORE=y > CONFIG_PROC_SYSCTL=y > CONFIG_PROC_PAGE_MONITOR=y > CONFIG_SYSFS=y > CONFIG_TMPFS=y > # CONFIG_TMPFS_POSIX_ACL is not set > CONFIG_HUGETLBFS=y > CONFIG_HUGETLB_PAGE=y > CONFIG_CONFIGFS_FS=y > CONFIG_MISC_FILESYSTEMS=y > # CONFIG_ADFS_FS is not set > # CONFIG_AFFS_FS is not set > # CONFIG_HFS_FS is not set > # CONFIG_HFSPLUS_FS is not set > # CONFIG_BEFS_FS is not set > # CONFIG_BFS_FS is not set > # CONFIG_EFS_FS is not set > # CONFIG_LOGFS is not set > # CONFIG_CRAMFS is not set > # CONFIG_SQUASHFS is not set > # CONFIG_VXFS_FS is not set > # CONFIG_MINIX_FS is not set > # CONFIG_OMFS_FS is not set > # CONFIG_HPFS_FS is not set > # CONFIG_QNX4FS_FS is not set > # CONFIG_ROMFS_FS is not set > # CONFIG_SYSV_FS is not set > CONFIG_UFS_FS=m > CONFIG_UFS_FS_WRITE=y > # CONFIG_UFS_DEBUG is not set > # CONFIG_NETWORK_FILESYSTEMS is not set > > # > # Partition Types > # > CONFIG_PARTITION_ADVANCED=y > # CONFIG_ACORN_PARTITION is not set > # CONFIG_OSF_PARTITION is not set > # CONFIG_AMIGA_PARTITION is not set > # CONFIG_ATARI_PARTITION is not set > # CONFIG_MAC_PARTITION is not set > CONFIG_MSDOS_PARTITION=y > # CONFIG_BSD_DISKLABEL is not set > # CONFIG_MINIX_SUBPARTITION is not set > # CONFIG_SOLARIS_X86_PARTITION is not set > # CONFIG_UNIXWARE_DISKLABEL is not set > # CONFIG_LDM_PARTITION is not set > # CONFIG_SGI_PARTITION is not set > # CONFIG_ULTRIX_PARTITION is not set > CONFIG_SUN_PARTITION=y > # CONFIG_KARMA_PARTITION is not set > # CONFIG_EFI_PARTITION is not set > # CONFIG_SYSV68_PARTITION is not set > CONFIG_NLS=y > CONFIG_NLS_DEFAULT="iso8859-1" > CONFIG_NLS_CODEPAGE_437=m > # CONFIG_NLS_CODEPAGE_737 is not set > # CONFIG_NLS_CODEPAGE_775 is not set > CONFIG_NLS_CODEPAGE_850=m > # CONFIG_NLS_CODEPAGE_852 is not set > # CONFIG_NLS_CODEPAGE_855 is not set > # CONFIG_NLS_CODEPAGE_857 is not set > # CONFIG_NLS_CODEPAGE_860 is not set > # CONFIG_NLS_CODEPAGE_861 is not set > # CONFIG_NLS_CODEPAGE_862 is not set > # CONFIG_NLS_CODEPAGE_863 is not set > # CONFIG_NLS_CODEPAGE_864 is not set > CONFIG_NLS_CODEPAGE_865=m > # CONFIG_NLS_CODEPAGE_866 is not set > # CONFIG_NLS_CODEPAGE_869 is not set > # CONFIG_NLS_CODEPAGE_936 is not set > # CONFIG_NLS_CODEPAGE_950 is not set > # CONFIG_NLS_CODEPAGE_932 is not set > # CONFIG_NLS_CODEPAGE_949 is not set > # CONFIG_NLS_CODEPAGE_874 is not set > # CONFIG_NLS_ISO8859_8 is not set > # CONFIG_NLS_CODEPAGE_1250 is not set > # CONFIG_NLS_CODEPAGE_1251 is not set > # CONFIG_NLS_ASCII is not set > CONFIG_NLS_ISO8859_1=m > # CONFIG_NLS_ISO8859_2 is not set > # CONFIG_NLS_ISO8859_3 is not set > # CONFIG_NLS_ISO8859_4 is not set > # CONFIG_NLS_ISO8859_5 is not set > # CONFIG_NLS_ISO8859_6 is not set > # CONFIG_NLS_ISO8859_7 is not set > # CONFIG_NLS_ISO8859_9 is not set > # CONFIG_NLS_ISO8859_13 is not set > # CONFIG_NLS_ISO8859_14 is not set > # CONFIG_NLS_ISO8859_15 is not set > # CONFIG_NLS_KOI8_R is not set > # CONFIG_NLS_KOI8_U is not set > CONFIG_NLS_UTF8=m > # CONFIG_DLM is not set > > # > # Kernel hacking > # > CONFIG_TRACE_IRQFLAGS_SUPPORT=y > CONFIG_PRINTK_TIME=y > # CONFIG_ENABLE_WARN_DEPRECATED is not set > CONFIG_ENABLE_MUST_CHECK=y > CONFIG_FRAME_WARN=2048 > CONFIG_MAGIC_SYSRQ=y > # CONFIG_STRIP_ASM_SYMS is not set > # CONFIG_UNUSED_SYMBOLS is not set > CONFIG_DEBUG_FS=y > # CONFIG_HEADERS_CHECK is not set > CONFIG_DEBUG_KERNEL=y > # CONFIG_DEBUG_SHIRQ is not set > CONFIG_DETECT_SOFTLOCKUP=y > # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set > CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 > CONFIG_DETECT_HUNG_TASK=y > # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set > CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 > CONFIG_SCHED_DEBUG=y > CONFIG_SCHEDSTATS=y > # CONFIG_TIMER_STATS is not set > # CONFIG_DEBUG_OBJECTS is not set > # CONFIG_DEBUG_SLAB is not set > # CONFIG_DEBUG_KMEMLEAK is not set > CONFIG_DEBUG_PREEMPT=y > # CONFIG_DEBUG_RT_MUTEXES is not set > # CONFIG_RT_MUTEX_TESTER is not set > CONFIG_DEBUG_SPINLOCK=y > CONFIG_DEBUG_MUTEXES=y > CONFIG_DEBUG_LOCK_ALLOC=y > CONFIG_PROVE_LOCKING=y > CONFIG_PROVE_RCU=y > CONFIG_LOCKDEP=y > CONFIG_LOCK_STAT=y > # CONFIG_DEBUG_LOCKDEP is not set > CONFIG_TRACE_IRQFLAGS=y > CONFIG_DEBUG_SPINLOCK_SLEEP=y > # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set > CONFIG_STACKTRACE=y > # CONFIG_DEBUG_KOBJECT is not set > CONFIG_DEBUG_BUGVERBOSE=y > # CONFIG_DEBUG_INFO is not set > # CONFIG_DEBUG_VM is not set > # CONFIG_DEBUG_WRITECOUNT is not set > CONFIG_DEBUG_MEMORY_INIT=y > # CONFIG_DEBUG_LIST is not set > # CONFIG_DEBUG_SG is not set > # CONFIG_DEBUG_NOTIFIERS is not set > # CONFIG_DEBUG_CREDENTIALS is not set > CONFIG_FRAME_POINTER=y > # CONFIG_BOOT_PRINTK_DELAY is not set > # CONFIG_RCU_TORTURE_TEST is not set > CONFIG_RCU_CPU_STALL_DETECTOR=y > # CONFIG_BACKTRACE_SELF_TEST is not set > # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set > # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set > # CONFIG_LKDTM is not set > # CONFIG_FAULT_INJECTION is not set > # CONFIG_LATENCYTOP is not set > # CONFIG_SYSCTL_SYSCALL_CHECK is not set > # CONFIG_DEBUG_PAGEALLOC is not set > CONFIG_NOP_TRACER=y > CONFIG_HAVE_FUNCTION_TRACER=y > CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y > CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y > CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y > CONFIG_HAVE_DYNAMIC_FTRACE=y > CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y > CONFIG_HAVE_SYSCALL_TRACEPOINTS=y > CONFIG_RING_BUFFER=y > CONFIG_EVENT_TRACING=y > CONFIG_CONTEXT_SWITCH_TRACER=y > CONFIG_TRACING=y > CONFIG_GENERIC_TRACER=y > CONFIG_TRACING_SUPPORT=y > CONFIG_FTRACE=y > CONFIG_FUNCTION_TRACER=y > CONFIG_FUNCTION_GRAPH_TRACER=y > # CONFIG_IRQSOFF_TRACER is not set > # CONFIG_PREEMPT_TRACER is not set > # CONFIG_SCHED_TRACER is not set > CONFIG_FTRACE_SYSCALLS=y > # CONFIG_BOOT_TRACER is not set > CONFIG_BRANCH_PROFILE_NONE=y > # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set > # CONFIG_PROFILE_ALL_BRANCHES is not set > # CONFIG_STACK_TRACER is not set > # CONFIG_KMEMTRACE is not set > # CONFIG_WORKQUEUE_TRACER is not set > # CONFIG_BLK_DEV_IO_TRACE is not set > CONFIG_DYNAMIC_FTRACE=y > # CONFIG_FUNCTION_PROFILER is not set > CONFIG_FTRACE_MCOUNT_RECORD=y > # CONFIG_FTRACE_STARTUP_TEST is not set > # CONFIG_RING_BUFFER_BENCHMARK is not set > # CONFIG_DYNAMIC_DEBUG is not set > # CONFIG_DMA_API_DEBUG is not set > # CONFIG_SAMPLES is not set > CONFIG_HAVE_ARCH_KGDB=y > # CONFIG_KGDB is not set > # CONFIG_DEBUG_STACK_USAGE is not set > # CONFIG_DEBUG_DCFLUSH is not set > CONFIG_MCOUNT=y > # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set > > # > # Security options > # > # CONFIG_KEYS is not set > # CONFIG_SECURITY is not set > # CONFIG_SECURITYFS is not set > # CONFIG_DEFAULT_SECURITY_SELINUX is not set > # CONFIG_DEFAULT_SECURITY_SMACK is not set > # CONFIG_DEFAULT_SECURITY_TOMOYO is not set > CONFIG_DEFAULT_SECURITY_DAC=y > CONFIG_DEFAULT_SECURITY="" > CONFIG_CRYPTO=y > > # > # Crypto core or helper > # > CONFIG_CRYPTO_ALGAPI=y > CONFIG_CRYPTO_ALGAPI2=y > CONFIG_CRYPTO_AEAD=y > CONFIG_CRYPTO_AEAD2=y > CONFIG_CRYPTO_BLKCIPHER=y > CONFIG_CRYPTO_BLKCIPHER2=y > CONFIG_CRYPTO_HASH=y > CONFIG_CRYPTO_HASH2=y > CONFIG_CRYPTO_RNG2=y > CONFIG_CRYPTO_PCOMP=y > CONFIG_CRYPTO_MANAGER=y > CONFIG_CRYPTO_MANAGER2=y > CONFIG_CRYPTO_GF128MUL=m > CONFIG_CRYPTO_NULL=m > # CONFIG_CRYPTO_PCRYPT is not set > CONFIG_CRYPTO_WORKQUEUE=y > # CONFIG_CRYPTO_CRYPTD is not set > CONFIG_CRYPTO_AUTHENC=y > CONFIG_CRYPTO_TEST=m > > # > # Authenticated Encryption with Associated Data > # > # CONFIG_CRYPTO_CCM is not set > # CONFIG_CRYPTO_GCM is not set > # CONFIG_CRYPTO_SEQIV is not set > > # > # Block modes > # > CONFIG_CRYPTO_CBC=y > # CONFIG_CRYPTO_CTR is not set > # CONFIG_CRYPTO_CTS is not set > CONFIG_CRYPTO_ECB=m > CONFIG_CRYPTO_LRW=m > CONFIG_CRYPTO_PCBC=m > CONFIG_CRYPTO_XTS=m > > # > # Hash modes > # > CONFIG_CRYPTO_HMAC=y > CONFIG_CRYPTO_XCBC=y > # CONFIG_CRYPTO_VMAC is not set > > # > # Digest > # > CONFIG_CRYPTO_CRC32C=m > # CONFIG_CRYPTO_GHASH is not set > CONFIG_CRYPTO_MD4=y > CONFIG_CRYPTO_MD5=y > CONFIG_CRYPTO_MICHAEL_MIC=m > # CONFIG_CRYPTO_RMD128 is not set > # CONFIG_CRYPTO_RMD160 is not set > # CONFIG_CRYPTO_RMD256 is not set > # CONFIG_CRYPTO_RMD320 is not set > CONFIG_CRYPTO_SHA1=y > CONFIG_CRYPTO_SHA256=m > CONFIG_CRYPTO_SHA512=m > CONFIG_CRYPTO_TGR192=m > CONFIG_CRYPTO_WP512=m > > # > # Ciphers > # > CONFIG_CRYPTO_AES=m > CONFIG_CRYPTO_ANUBIS=m > CONFIG_CRYPTO_ARC4=m > CONFIG_CRYPTO_BLOWFISH=m > CONFIG_CRYPTO_CAMELLIA=m > CONFIG_CRYPTO_CAST5=m > CONFIG_CRYPTO_CAST6=m > CONFIG_CRYPTO_DES=y > CONFIG_CRYPTO_FCRYPT=m > CONFIG_CRYPTO_KHAZAD=m > # CONFIG_CRYPTO_SALSA20 is not set > CONFIG_CRYPTO_SEED=m > CONFIG_CRYPTO_SERPENT=m > CONFIG_CRYPTO_TEA=m > CONFIG_CRYPTO_TWOFISH=m > CONFIG_CRYPTO_TWOFISH_COMMON=m > > # > # Compression > # > CONFIG_CRYPTO_DEFLATE=y > # CONFIG_CRYPTO_ZLIB is not set > # CONFIG_CRYPTO_LZO is not set > > # > # Random Number Generation > # > # CONFIG_CRYPTO_ANSI_CPRNG is not set > CONFIG_CRYPTO_HW=y > # CONFIG_CRYPTO_DEV_HIFN_795X is not set > CONFIG_BINARY_PRINTF=y > > # > # Library routines > # > CONFIG_BITREVERSE=y > CONFIG_GENERIC_FIND_LAST_BIT=y > CONFIG_CRC_CCITT=m > CONFIG_CRC16=m > # CONFIG_CRC_T10DIF is not set > # CONFIG_CRC_ITU_T is not set > CONFIG_CRC32=y > # CONFIG_CRC7 is not set > CONFIG_LIBCRC32C=m > CONFIG_ZLIB_INFLATE=y > CONFIG_ZLIB_DEFLATE=y > CONFIG_HAS_IOMEM=y > CONFIG_HAS_IOPORT=y > CONFIG_HAS_DMA=y > CONFIG_HAVE_LMB=y > CONFIG_NLATTR=y ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-13 23:40 ` Paul E. McKenney @ 2010-04-14 0:02 ` Frederic Weisbecker 2010-04-14 0:13 ` David Miller 0 siblings, 1 reply; 13+ messages in thread From: Frederic Weisbecker @ 2010-04-14 0:02 UTC (permalink / raw) To: Paul E. McKenney Cc: David Miller, Peter Zijlstra, Ingo Molnar, SparcLinux, LKML On Tue, Apr 13, 2010 at 04:40:43PM -0700, Paul E. McKenney wrote: > On Tue, Apr 13, 2010 at 10:04:36PM +0200, Frederic Weisbecker wrote: > > Hi, > > > > I just ran the following on -rc4 with the latest pending sparc pull > > request manually merged (no -tip bits): > > > > perf record -a -f -g sleep 5 > > > > And I got this warning: > > > > > > [ 2235.846071] =================================================== > > [ 2235.857419] [ INFO: suspicious rcu_dereference_check() usage. ] > > [ 2235.863127] --------------------------------------------------- > > [ 2235.868734] kernel/perf_event.c:2232 invoked rcu_dereference_check() without protection! > > [ 2235.879843] > > [ 2235.879848] other info that might help us debug this: > > [ 2235.879855] > > [ 2235.895659] > > [ 2235.895663] rcu_scheduler_active = 1, debug_locks = 0 > > [ 2235.905505] 1 lock held by swapper/0: > > [ 2235.910333] #0: (&ctx->lock){-.....}, at: [<00000000004d9e00>] __perf_event_enable+0x60/0x1e8 > > As far as lockdep is concerned, we are not in an RCU read-side critical > section. Yeah :-/ > Very strange indeed. > > One question -- is it possible that your kernel does not match your > source code? I freely admit that it is extremely unlikely that such > a mismatch would happen to land on an rcu_dereference(), but... No, for example I just found the same problem in x86 in -tip: =================================================== [ INFO: suspicious rcu_dereference_check() usage. ] --------------------------------------------------- kernel/perf_event.c:2236 invoked rcu_dereference_check() without protection! other info that might help us debug this: rcu_scheduler_active = 1, debug_locks = 0 2 locks held by perf/3466: #0: (&ctx->mutex){+.+...}, at: [<c10bc567>] sys_perf_event_open+0x2a7/0x420 #1: (&ctx->lock){-.....}, at: [<c10b940f>] __perf_install_in_context+0x6f/0x160 stack backtrace: Pid: 3466, comm: perf Not tainted 2.6.34-rc3-atom #411 Call Trace: [<c150f95f>] ? printk+0x1d/0x1f [<c1075f8a>] lockdep_rcu_dereference+0xaa/0xb0 [<c10b8c01>] perf_event_update_userpage+0x151/0x190 [<c10b8ab0>] ? perf_event_update_userpage+0x0/0x190 [<c1010931>] x86_perf_event_set_period+0x101/0x1d0 [<c1010cf2>] intel_pmu_save_and_restart+0x12/0x20 [<c1013743>] intel_pmu_handle_irq+0x1d3/0x4e0 [<c1069b08>] ? sched_clock_cpu+0x128/0x170 [<c1074e8b>] ? trace_hardirqs_off+0xb/0x10 [<c1069b9f>] ? cpu_clock+0x4f/0x60 [<c1074e8b>] ? trace_hardirqs_off+0xb/0x10 [<c1069b9f>] ? cpu_clock+0x4f/0x60 [<c1078105>] ? __lock_acquire+0x1c5/0x1900 [<c1069942>] ? sched_clock_local+0xd2/0x170 [<c100f180>] perf_event_nmi_handler+0x40/0x50 [<c1068885>] notifier_call_chain+0x35/0x70 [<c1068eec>] __atomic_notifier_call_chain+0x6c/0xb0 [<c1068e80>] ? __atomic_notifier_call_chain+0x0/0xb0 [<c1068f4f>] atomic_notifier_call_chain+0x1f/0x30 [<c1068f8d>] notify_die+0x2d/0x30 [<c100428c>] do_nmi+0x16c/0x350 [<c1074f36>] ? lock_release_holdtime+0xa6/0x1a0 [<c151458d>] nmi_stack_correct+0x28/0x2d [<c10104cc>] ? intel_pmu_enable_all+0x8c/0x110 [<c1010c5a>] hw_perf_enable+0x1ba/0x240 [<c10b7df5>] perf_enable+0x25/0x30 [<c10b94b7>] __perf_install_in_context+0x117/0x160 [<c10807f6>] smp_call_function_single+0x76/0x170 [<c10b93a0>] ? __perf_install_in_context+0x0/0x160 [<c10bb34d>] perf_install_in_context+0x7d/0x80 [<c10bc575>] sys_perf_event_open+0x2b5/0x420 [<c1002c4c>] sysenter_do_call+0x12/0x32 > > Another unlikely possibility is that an interrupt occurred between > the rcu_read_lock() and the rcu_dereference(), and that this interrupt > had an extra unmatched rcu_read_unlock(). I fear it's too easily reproducible (for me at least) and too well localized (always the same place) to be a random interrupt there. I just have a guess though.... This seems to always happen from NMI path, and lockdep is disabled on NMI. I suspect the lock_acquire() performed by rcu_read_lock() is just ignored and then the rcu_read_lock_held() check has the wrong result... ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 0:02 ` Frederic Weisbecker @ 2010-04-14 0:13 ` David Miller 2010-04-14 1:49 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: David Miller @ 2010-04-14 0:13 UTC (permalink / raw) To: fweisbec; +Cc: paulmck, a.p.zijlstra, mingo, sparclinux, linux-kernel From: Frederic Weisbecker <fweisbec@gmail.com> Date: Wed, 14 Apr 2010 02:02:27 +0200 > I just have a guess though.... > This seems to always happen from NMI path, and lockdep is disabled on NMI. > I suspect the lock_acquire() performed by rcu_read_lock() is just ignored > and then the rcu_read_lock_held() check has the wrong result... Yeah, I bet that's it too. lock_is_held() can't return anything meaningful while lockdep is disabled, which it is during NMIs. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 0:13 ` David Miller @ 2010-04-14 1:49 ` Paul E. McKenney 2010-04-14 1:51 ` David Miller 2010-04-14 3:34 ` Lai Jiangshan 0 siblings, 2 replies; 13+ messages in thread From: Paul E. McKenney @ 2010-04-14 1:49 UTC (permalink / raw) To: David Miller; +Cc: fweisbec, a.p.zijlstra, mingo, sparclinux, linux-kernel On Tue, Apr 13, 2010 at 05:13:06PM -0700, David Miller wrote: > From: Frederic Weisbecker <fweisbec@gmail.com> > Date: Wed, 14 Apr 2010 02:02:27 +0200 > > > I just have a guess though.... > > This seems to always happen from NMI path, and lockdep is disabled on NMI. > > I suspect the lock_acquire() performed by rcu_read_lock() is just ignored > > and then the rcu_read_lock_held() check has the wrong result... > > Yeah, I bet that's it too. > > lock_is_held() can't return anything meaningful while lockdep is > disabled, which it is during NMIs. Ah! So I just need to add a "current->lockdep_recursion" check to debug_lockdep_rcu_enabled(). And move the function to kernel/rcutree_plugin.h to avoid #include hell. See below for (untested) patch. Thanx, Paul ------------------------------------------------------------------------ include/linux/rcupdate.h | 5 +---- kernel/rcutree_plugin.h | 11 +++++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) commit 304d8da6cd791a81ce3164f867e1b3ef4f9af1d1 Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Date: Tue Apr 13 18:45:51 2010 -0700 rcu: Make RCU lockdep check the lockdep_recursion variable The lockdep facility temporarily disables lockdep checking by incrementing the current->lockdep_recursion variable. Such disabling happens in NMIs and in other situations where lockdep might expect to recurse on itself. This patch therefore checks current->lockdep_recursion, disabling RCU lockdep splats when this variable is non-zero. Reported-by: Frederic Weisbecker <fweisbec@gmail.com> Reported-by: David Miller <davem@davemloft.net> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 9f1ddfe..07db2fe 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -101,10 +101,7 @@ extern struct lockdep_map rcu_sched_lock_map; # define rcu_read_release_sched() \ lock_release(&rcu_sched_lock_map, 1, _THIS_IP_) -static inline int debug_lockdep_rcu_enabled(void) -{ - return likely(rcu_scheduler_active && debug_locks); -} +extern int debug_lockdep_rcu_enabled(void); /** * rcu_read_lock_held - might we be in RCU read-side critical section? diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h index 79b53bd..2169abe 100644 --- a/kernel/rcutree_plugin.h +++ b/kernel/rcutree_plugin.h @@ -1067,3 +1067,14 @@ static void rcu_needs_cpu_flush(void) } #endif /* #else #if !defined(CONFIG_RCU_FAST_NO_HZ) */ + +#ifdef CONFIG_DEBUG_LOCK_ALLOC + +int debug_lockdep_rcu_enabled(void) +{ + return likely(rcu_scheduler_active && + debug_locks && + current->lockdep_recursion == 0); +} + +#endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */ ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 1:49 ` Paul E. McKenney @ 2010-04-14 1:51 ` David Miller 2010-04-14 3:34 ` Lai Jiangshan 1 sibling, 0 replies; 13+ messages in thread From: David Miller @ 2010-04-14 1:51 UTC (permalink / raw) To: paulmck; +Cc: fweisbec, a.p.zijlstra, mingo, sparclinux, linux-kernel From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> Date: Tue, 13 Apr 2010 18:49:30 -0700 > On Tue, Apr 13, 2010 at 05:13:06PM -0700, David Miller wrote: >> From: Frederic Weisbecker <fweisbec@gmail.com> >> Date: Wed, 14 Apr 2010 02:02:27 +0200 >> >> > I just have a guess though.... >> > This seems to always happen from NMI path, and lockdep is disabled on NMI. >> > I suspect the lock_acquire() performed by rcu_read_lock() is just ignored >> > and then the rcu_read_lock_held() check has the wrong result... >> >> Yeah, I bet that's it too. >> >> lock_is_held() can't return anything meaningful while lockdep is >> disabled, which it is during NMIs. > > Ah! So I just need to add a "current->lockdep_recursion" > check to debug_lockdep_rcu_enabled(). And move the function to > kernel/rcutree_plugin.h to avoid #include hell. > > See below for (untested) patch. Looks good to me, Frederic please test :-) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 1:49 ` Paul E. McKenney 2010-04-14 1:51 ` David Miller @ 2010-04-14 3:34 ` Lai Jiangshan 2010-04-14 15:43 ` Paul E. McKenney 1 sibling, 1 reply; 13+ messages in thread From: Lai Jiangshan @ 2010-04-14 3:34 UTC (permalink / raw) To: paulmck Cc: David Miller, fweisbec, a.p.zijlstra, mingo, sparclinux, linux-kernel Paul E. McKenney wrote: > On Tue, Apr 13, 2010 at 05:13:06PM -0700, David Miller wrote: >> From: Frederic Weisbecker <fweisbec@gmail.com> >> Date: Wed, 14 Apr 2010 02:02:27 +0200 >> >>> I just have a guess though.... >>> This seems to always happen from NMI path, and lockdep is disabled on NMI. >>> I suspect the lock_acquire() performed by rcu_read_lock() is just ignored >>> and then the rcu_read_lock_held() check has the wrong result... >> Yeah, I bet that's it too. >> >> lock_is_held() can't return anything meaningful while lockdep is >> disabled, which it is during NMIs. > > Ah! So I just need to add a "current->lockdep_recursion" > check to debug_lockdep_rcu_enabled(). And move the function to > kernel/rcutree_plugin.h to avoid #include hell. > > See below for (untested) patch. > > Thanx, Paul > > ------------------------------------------------------------------------ > > include/linux/rcupdate.h | 5 +---- > kernel/rcutree_plugin.h | 11 +++++++++++ > 2 files changed, 12 insertions(+), 4 deletions(-) > > commit 304d8da6cd791a81ce3164f867e1b3ef4f9af1d1 > Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > Date: Tue Apr 13 18:45:51 2010 -0700 > > rcu: Make RCU lockdep check the lockdep_recursion variable > > The lockdep facility temporarily disables lockdep checking by incrementing > the current->lockdep_recursion variable. Such disabling happens in NMIs > and in other situations where lockdep might expect to recurse on itself. > This patch therefore checks current->lockdep_recursion, disabling RCU > lockdep splats when this variable is non-zero. > > Reported-by: Frederic Weisbecker <fweisbec@gmail.com> > Reported-by: David Miller <davem@davemloft.net> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > index 9f1ddfe..07db2fe 100644 > --- a/include/linux/rcupdate.h > +++ b/include/linux/rcupdate.h > @@ -101,10 +101,7 @@ extern struct lockdep_map rcu_sched_lock_map; > # define rcu_read_release_sched() \ > lock_release(&rcu_sched_lock_map, 1, _THIS_IP_) > > -static inline int debug_lockdep_rcu_enabled(void) > -{ > - return likely(rcu_scheduler_active && debug_locks); > -} > +extern int debug_lockdep_rcu_enabled(void); > > /** > * rcu_read_lock_held - might we be in RCU read-side critical section? > diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h > index 79b53bd..2169abe 100644 > --- a/kernel/rcutree_plugin.h > +++ b/kernel/rcutree_plugin.h > @@ -1067,3 +1067,14 @@ static void rcu_needs_cpu_flush(void) > } > > #endif /* #else #if !defined(CONFIG_RCU_FAST_NO_HZ) */ > + > +#ifdef CONFIG_DEBUG_LOCK_ALLOC > + > +int debug_lockdep_rcu_enabled(void) > +{ > + return likely(rcu_scheduler_active && > + debug_locks && > + current->lockdep_recursion == 0); > +} > + Looks good to me too, but I think 'likely' is needless since the function is not inline. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 3:34 ` Lai Jiangshan @ 2010-04-14 15:43 ` Paul E. McKenney 2010-04-14 15:51 ` Frederic Weisbecker 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2010-04-14 15:43 UTC (permalink / raw) To: Lai Jiangshan Cc: David Miller, fweisbec, a.p.zijlstra, mingo, sparclinux, linux-kernel On Wed, Apr 14, 2010 at 11:34:33AM +0800, Lai Jiangshan wrote: > Paul E. McKenney wrote: > > On Tue, Apr 13, 2010 at 05:13:06PM -0700, David Miller wrote: > >> From: Frederic Weisbecker <fweisbec@gmail.com> > >> Date: Wed, 14 Apr 2010 02:02:27 +0200 > >> > >>> I just have a guess though.... > >>> This seems to always happen from NMI path, and lockdep is disabled on NMI. > >>> I suspect the lock_acquire() performed by rcu_read_lock() is just ignored > >>> and then the rcu_read_lock_held() check has the wrong result... > >> Yeah, I bet that's it too. > >> > >> lock_is_held() can't return anything meaningful while lockdep is > >> disabled, which it is during NMIs. > > > > Ah! So I just need to add a "current->lockdep_recursion" > > check to debug_lockdep_rcu_enabled(). And move the function to > > kernel/rcutree_plugin.h to avoid #include hell. > > > > See below for (untested) patch. > > > > Thanx, Paul > > > > ------------------------------------------------------------------------ > > > > include/linux/rcupdate.h | 5 +---- > > kernel/rcutree_plugin.h | 11 +++++++++++ > > 2 files changed, 12 insertions(+), 4 deletions(-) > > > > commit 304d8da6cd791a81ce3164f867e1b3ef4f9af1d1 > > Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > Date: Tue Apr 13 18:45:51 2010 -0700 > > > > rcu: Make RCU lockdep check the lockdep_recursion variable > > > > The lockdep facility temporarily disables lockdep checking by incrementing > > the current->lockdep_recursion variable. Such disabling happens in NMIs > > and in other situations where lockdep might expect to recurse on itself. > > This patch therefore checks current->lockdep_recursion, disabling RCU > > lockdep splats when this variable is non-zero. > > > > Reported-by: Frederic Weisbecker <fweisbec@gmail.com> > > Reported-by: David Miller <davem@davemloft.net> > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > > index 9f1ddfe..07db2fe 100644 > > --- a/include/linux/rcupdate.h > > +++ b/include/linux/rcupdate.h > > @@ -101,10 +101,7 @@ extern struct lockdep_map rcu_sched_lock_map; > > # define rcu_read_release_sched() \ > > lock_release(&rcu_sched_lock_map, 1, _THIS_IP_) > > > > -static inline int debug_lockdep_rcu_enabled(void) > > -{ > > - return likely(rcu_scheduler_active && debug_locks); > > -} > > +extern int debug_lockdep_rcu_enabled(void); > > > > /** > > * rcu_read_lock_held - might we be in RCU read-side critical section? > > diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h > > index 79b53bd..2169abe 100644 > > --- a/kernel/rcutree_plugin.h > > +++ b/kernel/rcutree_plugin.h > > @@ -1067,3 +1067,14 @@ static void rcu_needs_cpu_flush(void) > > } > > > > #endif /* #else #if !defined(CONFIG_RCU_FAST_NO_HZ) */ > > + > > +#ifdef CONFIG_DEBUG_LOCK_ALLOC > > + > > +int debug_lockdep_rcu_enabled(void) > > +{ > > + return likely(rcu_scheduler_active && > > + debug_locks && > > + current->lockdep_recursion == 0); > > +} > > + > > Looks good to me too, but I think > 'likely' is needless since the function is not inline. Good point. And to add injury to insult, I forgot EXPORT_SYMBOL_GPL(). Updated patch in the works. Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 15:43 ` Paul E. McKenney @ 2010-04-14 15:51 ` Frederic Weisbecker 2010-04-14 16:00 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Frederic Weisbecker @ 2010-04-14 15:51 UTC (permalink / raw) To: Paul E. McKenney Cc: Lai Jiangshan, David Miller, a.p.zijlstra, mingo, sparclinux, linux-kernel On Wed, Apr 14, 2010 at 08:43:02AM -0700, Paul E. McKenney wrote: > On Wed, Apr 14, 2010 at 11:34:33AM +0800, Lai Jiangshan wrote: > > Paul E. McKenney wrote: > > > On Tue, Apr 13, 2010 at 05:13:06PM -0700, David Miller wrote: > > >> From: Frederic Weisbecker <fweisbec@gmail.com> > > >> Date: Wed, 14 Apr 2010 02:02:27 +0200 > > >> > > >>> I just have a guess though.... > > >>> This seems to always happen from NMI path, and lockdep is disabled on NMI. > > >>> I suspect the lock_acquire() performed by rcu_read_lock() is just ignored > > >>> and then the rcu_read_lock_held() check has the wrong result... > > >> Yeah, I bet that's it too. > > >> > > >> lock_is_held() can't return anything meaningful while lockdep is > > >> disabled, which it is during NMIs. > > > > > > Ah! So I just need to add a "current->lockdep_recursion" > > > check to debug_lockdep_rcu_enabled(). And move the function to > > > kernel/rcutree_plugin.h to avoid #include hell. > > > > > > See below for (untested) patch. > > > > > > Thanx, Paul > > > > > > ------------------------------------------------------------------------ > > > > > > include/linux/rcupdate.h | 5 +---- > > > kernel/rcutree_plugin.h | 11 +++++++++++ > > > 2 files changed, 12 insertions(+), 4 deletions(-) > > > > > > commit 304d8da6cd791a81ce3164f867e1b3ef4f9af1d1 > > > Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > > Date: Tue Apr 13 18:45:51 2010 -0700 > > > > > > rcu: Make RCU lockdep check the lockdep_recursion variable > > > > > > The lockdep facility temporarily disables lockdep checking by incrementing > > > the current->lockdep_recursion variable. Such disabling happens in NMIs > > > and in other situations where lockdep might expect to recurse on itself. > > > This patch therefore checks current->lockdep_recursion, disabling RCU > > > lockdep splats when this variable is non-zero. > > > > > > Reported-by: Frederic Weisbecker <fweisbec@gmail.com> > > > Reported-by: David Miller <davem@davemloft.net> > > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > > > > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > > > index 9f1ddfe..07db2fe 100644 > > > --- a/include/linux/rcupdate.h > > > +++ b/include/linux/rcupdate.h > > > @@ -101,10 +101,7 @@ extern struct lockdep_map rcu_sched_lock_map; > > > # define rcu_read_release_sched() \ > > > lock_release(&rcu_sched_lock_map, 1, _THIS_IP_) > > > > > > -static inline int debug_lockdep_rcu_enabled(void) > > > -{ > > > - return likely(rcu_scheduler_active && debug_locks); > > > -} > > > +extern int debug_lockdep_rcu_enabled(void); > > > > > > /** > > > * rcu_read_lock_held - might we be in RCU read-side critical section? > > > diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h > > > index 79b53bd..2169abe 100644 > > > --- a/kernel/rcutree_plugin.h > > > +++ b/kernel/rcutree_plugin.h > > > @@ -1067,3 +1067,14 @@ static void rcu_needs_cpu_flush(void) > > > } > > > > > > #endif /* #else #if !defined(CONFIG_RCU_FAST_NO_HZ) */ > > > + > > > +#ifdef CONFIG_DEBUG_LOCK_ALLOC > > > + > > > +int debug_lockdep_rcu_enabled(void) > > > +{ > > > + return likely(rcu_scheduler_active && > > > + debug_locks && > > > + current->lockdep_recursion == 0); > > > +} > > > + > > > > Looks good to me too, but I think > > 'likely' is needless since the function is not inline. > > Good point. And to add injury to insult, I forgot EXPORT_SYMBOL_GPL(). > > Updated patch in the works. Note I just tested the patch the previous one and it looks fine now. You can then safely consider the "general idea" fixes the problem :) Thanks. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 15:51 ` Frederic Weisbecker @ 2010-04-14 16:00 ` Paul E. McKenney 2010-04-15 4:24 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2010-04-14 16:00 UTC (permalink / raw) To: Frederic Weisbecker Cc: Lai Jiangshan, David Miller, a.p.zijlstra, mingo, sparclinux, linux-kernel On Wed, Apr 14, 2010 at 05:51:11PM +0200, Frederic Weisbecker wrote: > On Wed, Apr 14, 2010 at 08:43:02AM -0700, Paul E. McKenney wrote: > > On Wed, Apr 14, 2010 at 11:34:33AM +0800, Lai Jiangshan wrote: > > > Paul E. McKenney wrote: > > > > On Tue, Apr 13, 2010 at 05:13:06PM -0700, David Miller wrote: > > > >> From: Frederic Weisbecker <fweisbec@gmail.com> > > > >> Date: Wed, 14 Apr 2010 02:02:27 +0200 > > > >> > > > >>> I just have a guess though.... > > > >>> This seems to always happen from NMI path, and lockdep is disabled on NMI. > > > >>> I suspect the lock_acquire() performed by rcu_read_lock() is just ignored > > > >>> and then the rcu_read_lock_held() check has the wrong result... > > > >> Yeah, I bet that's it too. > > > >> > > > >> lock_is_held() can't return anything meaningful while lockdep is > > > >> disabled, which it is during NMIs. > > > > > > > > Ah! So I just need to add a "current->lockdep_recursion" > > > > check to debug_lockdep_rcu_enabled(). And move the function to > > > > kernel/rcutree_plugin.h to avoid #include hell. > > > > > > > > See below for (untested) patch. > > > > > > > > Thanx, Paul > > > > > > > > ------------------------------------------------------------------------ > > > > > > > > include/linux/rcupdate.h | 5 +---- > > > > kernel/rcutree_plugin.h | 11 +++++++++++ > > > > 2 files changed, 12 insertions(+), 4 deletions(-) > > > > > > > > commit 304d8da6cd791a81ce3164f867e1b3ef4f9af1d1 > > > > Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > > > Date: Tue Apr 13 18:45:51 2010 -0700 > > > > > > > > rcu: Make RCU lockdep check the lockdep_recursion variable > > > > > > > > The lockdep facility temporarily disables lockdep checking by incrementing > > > > the current->lockdep_recursion variable. Such disabling happens in NMIs > > > > and in other situations where lockdep might expect to recurse on itself. > > > > This patch therefore checks current->lockdep_recursion, disabling RCU > > > > lockdep splats when this variable is non-zero. > > > > > > > > Reported-by: Frederic Weisbecker <fweisbec@gmail.com> > > > > Reported-by: David Miller <davem@davemloft.net> > > > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > > > > > > > diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h > > > > index 9f1ddfe..07db2fe 100644 > > > > --- a/include/linux/rcupdate.h > > > > +++ b/include/linux/rcupdate.h > > > > @@ -101,10 +101,7 @@ extern struct lockdep_map rcu_sched_lock_map; > > > > # define rcu_read_release_sched() \ > > > > lock_release(&rcu_sched_lock_map, 1, _THIS_IP_) > > > > > > > > -static inline int debug_lockdep_rcu_enabled(void) > > > > -{ > > > > - return likely(rcu_scheduler_active && debug_locks); > > > > -} > > > > +extern int debug_lockdep_rcu_enabled(void); > > > > > > > > /** > > > > * rcu_read_lock_held - might we be in RCU read-side critical section? > > > > diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h > > > > index 79b53bd..2169abe 100644 > > > > --- a/kernel/rcutree_plugin.h > > > > +++ b/kernel/rcutree_plugin.h > > > > @@ -1067,3 +1067,14 @@ static void rcu_needs_cpu_flush(void) > > > > } > > > > > > > > #endif /* #else #if !defined(CONFIG_RCU_FAST_NO_HZ) */ > > > > + > > > > +#ifdef CONFIG_DEBUG_LOCK_ALLOC > > > > + > > > > +int debug_lockdep_rcu_enabled(void) > > > > +{ > > > > + return likely(rcu_scheduler_active && > > > > + debug_locks && > > > > + current->lockdep_recursion == 0); > > > > +} > > > > + > > > > > > Looks good to me too, but I think > > > 'likely' is needless since the function is not inline. > > > > Good point. And to add injury to insult, I forgot EXPORT_SYMBOL_GPL(). > > > > Updated patch in the works. > > > Note I just tested the patch the previous one and it looks fine now. > You can then safely consider the "general idea" fixes the problem :) Thank you, Frederic!!! Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-14 16:00 ` Paul E. McKenney @ 2010-04-15 4:24 ` Paul E. McKenney 2010-04-15 18:57 ` Frederic Weisbecker 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2010-04-15 4:24 UTC (permalink / raw) To: Frederic Weisbecker Cc: Lai Jiangshan, David Miller, a.p.zijlstra, mingo, sparclinux, linux-kernel On Wed, Apr 14, 2010 at 09:00:57AM -0700, Paul E. McKenney wrote: > On Wed, Apr 14, 2010 at 05:51:11PM +0200, Frederic Weisbecker wrote: [ . . .] > > Note I just tested the patch the previous one and it looks fine now. > > You can then safely consider the "general idea" fixes the problem :) > > Thank you, Frederic!!! And here is what I hope is the official fix. Could you please test it? Thanx, Paul ------------------------------------------------------------------------ commit 9be39c445a41e458d53cf9a57d25dbfa4b74c970 Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Date: Tue Apr 13 18:45:51 2010 -0700 rcu: Make RCU lockdep check the lockdep_recursion variable The lockdep facility temporarily disables lockdep checking by incrementing the current->lockdep_recursion variable. Such disabling happens in NMIs and in other situations where lockdep might expect to recurse on itself. This patch therefore checks current->lockdep_recursion, disabling RCU lockdep splats when this variable is non-zero. In addition, this patch removes the "likely()", as suggested by Lai Jiangshan. Reported-by: Frederic Weisbecker <fweisbec@gmail.com> Reported-by: David Miller <davem@davemloft.net> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 9f1ddfe..07db2fe 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h @@ -101,10 +101,7 @@ extern struct lockdep_map rcu_sched_lock_map; # define rcu_read_release_sched() \ lock_release(&rcu_sched_lock_map, 1, _THIS_IP_) -static inline int debug_lockdep_rcu_enabled(void) -{ - return likely(rcu_scheduler_active && debug_locks); -} +extern int debug_lockdep_rcu_enabled(void); /** * rcu_read_lock_held - might we be in RCU read-side critical section? diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index 63fe254..03a7ea1 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c @@ -69,6 +69,13 @@ EXPORT_SYMBOL_GPL(rcu_scheduler_active); #ifdef CONFIG_DEBUG_LOCK_ALLOC +int debug_lockdep_rcu_enabled(void) +{ + return rcu_scheduler_active && debug_locks && + current->lockdep_recursion == 0; +} +EXPORT_SYMBOL_GPL(debug_lockdep_rcu_enabled); + /** * rcu_read_lock_bh_held - might we be in RCU-bh read-side critical section? * ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-15 4:24 ` Paul E. McKenney @ 2010-04-15 18:57 ` Frederic Weisbecker 2010-04-15 19:47 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Frederic Weisbecker @ 2010-04-15 18:57 UTC (permalink / raw) To: Paul E. McKenney Cc: Lai Jiangshan, David Miller, a.p.zijlstra, mingo, sparclinux, linux-kernel On Wed, Apr 14, 2010 at 09:24:26PM -0700, Paul E. McKenney wrote: > On Wed, Apr 14, 2010 at 09:00:57AM -0700, Paul E. McKenney wrote: > > On Wed, Apr 14, 2010 at 05:51:11PM +0200, Frederic Weisbecker wrote: > > [ . . .] > > > > Note I just tested the patch the previous one and it looks fine now. > > > You can then safely consider the "general idea" fixes the problem :) > > > > Thank you, Frederic!!! > > And here is what I hope is the official fix. > > Could you please test it? > > Thanx, Paul > > ------------------------------------------------------------------------ > > commit 9be39c445a41e458d53cf9a57d25dbfa4b74c970 > Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > Date: Tue Apr 13 18:45:51 2010 -0700 > > rcu: Make RCU lockdep check the lockdep_recursion variable > > The lockdep facility temporarily disables lockdep checking by incrementing > the current->lockdep_recursion variable. Such disabling happens in NMIs > and in other situations where lockdep might expect to recurse on itself. > This patch therefore checks current->lockdep_recursion, disabling RCU > lockdep splats when this variable is non-zero. In addition, this patch > removes the "likely()", as suggested by Lai Jiangshan. > > Reported-by: Frederic Weisbecker <fweisbec@gmail.com> > Reported-by: David Miller <davem@davemloft.net> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Tested-by: Frederic Weisbecker <fweisbec@gmail.com> Thanks! ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Weird rcu lockdep warning 2010-04-15 18:57 ` Frederic Weisbecker @ 2010-04-15 19:47 ` Paul E. McKenney 0 siblings, 0 replies; 13+ messages in thread From: Paul E. McKenney @ 2010-04-15 19:47 UTC (permalink / raw) To: Frederic Weisbecker Cc: Lai Jiangshan, David Miller, a.p.zijlstra, mingo, sparclinux, linux-kernel On Thu, Apr 15, 2010 at 08:57:05PM +0200, Frederic Weisbecker wrote: > On Wed, Apr 14, 2010 at 09:24:26PM -0700, Paul E. McKenney wrote: > > On Wed, Apr 14, 2010 at 09:00:57AM -0700, Paul E. McKenney wrote: > > > On Wed, Apr 14, 2010 at 05:51:11PM +0200, Frederic Weisbecker wrote: > > > > [ . . .] > > > > > > Note I just tested the patch the previous one and it looks fine now. > > > > You can then safely consider the "general idea" fixes the problem :) > > > > > > Thank you, Frederic!!! > > > > And here is what I hope is the official fix. > > > > Could you please test it? > > > > Thanx, Paul > > > > ------------------------------------------------------------------------ > > > > commit 9be39c445a41e458d53cf9a57d25dbfa4b74c970 > > Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > Date: Tue Apr 13 18:45:51 2010 -0700 > > > > rcu: Make RCU lockdep check the lockdep_recursion variable > > > > The lockdep facility temporarily disables lockdep checking by incrementing > > the current->lockdep_recursion variable. Such disabling happens in NMIs > > and in other situations where lockdep might expect to recurse on itself. > > This patch therefore checks current->lockdep_recursion, disabling RCU > > lockdep splats when this variable is non-zero. In addition, this patch > > removes the "likely()", as suggested by Lai Jiangshan. > > > > Reported-by: Frederic Weisbecker <fweisbec@gmail.com> > > Reported-by: David Miller <davem@davemloft.net> > > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > Tested-by: Frederic Weisbecker <fweisbec@gmail.com> Thank you, Frederic! Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2010-04-15 19:48 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-04-13 20:04 Weird rcu lockdep warning Frederic Weisbecker 2010-04-13 23:40 ` Paul E. McKenney 2010-04-14 0:02 ` Frederic Weisbecker 2010-04-14 0:13 ` David Miller 2010-04-14 1:49 ` Paul E. McKenney 2010-04-14 1:51 ` David Miller 2010-04-14 3:34 ` Lai Jiangshan 2010-04-14 15:43 ` Paul E. McKenney 2010-04-14 15:51 ` Frederic Weisbecker 2010-04-14 16:00 ` Paul E. McKenney 2010-04-15 4:24 ` Paul E. McKenney 2010-04-15 18:57 ` Frederic Weisbecker 2010-04-15 19:47 ` Paul E. McKenney
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox