linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
@ 2011-04-24 18:21 Bruno Prémont
  2011-04-24 21:59 ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-24 18:21 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-mm, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 5397 bytes --]

On an older system I've been running Gentoo's revdep-rebuild to check
for system linking/*.la consistency and after doing most of the work the
system starved more or less, just complaining about stuck tasks now and
then.
Memory usage graph as seen from userspace showed sudden quick increase of
memory usage though only a very few MB were swapped out (c.f. attached RRD
graph).


Sample soft-lockup trace:
[ 3683.000651] BUG: soft lockup - CPU#0 stuck for 64s! [kswapd0:365]
[ 3683.000720] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 3683.001331] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 3683.001941] 
[ 3683.001988] Pid: 365, comm: kswapd0 Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1 NVIDIA Corporation. nFORCE-MCP/MS-6373
[ 3683.002163] EIP: 0060:[<c1092cd0>] EFLAGS: 00000246 CPU: 0
[ 3683.002221] EIP is at shrink_inactive_list+0x110/0x340
[ 3683.002272] EAX: 00000000 EBX: c1546620 ECX: 00000001 EDX: 00000000
[ 3683.002324] ESI: dd587f78 EDI: dd587e68 EBP: dd587e88 ESP: dd587e38
[ 3683.002376]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 3683.002427] Process kswapd0 (pid: 365, ti=dd586000 task=dd532700 task.ti=dd586000)
[ 3683.002486] Stack:
[ 3683.002532]  dd587e78 00000001 00000000 00000001 00000054 dd532700 c15468d8 c154688c
[ 3683.002871]  c15468dc 00000000 dd587e5c 00000000 dd587e68 dd587e68 dd587e6c 0000007b
[ 3683.003212]  00000000 00000002 00000000 00000000 dd587f14 c10932a0 00000002 00000001
[ 3683.003548] Call Trace:
[ 3683.003602]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 3683.003653]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 3683.003705]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 3683.003757]  [<c1047794>] kthread+0x74/0x80
[ 3683.003807]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 3683.003864]  [<c13918b6>] kernel_thread_helper+0x6/0xd
[ 3683.003913] Code: 0e 04 74 5f 89 da 2b 93 e0 02 00 00 c1 fa 02 69 d2 95 fa 53 ea 01 04 95 e8 55 52 c1 8b 55 d4 85 d2 75 5f fb c7 45 dc 00 00 00 00 <8b> 45 dc 83 c4 44 5b 5e 5f c9 c3 90 8d 74 26 00 83 7d 08 09 0f 
[ 3683.006264] Call Trace:
[ 3683.006312]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 3683.006379]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 3683.006430]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 3683.006480]  [<c1047794>] kthread+0x74/0x80
[ 3683.006529]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 3683.006580]  [<c13918b6>] kernel_thread_helper+0x6/0xd



A meminfo (sysreq + m) in between the traces produced the following weird
looking information:
[ 6605.162375] Mem-Info:
[ 6605.162421] DMA per-cpu:
[ 6605.162468] CPU    0: hi:    0, btch:   1 usd:   0
[ 6605.162517] Normal per-cpu:
[ 6605.162565] CPU    0: hi:  186, btch:  31 usd:  56
[ 6605.162618] active_anon:56 inactive_anon:86 isolated_anon:32
[ 6605.162620]  active_file:1114 inactive_file:1101 isolated_file:32
[ 6605.162623]  unevictable:8 dirty:0 writeback:0 unstable:0
[ 6605.162624]  free:1195 slab_reclaimable:14698 slab_unreclaimable:34339
[ 6605.162626]  mapped:135 shmem:0 pagetables:87 bounce:0
[ 6605.162875] DMA free:1936kB min:88kB low:108kB high:132kB active_anon:4kB inactive_anon:4294967292kB active_file:4294967284kB inac
tive_file:4294967252kB unevictable:0kB isolated(anon):4kB isolated(file):56kB present:15808kB mlocked:0kB dirty:0kB writeback:0kB map
ped:0kB shmem:0kB slab_reclaimable:180kB slab_unreclaimable:4688kB kernel_stack:9104kB pagetables:0kB unstable:0kB bounce:0kB writeba
ck_tmp:0kB pages_scanned:2 all_unreclaimable? no
[ 6605.163011] lowmem_reserve[]: 0 460 460
[ 6605.163207] Normal free:2836kB min:2696kB low:3368kB high:4044kB active_anon:220kB inactive_anon:348kB active_file:4468kB inactive
_file:4448kB unevictable:32kB isolated(anon):124kB isolated(file):72kB present:471360kB mlocked:32kB dirty:0kB writeback:0kB mapped:5
40kB shmem:0kB slab_reclaimable:58612kB slab_unreclaimable:132676kB kernel_stack:256640kB pagetables:348kB unstable:0kB bounce:0kB wr
iteback_tmp:0kB pages_scanned:871 all_unreclaimable? no
[ 6605.163337] lowmem_reserve[]: 0 0 0
[ 6605.163526] DMA: 96*4kB 178*8kB 8*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1936kB
[ 6605.164012] Normal: 539*4kB 1*8kB 0*16kB 1*32kB 0*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 2836kB
[ 6605.164500] 2360 total pagecache pages
[ 6605.164547] 113 pages in swap cache
[ 6605.164595] Swap cache stats: add 135546, delete 135433, find 121976/158215
[ 6605.164647] Free swap  = 518472kB
[ 6605.164694] Total swap = 524284kB
[ 6605.170001] 122848 pages RAM
[ 6605.170001] 2699 pages reserved
[ 6605.170001] 2129 pages shared
[ 6605.170001] 83744 pages non-shared


dmesg output (stripped part of the soft-lockup traces to keep log
small) and config attached.

That state suddenly "fixed" itself when revdep-rebuild ended up in
STOPPED state (lots of minutes after hitting CTRL+Z on its terminal),
though system didn't survive very long after that (died in network
stack handling RX IRQ for IPv6 packet.

System has mostly reiserfs filesystems mounted (one ext3 but that one
should not have been touched).


Previously I've been running kernels up to 2.6.38 without seeing this
kind of issue. This was first run of 2.6.39-rc kernel on this system.

If there is some more info I can provide, please tell!
Bruno

[-- Attachment #2: vm-madness.config --]
[-- Type: application/octet-stream, Size: 16683 bytes --]

CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_DEFAULT_IDLE=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=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_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_LAZY_GS=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
CONFIG_KTIME_SCALAR=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
CONFIG_HAVE_IRQ_WORK=y
CONFIG_IRQ_WORK=y
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION="-jupiter"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
CONFIG_HAVE_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_TINY_RCU=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=18
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_NAMESPACES=y
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=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_EVENTS=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_PCI_QUIRKS=y
CONFIG_SLUB_DEBUG=y
CONFIG_SLUB=y
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_BLOCK=y
CONFIG_LBDAF=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_INLINE_SPIN_UNLOCK=y
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
CONFIG_FREEZER=y
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
CONFIG_NO_BOOTMEM=y
CONFIG_MK7=y
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
CONFIG_X86_CMPXCHG=y
CONFIG_CMPXCHG_LOCAL=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=4
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_CPU_SUP_UMC_32=y
CONFIG_HPET_TIMER=y
CONFIG_HPET_EMULATE_RTC=y
CONFIG_DMI=y
CONFIG_NR_CPUS=1
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
CONFIG_VM86=y
CONFIG_MICROCODE=m
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_NOHIGHMEM=y
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_COMPACTION=y
CONFIG_MIGRATION=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
CONFIG_X86_RESERVE_LOW=64
CONFIG_MTRR=y
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_HZ_100=y
CONFIG_HZ=100
CONFIG_SCHED_HRTICK=y
CONFIG_KEXEC=y
CONFIG_PHYSICAL_START=0x1000000
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE=""
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_PM_SLEEP=y
CONFIG_PM_RUNTIME=y
CONFIG_PM=y
CONFIG_PM_DEBUG=y
CONFIG_PM_ADVANCED_DEBUG=y
CONFIG_CAN_PM_TRACE=y
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_PCI_SLOT=m
CONFIG_X86_PM_TIMER=y
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_DOMAINS=y
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
CONFIG_PCI_IOAPIC=y
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
CONFIG_AMD_NB=y
CONFIG_BINFMT_ELF=y
CONFIG_HAVE_AOUT=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_HAVE_TEXT_POKE_SMP=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_SYN_COOKIES=y
CONFIG_INET_LRO=y
CONFIG_INET_DIAG=m
CONFIG_INET_TCP_DIAG=m
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
CONFIG_IPV6=y
CONFIG_IPV6_PRIVACY=y
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_MARK=y
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_CONNMARK=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
CONFIG_NETFILTER_XT_MATCH_MAC=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
CONFIG_NETFILTER_XT_MATCH_OWNER=m
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_MANGLE=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_VLAN_8021Q=m
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE=""
CONFIG_ARCH_NO_SYSDEV_OPS=y
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_1284=y
CONFIG_PNP=y
CONFIG_ISAPNP=y
CONFIG_PNPACPI=y
CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_NBD=m
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_ATA_OVER_ETH=y
CONFIG_HAVE_IDE=y
CONFIG_SCSI_MOD=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_SCAN_ASYNC=y
CONFIG_SCSI_WAIT_SCAN=m
CONFIG_ATA=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_ACPI=y
CONFIG_ATA_SFF=y
CONFIG_ATA_BMDMA=y
CONFIG_PATA_AMD=y
CONFIG_PATA_HPT37X=y
CONFIG_NETDEVICES=y
CONFIG_TUN=m
CONFIG_MII=y
CONFIG_PHYLIB=m
CONFIG_NET_ETHERNET=y
CONFIG_NET_PCI=y
CONFIG_FORCEDETH=y
CONFIG_NETCONSOLE=y
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
CONFIG_NET_POLL_CONTROLLER=y
CONFIG_INPUT=y
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1024
CONFIG_INPUT_EVDEV=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
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_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=m
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_SERPORT=m
CONFIG_SERIO_LIBPS2=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_UNIX98_PTYS=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_NVRAM=m
CONFIG_HPET=y
CONFIG_HPET_MMAP=y
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_COMPAT=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_ALGOBIT=y
CONFIG_I2C_AMD756=y
CONFIG_I2C_SCMI=m
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_POWER_SUPPLY=y
CONFIG_HWMON=y
CONFIG_HWMON_VID=y
CONFIG_SENSORS_W83627HF=y
CONFIG_THERMAL=y
CONFIG_THERMAL_HWMON=y
CONFIG_WATCHDOG=y
CONFIG_NV_TCO=m
CONFIG_W83627HF_WDT=y
CONFIG_SSB_POSSIBLE=y
CONFIG_MEDIA_SUPPORT=y
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_V4L2_COMMON=m
CONFIG_VIDEO_MEDIA=m
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
CONFIG_MEDIA_TUNER_SIMPLE=m
CONFIG_MEDIA_TUNER_TDA8290=m
CONFIG_MEDIA_TUNER_TDA827X=m
CONFIG_MEDIA_TUNER_TDA18271=m
CONFIG_MEDIA_TUNER_TDA9887=m
CONFIG_MEDIA_TUNER_TEA5761=m
CONFIG_MEDIA_TUNER_TEA5767=m
CONFIG_MEDIA_TUNER_MT20XX=m
CONFIG_MEDIA_TUNER_XC2028=m
CONFIG_MEDIA_TUNER_XC5000=m
CONFIG_MEDIA_TUNER_MC44S803=m
CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
CONFIG_USB_PWC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
CONFIG_AGP=y
CONFIG_AGP_NVIDIA=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=3
CONFIG_DRM=y
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_TTM=m
CONFIG_VGASTATE=m
CONFIG_VIDEO_OUTPUT_CONTROL=y
CONFIG_FB=y
CONFIG_FIRMWARE_EDID=y
CONFIG_FB_DDC=m
CONFIG_FB_CFB_FILLRECT=m
CONFIG_FB_CFB_COPYAREA=m
CONFIG_FB_CFB_IMAGEBLIT=m
CONFIG_FB_SYS_FILLRECT=m
CONFIG_FB_SYS_COPYAREA=m
CONFIG_FB_SYS_IMAGEBLIT=m
CONFIG_FB_SYS_FOPS=m
CONFIG_FB_DEFERRED_IO=y
CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
CONFIG_FB_CIRRUS=m
CONFIG_FB_NVIDIA=m
CONFIG_FB_NVIDIA_I2C=y
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=y
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_HRTIMER=m
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=60
CONFIG_SND_PCI=y
CONFIG_SND_INTEL8X0=m
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_AC97_BUS=m
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
CONFIG_HIDRAW=y
CONFIG_USB_HID=y
CONFIG_USB_HIDDEV=y
CONFIG_HID_A4TECH=y
CONFIG_HID_APPLE=y
CONFIG_HID_BELKIN=y
CONFIG_HID_CHERRY=y
CONFIG_HID_CHICONY=y
CONFIG_HID_CYPRESS=y
CONFIG_HID_EZKEY=y
CONFIG_HID_KYE=y
CONFIG_HID_TWINHAN=y
CONFIG_HID_KENSINGTON=y
CONFIG_HID_LOGITECH=y
CONFIG_HID_MICROSOFT=y
CONFIG_HID_MONTEREY=y
CONFIG_HID_PICOLCD=m
CONFIG_HID_PICOLCD_FB=y
CONFIG_HID_PICOLCD_BACKLIGHT=y
CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
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_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_SUSPEND=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_STORAGE=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_INTF_SYSFS=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_CMOS=y
CONFIG_STAGING=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU_DEBUG=y
CONFIG_DRM_I2C_CH7006=m
CONFIG_DRM_I2C_SIL164=m
CONFIG_MACH_NO_WESTBRIDGE=y
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_FIRMWARE_MEMMAP=y
CONFIG_DMIID=y
CONFIG_DMI_SYSFS=y
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
CONFIG_FS_MBCACHE=m
CONFIG_REISERFS_FS=y
CONFIG_REISERFS_PROC_INFO=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
CONFIG_INOTIFY_USER=y
CONFIG_QUOTACTL=y
CONFIG_GENERIC_ACL=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=850
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_NTFS_FS=m
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=y
CONFIG_CONFIGFS_FS=y
CONFIG_MISC_FILESYSTEMS=y
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_PARTITION_ADVANCED=y
CONFIG_MSDOS_PARTITION=y
CONFIG_EFI_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="utf8"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_PRINTK_TIME=y
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y
CONFIG_DEBUG_KERNEL=y
CONFIG_LOCKUP_DETECTOR=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_TIMER_STATS=y
CONFIG_STACKTRACE=y
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_ARCH_WANT_FRAME_POINTERS=y
CONFIG_FRAME_POINTER=y
CONFIG_SYSCTL_SYSCALL_CHECK=y
CONFIG_USER_STACKTRACE_SUPPORT=y
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_HAVE_C_RECORDMCOUNT=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_BRANCH_PROFILE_NONE=y
CONFIG_MMIOTRACE=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_HAVE_ARCH_KMEMCHECK=y
CONFIG_STRICT_DEVMEM=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_DOUBLEFAULT=y
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
CONFIG_DEFAULT_IO_DELAY_TYPE=0
CONFIG_OPTIMIZE_INLINING=y
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_HAVE_KVM=y
CONFIG_BINARY_PRINTF=y
CONFIG_BITREVERSE=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_CRC_CCITT=m
CONFIG_CRC_ITU_T=m
CONFIG_CRC32=y
CONFIG_ZLIB_INFLATE=m
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_NLATTR=y

[-- Attachment #3: vm-madness.dmesg --]
[-- Type: application/octet-stream, Size: 49927 bytes --]

[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.39-rc4-jupiter-00187-g686c4cb (kbuild@jupiter) (gcc version 4.4.5 (Gentoo 4.4.5 p1.2, pie-0.4.5) ) #1 Sun Apr 24 13:21:57 CEST 2011
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
[    0.000000]  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 000000001dff0000 (usable)
[    0.000000]  BIOS-e820: 000000001dff0000 - 000000001dff3000 (ACPI NVS)
[    0.000000]  BIOS-e820: 000000001dff3000 - 000000001e000000 (ACPI data)
[    0.000000] Notice: NX (Execute Disable) protection missing in CPU!
[    0.000000] DMI 2.3 present.
[    0.000000] DMI: NVIDIA Corporation. nFORCE-MCP/MS-6373, BIOS 6.00 PG 04/12/2002
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] last_pfn = 0x1dff0 max_arch_pfn = 0x100000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-AFFFF uncachable
[    0.000000]   B0000-BFFFF write-combining
[    0.000000]   C0000-C7FFF write-protect
[    0.000000]   C8000-FFFFF uncachable
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask FE0000000 write-back
[    0.000000]   1 base 01E000000 mask FFE000000 uncachable
[    0.000000]   2 disabled
[    0.000000]   3 disabled
[    0.000000]   4 disabled
[    0.000000]   5 base 0E8000000 mask FFE000000 write-combining
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] initial memory mapped : 0 - 01c00000
[    0.000000] Base memory trampoline at [c009b000] 9b000 size 12288
[    0.000000] init_memory_mapping: 0000000000000000-000000001dff0000
[    0.000000]  0000000000 - 0000400000 page 4k
[    0.000000]  0000400000 - 001dc00000 page 2M
[    0.000000]  001dc00000 - 001dff0000 page 4k
[    0.000000] kernel direct mapping tables up to 1dff0000 @ 1bfb000-1c00000
[    0.000000] ACPI: RSDP 000f6470 00014 (v00 Nvidia)
[    0.000000] ACPI: RSDT 1dff3000 0002C (v01 Nvidia AWRDACPI 42302E31 AWRD 00000000)
[    0.000000] ACPI: FACP 1dff3040 00074 (v01 Nvidia AWRDACPI 42302E31 AWRD 00000000)
[    0.000000] ACPI: DSDT 1dff30c0 03E5E (v01 NVIDIA AWRDACPI 00001000 MSFT 0100000C)
[    0.000000] ACPI: FACS 1dff0000 00040
[    0.000000] ACPI: APIC 1dff6f40 00054 (v01 Nvidia AWRDACPI 42302E31 AWRD 00000000)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] 479MB LOWMEM available.
[    0.000000]   mapped low ram: 0 - 1dff0000
[    0.000000]   low ram: 0 - 1dff0000
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   Normal   0x00001000 -> 0x0001dff0
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[2] active PFN ranges
[    0.000000]     0: 0x00000010 -> 0x000000a0
[    0.000000]     0: 0x00000100 -> 0x0001dff0
[    0.000000] On node 0 totalpages: 122752
[    0.000000] free_area_init_node: node 0, pgdat c1546620, node_mem_map ddc30200
[    0.000000]   DMA zone: 32 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 3952 pages, LIFO batch:0
[    0.000000]   Normal zone: 928 pages used for memmap
[    0.000000]   Normal zone: 117840 pages, LIFO batch:31
[    0.000000] Using APIC driver default
[    0.000000] Nvidia board detected. Ignoring ACPI timer override.
[    0.000000] If you got timer trouble try acpi_use_timer_override
[    0.000000] ACPI: PM-Timer IO Port: 0x4008
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 17, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: BIOS IRQ0 pin2 override ignored.
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] nr_irqs_gsi: 40
[    0.000000] Allocating PCI resources starting at 1e000000 (gap: 1e000000:e2000000)
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 121792
[    0.000000] Kernel command line: BOOT_IMAGE=2.6.39-git ro root=803 acpi_enforce_resources=lax netconsole=*****@***.***.***.***/eth0,515@***.***.***.***/**:**:**:**:**:**
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Initializing CPU#0
[    0.000000] Memory: 480304k/491456k available (3657k kernel code, 10704k reserved, 1771k data, 356k init, 0k highmem)
[    0.000000] virtual kernel memory layout:
[    0.000000]     fixmap  : 0xfffa3000 - 0xfffff000   ( 368 kB)
[    0.000000]     vmalloc : 0xde7f0000 - 0xfffa1000   ( 535 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xddff0000   ( 479 MB)
[    0.000000]       .init : 0xc154e000 - 0xc15a7000   ( 356 kB)
[    0.000000]       .data : 0xc13924f8 - 0xc154d1c0   (1771 kB)
[    0.000000]       .text : 0xc1000000 - 0xc13924f8   (3657 kB)
[    0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok.
[    0.000000] SLUB: Genslabs=15, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:288
[    0.000000] CPU 0 irqstacks, hard=dd40a000 soft=dd410000
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] Fast TSC calibration using PIT
[    0.000000] Detected 1536.847 MHz processor.
[    0.010004] Calibrating delay loop (skipped), value calculated using timer frequency.. 3073.69 BogoMIPS (lpj=15368470)
[    0.010104] pid_max: default: 32768 minimum: 301
[    0.020008] Mount-cache hash table entries: 512
[    0.020240] mce: CPU supports 4 MCE banks
[    0.020308] CPU: AMD Athlon(tm) XP 1800+ stepping 02
[    0.020967] ACPI: Core revision 20110316
[    0.030106] Performance Events: AMD PMU driver.
[    0.030200] ... version:                0
[    0.030247] ... bit width:              48
[    0.030294] ... generic registers:      4
[    0.030340] ... value mask:             0000ffffffffffff
[    0.030389] ... max period:             00007fffffffffff
[    0.030437] ... fixed-purpose events:   0
[    0.030484] ... event mask:             000000000000000f
[    0.030960] NMI watchdog enabled, takes one hw-pmu counter.
[    0.031047] Enabling APIC mode:  Flat.  Using 1 I/O APICs
[    0.031446] ..TIMER: vector=0x30 apic1=0 pin1=0 apic2=-1 pin2=-1
[    0.140000] kworker/u:0 used greatest stack depth: 7440 bytes left
[    0.140000] Time: 17:14:30  Date: 04/24/11
[    0.140000] NET: Registered protocol family 16
[    0.140000] kworker/u:1 used greatest stack depth: 7260 bytes left
[    0.140000] ACPI: bus type pci registered
[    0.158950] PCI: PCI BIOS revision 2.10 entry at 0xfb360, last bus=2
[    0.159002] PCI: Using configuration type 1 for base access
[    0.161319] kworker/u:1 used greatest stack depth: 7076 bytes left
[    0.165961] bio: create slab <bio-0> at 0
[    0.167421] ACPI: EC: Look up EC in DSDT
[    0.171987] ACPI: Interpreter enabled
[    0.172049] ACPI: (supports S0 S3 S5)
[    0.172223] ACPI: Using IOAPIC for interrupt routing
[    0.182329] ACPI: No dock devices found.
[    0.182391] PCI: Ignoring host bridge windows from ACPI; if necessary, use "pci=use_crs" and report a bug
[    0.182580] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.182891] pci_root PNP0A03:00: host bridge window [io  0x0000-0x0cf7] (ignored)
[    0.182897] pci_root PNP0A03:00: host bridge window [io  0x0d00-0xffff] (ignored)
[    0.182902] pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x000bffff] (ignored)
[    0.182907] pci_root PNP0A03:00: host bridge window [mem 0x000c0000-0x000dffff] (ignored)
[    0.182912] pci_root PNP0A03:00: host bridge window [mem 0x1e000000-0xffefffff] (ignored)
[    0.182931] pci 0000:00:00.0: [10de:01a4] type 0 class 0x000600
[    0.182943] pci 0000:00:00.0: reg 10: [mem 0xe8000000-0xe9ffffff pref]
[    0.182986] pci 0000:00:00.1: [10de:01ac] type 0 class 0x000500
[    0.183026] pci 0000:00:00.2: [10de:01ad] type 0 class 0x000500
[    0.183065] pci 0000:00:00.3: [10de:01ab] type 0 class 0x000500
[    0.183108] pci 0000:00:01.0: [10de:01b2] type 0 class 0x000601
[    0.183190] pci 0000:00:01.1: [10de:01b4] type 0 class 0x000c05
[    0.183206] pci 0000:00:01.1: reg 10: [io  0x5000-0x500f]
[    0.183217] pci 0000:00:01.1: reg 14: [io  0x5020-0x502f]
[    0.183227] pci 0000:00:01.1: reg 18: [io  0x6000-0x601f]
[    0.183270] pci 0000:00:01.1: PME# supported from D3hot D3cold
[    0.183277] pci 0000:00:01.1: PME# disabled
[    0.183302] pci 0000:00:02.0: [10de:01c2] type 0 class 0x000c03
[    0.183319] pci 0000:00:02.0: reg 10: [mem 0xed083000-0xed083fff]
[    0.183374] pci 0000:00:02.0: supports D1 D2
[    0.183377] pci 0000:00:02.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.183383] pci 0000:00:02.0: PME# disabled
[    0.183401] pci 0000:00:03.0: [10de:01c2] type 0 class 0x000c03
[    0.183417] pci 0000:00:03.0: reg 10: [mem 0xed081000-0xed081fff]
[    0.183472] pci 0000:00:03.0: supports D1 D2
[    0.183476] pci 0000:00:03.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.183481] pci 0000:00:03.0: PME# disabled
[    0.183499] pci 0000:00:04.0: [10de:01c3] type 0 class 0x000200
[    0.183515] pci 0000:00:04.0: reg 10: [mem 0xed082000-0xed0823ff]
[    0.183526] pci 0000:00:04.0: reg 14: [io  0xd800-0xd807]
[    0.183574] pci 0000:00:04.0: supports D1 D2
[    0.183578] pci 0000:00:04.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.183583] pci 0000:00:04.0: PME# disabled
[    0.183601] pci 0000:00:05.0: [10de:01b0] type 0 class 0x000401
[    0.183617] pci 0000:00:05.0: reg 10: [mem 0xed000000-0xed07ffff]
[    0.183672] pci 0000:00:05.0: supports D1 D2
[    0.183689] pci 0000:00:06.0: [10de:01b1] type 0 class 0x000401
[    0.183705] pci 0000:00:06.0: reg 10: [io  0xdc00-0xdcff]
[    0.183716] pci 0000:00:06.0: reg 14: [io  0xe000-0xe07f]
[    0.183727] pci 0000:00:06.0: reg 18: [mem 0xed080000-0xed080fff]
[    0.183769] pci 0000:00:06.0: supports D1 D2
[    0.183791] pci 0000:00:08.0: [10de:01b8] type 1 class 0x000604
[    0.183833] pci 0000:00:09.0: [10de:01bc] type 0 class 0x000101
[    0.183873] pci 0000:00:09.0: reg 20: [io  0xe800-0xe80f]
[    0.183934] pci 0000:00:1e.0: [10de:01b7] type 1 class 0x000604
[    0.183989] pci 0000:01:02.0: [1103:0008] type 0 class 0x000104
[    0.184010] pci 0000:01:02.0: reg 10: [io  0xa000-0xa007]
[    0.184023] pci 0000:01:02.0: reg 14: [io  0xa400-0xa403]
[    0.184037] pci 0000:01:02.0: reg 18: [io  0xa800-0xa807]
[    0.184050] pci 0000:01:02.0: reg 1c: [io  0xac00-0xac03]
[    0.184064] pci 0000:01:02.0: reg 20: [io  0xb000-0xb0ff]
[    0.184086] pci 0000:01:02.0: reg 30: [mem 0x00000000-0x0001ffff pref]
[    0.184128] pci 0000:01:02.1: [1103:0008] type 0 class 0x000104
[    0.184149] pci 0000:01:02.1: reg 10: [io  0xb400-0xb407]
[    0.184162] pci 0000:01:02.1: reg 14: [io  0xb800-0xb803]
[    0.184176] pci 0000:01:02.1: reg 18: [io  0xbc00-0xbc07]
[    0.184189] pci 0000:01:02.1: reg 1c: [io  0xc000-0xc003]
[    0.184202] pci 0000:01:02.1: reg 20: [io  0xc400-0xc4ff]
[    0.184296] pci 0000:00:08.0: PCI bridge to [bus 01-01]
[    0.184350] pci 0000:00:08.0:   bridge window [io  0xa000-0xcfff]
[    0.184356] pci 0000:00:08.0:   bridge window [mem 0xec000000-0xecffffff]
[    0.184363] pci 0000:00:08.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    0.184388] pci 0000:02:00.0: [10de:01a0] type 0 class 0x000300
[    0.184404] pci 0000:02:00.0: reg 10: [mem 0xea000000-0xeaffffff]
[    0.184414] pci 0000:02:00.0: reg 14: [mem 0xe0000000-0xe7ffffff pref]
[    0.184445] pci 0000:02:00.0: reg 30: [mem 0x00000000-0x0000ffff pref]
[    0.184494] pci 0000:00:1e.0: PCI bridge to [bus 02-02]
[    0.184545] pci 0000:00:1e.0:   bridge window [io  0xf000-0x0000] (disabled)
[    0.184551] pci 0000:00:1e.0:   bridge window [mem 0xea000000-0xebffffff]
[    0.184556] pci 0000:00:1e.0:   bridge window [mem 0xe0000000-0xe7ffffff pref]
[    0.184569] pci_bus 0000:00: on NUMA node 0
[    0.184575] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.184748] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT]
[    0.184944] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGPB._PRT]
[    0.212147] ACPI: PCI Interrupt Link [LNK1] (IRQs *16)
[    0.212409] ACPI: PCI Interrupt Link [LNK2] (IRQs *18), disabled.
[    0.212690] ACPI: PCI Interrupt Link [LNK3] (IRQs *18)
[    0.212934] ACPI: PCI Interrupt Link [LNK4] (IRQs *19), disabled.
[    0.213214] ACPI: PCI Interrupt Link [LNK5] (IRQs *16)
[    0.213458] ACPI: PCI Interrupt Link [LUBA] (IRQs *20)
[    0.213700] ACPI: PCI Interrupt Link [LUBB] (IRQs *21)
[    0.213944] ACPI: PCI Interrupt Link [LMAC] (IRQs *22)
[    0.214187] ACPI: PCI Interrupt Link [LAPU] (IRQs *20)
[    0.214439] ACPI: PCI Interrupt Link [LACI] (IRQs *21)
[    0.214688] ACPI: PCI Interrupt Link [LMCI] (IRQs *22), disabled.
[    0.214961] ACPI: PCI Interrupt Link [LUSB] (IRQs 3 4 5 6 7 10 11 12 14 15) *0
[    0.215568] ACPI: PCI Interrupt Link [LSMB] (IRQs *22)
[    0.216081] vgaarb: device added: PCI:0000:02:00.0,decodes=io+mem,owns=io+mem,locks=none
[    0.216141] vgaarb: loaded
[    0.216488] SCSI subsystem initialized
[    0.216737] libata version 3.00 loaded.
[    0.216892] usbcore: registered new interface driver usbfs
[    0.217010] usbcore: registered new interface driver hub
[    0.217142] usbcore: registered new device driver usb
[    0.217610] PCI: Using ACPI for IRQ routing
[    0.217666] PCI: pci_cache_line_size set to 32 bytes
[    0.217732] reserve RAM buffer: 000000001dff0000 - 000000001fffffff 
[    0.222580] pnp: PnP ACPI init
[    0.222670] ACPI: bus type pnp registered
[    0.223081] pnp 00:00: [mem 0x000da200-0x000dbfff]
[    0.223085] pnp 00:00: [mem 0x000f0000-0x000f7fff]
[    0.223090] pnp 00:00: [mem 0x000f8000-0x000fbfff]
[    0.223094] pnp 00:00: [mem 0x000fc000-0x000fffff]
[    0.223098] pnp 00:00: [mem 0x1dff0000-0x1dffffff]
[    0.223101] pnp 00:00: [mem 0xffb00000-0xffffffff]
[    0.223105] pnp 00:00: [mem 0x00000000-0x0009ffff]
[    0.223109] pnp 00:00: [mem 0x00100000-0x1dfeffff]
[    0.223113] pnp 00:00: [mem 0xfec00000-0xfecfffff]
[    0.223117] pnp 00:00: [mem 0xfee00000-0xfeefffff]
[    0.223275] system 00:00: [mem 0x000da200-0x000dbfff] has been reserved
[    0.223330] system 00:00: [mem 0x000f0000-0x000f7fff] could not be reserved
[    0.223383] system 00:00: [mem 0x000f8000-0x000fbfff] could not be reserved
[    0.223437] system 00:00: [mem 0x000fc000-0x000fffff] could not be reserved
[    0.223490] system 00:00: [mem 0x1dff0000-0x1dffffff] could not be reserved
[    0.223543] system 00:00: [mem 0xffb00000-0xffffffff] has been reserved
[    0.223595] system 00:00: [mem 0x00000000-0x0009ffff] could not be reserved
[    0.223648] system 00:00: [mem 0x00100000-0x1dfeffff] could not be reserved
[    0.223701] system 00:00: [mem 0xfec00000-0xfecfffff] could not be reserved
[    0.223754] system 00:00: [mem 0xfee00000-0xfeefffff] has been reserved
[    0.223809] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.223925] pnp 00:01: [bus 00-ff]
[    0.223930] pnp 00:01: [io  0x0cf0-0x0cf7]
[    0.223934] pnp 00:01: [io  0x0cf8-0x0cff]
[    0.223938] pnp 00:01: [io  0x0000-0x0cf7 window]
[    0.223942] pnp 00:01: [io  0x0d00-0xffff window]
[    0.223946] pnp 00:01: [mem 0x000a0000-0x000bffff window]
[    0.223950] pnp 00:01: [mem 0x000c0000-0x000dffff window]
[    0.223955] pnp 00:01: [mem 0x1e000000-0xffefffff window]
[    0.224089] pnp 00:01: Plug and Play ACPI device, IDs PNP0a03 (active)
[    0.224201] pnp 00:02: [io  0x4000-0x40fe]
[    0.224205] pnp 00:02: [io  0x40ff]
[    0.224319] system 00:02: [io  0x4000-0x40fe] has been reserved
[    0.224372] system 00:02: [io  0x40ff] has been reserved
[    0.224424] system 00:02: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.224751] pnp 00:03: [io  0x0010-0x001f]
[    0.224755] pnp 00:03: [io  0x0022-0x003f]
[    0.224759] pnp 00:03: [io  0x0044-0x005f]
[    0.224762] pnp 00:03: [io  0x0062-0x0063]
[    0.224765] pnp 00:03: [io  0x0065-0x006f]
[    0.224769] pnp 00:03: [io  0x0074-0x007f]
[    0.224772] pnp 00:03: [io  0x0091-0x0093]
[    0.224775] pnp 00:03: [io  0x00a2-0x00bf]
[    0.224779] pnp 00:03: [io  0x00e0-0x00ef]
[    0.224782] pnp 00:03: [io  0x0b78-0x0b7b]
[    0.224785] pnp 00:03: [io  0x0f78-0x0f7b]
[    0.224788] pnp 00:03: [io  0x0a78-0x0a7b]
[    0.224792] pnp 00:03: [io  0x0e78-0x0e7b]
[    0.224795] pnp 00:03: [io  0x0bbc-0x0bbf]
[    0.224799] pnp 00:03: [io  0x0fbc-0x0fbf]
[    0.224802] pnp 00:03: [io  0x04d0-0x04d1]
[    0.224806] pnp 00:03: [io  0x0294-0x0297]
[    0.224945] system 00:03: [io  0x0b78-0x0b7b] has been reserved
[    0.224999] system 00:03: [io  0x0f78-0x0f7b] has been reserved
[    0.225050] system 00:03: [io  0x0a78-0x0a7b] has been reserved
[    0.225102] system 00:03: [io  0x0e78-0x0e7b] has been reserved
[    0.225153] system 00:03: [io  0x0bbc-0x0bbf] has been reserved
[    0.225203] system 00:03: [io  0x0fbc-0x0fbf] has been reserved
[    0.225255] system 00:03: [io  0x04d0-0x04d1] has been reserved
[    0.225306] system 00:03: [io  0x0294-0x0297] has been reserved
[    0.225358] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.225385] pnp 00:04: [dma 4]
[    0.225389] pnp 00:04: [io  0x0000-0x000f]
[    0.225393] pnp 00:04: [io  0x0080-0x0090]
[    0.225396] pnp 00:04: [io  0x0094-0x009f]
[    0.225400] pnp 00:04: [io  0x00c0-0x00df]
[    0.225498] pnp 00:04: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.225524] pnp 00:05: [io  0x0070-0x0073]
[    0.225549] pnp 00:05: [irq 8]
[    0.225650] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.225670] pnp 00:06: [io  0x0061]
[    0.225778] pnp 00:06: Plug and Play ACPI device, IDs PNP0800 (active)
[    0.225799] pnp 00:07: [io  0x00f0-0x00ff]
[    0.225808] pnp 00:07: [irq 13]
[    0.225911] pnp 00:07: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.226323] pnp 00:08: [io  0x03f8-0x03ff]
[    0.226331] pnp 00:08: [irq 4]
[    0.226483] pnp 00:08: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.226801] pnp 00:09: [io  0x02f8-0x02ff]
[    0.226809] pnp 00:09: [irq 3]
[    0.226953] pnp 00:09: Plug and Play ACPI device, IDs PNP0501 (active)
[    0.227578] pnp 00:0a: [io  0x0378-0x037f]
[    0.227582] pnp 00:0a: [io  0x0778-0x077b]
[    0.227590] pnp 00:0a: [irq 7]
[    0.227593] pnp 00:0a: [dma 3]
[    0.227750] pnp 00:0a: Plug and Play ACPI device, IDs PNP0401 (active)
[    0.227858] pnp 00:0b: [io  0x0060]
[    0.227862] pnp 00:0b: [io  0x0064]
[    0.228003] system 00:0b: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.228274] pnp 00:0c: [io  0x0200-0x0207]
[    0.228392] pnp 00:0c: Plug and Play ACPI device, IDs PNPb02f (active)
[    0.228695] pnp 00:0d: [io  0x0330-0x0331]
[    0.228705] pnp 00:0d: [irq 10]
[    0.228852] pnp 00:0d: Plug and Play ACPI device, IDs PNPb006 (active)
[    0.228871] pnp: PnP ACPI: found 14 devices
[    0.228925] ACPI: ACPI bus type pnp unregistered
[    0.270197] Switching to clocksource acpi_pm
[    0.270313] pci 0000:00:08.0: BAR 9: assigned [mem 0x20000000-0x200fffff pref]
[    0.270374] pci 0000:01:02.0: BAR 6: assigned [mem 0x20000000-0x2001ffff pref]
[    0.270434] pci 0000:00:08.0: PCI bridge to [bus 01-01]
[    0.270485] pci 0000:00:08.0:   bridge window [io  0xa000-0xcfff]
[    0.270540] pci 0000:00:08.0:   bridge window [mem 0xec000000-0xecffffff]
[    0.270594] pci 0000:00:08.0:   bridge window [mem 0x20000000-0x200fffff pref]
[    0.270658] pci 0000:02:00.0: BAR 6: assigned [mem 0xeb000000-0xeb00ffff pref]
[    0.270715] pci 0000:00:1e.0: PCI bridge to [bus 02-02]
[    0.270764] pci 0000:00:1e.0:   bridge window [io  disabled]
[    0.270817] pci 0000:00:1e.0:   bridge window [mem 0xea000000-0xebffffff]
[    0.270871] pci 0000:00:1e.0:   bridge window [mem 0xe0000000-0xe7ffffff pref]
[    0.270945] pci 0000:00:08.0: setting latency timer to 64
[    0.270956] pci_bus 0000:00: resource 0 [io  0x0000-0xffff]
[    0.270960] pci_bus 0000:00: resource 1 [mem 0x00000000-0xffffffff]
[    0.270965] pci_bus 0000:01: resource 0 [io  0xa000-0xcfff]
[    0.270969] pci_bus 0000:01: resource 1 [mem 0xec000000-0xecffffff]
[    0.270973] pci_bus 0000:01: resource 2 [mem 0x20000000-0x200fffff pref]
[    0.270978] pci_bus 0000:02: resource 1 [mem 0xea000000-0xebffffff]
[    0.270982] pci_bus 0000:02: resource 2 [mem 0xe0000000-0xe7ffffff pref]
[    0.271063] NET: Registered protocol family 2
[    0.271200] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.271494] IPv4 FIB: Using LC-trie version 0.409
[    0.271594] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.271875] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[    0.272040] TCP: Hash tables configured (established 16384 bind 16384)
[    0.272092] TCP reno registered
[    0.273078] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.273136] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.273301] NET: Registered protocol family 1
[    0.279789] Switched to NOHz mode on CPU #0
[    0.290087] pci 0000:02:00.0: Boot video device
[    0.290093] PCI: CLS 32 bytes, default 32
[    0.297810] SGI XFS with ACLs, security attributes, large block/inode numbers, no debug enabled
[    0.298620] SGI XFS Quota Management subsystem
[    0.298678] msgmni has been set to 938
[    0.298874] io scheduler noop registered
[    0.298940] io scheduler cfq registered (default)
[    0.299511] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0
[    0.299576] ACPI: Power Button [PWRB]
[    0.299764] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
[    0.299824] ACPI: Power Button [PWRF]
[    0.300417] ACPI: Fan [FAN] (on)
[    0.300533] ACPI: acpi_idle registered with cpuidle
[    0.301765] thermal LNXTHERM:00: registered as thermal_zone0
[    0.301818] ACPI: Thermal Zone [THRM] (22 C)
[    0.301953] isapnp: Scanning for PnP cards...
[    0.658841] isapnp: No Plug & Play device found
[    0.659063] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.679743] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.700437] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    0.721574] 00:08: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    0.742372] 00:09: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    0.742945] Linux agpgart interface v0.103
[    0.743024] agpgart: Detected NVIDIA nForce chipset
[    0.747771] agpgart-nvidia 0000:00:00.0: AGP aperture is 32M @ 0xe8000000
[    0.748057] [drm] Initialized drm 1.1.0 20060810
[    0.748238] parport_pc 00:0a: reported by Plug and Play ACPI
[    0.748409] parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA]
[    0.831103] pata_amd 0000:00:09.0: version 0.4.1
[    0.831178] pata_amd 0000:00:09.0: setting latency timer to 64
[    0.832037] scsi0 : pata_amd
[    0.832326] scsi1 : pata_amd
[    0.833444] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
[    0.833499] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
[    0.834004] ACPI: PCI Interrupt Link [LNK3] enabled at IRQ 18
[    0.834073] pata_hpt37x 0000:01:02.0: PCI INT A -> Link[LNK3] -> GSI 18 (level, high) -> IRQ 18
[    0.839255] pata_hpt37x: bus clock 33MHz, using 50MHz DPLL
[    0.840350] scsi2 : pata_hpt37x
[    0.840595] scsi3 : pata_hpt37x
[    0.840797] ata3: PATA max UDMA/100 cmd 0xa000 ctl 0xa400 bmdma 0xb000 irq 18
[    0.840852] ata4: PATA max UDMA/100 cmd 0xa800 ctl 0xac00 bmdma 0xb008 irq 18
[    0.840946] pata_hpt37x 0000:01:02.1: PCI INT A -> Link[LNK3] -> GSI 18 (level, high) -> IRQ 18
[    0.846119] pata_hpt37x: bus clock 33MHz, using 50MHz DPLL
[    0.847349] scsi4 : pata_hpt37x
[    0.847587] scsi5 : pata_hpt37x
[    0.847799] ata5: PATA max UDMA/100 cmd 0xb400 ctl 0xb800 bmdma 0xc400 irq 18
[    0.847853] ata6: PATA max UDMA/100 cmd 0xbc00 ctl 0xc000 bmdma 0xc408 irq 18
[    0.848316] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.64.
[    0.848615] ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 22
[    0.848684] forcedeth 0000:00:04.0: PCI INT A -> Link[LMAC] -> GSI 22 (level, high) -> IRQ 22
[    0.848749] forcedeth 0000:00:04.0: setting latency timer to 64
[    1.071766] ata1.00: ATA-4: ST313640A, 3.02, max UDMA/33
[    1.071818] ata1.00: 26562500 sectors, multi 16: LBA 
[    1.071880] ata1: nv_mode_filter: 0x739f&0x739f->0x739f, BIOS=0x7000 (0xc00000c0) ACPI=0x701f (60:600:0x11)
[    1.072123] ata5.01: NODEV after polling detection
[    1.144145] ata5.00: NODEV after polling detection
[    1.156049] ata3.00: ATA-6: ST3120026AS, 3.05, max UDMA/133
[    1.156101] ata3.00: 234441648 sectors, multi 16: LBA48 
[    1.160290] ata1.00: configured for UDMA/33
[    1.160529] scsi 0:0:0:0: Direct-Access     ATA      ST313640A        3.02 PQ: 0 ANSI: 5
[    1.161041] sd 0:0:0:0: [sda] 26562500 512-byte logical blocks: (13.6 GB/12.6 GiB)
[    1.161175] sd 0:0:0:0: [sda] Write Protect is off
[    1.161226] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.161260] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.161992] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    1.190687] ata3.00: configured for UDMA/100
[    1.200792]  sda: sda1 sda2 sda3 sda4 sda5
[    1.201681] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.290028] Refined TSC clocksource calibration: 1536.817 MHz.
[    1.290083] Switching to clocksource tsc
[    1.350052] ata2.01: NODEV after polling detection
[    1.350224] scsi 2:0:0:0: Direct-Access     ATA      ST3120026AS      3.05 PQ: 0 ANSI: 5
[    1.350692] sd 2:0:0:0: [sdb] 234441648 512-byte logical blocks: (120 GB/111 GiB)
[    1.350822] sd 2:0:0:0: [sdb] Write Protect is off
[    1.350873] sd 2:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    1.350905] sd 2:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.351596] sd 2:0:0:0: Attached scsi generic sg1 type 0
[    1.370561] forcedeth 0000:00:04.0: ifname eth0, PHY OUI 0x57d @ 1, addr **:**:**:**:**:**
[    1.370624] forcedeth 0000:00:04.0: timirq lnktim desc-v1
[    1.370770] netconsole: local port *****
[    1.370819] netconsole: local IP ***.***.***.***
[    1.370867] netconsole: interface 'eth0'
[    1.370913] netconsole: remote port 515
[    1.370960] netconsole: remote IP ***.***.***.***
[    1.371008] netconsole: remote ethernet address **:**:**:**:**:**
[    1.371060] netconsole: device eth0 not up yet, forcing it
[    1.371810] forcedeth 0000:00:04.0: eth0: no link during initialization
[    1.581204] ata4.01: NODEV after polling detection
[    1.652318] ata4.00: NODEV after polling detection
[    1.891183] ata6.01: NODEV after polling detection
[    1.962325] ata6.00: NODEV after polling detection
[    3.318747] forcedeth 0000:00:04.0: eth0: link up
[    3.330533] console [netcon0] enabled
[    3.330587] netconsole: network logging started
[    3.331573] aoe: AoE v47 initialised.
[    3.331647] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    3.331836] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    3.332245] ACPI: PCI Interrupt Link [LUBA] enabled at IRQ 20
[    3.332326] ohci_hcd 0000:00:02.0: PCI INT A -> Link[LUBA] -> GSI 20 (level, high) -> IRQ 20
[    3.332432] ohci_hcd 0000:00:02.0: setting latency timer to 64
[    3.332438] ohci_hcd 0000:00:02.0: OHCI Host Controller
[    3.332508] ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1
[    3.332630] ohci_hcd 0000:00:02.0: irq 20, io mem 0xed083000
[    3.392165] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[    3.392221] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.392284] usb usb1: Product: OHCI Host Controller
[    3.392338] usb usb1: Manufacturer: Linux 2.6.39-rc4-jupiter-00187-g686c4cb ohci_hcd
[    3.392400] usb usb1: SerialNumber: 0000:00:02.0
[    3.392752] hub 1-0:1.0: USB hub found
[    3.392809] hub 1-0:1.0: 3 ports detected
[    3.393138] ACPI: PCI Interrupt Link [LUBB] enabled at IRQ 21
[    3.393203] ohci_hcd 0000:00:03.0: PCI INT A -> Link[LUBB] -> GSI 21 (level, high) -> IRQ 21
[    3.393291] ohci_hcd 0000:00:03.0: setting latency timer to 64
[    3.393296] ohci_hcd 0000:00:03.0: OHCI Host Controller
[    3.393354] ohci_hcd 0000:00:03.0: new USB bus registered, assigned bus number 2
[    3.393452] ohci_hcd 0000:00:03.0: irq 21, io mem 0xed081000
[    3.452034] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    3.452089] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.452151] usb usb2: Product: OHCI Host Controller
[    3.452203] usb usb2: Manufacturer: Linux 2.6.39-rc4-jupiter-00187-g686c4cb ohci_hcd
[    3.452265] usb usb2: SerialNumber: 0000:00:03.0
[    3.452588] hub 2-0:1.0: USB hub found
[    3.452644] hub 2-0:1.0: 3 ports detected
[    3.453113] i8042: PNP: No PS/2 controller found. Probing ports directly.
[    3.700298] serio: i8042 KBD port at 0x60,0x64 irq 1
[    3.700700] mousedev: PS/2 mouse device common for all mice
[    3.701173] rtc_cmos 00:05: RTC can wake from S4
[    3.701415] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[    3.701498] rtc0: alarms up to one year, y3k, 242 bytes nvram
[    3.701823] w83627hf: w83627hf: Found W83627HF chip at 0x290
[    3.702365] WDT driver for the Winbond(TM) W83627HF/THF/HG/DHG Super I/O chip initialising.
[    3.702565] w83627hf/thf/hg/dhg WDT: initialized. timeout=60 sec (nowayout=0)
[    3.702622] cpuidle: using governor ladder
[    3.702676] cpuidle: using governor menu
[    3.704138] usbcore: registered new interface driver usbhid
[    3.704199] usbhid: USB HID core driver
[    3.704648] TCP cubic registered
[    3.705249] NET: Registered protocol family 10
[    3.706732] NET: Registered protocol family 17
[    3.706814] Using IPI Shortcut mode
[    3.707506]   Magic number: 7:761:239
[    3.707725] rtc_cmos 00:05: setting system clock to 2011-04-24 17:14:34 UTC (1303665274)
[    3.770019] usb 1-2: new low speed USB device number 2 using ohci_hcd
[    4.000810] usb 1-2: New USB device found, idVendor=108b, idProduct=0005
[    4.000866] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    4.001130] usb 1-2: Product: HID Keyboard/Mouse PS/2 to USB Translator
[    4.001185] usb 1-2: Manufacturer: C&C Technology Inc.
[    4.017676] input: C&C Technology Inc. HID Keyboard/Mouse PS/2 to USB Translator as /devices/pci0000:00/0000:00:02.0/usb1/1-2/1-2:1.0/input/input2
[    4.018114] generic-usb 0003:108B:0005.0001: input,hidraw0: USB HID v1.11 Keyboard [C&C Technology Inc. HID Keyboard/Mouse PS/2 to USB Translator] on usb-0000:00:02.0-2/input0
[    4.030296] input: C&C Technology Inc. HID Keyboard/Mouse PS/2 to USB Translator as /devices/pci0000:00/0000:00:02.0/usb1/1-2/1-2:1.1/input/input3
[    4.030701] generic-usb 0003:108B:0005.0002: input,hidraw1: USB HID v1.11 Mouse [C&C Technology Inc. HID Keyboard/Mouse PS/2 to USB Translator] on usb-0000:00:02.0-2/input1
[    4.210014] usb 2-1: new low speed USB device number 2 using ohci_hcd
[    4.437502] usb 2-1: New USB device found, idVendor=045e, idProduct=0039
[    4.437556] usb 2-1: New USB device strings: Mfr=1, Product=3, SerialNumber=0
[    4.437615] usb 2-1: Product: Microsoft 5-Button Mouse with IntelliEye(TM)
[    4.437672] usb 2-1: Manufacturer: Microsoft
[    4.448474] input: Microsoft Microsoft 5-Button Mouse with IntelliEye(TM) as /devices/pci0000:00/0000:00:03.0/usb2/2-1/2-1:1.0/input/input4
[    4.448871] generic-usb 0003:045E:0039.0003: input,hidraw2: USB HID v1.10 Mouse [Microsoft Microsoft 5-Button Mouse with IntelliEye(TM)] on usb-0000:00:03.0-1/input0
[   32.060068] ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[   32.060130] ata3.00: failed command: READ DMA
[   32.061109] ata3.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in
[   32.061111]          res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[   32.061228] ata3.00: status: { DRDY }
[   37.100011] ata3: link is slow to respond, please be patient (ready=0)
[   42.080010] ata3: device not ready (errno=-16), forcing hardreset
[   42.080070] ata3: soft resetting link
[   42.480664] ata3.00: configured for UDMA/100
[   42.480720] ata3.00: device reported invalid CHS sector 0
[   42.480783] ata3: EH complete
[   42.539461]  sdb: sdb1 sdb2 sdb3 < sdb5 sdb6 sdb7 sdb8 sdb9 > sdb4
[   42.539954] sdb: detected capacity change from 0 to 120034123776
[   42.540802] sd 2:0:0:0: [sdb] Attached SCSI disk
[   42.564863] REISERFS (device sda3): found reiserfs format "3.6" with standard journal
[   42.564936] REISERFS (device sda3): using ordered data mode
[   42.576503] REISERFS (device sda3): journal params: device sda3, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[   42.578631] REISERFS (device sda3): checking transaction log (sda3)
[   42.610085] REISERFS (device sda3): Using r5 hash to sort names
[   42.610215] VFS: Mounted root (reiserfs filesystem) readonly on device 8:3.
[   42.610325] Freeing unused kernel memory: 356k freed
[   44.259226] kbd_mode used greatest stack depth: 5980 bytes left
[   44.309341] loadkeys used greatest stack depth: 5636 bytes left
[   44.309769] init-early.sh used greatest stack depth: 5412 bytes left
[   46.398403] udev: starting version 151
[   46.398607] udevd (749): /proc/749/oom_adj is deprecated, please use /proc/749/oom_score_adj instead.
[   46.705807] input: PC Speaker as /devices/platform/pcspkr/input/input5
[   47.027889] ACPI: PCI Interrupt Link [LACI] enabled at IRQ 21
[   47.027968] Intel ICH 0000:00:06.0: PCI INT A -> Link[LACI] -> GSI 21 (level, high) -> IRQ 21
[   47.028088] Intel ICH 0000:00:06.0: setting latency timer to 64
[   47.740030] intel8x0_measure_ac97_clock: measured 59922 usecs (32 samples)
[   47.740102] intel8x0: measured clock 534 rejected
[   48.110063] intel8x0_measure_ac97_clock: measured 59983 usecs (2904 samples)
[   48.110135] intel8x0: clocking to 48000
[   49.671034] REISERFS (device sda2): found reiserfs format "3.6" with standard journal
[   49.671129] REISERFS (device sda2): using ordered data mode
[   49.682641] REISERFS (device sda2): journal params: device sda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[   49.684750] REISERFS (device sda2): checking transaction log (sda2)
[   49.729445] REISERFS (device sda2): Using r5 hash to sort names
[   49.754253] REISERFS (device sda5): found reiserfs format "3.6" with standard journal
[   49.754342] REISERFS (device sda5): using ordered data mode
[   49.759228] REISERFS (device sda5): journal params: device sda5, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[   49.761393] REISERFS (device sda5): checking transaction log (sda5)
[   49.828195] REISERFS (device sda5): Using r5 hash to sort names
[   51.771545] Adding 524284k swap on /dev/sda1.  Priority:-1 extents:1 across:524284k 
[   51.862930] dd used greatest stack depth: 5308 bytes left
[   59.424922] ------------[ cut here ]------------
[   59.425007] WARNING: at /usr/src/linux-2.6/kernel/printk.c:293 do_syslog+0x97/0x420()
[   59.425087] Hardware name: nFORCE-MCP
[   59.425139] Attempt to access syslog with CAP_SYS_ADMIN but no CAP_SYSLOG (deprecated).
[   59.425201] Modules linked in: snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[   59.425610] Pid: 1498, comm: syslog-ng Not tainted 2.6.39-rc4-jupiter-00187-g686c4cb #1
[   59.425672] Call Trace:
[   59.425728]  [<c102dcdd>] warn_slowpath_common+0x6d/0xa0
[   59.425785]  [<c102ee97>] ? do_syslog+0x97/0x420
[   59.425839]  [<c102ee97>] ? do_syslog+0x97/0x420
[   59.425893]  [<c102dd8e>] warn_slowpath_fmt+0x2e/0x30
[   59.425948]  [<c102ee97>] do_syslog+0x97/0x420
[   59.426003]  [<c10c9658>] ? d_rehash+0x8/0x10
[   59.426062]  [<c10f317e>] ? proc_reg_open+0x2e/0xf0
[   59.426118]  [<c10f7f42>] ? proc_lookup_de+0x72/0xb0
[   59.426173]  [<c10fb9ab>] kmsg_open+0x1b/0x20
[   59.426226]  [<c10f31b5>] proc_reg_open+0x65/0xf0
[   59.426280]  [<c10fb970>] ? read_kcore+0x300/0x300
[   59.426336]  [<c10b6763>] __dentry_open+0x103/0x2a0
[   59.426390]  [<c10b69e6>] nameidata_to_filp+0x66/0x80
[   59.426444]  [<c10f3150>] ? proc_fill_super+0xa0/0xa0
[   59.426501]  [<c10c2140>] do_last+0x1a0/0x700
[   59.426554]  [<c10c32b2>] path_openat+0x92/0x320
[   59.426613]  [<c10e4b68>] ? __fsnotify_inode_delete+0x8/0x10
[   59.426668]  [<c10c3620>] do_filp_open+0x30/0x80
[   59.426724]  [<c10cd522>] ? alloc_fd+0x62/0xe0
[   59.426777]  [<c10c1731>] ? getname_flags+0x61/0xe0
[   59.426831]  [<c10b781d>] do_sys_open+0xed/0x1e0
[   59.426884]  [<c10b7979>] sys_open+0x29/0x40
[   59.426942]  [<c1391390>] sysenter_do_call+0x12/0x26
[   59.426995] ---[ end trace 764875c40f299c31 ]---
[   64.885145] RPC: Registered udp transport module.
[   64.885211] RPC: Registered tcp transport module.
[   64.885481] RPC: Registered tcp NFSv4.1 backchannel transport module.
[  126.373780] vim used greatest stack depth: 5216 bytes left
[  138.413461] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[  543.030787] tar used greatest stack depth: 4984 bytes left
[  585.065482] conftest[3962]: segfault at 0 ip b71c48b7 sp bf8b2488 error 6 in libc-2.11.3.so[b7150000+13f000]
[ 2336.967820] ldd used greatest stack depth: 4972 bytes left
[ 2388.949643] cat used greatest stack depth: 4888 bytes left
[ 3683.000651] BUG: soft lockup - CPU#0 stuck for 64s! [kswapd0:365]
[ 3683.000720] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 3683.001331] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 3683.001941] 
[ 3683.001988] Pid: 365, comm: kswapd0 Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1 NVIDIA Corporation. nFORCE-MCP/MS-6373
[ 3683.002163] EIP: 0060:[<c1092cd0>] EFLAGS: 00000246 CPU: 0
[ 3683.002221] EIP is at shrink_inactive_list+0x110/0x340
[ 3683.002272] EAX: 00000000 EBX: c1546620 ECX: 00000001 EDX: 00000000
[ 3683.002324] ESI: dd587f78 EDI: dd587e68 EBP: dd587e88 ESP: dd587e38
[ 3683.002376]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 3683.002427] Process kswapd0 (pid: 365, ti=dd586000 task=dd532700 task.ti=dd586000)
[ 3683.002486] Stack:
[ 3683.002532]  dd587e78 00000001 00000000 00000001 00000054 dd532700 c15468d8 c154688c
[ 3683.002871]  c15468dc 00000000 dd587e5c 00000000 dd587e68 dd587e68 dd587e6c 0000007b
[ 3683.003212]  00000000 00000002 00000000 00000000 dd587f14 c10932a0 00000002 00000001
[ 3683.003548] Call Trace:
[ 3683.003602]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 3683.003653]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 3683.003705]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 3683.003757]  [<c1047794>] kthread+0x74/0x80
[ 3683.003807]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 3683.003864]  [<c13918b6>] kernel_thread_helper+0x6/0xd
[ 3683.003913] Code: 0e 04 74 5f 89 da 2b 93 e0 02 00 00 c1 fa 02 69 d2 95 fa 53 ea 01 04 95 e8 55 52 c1 8b 55 d4 85 d2 75 5f fb c7 45 dc 00 00 00 00 <8b> 45 dc 83 c4 44 5b 5e 5f c9 c3 90 8d 74 26 00 83 7d 08 09 0f 
[ 3683.006264] Call Trace:
[ 3683.006312]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 3683.006379]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 3683.006430]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 3683.006480]  [<c1047794>] kthread+0x74/0x80
[ 3683.006529]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 3683.006580]  [<c13918b6>] kernel_thread_helper+0x6/0xd
[ 3754.612026] BUG: soft lockup - CPU#0 stuck for 63s! [kswapd0:365]
[ 3754.612092] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 3754.612702] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 3754.613308] 
[ 3754.613355] Pid: 365, comm: kswapd0 Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1 NVIDIA Corporation. nFORCE-MCP/MS-6373
[ 3754.613530] EIP: 0060:[<c108f10f>] EFLAGS: 00000246 CPU: 0
[ 3754.613592] EIP is at lru_add_drain+0x3f/0x70
[ 3754.613642] EAX: 00000000 EBX: 00000005 ECX: 00000000 EDX: 00000000
[ 3754.613695] ESI: c1524640 EDI: dd587e68 EBP: dd587e30 ESP: dd587e28
[ 3754.613749]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 3754.613801] Process kswapd0 (pid: 365, ti=dd586000 task=dd532700 task.ti=dd586000)
[ 3754.613860] Stack:
[ 3754.613909]  c1546620 dd587f78 dd587e88 c1092c4c dd587e78 00000001 00000000 00000000
[ 3754.614250]  00000054 dd532700 c15468d8 c154688c c15468dc c1546894 dd587e5c 00000020
[ 3754.614591]  dd587e68 dd587e68 dd587e6c 0000007b 00000000 00000002 00000000 00000000
[ 3754.614932] Call Trace:
[ 3754.614986]  [<c1092c4c>] shrink_inactive_list+0x8c/0x340
[ 3754.615038]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 3754.615091]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 3754.615142]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 3754.615194]  [<c1047794>] kthread+0x74/0x80
[ 3754.615246]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 3754.615303]  [<c13918b6>] kernel_thread_helper+0x6/0xd
[ 3754.615352] Code: c6 40 83 fb 05 75 f1 8b 15 40 46 52 c1 85 d2 75 33 a1 80 46 52 c1 85 c0 74 11 31 c9 ba 60 e7 08 c1 b8 80 46 52 c1 e8 21 fd ff ff <5b> 5e c9 c3 90 8d 74 26 00 89 da 89 f0 e8 9f fd ff ff eb bf 90 
[ 3754.617721] Call Trace:
[ 3754.617770]  [<c1092c4c>] shrink_inactive_list+0x8c/0x340
[ 3754.617822]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 3754.617873]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 3754.617924]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 3754.617975]  [<c1047794>] kthread+0x74/0x80
[ 3754.618024]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 3754.618075]  [<c13918b6>] kernel_thread_helper+0x6/0xd

soft-lockup repeating many times (with varying traces)

[ 6567.915985] BUG: soft lockup - CPU#0 stuck for 63s! [kswapd0:365]
[ 6567.916054] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 6567.916662] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 6567.917265] 
[ 6567.917312] Pid: 365, comm: kswapd0 Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1 NVIDIA Corporation. nFORCE-MCP/MS-6373
[ 6567.917486] EIP: 0060:[<c1092c4c>] EFLAGS: 00000246 CPU: 0
[ 6567.917545] EIP is at shrink_inactive_list+0x8c/0x340
[ 6567.917595] EAX: 00000000 EBX: c1546620 ECX: 00000000 EDX: 00000000
[ 6567.917648] ESI: dd587f78 EDI: dd587e68 EBP: dd587e88 ESP: dd587e38
[ 6567.917700]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 6567.917752] Process kswapd0 (pid: 365, ti=dd586000 task=dd532700 task.ti=dd586000)
[ 6567.917810] Stack:
[ 6567.917858]  00000001 00000001 dd587e6c 0000008d 00000054 dd532700 c15468d8 c154688c
[ 6567.918197]  c15468dc c1546894 dd587e5c 00000020 dd587e68 dd587e68 dd587e6c 0000007b
[ 6567.918538]  00000000 00000002 00000000 00000000 dd587f14 c10932a0 00000002 00000001
[ 6567.918875] Call Trace:
[ 6567.918928]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 6567.918980]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 6567.919031]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 6567.919084]  [<c1047794>] kthread+0x74/0x80
[ 6567.919134]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 6567.919190]  [<c13918b6>] kernel_thread_helper+0x6/0xd
[ 6567.919240] Code: d8 8b 10 3b 55 d8 0f 87 94 02 00 00 8b 46 24 c7 46 28 10 00 00 00 83 f8 03 0f 8e a0 00 00 00 c7 46 28 12 00 00 00 e8 84 c4 ff ff <fa> 8b 46 28 8b 4d 0c 83 e0 08 89 4c 24 0c 89 f9 83 f8 01 19 c0 
[ 6567.920001] Call Trace:
[ 6567.920001]  [<c10932a0>] shrink_zone+0x3a0/0x500
[ 6567.920001]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 6567.920001]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 6567.920001]  [<c1047794>] kthread+0x74/0x80
[ 6567.920001]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 6567.920001]  [<c13918b6>] kernel_thread_helper+0x6/0xd
[ 6585.485917] input: Multimedia USB Keyboard Multimedia USB Keyboard as /devices/pci0000:00/0000:00:02.0/usb1/1-3/1-3.1/1-3.1:1.0/input/input6
[ 6585.486159] generic-usb 0003:058F:9462.0004: input,hidraw3: USB HID v1.10 Keyboard [Multimedia USB Keyboard Multimedia USB Keyboard] on usb-0000:00:02.0-3.1/input0

This looks like there is some accounting error, 4294967292kB looks like a small negative value!

[ 6605.162277] SysRq : Show Memory
[ 6605.162375] Mem-Info:
[ 6605.162421] DMA per-cpu:
[ 6605.162468] CPU    0: hi:    0, btch:   1 usd:   0
[ 6605.162517] Normal per-cpu:
[ 6605.162565] CPU    0: hi:  186, btch:  31 usd:  56
[ 6605.162618] active_anon:56 inactive_anon:86 isolated_anon:32
[ 6605.162620]  active_file:1114 inactive_file:1101 isolated_file:32
[ 6605.162623]  unevictable:8 dirty:0 writeback:0 unstable:0
[ 6605.162624]  free:1195 slab_reclaimable:14698 slab_unreclaimable:34339
[ 6605.162626]  mapped:135 shmem:0 pagetables:87 bounce:0
[ 6605.162875] DMA free:1936kB min:88kB low:108kB high:132kB active_anon:4kB inactive_anon:4294967292kB active_file:4294967284kB inactive_file:4294967252kB unevictable:0kB isolated(anon):4kB isolated(file):56kB present:15808kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:180kB slab_unreclaimable:4688kB kernel_stack:9104kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:2 all_unreclaimable? no
[ 6605.163011] lowmem_reserve[]: 0 460 460
[ 6605.163207] Normal free:2836kB min:2696kB low:3368kB high:4044kB active_anon:220kB inactive_anon:348kB active_file:4468kB inactive_file:4448kB unevictable:32kB isolated(anon):124kB isolated(file):72kB present:471360kB mlocked:32kB dirty:0kB writeback:0kB mapped:540kB shmem:0kB slab_reclaimable:58612kB slab_unreclaimable:132676kB kernel_stack:256640kB pagetables:348kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:871 all_unreclaimable? no
[ 6605.163337] lowmem_reserve[]: 0 0 0
[ 6605.163526] DMA: 96*4kB 178*8kB 8*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1936kB
[ 6605.164012] Normal: 539*4kB 1*8kB 0*16kB 1*32kB 0*64kB 1*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 2836kB
[ 6605.164500] 2360 total pagecache pages
[ 6605.164547] 113 pages in swap cache
[ 6605.164595] Swap cache stats: add 135546, delete 135433, find 121976/158215
[ 6605.164647] Free swap  = 518472kB
[ 6605.164694] Total swap = 524284kB
[ 6605.170001] 122848 pages RAM
[ 6605.170001] 2699 pages reserved
[ 6605.170001] 2129 pages shared
[ 6605.170001] 83744 pages non-shared

Back again to multiple softlockups...

[ 6639.923702] generic-usb: probe of 0003:058F:9462.0005 failed with error -22
[ 6670.217946] BUG: soft lockup - CPU#0 stuck for 61s! [kswapd0:365]
[ 6670.218016] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 6670.218624] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer pcspkr snd snd_page_alloc
[ 6670.219228] 
[ 6670.219275] Pid: 365, comm: kswapd0 Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1 NVIDIA Corporation. nFORCE-MCP/MS-6373
[ 6670.219450] EIP: 0060:[<c1093128>] EFLAGS: 00000202 CPU: 0
[ 6670.219509] EIP is at shrink_zone+0x228/0x500
[ 6670.219558] EAX: 00000020 EBX: 00000002 ECX: 00000000 EDX: 00000001
[ 6670.219611] ESI: 00000000 EDI: 00000000 EBP: dd587f14 ESP: dd587e90
[ 6670.219663]  DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
[ 6670.219715] Process kswapd0 (pid: 365, ti=dd586000 task=dd532700 task.ti=dd586000)
[ 6670.219773] Stack:
[ 6670.219818]  00000006 00000000 ddf4e1e0 00000003 ddf29960 c1546888 00000000 000000cb
[ 6670.220001]  00000000 c1546890 c154688c ffffff00 c1546898 c1546894 ffffffff c1546620
[ 6670.220001]  dd587f78 00000006 00000000 0089b0f5 00000000 021d3cf0 021d3d10 00000001
[ 6670.220001] Call Trace:
[ 6670.220001]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 6670.220001]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 6670.220001]  [<c1047794>] kthread+0x74/0x80
[ 6670.220001]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 6670.220001]  [<c13918b6>] kernel_thread_helper+0x6/0xd
[ 6670.220001] Code: 74 5d 83 fa 20 b8 20 00 00 00 0f 46 c2 29 c2 89 54 9c 4c 31 d2 83 fe 01 0f 96 c2 83 fb 03 0f 94 44 24 2c 83 fb 01 0f 94 c1 89 cf <0f> b6 4c 24 2c 09 f9 83 e1 01 0f 84 50 01 00 00 85 d2 74 6c 8b 
[ 6670.220001] Call Trace:
[ 6670.220001]  [<c1093b4e>] kswapd+0x74e/0x8d0
[ 6670.220001]  [<c1093400>] ? shrink_zone+0x500/0x500
[ 6670.220001]  [<c1047794>] kthread+0x74/0x80
[ 6670.220001]  [<c1047720>] ? kthreadd+0xb0/0xb0
[ 6670.220001]  [<c13918b6>] kernel_thread_helper+0x6/0xd

until it suddenly "fixed" itself while the probably triggering `revdep-rebuild -p`
finally save the CTRL-Z sent to it from console looong ago (somewhere between many
soft-lockup traces)!


Note that later kernel died in network stack while processing an interrupt for
apparently receiving IPv6 (TCP) packet. (I don't have the trace as only a few lines
of it did fit onto display and I didn't care writing down the few visible lines of
call trace.)

[-- Attachment #4: memory-exhausted.png --]
[-- Type: image/png, Size: 10992 bytes --]

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-24 18:21 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression? Bruno Prémont
@ 2011-04-24 21:59 ` Bruno Prémont
  2011-04-25  2:42   ` KOSAKI Motohiro
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-24 21:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: linux-mm, linux-fsdevel

On Sun, 24 April 2011 Bruno Prémont <bonbons@linux-vserver.org> wrote:
> On an older system I've been running Gentoo's revdep-rebuild to check
> for system linking/*.la consistency and after doing most of the work the
> system starved more or less, just complaining about stuck tasks now and
> then.
> Memory usage graph as seen from userspace showed sudden quick increase of
> memory usage though only a very few MB were swapped out (c.f. attached RRD
> graph).

Seems I've hit it once again (though detected before system was fully
stalled by trying to reclaim memory without success).

This time it was during simple compiling...
Gathered info below:

/proc/meminfo:
MemTotal:         480660 kB
MemFree:           64948 kB
Buffers:           10304 kB
Cached:             6924 kB
SwapCached:         4220 kB
Active:            11100 kB
Inactive:          15732 kB
Active(anon):       4732 kB
Inactive(anon):     4876 kB
Active(file):       6368 kB
Inactive(file):    10856 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:        524284 kB
SwapFree:         456432 kB
Dirty:                80 kB
Writeback:             0 kB
AnonPages:          6268 kB
Mapped:             2604 kB
Shmem:                 4 kB
Slab:             250632 kB
SReclaimable:      51144 kB
SUnreclaim:       199488 kB   <--- look big as well...
KernelStack:      131032 kB   <--- what???
PageTables:          920 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      764612 kB
Committed_AS:     132632 kB
VmallocTotal:     548548 kB
VmallocUsed:       18500 kB
VmallocChunk:     525952 kB
AnonHugePages:         0 kB
DirectMap4k:       32704 kB
DirectMap4M:      458752 kB

sysrq+m:
[ 3908.107287] SysRq : Show Memory
[ 3908.109324] Mem-Info:
[ 3908.111266] DMA per-cpu:
[ 3908.113164] CPU    0: hi:    0, btch:   1 usd:   0
[ 3908.115061] Normal per-cpu:
[ 3908.116914] CPU    0: hi:  186, btch:  31 usd: 172
[ 3908.117253] active_anon:1989 inactive_anon:2057 isolated_anon:0
[ 3908.117253]  active_file:1762 inactive_file:1841 isolated_file:0
[ 3908.117253]  unevictable:8 dirty:0 writeback:0 unstable:0
[ 3908.117253]  free:15704 slab_reclaimable:12672 slab_unreclaimable:49606
[ 3908.117253]  mapped:518 shmem:0 pagetables:214 bounce:0
[ 3908.117253] DMA free:1936kB min:88kB low:108kB high:132kB active_anon:84kB inactive_anon:128kB active_file:4kB inactive_file:68kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15808kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:140kB slab_unreclaimable:4960kB kernel_stack:8592kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:467 all_unreclaimable? yes
[ 3908.117253] lowmem_reserve[]: 0 460 460
[ 3908.117253] Normal free:60880kB min:2696kB low:3368kB high:4044kB active_anon:7872kB inactive_anon:8100kB active_file:7044kB inactive_file:7296kB unevictable:32kB isolated(anon):0kB isolated(file):0kB present:471360kB mlocked:32kB dirty:0kB writeback:0kB mapped:2072kB shmem:0kB slab_reclaimable:50548kB slab_unreclaimable:193472kB kernel_stack:122384kB pagetables:856kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
[ 3908.117253] lowmem_reserve[]: 0 0 0
[ 3908.117253] DMA: 52*4kB 216*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1936kB
[ 3908.117253] Normal: 14858*4kB 181*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 60880kB
[ 3908.117253] 5093 total pagecache pages
[ 3908.117253] 1490 pages in swap cache
[ 3908.117253] Swap cache stats: add 55685, delete 54195, find 25271/28670
[ 3908.117253] Free swap  = 458944kB
[ 3908.117253] Total swap = 524284kB
[ 3908.117253] 122848 pages RAM
[ 3908.117253] 2699 pages reserved
[ 3908.117253] 4346 pages shared
[ 3908.117253] 84248 pages non-shared

ps auxf:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    22:39   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [kworker/u:0]
root         6  0.0  0.0      0     0 ?        R    22:39   0:01  \_ [rcu_kthread]
root         7  0.0  0.0      0     0 ?        R    22:39   0:00  \_ [watchdog/0]
root         8  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [khelper]
root       138  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [sync_supers]
root       140  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [bdi-default]
root       142  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [kblockd]
root       230  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [ata_sff]
root       237  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [khubd]
root       365  0.0  0.0      0     0 ?        S    22:39   0:01  \_ [kswapd0]
root       429  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [fsnotify_mark]
root       438  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [xfs_mru_cache]
root       439  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [xfslogd]
root       440  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [xfsdatad]
root       441  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [xfsconvertd]
root       497  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [scsi_eh_0]
root       500  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [scsi_eh_1]
root       514  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [scsi_eh_2]
root       517  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [scsi_eh_3]
root       521  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [kworker/u:5]
root       530  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [scsi_eh_4]
root       533  0.0  0.0      0     0 ?        S    22:39   0:00  \_ [scsi_eh_5]
root       585  0.0  0.0      0     0 ?        S<   22:39   0:00  \_ [kpsmoused]
root       659  0.0  0.0      0     0 ?        S<   22:40   0:00  \_ [reiserfs]
root      1436  0.0  0.0      0     0 ?        S    22:40   0:00  \_ [flush-8:0]
root      1642  0.0  0.0      0     0 ?        S<   22:40   0:00  \_ [rpciod]
root      1643  0.0  0.0      0     0 ?        S<   22:40   0:00  \_ [nfsiod]
root      1647  0.0  0.0      0     0 ?        S    22:40   0:00  \_ [lockd]
root     21739  0.0  0.0      0     0 ?        S<   23:05   0:00  \_ [ttm_swap]
root      1760  0.0  0.0      0     0 ?        S    23:22   0:00  \_ [kworker/0:2]
root     13497  0.0  0.0      0     0 ?        S    23:27   0:00  \_ [kworker/0:0]
root     14071  0.0  0.0      0     0 ?        S    23:36   0:00  \_ [kworker/0:3]
root     15923  0.0  0.0      0     0 ?        S    23:44   0:00  \_ [flush-0:18]
root     15924  0.0  0.0      0     0 ?        S    23:44   0:00  \_ [flush-0:19]
root     15925  0.0  0.0      0     0 ?        S    23:44   0:00  \_ [flush-0:20]
root     15926  0.0  0.0      0     0 ?        S    23:44   0:00  \_ [flush-0:21]
root         1  0.0  0.0   1740    72 ?        Ss   22:39   0:00 init [3]  
root       759  0.0  0.0   2228     8 ?        S<s  22:40   0:00 /sbin/udevd --daemon
root      1723  0.0  0.0   2224     8 ?        S<   22:45   0:00  \_ /sbin/udevd --daemon
root      1327  0.0  0.0   4876     8 tty2     Ss+  22:40   0:00 -bash
root      6122  0.4  0.0  34204     8 tty2     TN   23:24   0:07  \_ /usr/bin/python2.7 /usr/bin/emerge --oneshot media-gfx/gimp
portage  27988  0.0  0.0   5928     8 tty2     TN   23:28   0:00      \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
portage  28231  0.0  0.0   6064     8 tty2     TN   23:28   0:00          \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
portage  28245  0.0  0.0   4880     8 tty2     TN   23:28   0:00              \_ /bin/bash /usr/lib/portage/bin/ebuild-helpers/emake
portage  28250  0.0  0.0   3860     8 tty2     TN   23:28   0:00                  \_ make -j2
portage  28251  0.0  0.0   3864     8 tty2     TN   23:28   0:00                      \_ make all-recursive
portage  28252  0.0  0.0   4752     8 tty2     TN   23:28   0:00                          \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?   
portage  12569  0.0  0.0   4752     8 tty2     TN   23:33   0:00                              \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \
portage  12570  0.0  0.0   3864     8 tty2     TN   23:33   0:00                                  \_ make all
portage  12571  0.0  0.0   4752     8 tty2     TN   23:33   0:00                                      \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!
portage  15218  0.0  0.0   4752     8 tty2     TN   23:40   0:00                                          \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | 
portage  15219  0.0  0.0   3884     8 tty2     TN   23:40   0:00                                              \_ make all
portage  15912  0.0  0.0   1924     8 tty2     TN   23:42   0:00                                                  \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.
portage  15913  0.0  0.0  12724     8 tty2     TN   23:42   0:00                                                  |   \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I../.. -I../.. -I../.
portage  15914  0.0  0.0   5284     8 tty2     TN   23:42   0:00                                                  |   \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy
portage  15916  0.0  0.0   1924     8 tty2     TN   23:43   0:00                                                  \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.
portage  15917  0.0  0.0  11540     8 tty2     TN   23:43   0:00                                                      \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I../.. -I../.. -I../.
portage  15918  0.0  0.0   5284     8 tty2     TN   23:43   0:00                                                      \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy
root      1328  0.0  0.0   4876     8 tty3     Ss+  22:40   0:00 -bash
root     13085  0.7  0.0  34128    92 tty3     TN   23:34   0:06  \_ /usr/bin/python2.7 /usr/bin/emerge --oneshot collectd
portage  13877  0.0  0.0   5924     8 tty3     TN   23:36   0:00      \_ /bin/bash /usr/lib/portage/bin/ebuild.sh prepare
portage  13899  0.0  0.0   5928     8 tty3     TN   23:36   0:00          \_ /bin/bash /usr/lib/portage/bin/ebuild.sh prepare
portage  15904  0.0  0.0   5928     8 tty3     TN   23:42   0:00              \_ /bin/bash /usr/lib/portage/bin/ebuild.sh prepare
portage  15911  0.0  0.0   4752     8 tty3     TN   23:42   0:00                  \_ /bin/sh /usr/bin/autoconf --trace=AC_PROG_LIBTOOL
root      1329  0.0  0.0   1892     8 tty4     Ss+  22:40   0:00 /sbin/agetty 38400 tty4 linux
root      1330  0.0  0.0   1892     8 tty5     Ss+  22:40   0:00 /sbin/agetty 38400 tty5 linux
root      1331  0.0  0.0   1892     8 tty6     Ss+  22:40   0:00 /sbin/agetty 38400 tty6 linux
root      1471  0.0  0.0   1928     8 ?        Ss   22:40   0:00 dhcpcd -m 2 eth0
root      1512  0.0  0.0   5128     8 ?        S    22:40   0:00 supervising syslog-ng
root      1513  0.0  0.0   5408    32 ?        Ss   22:40   0:00  \_ /usr/sbin/syslog-ng
ntp       1537  0.0  0.0   4360   236 ?        Ss   22:40   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -u ntp:ntp
collectd  1555  0.1  0.2  45048  1032 ?        SNLsl 22:40   0:05 /usr/sbin/collectd -P /var/run/collectd/collectd.pid -C /etc/collectd.conf
root      1613  0.0  0.0   2116    96 ?        Ss   22:40   0:00 /sbin/rpcbind
root      1627  0.0  0.0   2188     8 ?        Ss   22:40   0:00 /sbin/rpc.statd --no-notify
root      1687  0.0  0.0   4204     8 ?        Ss   22:40   0:00 /usr/sbin/sshd
root     15929  0.1  0.0   7004   312 ?        Ss   23:47   0:00  \_ sshd: root@pts/2 
root     15931  0.0  0.1   4876   808 pts/2    Ss   23:47   0:00      \_ -bash
root     15949  0.0  0.2   4124   972 pts/2    R+   23:50   0:00          \_ ps auxf
root      1715  0.0  0.0   1892     8 tty1     Ss+  22:40   0:00 /sbin/agetty 38400 tty1 linux
root      1716  0.0  0.0   1892     8 ttyS0    Ss+  22:40   0:00 /sbin/agetty 115200 ttyS0 vt100
root     28160  0.0  0.0   1944     8 ?        Ss   23:21   0:00 /usr/sbin/gpm -m /dev/input/mice -t ps2

/proc/slabinfo:
slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
squashfs_inode_cache   4240   4240    384   10    1 : tunables    0    0    0 : slabdata    424    424      0
nfs_direct_cache       0      0     72   56    1 : tunables    0    0    0 : slabdata      0      0      0
nfs_read_data         72     72    448    9    1 : tunables    0    0    0 : slabdata      8      8      0
nfs_inode_cache      252    252    568   14    2 : tunables    0    0    0 : slabdata     18     18      0
rpc_inode_cache       36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
RAWv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
UDPLITEv6              0      0    672   12    2 : tunables    0    0    0 : slabdata      0      0      0
UDPv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
tw_sock_TCPv6         25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
TCPv6                 12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
mqueue_inode_cache      8      8    480    8    1 : tunables    0    0    0 : slabdata      1      1      0
xfs_inode              0      0    608   13    2 : tunables    0    0    0 : slabdata      0      0      0
xfs_efd_item           0      0    288   14    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_trans              0      0    224   18    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_da_state           0      0    336   12    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_ticket         0      0    176   23    1 : tunables    0    0    0 : slabdata      0      0      0
reiser_inode_cache  38160  38160    392   10    1 : tunables    0    0    0 : slabdata   3816   3816      0
configfs_dir_cache     73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
inotify_inode_mark     56     56     72   56    1 : tunables    0    0    0 : slabdata      1      1      0
posix_timers_cache      0      0    120   34    1 : tunables    0    0    0 : slabdata      0      0      0
UDP-Lite               0      0    512    8    1 : tunables    0    0    0 : slabdata      0      0      0
UDP                   16     16    512    8    1 : tunables    0    0    0 : slabdata      2      2      0
tw_sock_TCP           32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
TCP                   13     13   1184   13    4 : tunables    0    0    0 : slabdata      1      1      0
sgpool-128            12     12   2560   12    8 : tunables    0    0    0 : slabdata      1      1      0
sgpool-64             12     12   1280   12    4 : tunables    0    0    0 : slabdata      1      1      0
sgpool-32             12     12    640   12    2 : tunables    0    0    0 : slabdata      1      1      0
sgpool-16             12     12    320   12    1 : tunables    0    0    0 : slabdata      1      1      0
blkdev_queue          17     17    920   17    4 : tunables    0    0    0 : slabdata      1      1      0
blkdev_requests       27     38    208   19    1 : tunables    0    0    0 : slabdata      2      2      0
blkdev_ioc           102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
biovec-256            10     10   3072   10    8 : tunables    0    0    0 : slabdata      1      1      0
biovec-128             0      0   1536   10    4 : tunables    0    0    0 : slabdata      0      0      0
biovec-64             10     10    768   10    2 : tunables    0    0    0 : slabdata      1      1      0
sock_inode_cache      63     66    352   11    1 : tunables    0    0    0 : slabdata      6      6      0
skbuff_fclone_cache     11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
file_lock_cache       39     39    104   39    1 : tunables    0    0    0 : slabdata      1      1      0
shmem_inode_cache    920    920    400   10    1 : tunables    0    0    0 : slabdata     92     92      0
proc_inode_cache   33216  33216    336   12    1 : tunables    0    0    0 : slabdata   2768   2768      0
sigqueue              28     28    144   28    1 : tunables    0    0    0 : slabdata      1      1      0
bdev_cache            13     18    448    9    1 : tunables    0    0    0 : slabdata      2      2      0
sysfs_dir_cache    13260  13260     48   85    1 : tunables    0    0    0 : slabdata    156    156      0
mnt_cache             99    100    160   25    1 : tunables    0    0    0 : slabdata      4      4      0
inode_cache         3757   3757    312   13    1 : tunables    0    0    0 : slabdata    289    289      0
dentry            123232 123232    128   32    1 : tunables    0    0    0 : slabdata   3851   3851      0
buffer_head         2589  30003     56   73    1 : tunables    0    0    0 : slabdata    411    411      0
vm_area_struct      1792   1794     88   46    1 : tunables    0    0    0 : slabdata     39     39      0
mm_struct             68     76    416   19    2 : tunables    0    0    0 : slabdata      4      4      0
sighand_cache         85     96   1312   12    4 : tunables    0    0    0 : slabdata      8      8      0
task_struct        16410  16410    832   19    4 : tunables    0    0    0 : slabdata    885    885      0
anon_vma_chain      2352   2720     24  170    1 : tunables    0    0    0 : slabdata     16     16      0
anon_vma            1097   1190     24  170    1 : tunables    0    0    0 : slabdata      7      7      0
radix_tree_node    19019  19019    304   13    1 : tunables    0    0    0 : slabdata   1463   1463      0
idr_layer_cache      325    338    152   26    1 : tunables    0    0    0 : slabdata     13     13      0
dma-kmalloc-8192       0      0   8192    4    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-4096       0      0   4096    8    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-2048       0      0   2048    8    4 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-1024       0      0   1024    8    2 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-512        0      0    512    8    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-256        0      0    256   16    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-128        0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-64         0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-32         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-16         0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-8          0      0      8  512    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-192        0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-96         0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-8192          12     12   8192    4    8 : tunables    0    0    0 : slabdata      3      3      0
kmalloc-4096         293    296   4096    8    8 : tunables    0    0    0 : slabdata     37     37      0
kmalloc-2048         597    606   2048    8    4 : tunables    0    0    0 : slabdata     78     78      0
kmalloc-1024        6399   6400   1024    8    2 : tunables    0    0    0 : slabdata    800    800      0
kmalloc-512        18558  18560    512    8    1 : tunables    0    0    0 : slabdata   2320   2320      0
kmalloc-256           56     64    256   16    1 : tunables    0    0    0 : slabdata      4      4      0
kmalloc-128       1258587 1258592    128   32    1 : tunables    0    0    0 : slabdata  39331  39331      0
                  ^^^^^^^^^^^^^^^
                         How may I find out who is using this many 128-byte
                         blocks?
kmalloc-64         25086  25088     64   64    1 : tunables    0    0    0 : slabdata    392    392      0
kmalloc-32          9720   9728     32  128    1 : tunables    0    0    0 : slabdata     76     76      0
kmalloc-16          2542   4864     16  256    1 : tunables    0    0    0 : slabdata     19     19      0
kmalloc-8           3580   3584      8  512    1 : tunables    0    0    0 : slabdata      7      7      0
kmalloc-192        10925  10941    192   21    1 : tunables    0    0    0 : slabdata    521    521      0
kmalloc-96         63462  63462     96   42    1 : tunables    0    0    0 : slabdata   1511   1511      0
kmem_cache            32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
kmem_cache_node      128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0

Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-24 21:59 ` Bruno Prémont
@ 2011-04-25  2:42   ` KOSAKI Motohiro
  2011-04-25  7:47     ` Mike Frysinger
  0 siblings, 1 reply; 88+ messages in thread
From: KOSAKI Motohiro @ 2011-04-25  2:42 UTC (permalink / raw)
  To: Bruno Prémont; +Cc: kosaki.motohiro, linux-kernel, linux-mm, linux-fsdevel

> On Sun, 24 April 2011 Bruno Prémont <bonbons@linux-vserver.org> wrote:
> > On an older system I've been running Gentoo's revdep-rebuild to check
> > for system linking/*.la consistency and after doing most of the work the
> > system starved more or less, just complaining about stuck tasks now and
> > then.
> > Memory usage graph as seen from userspace showed sudden quick increase of
> > memory usage though only a very few MB were swapped out (c.f. attached RRD
> > graph).
> 
> Seems I've hit it once again (though detected before system was fully
> stalled by trying to reclaim memory without success).
> 
> This time it was during simple compiling...
> Gathered info below:
> 
> /proc/meminfo:
> MemTotal:         480660 kB
> MemFree:           64948 kB
> Buffers:           10304 kB
> Cached:             6924 kB
> SwapCached:         4220 kB
> Active:            11100 kB
> Inactive:          15732 kB
> Active(anon):       4732 kB
> Inactive(anon):     4876 kB
> Active(file):       6368 kB
> Inactive(file):    10856 kB
> Unevictable:          32 kB
> Mlocked:              32 kB
> SwapTotal:        524284 kB
> SwapFree:         456432 kB
> Dirty:                80 kB
> Writeback:             0 kB
> AnonPages:          6268 kB
> Mapped:             2604 kB
> Shmem:                 4 kB
> Slab:             250632 kB
> SReclaimable:      51144 kB
> SUnreclaim:       199488 kB   <--- look big as well...
> KernelStack:      131032 kB   <--- what???

KernelStack is used 8K bytes per thread. then, your system should have
16000 threads. but your ps only showed about 80 processes.
Hmm... stack leak?


> PageTables:          920 kB
> NFS_Unstable:          0 kB
> Bounce:                0 kB
> WritebackTmp:          0 kB
> CommitLimit:      764612 kB
> Committed_AS:     132632 kB
> VmallocTotal:     548548 kB
> VmallocUsed:       18500 kB
> VmallocChunk:     525952 kB
> AnonHugePages:         0 kB
> DirectMap4k:       32704 kB
> DirectMap4M:      458752 kB
> 

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25  2:42   ` KOSAKI Motohiro
@ 2011-04-25  7:47     ` Mike Frysinger
  2011-04-25  9:17       ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Mike Frysinger @ 2011-04-25  7:47 UTC (permalink / raw)
  To: Bruno Prémont; +Cc: KOSAKI Motohiro, linux-kernel, linux-mm, linux-fsdevel

On Sun, Apr 24, 2011 at 22:42, KOSAKI Motohiro wrote:
>> On Sun, 24 April 2011 Bruno Prémont wrote:
>> > On an older system I've been running Gentoo's revdep-rebuild to check
>> > for system linking/*.la consistency and after doing most of the work the
>> > system starved more or less, just complaining about stuck tasks now and
>> > then.
>> > Memory usage graph as seen from userspace showed sudden quick increase of
>> > memory usage though only a very few MB were swapped out (c.f. attached RRD
>> > graph).
>>
>> Seems I've hit it once again (though detected before system was fully
>> stalled by trying to reclaim memory without success).
>>
>> This time it was during simple compiling...
>> Gathered info below:
>>
>> /proc/meminfo:
>> MemTotal:         480660 kB
>> MemFree:           64948 kB
>> Buffers:           10304 kB
>> Cached:             6924 kB
>> SwapCached:         4220 kB
>> Active:            11100 kB
>> Inactive:          15732 kB
>> Active(anon):       4732 kB
>> Inactive(anon):     4876 kB
>> Active(file):       6368 kB
>> Inactive(file):    10856 kB
>> Unevictable:          32 kB
>> Mlocked:              32 kB
>> SwapTotal:        524284 kB
>> SwapFree:         456432 kB
>> Dirty:                80 kB
>> Writeback:             0 kB
>> AnonPages:          6268 kB
>> Mapped:             2604 kB
>> Shmem:                 4 kB
>> Slab:             250632 kB
>> SReclaimable:      51144 kB
>> SUnreclaim:       199488 kB   <--- look big as well...
>> KernelStack:      131032 kB   <--- what???
>
> KernelStack is used 8K bytes per thread. then, your system should have
> 16000 threads. but your ps only showed about 80 processes.
> Hmm... stack leak?

i might have a similar report for 2.6.39-rc4 (seems to be working fine
in 2.6.38.4), but for embedded Blackfin systems running gdbserver
processes over and over (so lots of short lived forks)

i wonder if you have a lot of zombies or otherwise unclaimed resources
?  does `ps aux` show anything unusual ?
-mike

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25  7:47     ` Mike Frysinger
@ 2011-04-25  9:17       ` Bruno Prémont
  2011-04-25  9:25         ` Pekka Enberg
  2011-04-25 15:22         ` Linus Torvalds
  0 siblings, 2 replies; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25  9:17 UTC (permalink / raw)
  To: Mike Frysinger; +Cc: KOSAKI Motohiro, linux-kernel, linux-mm, linux-fsdevel

On Mon, 25 April 2011 Mike Frysinger wrote:
> On Sun, Apr 24, 2011 at 22:42, KOSAKI Motohiro wrote:
> >> On Sun, 24 April 2011 Bruno Prémont wrote:
> >> > On an older system I've been running Gentoo's revdep-rebuild to check
> >> > for system linking/*.la consistency and after doing most of the work the
> >> > system starved more or less, just complaining about stuck tasks now and
> >> > then.
> >> > Memory usage graph as seen from userspace showed sudden quick increase of
> >> > memory usage though only a very few MB were swapped out (c.f. attached RRD
> >> > graph).
> >>
> >> Seems I've hit it once again (though detected before system was fully
> >> stalled by trying to reclaim memory without success).
> >>
> >> This time it was during simple compiling...
> >> Gathered info below:
> >>
> >> /proc/meminfo:
> >> MemTotal:         480660 kB
> >> MemFree:           64948 kB
> >> Buffers:           10304 kB
> >> Cached:             6924 kB
> >> SwapCached:         4220 kB
> >> Active:            11100 kB
> >> Inactive:          15732 kB
> >> Active(anon):       4732 kB
> >> Inactive(anon):     4876 kB
> >> Active(file):       6368 kB
> >> Inactive(file):    10856 kB
> >> Unevictable:          32 kB
> >> Mlocked:              32 kB
> >> SwapTotal:        524284 kB
> >> SwapFree:         456432 kB
> >> Dirty:                80 kB
> >> Writeback:             0 kB
> >> AnonPages:          6268 kB
> >> Mapped:             2604 kB
> >> Shmem:                 4 kB
> >> Slab:             250632 kB
> >> SReclaimable:      51144 kB
> >> SUnreclaim:       199488 kB   <--- look big as well...
> >> KernelStack:      131032 kB   <--- what???
> >
> > KernelStack is used 8K bytes per thread. then, your system should have
> > 16000 threads. but your ps only showed about 80 processes.
> > Hmm... stack leak?
> 
> i might have a similar report for 2.6.39-rc4 (seems to be working fine
> in 2.6.38.4), but for embedded Blackfin systems running gdbserver
> processes over and over (so lots of short lived forks)
> 
> i wonder if you have a lot of zombies or otherwise unclaimed resources
> ?  does `ps aux` show anything unusual ?

I've not seen anything special (no big amount of threads behind my about 80
processes, even after kernel oom-killed nearly all processes the hogged
memory has not been freed. And no, there are no zombies around).

Here it seems to happened when I run 2 intensive tasks in parallel, e.g.
(re)emerging gimp and running revdep-rebuild -pi in another terminal.
This produces a fork rate of about 100-300 per second.

Suddenly kmalloc-128 slabs stop being freed and things degrade.

Trying to trace some of the kmalloc-128 slab allocations I end up seeing
lots of allocations like this:

[ 1338.554429] TRACE kmalloc-128 alloc 0xc294ff00 inuse=30 fp=0xc294ff00
[ 1338.554434] Pid: 1573, comm: collectd Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
[ 1338.554437] Call Trace:
[ 1338.554442]  [<c10aef47>] trace+0x57/0xa0
[ 1338.554447]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
[ 1338.554452]  [<c10b0972>] T.999+0x172/0x1a0
[ 1338.554455]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
[ 1338.554459]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
[ 1338.554464]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
[ 1338.554468]  [<c10c08b5>] ? path_put+0x15/0x20
[ 1338.554472]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
[ 1338.554476]  [<c10b95d8>] get_empty_filp+0x58/0xc0
[ 1338.554481]  [<c10c323f>] path_openat+0x1f/0x320
[ 1338.554485]  [<c10a0a4e>] ? __access_remote_vm+0x19e/0x1d0
[ 1338.554490]  [<c10c3620>] do_filp_open+0x30/0x80
[ 1338.554495]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
[ 1338.554500]  [<c10c16f8>] ? getname_flags+0x28/0xe0
[ 1338.554505]  [<c10cd522>] ? alloc_fd+0x62/0xe0
[ 1338.554509]  [<c10c1731>] ? getname_flags+0x61/0xe0
[ 1338.554514]  [<c10b781d>] do_sys_open+0xed/0x1e0
[ 1338.554519]  [<c10b7979>] sys_open+0x29/0x40
[ 1338.554524]  [<c1391390>] sysenter_do_call+0x12/0x26
[ 1338.556764] TRACE kmalloc-128 alloc 0xc294ff80 inuse=31 fp=0xc294ff80
[ 1338.556774] Pid: 1332, comm: bash Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
[ 1338.556779] Call Trace:
[ 1338.556794]  [<c10aef47>] trace+0x57/0xa0
[ 1338.556802]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
[ 1338.556807]  [<c10b0972>] T.999+0x172/0x1a0
[ 1338.556812]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
[ 1338.556817]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
[ 1338.556821]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
[ 1338.556826]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
[ 1338.556830]  [<c10b95d8>] get_empty_filp+0x58/0xc0
[ 1338.556841]  [<c121fca8>] ? tty_ldisc_deref+0x8/0x10
[ 1338.556849]  [<c10c323f>] path_openat+0x1f/0x320
[ 1338.556857]  [<c11e2b3e>] ? fbcon_cursor+0xfe/0x180
[ 1338.556863]  [<c10c3620>] do_filp_open+0x30/0x80
[ 1338.556868]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
[ 1338.556873]  [<c10c5e8e>] ? do_vfs_ioctl+0x7e/0x580
[ 1338.556878]  [<c10c16f8>] ? getname_flags+0x28/0xe0
[ 1338.556886]  [<c10cd522>] ? alloc_fd+0x62/0xe0
[ 1338.556891]  [<c10c1731>] ? getname_flags+0x61/0xe0
[ 1338.556898]  [<c10b781d>] do_sys_open+0xed/0x1e0
[ 1338.556903]  [<c10b7979>] sys_open+0x29/0x40
[ 1338.556913]  [<c1391390>] sysenter_do_call+0x12/0x26

Collectd is system monitoring daemon that counts processes, memory
usage an much more, reading lots of files under /proc every 10
seconds.
Maybe it opens a process related file at a racy moment and thus
prevents the 128 slabs and kernel stacks from being released?

Replaying the scenario I'm at:
Slab:              43112 kB
SReclaimable:      25396 kB
SUnreclaim:        17716 kB
KernelStack:       16432 kB
PageTables:         1320 kB

with 
kmalloc-256           55     64    256   16    1 : tunables    0    0    0 : slabdata      4      4      0
kmalloc-128        66656  66656    128   32    1 : tunables    0    0    0 : slabdata   2083   2083      0
kmalloc-64          3902   3904     64   64    1 : tunables    0    0    0 : slabdata     61     61      0

(and compiling process tree now SIGSTOPped in order to have system
not starve immediately so I can look around for information)

If I resume one of the compiling process trees both KernelStack and
slab (kmalloc-128) usage increase quite quickly (and seems to never
get down anymore) - probably at same rate as processes get born (no
matter when they end).

Bruno

> -mike

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25  9:17       ` Bruno Prémont
@ 2011-04-25  9:25         ` Pekka Enberg
  2011-04-25 10:34           ` Bruno Prémont
  2011-04-25 15:22         ` Linus Torvalds
  1 sibling, 1 reply; 88+ messages in thread
From: Pekka Enberg @ 2011-04-25  9:25 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Catalin Marinas

On Mon, Apr 25, 2011 at 12:17 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> On Mon, 25 April 2011 Mike Frysinger wrote:
>> On Sun, Apr 24, 2011 at 22:42, KOSAKI Motohiro wrote:
>> >> On Sun, 24 April 2011 Bruno Prémont wrote:
>> >> > On an older system I've been running Gentoo's revdep-rebuild to check
>> >> > for system linking/*.la consistency and after doing most of the work the
>> >> > system starved more or less, just complaining about stuck tasks now and
>> >> > then.
>> >> > Memory usage graph as seen from userspace showed sudden quick increase of
>> >> > memory usage though only a very few MB were swapped out (c.f. attached RRD
>> >> > graph).
>> >>
>> >> Seems I've hit it once again (though detected before system was fully
>> >> stalled by trying to reclaim memory without success).
>> >>
>> >> This time it was during simple compiling...
>> >> Gathered info below:
>> >>
>> >> /proc/meminfo:
>> >> MemTotal:         480660 kB
>> >> MemFree:           64948 kB
>> >> Buffers:           10304 kB
>> >> Cached:             6924 kB
>> >> SwapCached:         4220 kB
>> >> Active:            11100 kB
>> >> Inactive:          15732 kB
>> >> Active(anon):       4732 kB
>> >> Inactive(anon):     4876 kB
>> >> Active(file):       6368 kB
>> >> Inactive(file):    10856 kB
>> >> Unevictable:          32 kB
>> >> Mlocked:              32 kB
>> >> SwapTotal:        524284 kB
>> >> SwapFree:         456432 kB
>> >> Dirty:                80 kB
>> >> Writeback:             0 kB
>> >> AnonPages:          6268 kB
>> >> Mapped:             2604 kB
>> >> Shmem:                 4 kB
>> >> Slab:             250632 kB
>> >> SReclaimable:      51144 kB
>> >> SUnreclaim:       199488 kB   <--- look big as well...
>> >> KernelStack:      131032 kB   <--- what???
>> >
>> > KernelStack is used 8K bytes per thread. then, your system should have
>> > 16000 threads. but your ps only showed about 80 processes.
>> > Hmm... stack leak?
>>
>> i might have a similar report for 2.6.39-rc4 (seems to be working fine
>> in 2.6.38.4), but for embedded Blackfin systems running gdbserver
>> processes over and over (so lots of short lived forks)
>>
>> i wonder if you have a lot of zombies or otherwise unclaimed resources
>> ?  does `ps aux` show anything unusual ?
>
> I've not seen anything special (no big amount of threads behind my about 80
> processes, even after kernel oom-killed nearly all processes the hogged
> memory has not been freed. And no, there are no zombies around).
>
> Here it seems to happened when I run 2 intensive tasks in parallel, e.g.
> (re)emerging gimp and running revdep-rebuild -pi in another terminal.
> This produces a fork rate of about 100-300 per second.
>
> Suddenly kmalloc-128 slabs stop being freed and things degrade.
>
> Trying to trace some of the kmalloc-128 slab allocations I end up seeing
> lots of allocations like this:
>
> [ 1338.554429] TRACE kmalloc-128 alloc 0xc294ff00 inuse=30 fp=0xc294ff00
> [ 1338.554434] Pid: 1573, comm: collectd Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
> [ 1338.554437] Call Trace:
> [ 1338.554442]  [<c10aef47>] trace+0x57/0xa0
> [ 1338.554447]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
> [ 1338.554452]  [<c10b0972>] T.999+0x172/0x1a0
> [ 1338.554455]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> [ 1338.554459]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> [ 1338.554464]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
> [ 1338.554468]  [<c10c08b5>] ? path_put+0x15/0x20
> [ 1338.554472]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> [ 1338.554476]  [<c10b95d8>] get_empty_filp+0x58/0xc0
> [ 1338.554481]  [<c10c323f>] path_openat+0x1f/0x320
> [ 1338.554485]  [<c10a0a4e>] ? __access_remote_vm+0x19e/0x1d0
> [ 1338.554490]  [<c10c3620>] do_filp_open+0x30/0x80
> [ 1338.554495]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
> [ 1338.554500]  [<c10c16f8>] ? getname_flags+0x28/0xe0
> [ 1338.554505]  [<c10cd522>] ? alloc_fd+0x62/0xe0
> [ 1338.554509]  [<c10c1731>] ? getname_flags+0x61/0xe0
> [ 1338.554514]  [<c10b781d>] do_sys_open+0xed/0x1e0
> [ 1338.554519]  [<c10b7979>] sys_open+0x29/0x40
> [ 1338.554524]  [<c1391390>] sysenter_do_call+0x12/0x26
> [ 1338.556764] TRACE kmalloc-128 alloc 0xc294ff80 inuse=31 fp=0xc294ff80
> [ 1338.556774] Pid: 1332, comm: bash Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
> [ 1338.556779] Call Trace:
> [ 1338.556794]  [<c10aef47>] trace+0x57/0xa0
> [ 1338.556802]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
> [ 1338.556807]  [<c10b0972>] T.999+0x172/0x1a0
> [ 1338.556812]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> [ 1338.556817]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> [ 1338.556821]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
> [ 1338.556826]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> [ 1338.556830]  [<c10b95d8>] get_empty_filp+0x58/0xc0
> [ 1338.556841]  [<c121fca8>] ? tty_ldisc_deref+0x8/0x10
> [ 1338.556849]  [<c10c323f>] path_openat+0x1f/0x320
> [ 1338.556857]  [<c11e2b3e>] ? fbcon_cursor+0xfe/0x180
> [ 1338.556863]  [<c10c3620>] do_filp_open+0x30/0x80
> [ 1338.556868]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
> [ 1338.556873]  [<c10c5e8e>] ? do_vfs_ioctl+0x7e/0x580
> [ 1338.556878]  [<c10c16f8>] ? getname_flags+0x28/0xe0
> [ 1338.556886]  [<c10cd522>] ? alloc_fd+0x62/0xe0
> [ 1338.556891]  [<c10c1731>] ? getname_flags+0x61/0xe0
> [ 1338.556898]  [<c10b781d>] do_sys_open+0xed/0x1e0
> [ 1338.556903]  [<c10b7979>] sys_open+0x29/0x40
> [ 1338.556913]  [<c1391390>] sysenter_do_call+0x12/0x26
>
> Collectd is system monitoring daemon that counts processes, memory
> usage an much more, reading lots of files under /proc every 10
> seconds.
> Maybe it opens a process related file at a racy moment and thus
> prevents the 128 slabs and kernel stacks from being released?
>
> Replaying the scenario I'm at:
> Slab:              43112 kB
> SReclaimable:      25396 kB
> SUnreclaim:        17716 kB
> KernelStack:       16432 kB
> PageTables:         1320 kB
>
> with
> kmalloc-256           55     64    256   16    1 : tunables    0    0    0 : slabdata      4      4      0
> kmalloc-128        66656  66656    128   32    1 : tunables    0    0    0 : slabdata   2083   2083      0
> kmalloc-64          3902   3904     64   64    1 : tunables    0    0    0 : slabdata     61     61      0
>
> (and compiling process tree now SIGSTOPped in order to have system
> not starve immediately so I can look around for information)
>
> If I resume one of the compiling process trees both KernelStack and
> slab (kmalloc-128) usage increase quite quickly (and seems to never
> get down anymore) - probably at same rate as processes get born (no
> matter when they end).

Looks like it might be a leak in VFS. You could try kmemleak to narrow
it down some more. See Documentation/kmemleak.txt for details.

                       Pekka

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25  9:25         ` Pekka Enberg
@ 2011-04-25 10:34           ` Bruno Prémont
  2011-04-25 11:41             ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25 10:34 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Catalin Marinas

On Mon, 25 April 2011 Pekka Enberg <penberg@kernel.org> wrote:

> On Mon, Apr 25, 2011 at 12:17 PM, Bruno Prémont
> <bonbons@linux-vserver.org> wrote:
> > On Mon, 25 April 2011 Mike Frysinger wrote:
> >> On Sun, Apr 24, 2011 at 22:42, KOSAKI Motohiro wrote:
> >> >> On Sun, 24 April 2011 Bruno Prémont wrote:
> >> >> > On an older system I've been running Gentoo's revdep-rebuild to check
> >> >> > for system linking/*.la consistency and after doing most of the work the
> >> >> > system starved more or less, just complaining about stuck tasks now and
> >> >> > then.
> >> >> > Memory usage graph as seen from userspace showed sudden quick increase of
> >> >> > memory usage though only a very few MB were swapped out (c.f. attached RRD
> >> >> > graph).
> >> >>
> >> >> Seems I've hit it once again (though detected before system was fully
> >> >> stalled by trying to reclaim memory without success).
> >> >>
> >> >> This time it was during simple compiling...
> >> >> Gathered info below:
> >> >>
> >> >> /proc/meminfo:
> >> >> MemTotal:         480660 kB
> >> >> MemFree:           64948 kB
> >> >> Buffers:           10304 kB
> >> >> Cached:             6924 kB
> >> >> SwapCached:         4220 kB
> >> >> Active:            11100 kB
> >> >> Inactive:          15732 kB
> >> >> Active(anon):       4732 kB
> >> >> Inactive(anon):     4876 kB
> >> >> Active(file):       6368 kB
> >> >> Inactive(file):    10856 kB
> >> >> Unevictable:          32 kB
> >> >> Mlocked:              32 kB
> >> >> SwapTotal:        524284 kB
> >> >> SwapFree:         456432 kB
> >> >> Dirty:                80 kB
> >> >> Writeback:             0 kB
> >> >> AnonPages:          6268 kB
> >> >> Mapped:             2604 kB
> >> >> Shmem:                 4 kB
> >> >> Slab:             250632 kB
> >> >> SReclaimable:      51144 kB
> >> >> SUnreclaim:       199488 kB   <--- look big as well...
> >> >> KernelStack:      131032 kB   <--- what???
> >> >
> >> > KernelStack is used 8K bytes per thread. then, your system should have
> >> > 16000 threads. but your ps only showed about 80 processes.
> >> > Hmm... stack leak?
> >>
> >> i might have a similar report for 2.6.39-rc4 (seems to be working fine
> >> in 2.6.38.4), but for embedded Blackfin systems running gdbserver
> >> processes over and over (so lots of short lived forks)
> >>
> >> i wonder if you have a lot of zombies or otherwise unclaimed resources
> >> ?  does `ps aux` show anything unusual ?
> >
> > I've not seen anything special (no big amount of threads behind my about 80
> > processes, even after kernel oom-killed nearly all processes the hogged
> > memory has not been freed. And no, there are no zombies around).
> >
> > Here it seems to happened when I run 2 intensive tasks in parallel, e.g.
> > (re)emerging gimp and running revdep-rebuild -pi in another terminal.
> > This produces a fork rate of about 100-300 per second.
> >
> > Suddenly kmalloc-128 slabs stop being freed and things degrade.
> >
> > Trying to trace some of the kmalloc-128 slab allocations I end up seeing
> > lots of allocations like this:
> >
> > [ 1338.554429] TRACE kmalloc-128 alloc 0xc294ff00 inuse=30 fp=0xc294ff00
> > [ 1338.554434] Pid: 1573, comm: collectd Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
> > [ 1338.554437] Call Trace:
> > [ 1338.554442]  [<c10aef47>] trace+0x57/0xa0
> > [ 1338.554447]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
> > [ 1338.554452]  [<c10b0972>] T.999+0x172/0x1a0
> > [ 1338.554455]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > [ 1338.554459]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > [ 1338.554464]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
> > [ 1338.554468]  [<c10c08b5>] ? path_put+0x15/0x20
> > [ 1338.554472]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > [ 1338.554476]  [<c10b95d8>] get_empty_filp+0x58/0xc0
> > [ 1338.554481]  [<c10c323f>] path_openat+0x1f/0x320
> > [ 1338.554485]  [<c10a0a4e>] ? __access_remote_vm+0x19e/0x1d0
> > [ 1338.554490]  [<c10c3620>] do_filp_open+0x30/0x80
> > [ 1338.554495]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
> > [ 1338.554500]  [<c10c16f8>] ? getname_flags+0x28/0xe0
> > [ 1338.554505]  [<c10cd522>] ? alloc_fd+0x62/0xe0
> > [ 1338.554509]  [<c10c1731>] ? getname_flags+0x61/0xe0
> > [ 1338.554514]  [<c10b781d>] do_sys_open+0xed/0x1e0
> > [ 1338.554519]  [<c10b7979>] sys_open+0x29/0x40
> > [ 1338.554524]  [<c1391390>] sysenter_do_call+0x12/0x26
> > [ 1338.556764] TRACE kmalloc-128 alloc 0xc294ff80 inuse=31 fp=0xc294ff80
> > [ 1338.556774] Pid: 1332, comm: bash Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
> > [ 1338.556779] Call Trace:
> > [ 1338.556794]  [<c10aef47>] trace+0x57/0xa0
> > [ 1338.556802]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
> > [ 1338.556807]  [<c10b0972>] T.999+0x172/0x1a0
> > [ 1338.556812]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > [ 1338.556817]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > [ 1338.556821]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
> > [ 1338.556826]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > [ 1338.556830]  [<c10b95d8>] get_empty_filp+0x58/0xc0
> > [ 1338.556841]  [<c121fca8>] ? tty_ldisc_deref+0x8/0x10
> > [ 1338.556849]  [<c10c323f>] path_openat+0x1f/0x320
> > [ 1338.556857]  [<c11e2b3e>] ? fbcon_cursor+0xfe/0x180
> > [ 1338.556863]  [<c10c3620>] do_filp_open+0x30/0x80
> > [ 1338.556868]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
> > [ 1338.556873]  [<c10c5e8e>] ? do_vfs_ioctl+0x7e/0x580
> > [ 1338.556878]  [<c10c16f8>] ? getname_flags+0x28/0xe0
> > [ 1338.556886]  [<c10cd522>] ? alloc_fd+0x62/0xe0
> > [ 1338.556891]  [<c10c1731>] ? getname_flags+0x61/0xe0
> > [ 1338.556898]  [<c10b781d>] do_sys_open+0xed/0x1e0
> > [ 1338.556903]  [<c10b7979>] sys_open+0x29/0x40
> > [ 1338.556913]  [<c1391390>] sysenter_do_call+0x12/0x26
> >
> > Collectd is system monitoring daemon that counts processes, memory
> > usage an much more, reading lots of files under /proc every 10
> > seconds.
> > Maybe it opens a process related file at a racy moment and thus
> > prevents the 128 slabs and kernel stacks from being released?
> >
> > Replaying the scenario I'm at:
> > Slab:              43112 kB
> > SReclaimable:      25396 kB
> > SUnreclaim:        17716 kB
> > KernelStack:       16432 kB
> > PageTables:         1320 kB
> >
> > with
> > kmalloc-256           55     64    256   16    1 : tunables    0    0    0 : slabdata      4      4      0
> > kmalloc-128        66656  66656    128   32    1 : tunables    0    0    0 : slabdata   2083   2083      0
> > kmalloc-64          3902   3904     64   64    1 : tunables    0    0    0 : slabdata     61     61      0
> >
> > (and compiling process tree now SIGSTOPped in order to have system
> > not starve immediately so I can look around for information)
> >
> > If I resume one of the compiling process trees both KernelStack and
> > slab (kmalloc-128) usage increase quite quickly (and seems to never
> > get down anymore) - probably at same rate as processes get born (no
> > matter when they end).
> 
> Looks like it might be a leak in VFS. You could try kmemleak to narrow
> it down some more. See Documentation/kmemleak.txt for details.

Hm, seems not to be willing to let me run kmemleak... each time I put
on my load scenario I get "BUG: unable to handle kernel " on console
as a last breath from the system. (the rest of the trace never shows up)

Going to try harder to get at least a complete trace...

Bruno

>                        Pekka

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 10:34           ` Bruno Prémont
@ 2011-04-25 11:41             ` Bruno Prémont
  2011-04-25 11:47               ` Pekka Enberg
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25 11:41 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Catalin Marinas

On Mon, 25 April 2011 Bruno Prémont wrote:
> On Mon, 25 April 2011 Pekka Enberg wrote:
> > On Mon, Apr 25, 2011 at 12:17 PM, Bruno Prémont wrote:
> > > On Mon, 25 April 2011 Mike Frysinger wrote:
> > >> On Sun, Apr 24, 2011 at 22:42, KOSAKI Motohiro wrote:
> > >> >> On Sun, 24 April 2011 Bruno Prémont wrote:
> > >> >> > On an older system I've been running Gentoo's revdep-rebuild to check
> > >> >> > for system linking/*.la consistency and after doing most of the work the
> > >> >> > system starved more or less, just complaining about stuck tasks now and
> > >> >> > then.
> > >> >> > Memory usage graph as seen from userspace showed sudden quick increase of
> > >> >> > memory usage though only a very few MB were swapped out (c.f. attached RRD
> > >> >> > graph).
> > >> >>
> > >> >> Seems I've hit it once again (though detected before system was fully
> > >> >> stalled by trying to reclaim memory without success).
> > >> >>
> > >> >> This time it was during simple compiling...
> > >> >> Gathered info below:
> > >> >>
> > >> >> /proc/meminfo:
> > >> >> MemTotal:         480660 kB
> > >> >> MemFree:           64948 kB
> > >> >> Buffers:           10304 kB
> > >> >> Cached:             6924 kB
> > >> >> SwapCached:         4220 kB
> > >> >> Active:            11100 kB
> > >> >> Inactive:          15732 kB
> > >> >> Active(anon):       4732 kB
> > >> >> Inactive(anon):     4876 kB
> > >> >> Active(file):       6368 kB
> > >> >> Inactive(file):    10856 kB
> > >> >> Unevictable:          32 kB
> > >> >> Mlocked:              32 kB
> > >> >> SwapTotal:        524284 kB
> > >> >> SwapFree:         456432 kB
> > >> >> Dirty:                80 kB
> > >> >> Writeback:             0 kB
> > >> >> AnonPages:          6268 kB
> > >> >> Mapped:             2604 kB
> > >> >> Shmem:                 4 kB
> > >> >> Slab:             250632 kB
> > >> >> SReclaimable:      51144 kB
> > >> >> SUnreclaim:       199488 kB   <--- look big as well...
> > >> >> KernelStack:      131032 kB   <--- what???
> > >> >
> > >> > KernelStack is used 8K bytes per thread. then, your system should have
> > >> > 16000 threads. but your ps only showed about 80 processes.
> > >> > Hmm... stack leak?
> > >>
> > >> i might have a similar report for 2.6.39-rc4 (seems to be working fine
> > >> in 2.6.38.4), but for embedded Blackfin systems running gdbserver
> > >> processes over and over (so lots of short lived forks)
> > >>
> > >> i wonder if you have a lot of zombies or otherwise unclaimed resources
> > >> ?  does `ps aux` show anything unusual ?
> > >
> > > I've not seen anything special (no big amount of threads behind my about 80
> > > processes, even after kernel oom-killed nearly all processes the hogged
> > > memory has not been freed. And no, there are no zombies around).
> > >
> > > Here it seems to happened when I run 2 intensive tasks in parallel, e.g.
> > > (re)emerging gimp and running revdep-rebuild -pi in another terminal.
> > > This produces a fork rate of about 100-300 per second.
> > >
> > > Suddenly kmalloc-128 slabs stop being freed and things degrade.
> > >
> > > Trying to trace some of the kmalloc-128 slab allocations I end up seeing
> > > lots of allocations like this:
> > >
> > > [ 1338.554429] TRACE kmalloc-128 alloc 0xc294ff00 inuse=30 fp=0xc294ff00
> > > [ 1338.554434] Pid: 1573, comm: collectd Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
> > > [ 1338.554437] Call Trace:
> > > [ 1338.554442]  [<c10aef47>] trace+0x57/0xa0
> > > [ 1338.554447]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
> > > [ 1338.554452]  [<c10b0972>] T.999+0x172/0x1a0
> > > [ 1338.554455]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > > [ 1338.554459]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > > [ 1338.554464]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
> > > [ 1338.554468]  [<c10c08b5>] ? path_put+0x15/0x20
> > > [ 1338.554472]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > > [ 1338.554476]  [<c10b95d8>] get_empty_filp+0x58/0xc0
> > > [ 1338.554481]  [<c10c323f>] path_openat+0x1f/0x320
> > > [ 1338.554485]  [<c10a0a4e>] ? __access_remote_vm+0x19e/0x1d0
> > > [ 1338.554490]  [<c10c3620>] do_filp_open+0x30/0x80
> > > [ 1338.554495]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
> > > [ 1338.554500]  [<c10c16f8>] ? getname_flags+0x28/0xe0
> > > [ 1338.554505]  [<c10cd522>] ? alloc_fd+0x62/0xe0
> > > [ 1338.554509]  [<c10c1731>] ? getname_flags+0x61/0xe0
> > > [ 1338.554514]  [<c10b781d>] do_sys_open+0xed/0x1e0
> > > [ 1338.554519]  [<c10b7979>] sys_open+0x29/0x40
> > > [ 1338.554524]  [<c1391390>] sysenter_do_call+0x12/0x26
> > > [ 1338.556764] TRACE kmalloc-128 alloc 0xc294ff80 inuse=31 fp=0xc294ff80
> > > [ 1338.556774] Pid: 1332, comm: bash Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
> > > [ 1338.556779] Call Trace:
> > > [ 1338.556794]  [<c10aef47>] trace+0x57/0xa0
> > > [ 1338.556802]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
> > > [ 1338.556807]  [<c10b0972>] T.999+0x172/0x1a0
> > > [ 1338.556812]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > > [ 1338.556817]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > > [ 1338.556821]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
> > > [ 1338.556826]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
> > > [ 1338.556830]  [<c10b95d8>] get_empty_filp+0x58/0xc0
> > > [ 1338.556841]  [<c121fca8>] ? tty_ldisc_deref+0x8/0x10
> > > [ 1338.556849]  [<c10c323f>] path_openat+0x1f/0x320
> > > [ 1338.556857]  [<c11e2b3e>] ? fbcon_cursor+0xfe/0x180
> > > [ 1338.556863]  [<c10c3620>] do_filp_open+0x30/0x80
> > > [ 1338.556868]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
> > > [ 1338.556873]  [<c10c5e8e>] ? do_vfs_ioctl+0x7e/0x580
> > > [ 1338.556878]  [<c10c16f8>] ? getname_flags+0x28/0xe0
> > > [ 1338.556886]  [<c10cd522>] ? alloc_fd+0x62/0xe0
> > > [ 1338.556891]  [<c10c1731>] ? getname_flags+0x61/0xe0
> > > [ 1338.556898]  [<c10b781d>] do_sys_open+0xed/0x1e0
> > > [ 1338.556903]  [<c10b7979>] sys_open+0x29/0x40
> > > [ 1338.556913]  [<c1391390>] sysenter_do_call+0x12/0x26
> > >
> > > Collectd is system monitoring daemon that counts processes, memory
> > > usage an much more, reading lots of files under /proc every 10
> > > seconds.
> > > Maybe it opens a process related file at a racy moment and thus
> > > prevents the 128 slabs and kernel stacks from being released?
> > >
> > > Replaying the scenario I'm at:
> > > Slab:              43112 kB
> > > SReclaimable:      25396 kB
> > > SUnreclaim:        17716 kB
> > > KernelStack:       16432 kB
> > > PageTables:         1320 kB
> > >
> > > with
> > > kmalloc-256           55     64    256   16    1 : tunables    0    0    0 : slabdata      4      4      0
> > > kmalloc-128        66656  66656    128   32    1 : tunables    0    0    0 : slabdata   2083   2083      0
> > > kmalloc-64          3902   3904     64   64    1 : tunables    0    0    0 : slabdata     61     61      0
> > >
> > > (and compiling process tree now SIGSTOPped in order to have system
> > > not starve immediately so I can look around for information)
> > >
> > > If I resume one of the compiling process trees both KernelStack and
> > > slab (kmalloc-128) usage increase quite quickly (and seems to never
> > > get down anymore) - probably at same rate as processes get born (no
> > > matter when they end).
> > 
> > Looks like it might be a leak in VFS. You could try kmemleak to narrow
> > it down some more. See Documentation/kmemleak.txt for details.
> 
> Hm, seems not to be willing to let me run kmemleak... each time I put
> on my load scenario I get "BUG: unable to handle kernel " on console
> as a last breath from the system. (the rest of the trace never shows up)
> 
> Going to try harder to get at least a complete trace...

After many attempts I got something from kmemleak (running on VESAfb
instead of vgacon or nouveau KMS), netconsole disabled.
For the crashes my screen is just too small to display the interesting
part of it (maybe I can get it via serial console at a later attempt)

What kmemcheck finds does look very repetitive:
unreferenced object 0xdd294540 (size 328):
  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
  hex dump (first 32 bytes):
    40 57 d2 dc 00 00 00 00 00 00 00 00 00 00 00 00  @W..............
    00 00 00 00 00 00 00 00 6d 41 00 00 00 00 00 00  ........mA......
  backtrace:
    [<c138aae7>] kmemleak_alloc+0x27/0x50
    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
    [<c10f452e>] proc_alloc_inode+0x1e/0x90
    [<c10cd0ec>] alloc_inode+0x1c/0x80
    [<c10cd162>] new_inode+0x12/0x40
    [<c10f54bc>] proc_pid_make_inode+0xc/0xa0
    [<c10f6835>] proc_pident_instantiate+0x15/0xa0
    [<c10f693d>] proc_pident_lookup+0x7d/0xb0
    [<c10f69a7>] proc_tgid_base_lookup+0x17/0x20
    [<c10c1f52>] d_alloc_and_lookup+0x32/0x60
    [<c10c23b4>] do_lookup+0xa4/0x250
    [<c10c3653>] do_last+0xe3/0x700
    [<c10c4882>] path_openat+0x92/0x320
    [<c10c4bf0>] do_filp_open+0x30/0x80
    [<c10b8ded>] do_sys_open+0xed/0x1e0
    [<c10b8f49>] sys_open+0x29/0x40
unreferenced object 0xdd0fa180 (size 128):
  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
  hex dump (first 32 bytes):
    1c c0 00 00 04 00 00 00 00 00 00 00 00 02 20 00  .............. .
    00 5e 24 dd 65 f6 12 00 03 00 00 00 a4 a1 0f dd  .^$.e...........
  backtrace:
    [<c138aae7>] kmemleak_alloc+0x27/0x50
    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
    [<c10cb95e>] d_alloc+0x1e/0x180
    [<c10f5027>] proc_fill_cache+0xd7/0x140
    [<c10f7b27>] proc_task_readdir+0x237/0x300
    [<c10c7cf4>] vfs_readdir+0x84/0xa0
    [<c10c7d74>] sys_getdents64+0x64/0xb0
    [<c13945d0>] sysenter_do_call+0x12/0x26
    [<ffffffff>] 0xffffffff
unreferenced object 0xdd294690 (size 328):
  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
  hex dump (first 32 bytes):
    40 57 d2 dc 00 00 00 00 00 00 00 00 00 00 00 00  @W..............
    00 00 00 00 00 00 00 00 6d 41 00 00 00 00 00 00  ........mA......
  backtrace:
    [<c138aae7>] kmemleak_alloc+0x27/0x50
    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
    [<c10f452e>] proc_alloc_inode+0x1e/0x90
    [<c10cd0ec>] alloc_inode+0x1c/0x80
    [<c10cd162>] new_inode+0x12/0x40
    [<c10f54bc>] proc_pid_make_inode+0xc/0xa0
    [<c10f6791>] proc_task_instantiate+0x11/0xa0
    [<c10f506d>] proc_fill_cache+0x11d/0x140
    [<c10f7b27>] proc_task_readdir+0x237/0x300
    [<c10c7cf4>] vfs_readdir+0x84/0xa0
    [<c10c7d74>] sys_getdents64+0x64/0xb0
    [<c13945d0>] sysenter_do_call+0x12/0x26
    [<ffffffff>] 0xffffffff
unreferenced object 0xdd22df80 (size 128):
  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
  hex dump (first 32 bytes):
    1c c0 00 00 04 00 00 00 00 00 00 00 00 02 20 00  .............. .
    80 2c 13 dd 23 c5 6f d6 06 00 00 00 a4 df 22 dd  .,..#.o.......".
  backtrace:
    [<c138aae7>] kmemleak_alloc+0x27/0x50
    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
    [<c10cb95e>] d_alloc+0x1e/0x180
    [<c10c1f40>] d_alloc_and_lookup+0x20/0x60
    [<c10c23b4>] do_lookup+0xa4/0x250
    [<c10c3653>] do_last+0xe3/0x700
    [<c10c4882>] path_openat+0x92/0x320
    [<c10c4bf0>] do_filp_open+0x30/0x80
    [<c10b8ded>] do_sys_open+0xed/0x1e0
    [<c10b8f49>] sys_open+0x29/0x40
    [<c13945d0>] sysenter_do_call+0x12/0x26
    [<ffffffff>] 0xffffffff

All I could fetch from the system (300k, expands to ~16MB
for some portion of announced 6k entries):
  http://homepage.internet.lu/BrunoP/jupiter.kmemleak.bz2

Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 11:41             ` Bruno Prémont
@ 2011-04-25 11:47               ` Pekka Enberg
  2011-04-25 12:11                 ` Bruno Prémont
  2011-04-25 12:14                 ` Tetsuo Handa
  0 siblings, 2 replies; 88+ messages in thread
From: Pekka Enberg @ 2011-04-25 11:47 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Catalin Marinas, Alexey Dobriyan, Linus Torvalds,
	Al Viro, Nick Piggin

On Mon, Apr 25, 2011 at 2:41 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> On Mon, 25 April 2011 Bruno Prémont wrote:
>> On Mon, 25 April 2011 Pekka Enberg wrote:
>> > On Mon, Apr 25, 2011 at 12:17 PM, Bruno Prémont wrote:
>> > > On Mon, 25 April 2011 Mike Frysinger wrote:
>> > >> On Sun, Apr 24, 2011 at 22:42, KOSAKI Motohiro wrote:
>> > >> >> On Sun, 24 April 2011 Bruno Prémont wrote:
>> > >> >> > On an older system I've been running Gentoo's revdep-rebuild to check
>> > >> >> > for system linking/*.la consistency and after doing most of the work the
>> > >> >> > system starved more or less, just complaining about stuck tasks now and
>> > >> >> > then.
>> > >> >> > Memory usage graph as seen from userspace showed sudden quick increase of
>> > >> >> > memory usage though only a very few MB were swapped out (c.f. attached RRD
>> > >> >> > graph).
>> > >> >>
>> > >> >> Seems I've hit it once again (though detected before system was fully
>> > >> >> stalled by trying to reclaim memory without success).
>> > >> >>
>> > >> >> This time it was during simple compiling...
>> > >> >> Gathered info below:
>> > >> >>
>> > >> >> /proc/meminfo:
>> > >> >> MemTotal:         480660 kB
>> > >> >> MemFree:           64948 kB
>> > >> >> Buffers:           10304 kB
>> > >> >> Cached:             6924 kB
>> > >> >> SwapCached:         4220 kB
>> > >> >> Active:            11100 kB
>> > >> >> Inactive:          15732 kB
>> > >> >> Active(anon):       4732 kB
>> > >> >> Inactive(anon):     4876 kB
>> > >> >> Active(file):       6368 kB
>> > >> >> Inactive(file):    10856 kB
>> > >> >> Unevictable:          32 kB
>> > >> >> Mlocked:              32 kB
>> > >> >> SwapTotal:        524284 kB
>> > >> >> SwapFree:         456432 kB
>> > >> >> Dirty:                80 kB
>> > >> >> Writeback:             0 kB
>> > >> >> AnonPages:          6268 kB
>> > >> >> Mapped:             2604 kB
>> > >> >> Shmem:                 4 kB
>> > >> >> Slab:             250632 kB
>> > >> >> SReclaimable:      51144 kB
>> > >> >> SUnreclaim:       199488 kB   <--- look big as well...
>> > >> >> KernelStack:      131032 kB   <--- what???
>> > >> >
>> > >> > KernelStack is used 8K bytes per thread. then, your system should have
>> > >> > 16000 threads. but your ps only showed about 80 processes.
>> > >> > Hmm... stack leak?
>> > >>
>> > >> i might have a similar report for 2.6.39-rc4 (seems to be working fine
>> > >> in 2.6.38.4), but for embedded Blackfin systems running gdbserver
>> > >> processes over and over (so lots of short lived forks)
>> > >>
>> > >> i wonder if you have a lot of zombies or otherwise unclaimed resources
>> > >> ?  does `ps aux` show anything unusual ?
>> > >
>> > > I've not seen anything special (no big amount of threads behind my about 80
>> > > processes, even after kernel oom-killed nearly all processes the hogged
>> > > memory has not been freed. And no, there are no zombies around).
>> > >
>> > > Here it seems to happened when I run 2 intensive tasks in parallel, e.g.
>> > > (re)emerging gimp and running revdep-rebuild -pi in another terminal.
>> > > This produces a fork rate of about 100-300 per second.
>> > >
>> > > Suddenly kmalloc-128 slabs stop being freed and things degrade.
>> > >
>> > > Trying to trace some of the kmalloc-128 slab allocations I end up seeing
>> > > lots of allocations like this:
>> > >
>> > > [ 1338.554429] TRACE kmalloc-128 alloc 0xc294ff00 inuse=30 fp=0xc294ff00
>> > > [ 1338.554434] Pid: 1573, comm: collectd Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
>> > > [ 1338.554437] Call Trace:
>> > > [ 1338.554442]  [<c10aef47>] trace+0x57/0xa0
>> > > [ 1338.554447]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
>> > > [ 1338.554452]  [<c10b0972>] T.999+0x172/0x1a0
>> > > [ 1338.554455]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
>> > > [ 1338.554459]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
>> > > [ 1338.554464]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
>> > > [ 1338.554468]  [<c10c08b5>] ? path_put+0x15/0x20
>> > > [ 1338.554472]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
>> > > [ 1338.554476]  [<c10b95d8>] get_empty_filp+0x58/0xc0
>> > > [ 1338.554481]  [<c10c323f>] path_openat+0x1f/0x320
>> > > [ 1338.554485]  [<c10a0a4e>] ? __access_remote_vm+0x19e/0x1d0
>> > > [ 1338.554490]  [<c10c3620>] do_filp_open+0x30/0x80
>> > > [ 1338.554495]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
>> > > [ 1338.554500]  [<c10c16f8>] ? getname_flags+0x28/0xe0
>> > > [ 1338.554505]  [<c10cd522>] ? alloc_fd+0x62/0xe0
>> > > [ 1338.554509]  [<c10c1731>] ? getname_flags+0x61/0xe0
>> > > [ 1338.554514]  [<c10b781d>] do_sys_open+0xed/0x1e0
>> > > [ 1338.554519]  [<c10b7979>] sys_open+0x29/0x40
>> > > [ 1338.554524]  [<c1391390>] sysenter_do_call+0x12/0x26
>> > > [ 1338.556764] TRACE kmalloc-128 alloc 0xc294ff80 inuse=31 fp=0xc294ff80
>> > > [ 1338.556774] Pid: 1332, comm: bash Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #1
>> > > [ 1338.556779] Call Trace:
>> > > [ 1338.556794]  [<c10aef47>] trace+0x57/0xa0
>> > > [ 1338.556802]  [<c10b07b3>] alloc_debug_processing+0xf3/0x140
>> > > [ 1338.556807]  [<c10b0972>] T.999+0x172/0x1a0
>> > > [ 1338.556812]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
>> > > [ 1338.556817]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
>> > > [ 1338.556821]  [<c10b0a52>] kmem_cache_alloc+0xb2/0x100
>> > > [ 1338.556826]  [<c10b95d8>] ? get_empty_filp+0x58/0xc0
>> > > [ 1338.556830]  [<c10b95d8>] get_empty_filp+0x58/0xc0
>> > > [ 1338.556841]  [<c121fca8>] ? tty_ldisc_deref+0x8/0x10
>> > > [ 1338.556849]  [<c10c323f>] path_openat+0x1f/0x320
>> > > [ 1338.556857]  [<c11e2b3e>] ? fbcon_cursor+0xfe/0x180
>> > > [ 1338.556863]  [<c10c3620>] do_filp_open+0x30/0x80
>> > > [ 1338.556868]  [<c10b0a30>] ? kmem_cache_alloc+0x90/0x100
>> > > [ 1338.556873]  [<c10c5e8e>] ? do_vfs_ioctl+0x7e/0x580
>> > > [ 1338.556878]  [<c10c16f8>] ? getname_flags+0x28/0xe0
>> > > [ 1338.556886]  [<c10cd522>] ? alloc_fd+0x62/0xe0
>> > > [ 1338.556891]  [<c10c1731>] ? getname_flags+0x61/0xe0
>> > > [ 1338.556898]  [<c10b781d>] do_sys_open+0xed/0x1e0
>> > > [ 1338.556903]  [<c10b7979>] sys_open+0x29/0x40
>> > > [ 1338.556913]  [<c1391390>] sysenter_do_call+0x12/0x26
>> > >
>> > > Collectd is system monitoring daemon that counts processes, memory
>> > > usage an much more, reading lots of files under /proc every 10
>> > > seconds.
>> > > Maybe it opens a process related file at a racy moment and thus
>> > > prevents the 128 slabs and kernel stacks from being released?
>> > >
>> > > Replaying the scenario I'm at:
>> > > Slab:              43112 kB
>> > > SReclaimable:      25396 kB
>> > > SUnreclaim:        17716 kB
>> > > KernelStack:       16432 kB
>> > > PageTables:         1320 kB
>> > >
>> > > with
>> > > kmalloc-256           55     64    256   16    1 : tunables    0    0    0 : slabdata      4      4      0
>> > > kmalloc-128        66656  66656    128   32    1 : tunables    0    0    0 : slabdata   2083   2083      0
>> > > kmalloc-64          3902   3904     64   64    1 : tunables    0    0    0 : slabdata     61     61      0
>> > >
>> > > (and compiling process tree now SIGSTOPped in order to have system
>> > > not starve immediately so I can look around for information)
>> > >
>> > > If I resume one of the compiling process trees both KernelStack and
>> > > slab (kmalloc-128) usage increase quite quickly (and seems to never
>> > > get down anymore) - probably at same rate as processes get born (no
>> > > matter when they end).
>> >
>> > Looks like it might be a leak in VFS. You could try kmemleak to narrow
>> > it down some more. See Documentation/kmemleak.txt for details.
>>
>> Hm, seems not to be willing to let me run kmemleak... each time I put
>> on my load scenario I get "BUG: unable to handle kernel " on console
>> as a last breath from the system. (the rest of the trace never shows up)
>>
>> Going to try harder to get at least a complete trace...
>
> After many attempts I got something from kmemleak (running on VESAfb
> instead of vgacon or nouveau KMS), netconsole disabled.
> For the crashes my screen is just too small to display the interesting
> part of it (maybe I can get it via serial console at a later attempt)
>
> What kmemcheck finds does look very repetitive:
> unreferenced object 0xdd294540 (size 328):
>  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
>  hex dump (first 32 bytes):
>    40 57 d2 dc 00 00 00 00 00 00 00 00 00 00 00 00  @W..............
>    00 00 00 00 00 00 00 00 6d 41 00 00 00 00 00 00  ........mA......
>  backtrace:
>    [<c138aae7>] kmemleak_alloc+0x27/0x50
>    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
>    [<c10f452e>] proc_alloc_inode+0x1e/0x90
>    [<c10cd0ec>] alloc_inode+0x1c/0x80
>    [<c10cd162>] new_inode+0x12/0x40
>    [<c10f54bc>] proc_pid_make_inode+0xc/0xa0
>    [<c10f6835>] proc_pident_instantiate+0x15/0xa0
>    [<c10f693d>] proc_pident_lookup+0x7d/0xb0
>    [<c10f69a7>] proc_tgid_base_lookup+0x17/0x20
>    [<c10c1f52>] d_alloc_and_lookup+0x32/0x60
>    [<c10c23b4>] do_lookup+0xa4/0x250
>    [<c10c3653>] do_last+0xe3/0x700
>    [<c10c4882>] path_openat+0x92/0x320
>    [<c10c4bf0>] do_filp_open+0x30/0x80
>    [<c10b8ded>] do_sys_open+0xed/0x1e0
>    [<c10b8f49>] sys_open+0x29/0x40
> unreferenced object 0xdd0fa180 (size 128):
>  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
>  hex dump (first 32 bytes):
>    1c c0 00 00 04 00 00 00 00 00 00 00 00 02 20 00  .............. .
>    00 5e 24 dd 65 f6 12 00 03 00 00 00 a4 a1 0f dd  .^$.e...........
>  backtrace:
>    [<c138aae7>] kmemleak_alloc+0x27/0x50
>    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
>    [<c10cb95e>] d_alloc+0x1e/0x180
>    [<c10f5027>] proc_fill_cache+0xd7/0x140
>    [<c10f7b27>] proc_task_readdir+0x237/0x300
>    [<c10c7cf4>] vfs_readdir+0x84/0xa0
>    [<c10c7d74>] sys_getdents64+0x64/0xb0
>    [<c13945d0>] sysenter_do_call+0x12/0x26
>    [<ffffffff>] 0xffffffff
> unreferenced object 0xdd294690 (size 328):
>  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
>  hex dump (first 32 bytes):
>    40 57 d2 dc 00 00 00 00 00 00 00 00 00 00 00 00  @W..............
>    00 00 00 00 00 00 00 00 6d 41 00 00 00 00 00 00  ........mA......
>  backtrace:
>    [<c138aae7>] kmemleak_alloc+0x27/0x50
>    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
>    [<c10f452e>] proc_alloc_inode+0x1e/0x90
>    [<c10cd0ec>] alloc_inode+0x1c/0x80
>    [<c10cd162>] new_inode+0x12/0x40
>    [<c10f54bc>] proc_pid_make_inode+0xc/0xa0
>    [<c10f6791>] proc_task_instantiate+0x11/0xa0
>    [<c10f506d>] proc_fill_cache+0x11d/0x140
>    [<c10f7b27>] proc_task_readdir+0x237/0x300
>    [<c10c7cf4>] vfs_readdir+0x84/0xa0
>    [<c10c7d74>] sys_getdents64+0x64/0xb0
>    [<c13945d0>] sysenter_do_call+0x12/0x26
>    [<ffffffff>] 0xffffffff
> unreferenced object 0xdd22df80 (size 128):
>  comm "collectd", pid 1541, jiffies 4294940278 (age 699.510s)
>  hex dump (first 32 bytes):
>    1c c0 00 00 04 00 00 00 00 00 00 00 00 02 20 00  .............. .
>    80 2c 13 dd 23 c5 6f d6 06 00 00 00 a4 df 22 dd  .,..#.o.......".
>  backtrace:
>    [<c138aae7>] kmemleak_alloc+0x27/0x50
>    [<c10b0b28>] kmem_cache_alloc+0x88/0x120
>    [<c10cb95e>] d_alloc+0x1e/0x180
>    [<c10c1f40>] d_alloc_and_lookup+0x20/0x60
>    [<c10c23b4>] do_lookup+0xa4/0x250
>    [<c10c3653>] do_last+0xe3/0x700
>    [<c10c4882>] path_openat+0x92/0x320
>    [<c10c4bf0>] do_filp_open+0x30/0x80
>    [<c10b8ded>] do_sys_open+0xed/0x1e0
>    [<c10b8f49>] sys_open+0x29/0x40
>    [<c13945d0>] sysenter_do_call+0x12/0x26
>    [<ffffffff>] 0xffffffff
>
> All I could fetch from the system (300k, expands to ~16MB
> for some portion of announced 6k entries):
>  http://homepage.internet.lu/BrunoP/jupiter.kmemleak.bz2

VFS and procfs are all over the traces - I'm adding some more people
to CC. Btw, did you manage to grab any kmemleak related crashes? It
would be good to get them fixed as well.

                        Pekka

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 11:47               ` Pekka Enberg
@ 2011-04-25 12:11                 ` Bruno Prémont
  2011-04-25 12:14                 ` Tetsuo Handa
  1 sibling, 0 replies; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25 12:11 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Catalin Marinas, Alexey Dobriyan, Linus Torvalds,
	Al Viro, Nick Piggin

On Mon, 25 April 2011 Pekka Enberg wrote:
> On Mon, Apr 25, 2011 at 2:41 PM, Bruno Prémont wrote:
> >> Hm, seems not to be willing to let me run kmemleak... each time I put
> >> on my load scenario I get "BUG: unable to handle kernel " on console
> >> as a last breath from the system. (the rest of the trace never shows up)
> >>
> >> Going to try harder to get at least a complete trace...
> >
> > After many attempts I got something from kmemleak (running on VESAfb
> > instead of vgacon or nouveau KMS), netconsole disabled.
> > For the crashes my screen is just too small to display the interesting
> > part of it (maybe I can get it via serial console at a later attempt)
> >

...

> Btw, did you manage to grab any kmemleak related crashes? It
> would be good to get them fixed as well.

(after plugging in serial cable and hooking it to minicom)
With serial console I got the crash (unless more are waiting behind):

[  290.477295] cc1 used greatest stack depth: 4972 bytes left
[  304.476261] cc1plus used greatest stack depth: 4916 bytes left
[  314.573703] BUG: unable to handle kernel NULL pointer dereference at 00000001
[  314.580013] IP: [<c10b0aea>] kmem_cache_alloc+0x4a/0x120
[  314.580013] *pde = 00000000 
[  314.580013] Oops: 0000 [#1] 
[  314.580013] last sysfs file: /sys/devices/platform/w83627hf.656/temp3_input
[  314.580013] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer snd pcspkr snd_page_alloc
[  314.580013] 
[  314.580013] Pid: 2119, comm: configure Tainted: G        W   2.6.39-rc4-jupiter-00187-g686c4cb #3 NVIDIA Corporation. nFORCE-MCP/MS-6373
[  314.580013] EIP: 0060:[<c10b0aea>] EFLAGS: 00210246 CPU: 0
[  314.580013] EIP is at kmem_cache_alloc+0x4a/0x120
[  314.580013] EAX: ddc25718 EBX: dd406100 ECX: c10b75f9 EDX: 00000000
[  314.580013] ESI: 00000001 EDI: 000112d0 EBP: db1ebe34 ESP: db1ebe08
[  314.580013]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[  314.580013] Process configure (pid: 2119, ti=db1ea000 task=db144d00 task.ti=db1ea000)
[  314.580013] Stack:
[  314.580013]  dc688510 c6df1690 c6df16a4 c10b75f9 db1ebe4c 00200286 00000000 001aa464
[  314.580013]  000000d0 00000001 db31a738 db1ebe68 c10b75f9 00000000 000000d0 dc688510
[  314.580013]  00000010 db1ebe5c c138aae7 000000d0 dd406280 000000d0 db31a738 000000d0
[  314.580013] Call Trace:
[  314.580013]  [<c10b75f9>] ? create_object+0x29/0x210
[  314.580013]  [<c10b75f9>] create_object+0x29/0x210
[  314.580013]  [<c138aae7>] ? kmemleak_alloc+0x27/0x50
[  314.580013]  [<c138aae7>] kmemleak_alloc+0x27/0x50
[  314.580013]  [<c10b0b28>] kmem_cache_alloc+0x88/0x120
[  314.580013]  [<c10a60a0>] ? anon_vma_fork+0x50/0xe0
[  314.580013]  [<c10a6022>] ? anon_vma_clone+0x82/0xb0
[  314.580013]  [<c10a60a0>] anon_vma_fork+0x50/0xe0
[  314.580013]  [<c102c411>] dup_mm+0x1d1/0x440
[  314.580013]  [<c102d11d>] copy_process+0x98d/0xcc0
[  314.580013]  [<c102d4a7>] do_fork+0x57/0x2e0
[  314.580013]  [<c11c4cc4>] ? copy_to_user+0x34/0x130
[  314.580013]  [<c11c4cc4>] ? copy_to_user+0x34/0x130
[  314.580013]  [<c1008b6f>] sys_clone+0x2f/0x40
[  314.580013]  [<c139469d>] ptregs_clone+0x15/0x38
[  314.580013]  [<c13945d0>] ? sysenter_do_call+0x12/0x26
[  314.580013] Code: 0f 85 8b 00 00 00 8b 03 8b 50 04 89 55 f0 8b 30 85 f6 0f 84 97 00 00 00 8b 03 8b 10 39 d6 75 e8 8b 50 04 39 55 f0 75 e0 8b 53 14 <8b> 14 16 89 10 8b 55 f0 8b 03 42 89 50 04 85 f6 89 f8 0f 95 c2 
[  314.580013] EIP: [<c10b0aea>] kmem_cache_alloc+0x4a/0x120 SS:ESP 0068:db1ebe08
[  314.580013] CR2: 0000000000000001
[  315.060947] BUG: unable to handle kernel NULL pointer dereference at 00000001
[  315.070927] IP: [<c10b0aea>] kmem_cache_alloc+0x4a/0x120
[  315.070927] *pde = 00000000 
[  315.070927] Oops: 0000 [#2] 
[  315.070927] last sysfs file: /sys/devices/platform/w83627hf.656/temp3_input
[  315.070927] Modules linked in: squashfs zlib_inflate nfs lockd nfs_acl sunrpc snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_timer snd pcspkr snd_page_alloc
[  315.070927] 
[  315.070927] Pid: 2119, comm: configure Tainted: G      D W   2.6.39-rc4-jupiter-00187-g686c4cb #3 NVIDIA Corporation. nFORCE-MCP/MS-6373
[  315.070927] EIP: 0060:[<c10b0aea>] EFLAGS: 00210046 CPU: 0
[  315.070927] EIP is at kmem_cache_alloc+0x4a/0x120
[  315.070927] EAX: ddc25718 EBX: dd406100 ECX: c10b75f9 EDX: 00000000
[  315.070927] ESI: 00000001 EDI: 00011220 EBP: db1ebad0 ESP: db1ebaa4
[  315.070927]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[  315.070927] Process configure (pid: 2119, ti=db1ea000 task=db144d00 task.ti=db1ea000)
[  315.070927] Stack:
[  315.070927]  1d424de4 00000048 0060a459 00000000 49e0f2ff 00000007 0000000e 001aa464
[  315.070927]  00000020 00000001 dc5d8630 db1ebb04 c10b75f9 00a8b6a4 00000000 69e595ce
[  315.070927]  00000090 db144d00 db4248a0 db1ebb14 c1025d9f 00000020 dc5d8630 00000020
[  315.070927] Call Trace:
[  315.070927]  [<c10b75f9>] create_object+0x29/0x210
[  315.070927]  [<c1025d9f>] ? check_preempt_wakeup+0xcf/0x160
[  315.070927]  [<c138aae7>] kmemleak_alloc+0x27/0x50
[  315.070927]  [<c10b0b28>] kmem_cache_alloc+0x88/0x120
[  315.070927]  [<c103c755>] __sigqueue_alloc+0x45/0xc0
[  315.070927]  [<c103d4cd>] T.792+0x9d/0x290
[  315.070927]  [<c103e234>] do_send_sig_info+0x44/0x60
[  315.070927]  [<c103e53a>] group_send_sig_info+0x3a/0x50
[  315.070927]  [<c103e60f>] kill_pid_info+0x2f/0x50
[  315.070927]  [<c1031843>] it_real_fn+0x33/0x80
[  315.070927]  [<c1031810>] ? alarm_setitimer+0x60/0x60
[  315.070927]  [<c104b1c4>] __run_hrtimer+0x64/0x1a0
[  315.070927]  [<c10503c5>] ? ktime_get+0x55/0xf0
[  315.070927]  [<c104b555>] hrtimer_interrupt+0x115/0x250
[  315.070927]  [<c104d415>] ? sched_clock_cpu+0x95/0x110
[  315.070927]  [<c10187a1>] smp_apic_timer_interrupt+0x41/0x80
[  315.070927]  [<c139417e>] apic_timer_interrupt+0x2a/0x30
[  315.070927]  [<c100519a>] ? oops_end+0x4a/0xb0
[  315.070927]  [<c101eb6e>] no_context+0xbe/0x150
[  315.070927]  [<c101ec8f>] __bad_area_nosemaphore+0x8f/0x130
[  315.070927]  [<c108b81d>] ? __alloc_pages_nodemask+0xdd/0x730
[  315.070927]  [<c105b222>] ? search_module_extables+0x62/0x80
[  315.070927]  [<c101ed42>] bad_area_nosemaphore+0x12/0x20
[  315.070927]  [<c101f2d1>] do_page_fault+0x2f1/0x3d0
[  315.070927]  [<c105a57b>] ? __module_text_address+0xb/0x50
[  315.070927]  [<c105a5c8>] ? is_module_text_address+0x8/0x10
[  315.070927]  [<c1045207>] ? __kernel_text_address+0x47/0x70
[  315.070927]  [<c1005441>] ? print_context_stack+0x41/0xb0
[  315.070927]  [<c101efe0>] ? vmalloc_sync_all+0x100/0x100
[  315.070927]  [<c139436c>] error_code+0x58/0x60
[  315.070927]  [<c10b75f9>] ? create_object+0x29/0x210
[  315.070927]  [<c101efe0>] ? vmalloc_sync_all+0x100/0x100
[  315.070927]  [<c10b0aea>] ? kmem_cache_alloc+0x4a/0x120
[  315.070927]  [<c10b75f9>] ? create_object+0x29/0x210
[  315.070927]  [<c10b75f9>] create_object+0x29/0x210
[  315.070927]  [<c138aae7>] ? kmemleak_alloc+0x27/0x50
[  315.070927]  [<c138aae7>] kmemleak_alloc+0x27/0x50
[  315.070927]  [<c10b0b28>] kmem_cache_alloc+0x88/0x120
[  315.070927]  [<c10a60a0>] ? anon_vma_fork+0x50/0xe0
[  315.070927]  [<c10a6022>] ? anon_vma_clone+0x82/0xb0
[  315.070927]  [<c10a60a0>] anon_vma_fork+0x50/0xe0
[  315.070927]  [<c102c411>] dup_mm+0x1d1/0x440
[  315.070927]  [<c102d11d>] copy_process+0x98d/0xcc0
[  315.070927]  [<c102d4a7>] do_fork+0x57/0x2e0
[  315.070927]  [<c11c4cc4>] ? copy_to_user+0x34/0x130
[  315.070927]  [<c11c4cc4>] ? copy_to_user+0x34/0x130
[  315.070927]  [<c1008b6f>] sys_clone+0x2f/0x40
[  315.070927]  [<c139469d>] ptregs_clone+0x15/0x38
[  315.070927]  [<c13945d0>] ? sysenter_do_call+0x12/0x26
[  315.070927] Code: 0f 85 8b 00 00 00 8b 03 8b 50 04 89 55 f0 8b 30 85 f6 0f 84 97 00 00 00 8b 03 8b 10 39 d6 75 e8 8b 50 04 39 55 f0 75 e0 8b 53 14 <8b> 14 16 89 10 8b 55 f0 8b 03 42 89 50 04 85 f6 89 f8 0f 95 c2 
[  315.070927] EIP: [<c10b0aea>] kmem_cache_alloc+0x4a/0x120 SS:ESP 0068:db1ebaa4
[  315.070927] CR2: 0000000000000001
[  315.070927] ---[ end trace 009f60096033f2b2 ]---
[  315.070927] Kernel panic - not syncing: Fatal exception in interrupt
[  315.070927] Pid: 2119, comm: configure Tainted: G      D W   2.6.39-rc4-jupiter-00187-g686c4cb #3
[  315.070927] Call Trace:
[  315.070927]  [<c139244c>] panic+0x57/0x14c
[  315.070927]  [<c10051fb>] oops_end+0xab/0xb0
[  315.070927]  [<c101eb6e>] no_context+0xbe/0x150
[  315.070927]  [<c101ec8f>] __bad_area_nosemaphore+0x8f/0x130
[  315.070927]  [<c101ed42>] bad_area_nosemaphore+0x12/0x20
[  315.070927]  [<c101f234>] do_page_fault+0x254/0x3d0
[  315.070927]  [<c11e7a52>] ? bit_putcs+0x2a2/0x430
[  315.070927]  [<c101efe0>] ? vmalloc_sync_all+0x100/0x100
[  315.070927]  [<c139436c>] error_code+0x58/0x60
[  315.070927]  [<c10b75f9>] ? create_object+0x29/0x210
[  315.070927]  [<c101efe0>] ? vmalloc_sync_all+0x100/0x100
[  315.070927]  [<c10b0aea>] ? kmem_cache_alloc+0x4a/0x120
[  315.070927]  [<c10b75f9>] create_object+0x29/0x210
[  315.070927]  [<c1025d9f>] ? check_preempt_wakeup+0xcf/0x160
[  315.070927]  [<c138aae7>] kmemleak_alloc+0x27/0x50
[  315.070927]  [<c10b0b28>] kmem_cache_alloc+0x88/0x120
[  315.070927]  [<c103c755>] __sigqueue_alloc+0x45/0xc0
[  315.070927]  [<c103d4cd>] T.792+0x9d/0x290
[  315.070927]  [<c103e234>] do_send_sig_info+0x44/0x60
[  315.070927]  [<c103e53a>] group_send_sig_info+0x3a/0x50
[  315.070927]  [<c103e60f>] kill_pid_info+0x2f/0x50
[  315.070927]  [<c1031843>] it_real_fn+0x33/0x80
[  315.070927]  [<c1031810>] ? alarm_setitimer+0x60/0x60
[  315.070927]  [<c104b1c4>] __run_hrtimer+0x64/0x1a0
[  315.070927]  [<c10503c5>] ? ktime_get+0x55/0xf0
[  315.070927]  [<c104b555>] hrtimer_interrupt+0x115/0x250
[  315.070927]  [<c104d415>] ? sched_clock_cpu+0x95/0x110
[  315.070927]  [<c10187a1>] smp_apic_timer_interrupt+0x41/0x80
[  315.070927]  [<c139417e>] apic_timer_interrupt+0x2a/0x30
[  315.070927]  [<c100519a>] ? oops_end+0x4a/0xb0
[  315.070927]  [<c101eb6e>] no_context+0xbe/0x150
[  315.070927]  [<c101ec8f>] __bad_area_nosemaphore+0x8f/0x130
[  315.070927]  [<c108b81d>] ? __alloc_pages_nodemask+0xdd/0x730
[  315.070927]  [<c105b222>] ? search_module_extables+0x62/0x80
[  315.070927]  [<c101ed42>] bad_area_nosemaphore+0x12/0x20
[  315.070927]  [<c101f2d1>] do_page_fault+0x2f1/0x3d0
[  315.070927]  [<c105a57b>] ? __module_text_address+0xb/0x50
[  315.070927]  [<c105a5c8>] ? is_module_text_address+0x8/0x10
[  315.070927]  [<c1045207>] ? __kernel_text_address+0x47/0x70
[  315.070927]  [<c1005441>] ? print_context_stack+0x41/0xb0
[  315.070927]  [<c101efe0>] ? vmalloc_sync_all+0x100/0x100
[  315.070927]  [<c139436c>] error_code+0x58/0x60
[  315.070927]  [<c10b75f9>] ? create_object+0x29/0x210
[  315.070927]  [<c101efe0>] ? vmalloc_sync_all+0x100/0x100
[  315.070927]  [<c10b0aea>] ? kmem_cache_alloc+0x4a/0x120
[  315.070927]  [<c10b75f9>] ? create_object+0x29/0x210
[  315.070927]  [<c10b75f9>] create_object+0x29/0x210
[  315.070927]  [<c138aae7>] ? kmemleak_alloc+0x27/0x50
[  315.070927]  [<c138aae7>] kmemleak_alloc+0x27/0x50
[  315.070927]  [<c10b0b28>] kmem_cache_alloc+0x88/0x120
[  315.070927]  [<c10a60a0>] ? anon_vma_fork+0x50/0xe0
[  315.070927]  [<c10a6022>] ? anon_vma_clone+0x82/0xb0
[  315.070927]  [<c10a60a0>] anon_vma_fork+0x50/0xe0
[  315.070927]  [<c102c411>] dup_mm+0x1d1/0x440
[  315.070927]  [<c102d11d>] copy_process+0x98d/0xcc0
[  315.070927]  [<c102d4a7>] do_fork+0x57/0x2e0
[  315.070927]  [<c11c4cc4>] ? copy_to_user+0x34/0x130
[  315.070927]  [<c11c4cc4>] ? copy_to_user+0x34/0x130
[  315.070927]  [<c1008b6f>] sys_clone+0x2f/0x40
[  315.070927]  [<c139469d>] ptregs_clone+0x15/0x38
[  315.070927]  [<c13945d0>] ? sysenter_do_call+0x12/0x26

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 11:47               ` Pekka Enberg
  2011-04-25 12:11                 ` Bruno Prémont
@ 2011-04-25 12:14                 ` Tetsuo Handa
  2011-04-25 12:21                   ` Tetsuo Handa
  1 sibling, 1 reply; 88+ messages in thread
From: Tetsuo Handa @ 2011-04-25 12:14 UTC (permalink / raw)
  To: penberg, bonbons
  Cc: vapier.adi, kosaki.motohiro, linux-kernel, linux-mm,
	linux-fsdevel, catalin.marinas, adobriyan, torvalds, viro,
	nickpiggin

I don't know whether below is related with this bug. But...

static struct dentry *proc_pident_instantiate(struct inode *dir,
        struct dentry *dentry, struct task_struct *task, const void *ptr)
{
        const struct pid_entry *p = ptr;
        struct inode *inode;
        struct proc_inode *ei;
        struct dentry *error = ERR_PTR(-ENOENT);

        inode = proc_pid_make_inode(dir->i_sb, task);
        if (!inode)
                goto out;

        ei = PROC_I(inode);
        inode->i_mode = p->mode;
        if (S_ISDIR(inode->i_mode))
                inode->i_nlink = 2;     /* Use getattr to fix if necessary */
        if (p->iop)
                inode->i_op = p->iop;
        if (p->fop)
                inode->i_fop = p->fop;
        ei->op = p->op;
        d_set_d_op(dentry, &pid_dentry_operations);
        d_add(dentry, inode);
        /* Close the race of the process dying before we return the dentry */
        if (pid_revalidate(dentry, NULL))
                error = NULL;
out:
        return error;
}

proc_pid_make_inode() gets a ref on task, but return value of pid_revalidate()
(one of 0, 1, -ECHILD) may not be what above 'if (pid_revalidate(dentry, NULL))'
part expects. (-ECHILD is a new return value introduced by LOOKUP_RCU.)

static int pid_revalidate(struct dentry *dentry, struct nameidata *nd)
{
        struct inode *inode;
        struct task_struct *task;
        const struct cred *cred;

        if (nd && nd->flags & LOOKUP_RCU)
                return -ECHILD;

        inode = dentry->d_inode;
        task = get_proc_task(inode);

        if (task) {
                if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
                    task_dumpable(task)) {
                        rcu_read_lock();
                        cred = __task_cred(task);
                        inode->i_uid = cred->euid;
                        inode->i_gid = cred->egid;
                        rcu_read_unlock();
                } else {
                        inode->i_uid = 0;
                        inode->i_gid = 0;
                }
                inode->i_mode &= ~(S_ISUID | S_ISGID);
                security_task_to_inode(task, inode);
                put_task_struct(task);
                return 1;
        }
        d_drop(dentry);
        return 0;
}

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 12:14                 ` Tetsuo Handa
@ 2011-04-25 12:21                   ` Tetsuo Handa
  0 siblings, 0 replies; 88+ messages in thread
From: Tetsuo Handa @ 2011-04-25 12:21 UTC (permalink / raw)
  To: penberg, bonbons
  Cc: vapier.adi, kosaki.motohiro, linux-kernel, linux-mm,
	linux-fsdevel, catalin.marinas, adobriyan, torvalds, viro

Tetsuo Handa wrote:
> proc_pid_make_inode() gets a ref on task, but return value of pid_revalidate()
> (one of 0, 1, -ECHILD) may not be what above 'if (pid_revalidate(dentry, NULL))'
> part expects. (-ECHILD is a new return value introduced by LOOKUP_RCU.)
Sorry, nd == NULL so never returns -ECHILD.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25  9:17       ` Bruno Prémont
  2011-04-25  9:25         ` Pekka Enberg
@ 2011-04-25 15:22         ` Linus Torvalds
  2011-04-25 16:04           ` Bruno Prémont
  2011-04-25 17:51           ` Pekka Enberg
  1 sibling, 2 replies; 88+ messages in thread
From: Linus Torvalds @ 2011-04-25 15:22 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 2:17 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
>
> Here it seems to happened when I run 2 intensive tasks in parallel, e.g.
> (re)emerging gimp and running revdep-rebuild -pi in another terminal.
> This produces a fork rate of about 100-300 per second.
>
> Suddenly kmalloc-128 slabs stop being freed and things degrade.

So everything seems to imply some kind of filesystem/vfs thing, but
let's try to gather a bit more information about exactly what it is.

Some of it also points to RCU freeing, but that "kmalloc-128" doesn't
really match my expectations. According to your slabinfo, it's not the
dentries.

One thing I'd ask you to do is to boot with the "slub_nomerge" kernel
command  line switch. The SLUB "merge slab caches" thing may save some
memory, but it has been a disaster from every other standpoint - every
time there's a memory leak, it ends up making it very confusing to try
to figure things out.

For example, your traces seem to imply that the kmalloc-128 allocation
is actually the "filp" cache, but it has gotten merged with the
kmalloc-128 cache, so slabinfo doesn't actually show the right user.

(Pekka? This is a real _problem_. The whole "confused debugging" is
wasting a lot of peoples time. Can we please try to get slabinfo
statistics work right for the merged state. Or perhaps decide to just
not merge at all?)

As to why it has started to happen now: with the whole RCU lookup
thing, many more filesystem objects are RCU-free'd (dentries have been
for a long time, but now we have inodes and filp's too), and that may
end up delaying allocations sufficiently that you end up seeing
something that used to be borderline become a major problem.

Also, what's your kernel config, in particular wrt RCU? The RCU
freeing _should_ be self-limiting (if I recall correctly) and not let
infinite amounts of RCU work (ie pending freeing) accumulate, but
maybe something is broken. Do you have a UP kernel with TINY_RCU, for
example? Or maybe I'm just confused, and there's never any RCU
throttling at all. Paul?

                               Linus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 15:22         ` Linus Torvalds
@ 2011-04-25 16:04           ` Bruno Prémont
  2011-04-25 16:31             ` Linus Torvalds
  2011-04-25 17:51           ` Pekka Enberg
  1 sibling, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25 16:04 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 2970 bytes --]

On Mon, 25 April 2011 Linus Torvalds wrote:
> On Mon, Apr 25, 2011 at 2:17 AM, Bruno Prémont wrote:
> >
> > Here it seems to happened when I run 2 intensive tasks in parallel, e.g.
> > (re)emerging gimp and running revdep-rebuild -pi in another terminal.
> > This produces a fork rate of about 100-300 per second.
> >
> > Suddenly kmalloc-128 slabs stop being freed and things degrade.
> 
> So everything seems to imply some kind of filesystem/vfs thing, but
> let's try to gather a bit more information about exactly what it is.
> 
> Some of it also points to RCU freeing, but that "kmalloc-128" doesn't
> really match my expectations. According to your slabinfo, it's not the
> dentries.
>
> One thing I'd ask you to do is to boot with the "slub_nomerge" kernel
> command  line switch. The SLUB "merge slab caches" thing may save some
> memory, but it has been a disaster from every other standpoint - every
> time there's a memory leak, it ends up making it very confusing to try
> to figure things out.
> 
> For example, your traces seem to imply that the kmalloc-128 allocation
> is actually the "filp" cache, but it has gotten merged with the
> kmalloc-128 cache, so slabinfo doesn't actually show the right user.

Redone with slub_nomerge cmdline switch.
Attached (for easy diffing):

slabinfo-2, meminfo-2: when memory use starts manifesting itself
                       (work triggering it being SIGSTOPped)

slabinfo-4, meminfo-4: info gathered again after sync && echo 2 > /proc/sys/vm/drop_caches

kmemleak reports 86681 new leaks between shortly after boot and -2 state.
(and 2348 additional ones between -2 and -4).

> (Pekka? This is a real _problem_. The whole "confused debugging" is
> wasting a lot of peoples time. Can we please try to get slabinfo
> statistics work right for the merged state. Or perhaps decide to just
> not merge at all?)
> 
> As to why it has started to happen now: with the whole RCU lookup
> thing, many more filesystem objects are RCU-free'd (dentries have been
> for a long time, but now we have inodes and filp's too), and that may
> end up delaying allocations sufficiently that you end up seeing
> something that used to be borderline become a major problem.
> 
> Also, what's your kernel config, in particular wrt RCU? The RCU
> freeing _should_ be self-limiting (if I recall correctly) and not let
> infinite amounts of RCU work (ie pending freeing) accumulate, but
> maybe something is broken. Do you have a UP kernel with TINY_RCU, for
> example?

Config was in first message of thread (but unfortunately not properly
labeled), attaching again (to include change for debugging features)

Yes, it's uni-processor system, so SMP=n.
TINY_RCU=y, PREEMPT_VOLUNTARY=y (whole /proc/config.gz attached keeping
compression)

Bruno


> Or maybe I'm just confused, and there's never any RCU throttling at
> all. Paul?
> 
>                                Linus

[-- Attachment #2: config.gz --]
[-- Type: application/x-gzip, Size: 15694 bytes --]

[-- Attachment #3: meminfo-2 --]
[-- Type: text/plain, Size: 1008 bytes --]

MemTotal:         480644 kB
MemFree:            8236 kB
Buffers:           31740 kB
Cached:           139864 kB
SwapCached:            0 kB
Active:           109392 kB
Inactive:         130728 kB
Active(anon):      30960 kB
Inactive(anon):    37364 kB
Active(file):      78432 kB
Inactive(file):    93364 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:        524284 kB
SwapFree:         524284 kB
Dirty:                56 kB
Writeback:             0 kB
AnonPages:         68132 kB
Mapped:             8260 kB
Shmem:               240 kB
Slab:             205832 kB
SReclaimable:      15448 kB
SUnreclaim:       190384 kB
KernelStack:       20792 kB
PageTables:          800 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      764604 kB
Committed_AS:     122864 kB
VmallocTotal:     548548 kB
VmallocUsed:        8368 kB
VmallocChunk:     534836 kB
AnonHugePages:         0 kB
DirectMap4k:       16320 kB
DirectMap4M:      475136 kB

[-- Attachment #4: meminfo-4 --]
[-- Type: text/plain, Size: 1008 bytes --]

MemTotal:         480644 kB
MemFree:           89376 kB
Buffers:           31964 kB
Cached:            12816 kB
SwapCached:            0 kB
Active:            66512 kB
Inactive:          46780 kB
Active(anon):      30964 kB
Inactive(anon):    37356 kB
Active(file):      35548 kB
Inactive(file):     9424 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:        524284 kB
SwapFree:         524284 kB
Dirty:                56 kB
Writeback:             0 kB
AnonPages:         68128 kB
Mapped:             8268 kB
Shmem:               240 kB
Slab:             251592 kB
SReclaimable:      15824 kB
SUnreclaim:       235768 kB
KernelStack:       20960 kB
PageTables:          804 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      764604 kB
Committed_AS:     122864 kB
VmallocTotal:     548548 kB
VmallocUsed:        8368 kB
VmallocChunk:     534836 kB
AnonHugePages:         0 kB
DirectMap4k:       16320 kB
DirectMap4M:      475136 kB

[-- Attachment #5: slabinfo-2 --]
[-- Type: text/plain, Size: 16070 bytes --]

slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
squashfs_inode_cache   1900   1900    384   10    1 : tunables    0    0    0 : slabdata    190    190      0
nfs_direct_cache       0      0     72   56    1 : tunables    0    0    0 : slabdata      0      0      0
nfs_write_data        36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
nfs_read_data         36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
nfs_inode_cache       70     70    568   14    2 : tunables    0    0    0 : slabdata      5      5      0
nfs_page              64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_buffers           16     16   2048    8    4 : tunables    0    0    0 : slabdata      2      2      0
rpc_tasks             32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_inode_cache       36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
fib6_nodes           128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
ip6_dst_cache         29     42    192   21    1 : tunables    0    0    0 : slabdata      2      2      0
ndisc_cache           21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAWv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
UDPLITEv6              0      0    672   12    2 : tunables    0    0    0 : slabdata      0      0      0
UDPv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
tw_sock_TCPv6          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
request_sock_TCPv6     32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
TCPv6                 12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
aoe_bufs               0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
scsi_sense_cache      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_cmd_cache        25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
sd_ext_cdb           128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
cfq_io_context       128    128     64   64    1 : tunables    0    0    0 : slabdata      2      2      0
cfq_queue             47     52    152   26    1 : tunables    0    0    0 : slabdata      2      2      0
mqueue_inode_cache      8      8    480    8    1 : tunables    0    0    0 : slabdata      1      1      0
xfs_buf                0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
fstrm_item             0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_mru_cache_elem      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ili                0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_inode              0      0    608   13    2 : tunables    0    0    0 : slabdata      0      0      0
xfs_efi_item           0      0    288   14    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_efd_item           0      0    288   14    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_buf_item           0      0    176   23    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_item_desc      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_trans              0      0    224   18    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ifork              0      0     56   73    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_dabuf              0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_da_state           0      0    336   12    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_btree_cur          0      0    152   26    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_bmap_free_item      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_ticket         0      0    176   23    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ioend             64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
reiser_inode_cache  14180  14180    392   10    1 : tunables    0    0    0 : slabdata   1418   1418      0
configfs_dir_cache     73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
kioctx                 0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
kiocb                  0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
inotify_event_private_data    256    256     16  256    1 : tunables    0    0    0 : slabdata      1      1      0
inotify_inode_mark     56     56     72   56    1 : tunables    0    0    0 : slabdata      1      1      0
fasync_cache           0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
khugepaged_mm_slot      0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
nsproxy                0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
posix_timers_cache      0      0    120   34    1 : tunables    0    0    0 : slabdata      0      0      0
uid_cache             64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
UNIX                  35     38    416   19    2 : tunables    0    0    0 : slabdata      2      2      0
UDP-Lite               0      0    512    8    1 : tunables    0    0    0 : slabdata      0      0      0
tcp_bind_bucket      128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
inet_peer_cache       25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_trie          128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_alias         170    170     24  170    1 : tunables    0    0    0 : slabdata      1      1      0
ip_dst_cache          25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
arp_cache             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAW                    8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
UDP                   15     16    512    8    1 : tunables    0    0    0 : slabdata      2      2      0
tw_sock_TCP           32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
request_sock_TCP      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
TCP                   13     13   1184   13    4 : tunables    0    0    0 : slabdata      1      1      0
eventpoll_pwq          0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
eventpoll_epi          0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
sgpool-128            12     12   2560   12    8 : tunables    0    0    0 : slabdata      1      1      0
sgpool-64             12     12   1280   12    4 : tunables    0    0    0 : slabdata      1      1      0
sgpool-32             12     12    640   12    2 : tunables    0    0    0 : slabdata      1      1      0
sgpool-16             12     12    320   12    1 : tunables    0    0    0 : slabdata      1      1      0
sgpool-8              25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_data_buffer       0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
blkdev_queue          17     17    920   17    4 : tunables    0    0    0 : slabdata      1      1      0
blkdev_requests       19     19    208   19    1 : tunables    0    0    0 : slabdata      1      1      0
blkdev_ioc           102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
fsnotify_event_holder      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
fsnotify_event        64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
bio-0                 34     64    128   32    1 : tunables    0    0    0 : slabdata      2      2      0
biovec-256            10     10   3072   10    8 : tunables    0    0    0 : slabdata      1      1      0
biovec-128             0      0   1536   10    4 : tunables    0    0    0 : slabdata      0      0      0
biovec-64             10     10    768   10    2 : tunables    0    0    0 : slabdata      1      1      0
biovec-16             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
sock_inode_cache      70     77    352   11    1 : tunables    0    0    0 : slabdata      7      7      0
skbuff_fclone_cache     11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
skbuff_head_cache    517    525    192   21    1 : tunables    0    0    0 : slabdata     25     25      0
file_lock_cache       39     39    104   39    1 : tunables    0    0    0 : slabdata      1      1      0
shmem_inode_cache    897    910    400   10    1 : tunables    0    0    0 : slabdata     91     91      0
Acpi-Operand         932    935     48   85    1 : tunables    0    0    0 : slabdata     11     11      0
Acpi-ParseExt         85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Parse           128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-State            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Namespace       680    680     24  170    1 : tunables    0    0    0 : slabdata      4      4      0
proc_inode_cache    1908   1908    336   12    1 : tunables    0    0    0 : slabdata    159    159      0
sigqueue              28     28    144   28    1 : tunables    0    0    0 : slabdata      1      1      0
bdev_cache            13     18    448    9    1 : tunables    0    0    0 : slabdata      2      2      0
sysfs_dir_cache    13770  13770     48   85    1 : tunables    0    0    0 : slabdata    162    162      0
mnt_cache             50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
filp               49408  49408    128   32    1 : tunables    0    0    0 : slabdata   1544   1544      0
inode_cache         3936   3939    312   13    1 : tunables    0    0    0 : slabdata    303    303      0
dentry             28892  28896    128   32    1 : tunables    0    0    0 : slabdata    903    903      0
names_cache            8      8   4096    8    8 : tunables    0    0    0 : slabdata      1      1      0
buffer_head        31609  35551     56   73    1 : tunables    0    0    0 : slabdata    487    487      0
vm_area_struct      1584   1656     88   46    1 : tunables    0    0    0 : slabdata     36     36      0
mm_struct             54     57    416   19    2 : tunables    0    0    0 : slabdata      3      3      0
fs_cache             128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
files_cache         1323   1323    192   21    1 : tunables    0    0    0 : slabdata     63     63      0
signal_cache        2592   2592    512    8    1 : tunables    0    0    0 : slabdata    324    324      0
sighand_cache         77     84   1312   12    4 : tunables    0    0    0 : slabdata      7      7      0
task_xstate          240    240    512    8    1 : tunables    0    0    0 : slabdata     30     30      0
task_struct         2603   2603    832   19    4 : tunables    0    0    0 : slabdata    137    137      0
cred_jar           11718  11718     96   42    1 : tunables    0    0    0 : slabdata    279    279      0
anon_vma_chain      1667   1870     24  170    1 : tunables    0    0    0 : slabdata     11     11      0
anon_vma            1051   1190     24  170    1 : tunables    0    0    0 : slabdata      7      7      0
pid                 2624   2624     64   64    1 : tunables    0    0    0 : slabdata     41     41      0
kmemleak_scan_area    256    256     16  256    1 : tunables    0    0    0 : slabdata      1      1      0
kmemleak_object   1030632 1030632    168   24    1 : tunables    0    0    0 : slabdata  42943  42943      0
radix_tree_node     4888   4888    304   13    1 : tunables    0    0    0 : slabdata    376    376      0
idr_layer_cache      258    260    152   26    1 : tunables    0    0    0 : slabdata     10     10      0
dma-kmalloc-8192       0      0   8192    4    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-4096       0      0   4096    8    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-2048       0      0   2048    8    4 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-1024       0      0   1024    8    2 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-512        0      0    512    8    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-256        0      0    256   16    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-128        0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-64         0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-32         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-16         0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-8          0      0      8  512    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-192        0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-96         0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-8192          12     12   8192    4    8 : tunables    0    0    0 : slabdata      3      3      0
kmalloc-4096         272    272   4096    8    8 : tunables    0    0    0 : slabdata     34     34      0
kmalloc-2048         546    552   2048    8    4 : tunables    0    0    0 : slabdata     69     69      0
kmalloc-1024        1456   1456   1024    8    2 : tunables    0    0    0 : slabdata    182    182      0
kmalloc-512          415    416    512    8    1 : tunables    0    0    0 : slabdata     52     52      0
kmalloc-256           46     48    256   16    1 : tunables    0    0    0 : slabdata      3      3      0
kmalloc-128          320    320    128   32    1 : tunables    0    0    0 : slabdata     10     10      0
kmalloc-64          2304   2304     64   64    1 : tunables    0    0    0 : slabdata     36     36      0
kmalloc-32          3072   3072     32  128    1 : tunables    0    0    0 : slabdata     24     24      0
kmalloc-16          2467   7168     16  256    1 : tunables    0    0    0 : slabdata     28     28      0
kmalloc-8           3580   3584      8  512    1 : tunables    0    0    0 : slabdata      7      7      0
kmalloc-192          147    147    192   21    1 : tunables    0    0    0 : slabdata      7      7      0
kmalloc-96          1008   1008     96   42    1 : tunables    0    0    0 : slabdata     24     24      0
kmem_cache            32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
kmem_cache_node      256    256     32  128    1 : tunables    0    0    0 : slabdata      2      2      0

[-- Attachment #6: slabinfo-4 --]
[-- Type: text/plain, Size: 16070 bytes --]

slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
squashfs_inode_cache   1900   1900    384   10    1 : tunables    0    0    0 : slabdata    190    190      0
nfs_direct_cache       0      0     72   56    1 : tunables    0    0    0 : slabdata      0      0      0
nfs_write_data        36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
nfs_read_data         36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
nfs_inode_cache       70     70    568   14    2 : tunables    0    0    0 : slabdata      5      5      0
nfs_page              64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_buffers           16     16   2048    8    4 : tunables    0    0    0 : slabdata      2      2      0
rpc_tasks             32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_inode_cache       36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
fib6_nodes           128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
ip6_dst_cache         29     42    192   21    1 : tunables    0    0    0 : slabdata      2      2      0
ndisc_cache           21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAWv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
UDPLITEv6              0      0    672   12    2 : tunables    0    0    0 : slabdata      0      0      0
UDPv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
tw_sock_TCPv6          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
request_sock_TCPv6     32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
TCPv6                 12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
aoe_bufs               0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
scsi_sense_cache      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_cmd_cache        25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
sd_ext_cdb           128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
cfq_io_context       128    128     64   64    1 : tunables    0    0    0 : slabdata      2      2      0
cfq_queue             46     52    152   26    1 : tunables    0    0    0 : slabdata      2      2      0
mqueue_inode_cache      8      8    480    8    1 : tunables    0    0    0 : slabdata      1      1      0
xfs_buf                0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
fstrm_item             0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_mru_cache_elem      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ili                0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_inode              0      0    608   13    2 : tunables    0    0    0 : slabdata      0      0      0
xfs_efi_item           0      0    288   14    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_efd_item           0      0    288   14    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_buf_item           0      0    176   23    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_item_desc      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_trans              0      0    224   18    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ifork              0      0     56   73    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_dabuf              0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_da_state           0      0    336   12    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_btree_cur          0      0    152   26    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_bmap_free_item      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_ticket         0      0    176   23    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ioend             64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
reiser_inode_cache  14220  14220    392   10    1 : tunables    0    0    0 : slabdata   1422   1422      0
configfs_dir_cache     73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
kioctx                 0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
kiocb                  0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
inotify_event_private_data    256    256     16  256    1 : tunables    0    0    0 : slabdata      1      1      0
inotify_inode_mark     56     56     72   56    1 : tunables    0    0    0 : slabdata      1      1      0
fasync_cache           0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
khugepaged_mm_slot      0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
nsproxy                0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
posix_timers_cache      0      0    120   34    1 : tunables    0    0    0 : slabdata      0      0      0
uid_cache             64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
UNIX                  35     38    416   19    2 : tunables    0    0    0 : slabdata      2      2      0
UDP-Lite               0      0    512    8    1 : tunables    0    0    0 : slabdata      0      0      0
tcp_bind_bucket      128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
inet_peer_cache       25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_trie          128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_alias         170    170     24  170    1 : tunables    0    0    0 : slabdata      1      1      0
ip_dst_cache          25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
arp_cache             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAW                    8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
UDP                   15     16    512    8    1 : tunables    0    0    0 : slabdata      2      2      0
tw_sock_TCP           32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
request_sock_TCP      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
TCP                   13     13   1184   13    4 : tunables    0    0    0 : slabdata      1      1      0
eventpoll_pwq          0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
eventpoll_epi          0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
sgpool-128            12     12   2560   12    8 : tunables    0    0    0 : slabdata      1      1      0
sgpool-64             12     12   1280   12    4 : tunables    0    0    0 : slabdata      1      1      0
sgpool-32             12     12    640   12    2 : tunables    0    0    0 : slabdata      1      1      0
sgpool-16             12     12    320   12    1 : tunables    0    0    0 : slabdata      1      1      0
sgpool-8              25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_data_buffer       0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
blkdev_queue          17     17    920   17    4 : tunables    0    0    0 : slabdata      1      1      0
blkdev_requests       19     19    208   19    1 : tunables    0    0    0 : slabdata      1      1      0
blkdev_ioc           102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
fsnotify_event_holder      0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
fsnotify_event        64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
bio-0                 34     64    128   32    1 : tunables    0    0    0 : slabdata      2      2      0
biovec-256            10     10   3072   10    8 : tunables    0    0    0 : slabdata      1      1      0
biovec-128             0      0   1536   10    4 : tunables    0    0    0 : slabdata      0      0      0
biovec-64             10     10    768   10    2 : tunables    0    0    0 : slabdata      1      1      0
biovec-16             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
sock_inode_cache      70     77    352   11    1 : tunables    0    0    0 : slabdata      7      7      0
skbuff_fclone_cache     11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
skbuff_head_cache    518    546    192   21    1 : tunables    0    0    0 : slabdata     26     26      0
file_lock_cache       39     39    104   39    1 : tunables    0    0    0 : slabdata      1      1      0
shmem_inode_cache    909    910    400   10    1 : tunables    0    0    0 : slabdata     91     91      0
Acpi-Operand         932    935     48   85    1 : tunables    0    0    0 : slabdata     11     11      0
Acpi-ParseExt         85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Parse           128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-State            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Namespace       680    680     24  170    1 : tunables    0    0    0 : slabdata      4      4      0
proc_inode_cache    3480   3480    336   12    1 : tunables    0    0    0 : slabdata    290    290      0
sigqueue              28     28    144   28    1 : tunables    0    0    0 : slabdata      1      1      0
bdev_cache            13     18    448    9    1 : tunables    0    0    0 : slabdata      2      2      0
sysfs_dir_cache    13770  13770     48   85    1 : tunables    0    0    0 : slabdata    162    162      0
mnt_cache             50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
filp               67744  67744    128   32    1 : tunables    0    0    0 : slabdata   2117   2117      0
inode_cache         3990   3991    312   13    1 : tunables    0    0    0 : slabdata    307    307      0
dentry             30620  30624    128   32    1 : tunables    0    0    0 : slabdata    957    957      0
names_cache            8      8   4096    8    8 : tunables    0    0    0 : slabdata      1      1      0
buffer_head        11030  28324     56   73    1 : tunables    0    0    0 : slabdata    388    388      0
vm_area_struct      1599   1656     88   46    1 : tunables    0    0    0 : slabdata     36     36      0
mm_struct             54     57    416   19    2 : tunables    0    0    0 : slabdata      3      3      0
fs_cache             128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
files_cache         1323   1323    192   21    1 : tunables    0    0    0 : slabdata     63     63      0
signal_cache        2616   2616    512    8    1 : tunables    0    0    0 : slabdata    327    327      0
sighand_cache         76     84   1312   12    4 : tunables    0    0    0 : slabdata      7      7      0
task_xstate          248    248    512    8    1 : tunables    0    0    0 : slabdata     31     31      0
task_struct         2622   2622    832   19    4 : tunables    0    0    0 : slabdata    138    138      0
cred_jar           11886  11886     96   42    1 : tunables    0    0    0 : slabdata    283    283      0
anon_vma_chain      1667   1870     24  170    1 : tunables    0    0    0 : slabdata     11     11      0
anon_vma            1051   1190     24  170    1 : tunables    0    0    0 : slabdata      7      7      0
pid                 2624   2624     64   64    1 : tunables    0    0    0 : slabdata     41     41      0
kmemleak_scan_area    256    256     16  256    1 : tunables    0    0    0 : slabdata      1      1      0
kmemleak_object   1290696 1290696    168   24    1 : tunables    0    0    0 : slabdata  53779  53779      0
radix_tree_node     4888   4888    304   13    1 : tunables    0    0    0 : slabdata    376    376      0
idr_layer_cache      257    260    152   26    1 : tunables    0    0    0 : slabdata     10     10      0
dma-kmalloc-8192       0      0   8192    4    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-4096       0      0   4096    8    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-2048       0      0   2048    8    4 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-1024       0      0   1024    8    2 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-512        0      0    512    8    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-256        0      0    256   16    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-128        0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-64         0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-32         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-16         0      0     16  256    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-8          0      0      8  512    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-192        0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-96         0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-8192          12     12   8192    4    8 : tunables    0    0    0 : slabdata      3      3      0
kmalloc-4096         277    280   4096    8    8 : tunables    0    0    0 : slabdata     35     35      0
kmalloc-2048         544    592   2048    8    4 : tunables    0    0    0 : slabdata     74     74      0
kmalloc-1024        1462   1464   1024    8    2 : tunables    0    0    0 : slabdata    183    183      0
kmalloc-512          415    416    512    8    1 : tunables    0    0    0 : slabdata     52     52      0
kmalloc-256           46     48    256   16    1 : tunables    0    0    0 : slabdata      3      3      0
kmalloc-128          320    320    128   32    1 : tunables    0    0    0 : slabdata     10     10      0
kmalloc-64          2301   2304     64   64    1 : tunables    0    0    0 : slabdata     36     36      0
kmalloc-32          3186   3200     32  128    1 : tunables    0    0    0 : slabdata     25     25      0
kmalloc-16          2466   7168     16  256    1 : tunables    0    0    0 : slabdata     28     28      0
kmalloc-8           3580   3584      8  512    1 : tunables    0    0    0 : slabdata      7      7      0
kmalloc-192          168    168    192   21    1 : tunables    0    0    0 : slabdata      8      8      0
kmalloc-96          1050   1050     96   42    1 : tunables    0    0    0 : slabdata     25     25      0
kmem_cache            32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
kmem_cache_node      256    256     32  128    1 : tunables    0    0    0 : slabdata      2      2      0

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 16:04           ` Bruno Prémont
@ 2011-04-25 16:31             ` Linus Torvalds
  2011-04-25 17:00               ` Bruno Prémont
                                 ` (2 more replies)
  0 siblings, 3 replies; 88+ messages in thread
From: Linus Torvalds @ 2011-04-25 16:31 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
>
> kmemleak reports 86681 new leaks between shortly after boot and -2 state.
> (and 2348 additional ones between -2 and -4).

I wouldn't necessarily trust kmemleak with the whole RCU-freeing
thing. In your slubinfo reports, the kmemleak data itself also tends
to overwhelm everything else - none of it looks unreasonable per se.

That said, you clearly have a *lot* of filp entries. I wouldn't
consider it unreasonable, though, because depending on load those may
well be fine. Perhaps you really do have some application(s) that hold
thousands of files open. The default file limit is 1024 (I think), but
you can raise it, and some programs do end up opening tens of
thousands of files for filesystem scanning purposes.

That said, I would suggest simply trying a saner kernel configuration,
and seeing if that makes a difference:

> Yes, it's uni-processor system, so SMP=n.
> TINY_RCU=y, PREEMPT_VOLUNTARY=y (whole /proc/config.gz attached keeping
> compression)

I'm not at all certain that TINY_RCU is appropriate for
general-purpose loads. I'd call it more of a "embedded low-performance
option".

The _real_ RCU implementation ("tree rcu") forces quiescent states
every few jiffies and has logic to handle "I've got tons of RCU
events, I really need to start handling them now". All of which I
think tiny-rcu lacks.

So right now I suspect that you have a situation where you just have a
simple load that just ends up never triggering any RCU cleanup, and
the tiny-rcu thing just keeps on gathering events and delays freeing
stuff almost arbitrarily long.

So try CONFIG_PREEMPT and CONFIG_TREE_PREEMPT_RCU to see if the
behavior goes away. That would confirm the "it's just tinyrcu being
too dang stupid" hypothesis.

                     Linus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 16:31             ` Linus Torvalds
@ 2011-04-25 17:00               ` Bruno Prémont
  2011-04-25 17:10                 ` Linus Torvalds
  2011-04-25 17:29                 ` Paul E. McKenney
  2011-04-25 17:26               ` Paul E. McKenney
  2011-04-27 10:28               ` Catalin Marinas
  2 siblings, 2 replies; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25 17:00 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 2901 bytes --]

On Mon, 25 April 2011 Linus Torvalds wrote:
> 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
> >
> > kmemleak reports 86681 new leaks between shortly after boot and -2 state.
> > (and 2348 additional ones between -2 and -4).
> 
> I wouldn't necessarily trust kmemleak with the whole RCU-freeing
> thing. In your slubinfo reports, the kmemleak data itself also tends
> to overwhelm everything else - none of it looks unreasonable per se.
> 
> That said, you clearly have a *lot* of filp entries. I wouldn't
> consider it unreasonable, though, because depending on load those may
> well be fine. Perhaps you really do have some application(s) that hold
> thousands of files open. The default file limit is 1024 (I think), but
> you can raise it, and some programs do end up opening tens of
> thousands of files for filesystem scanning purposes.
> 
> That said, I would suggest simply trying a saner kernel configuration,
> and seeing if that makes a difference:
> 
> > Yes, it's uni-processor system, so SMP=n.
> > TINY_RCU=y, PREEMPT_VOLUNTARY=y (whole /proc/config.gz attached keeping
> > compression)
> 
> I'm not at all certain that TINY_RCU is appropriate for
> general-purpose loads. I'd call it more of a "embedded low-performance
> option".

Well, TINY_RCU is the only option when doing PREEMPT_VOLUNTARY on
SMP=n...

> The _real_ RCU implementation ("tree rcu") forces quiescent states
> every few jiffies and has logic to handle "I've got tons of RCU
> events, I really need to start handling them now". All of which I
> think tiny-rcu lacks.

Going to try it out (will take some time to compile), kmemleak disabled.

> So right now I suspect that you have a situation where you just have a
> simple load that just ends up never triggering any RCU cleanup, and
> the tiny-rcu thing just keeps on gathering events and delays freeing
> stuff almost arbitrarily long.

I hope tiny-rcu is not that broken... as it would mean driving any
PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
packages (and probably also just unpacking larger tarballs or running
things like du).

And with system doing nothing (except monitoring itself) memory usage
goes increasing all the time until it starves (well it seems to keep
~20M free, pushing processes it can to swap). Config is just being
make oldconfig from working 2.6.38 kernel (answering default for new
options)

Memory usage evolution graph in first message of this thread:
http://thread.gmane.org/gmane.linux.kernel.mm/61909/focus=1130480

Attached graph matching numbers of previous mail. (dropping caches was at
17:55, system idle since then)

Bruno


> So try CONFIG_PREEMPT and CONFIG_TREE_PREEMPT_RCU to see if the
> behavior goes away. That would confirm the "it's just tinyrcu being
> too dang stupid" hypothesis.
> 
>                      Linus

[-- Attachment #2: jupiter.png --]
[-- Type: image/png, Size: 8829 bytes --]

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 17:00               ` Bruno Prémont
@ 2011-04-25 17:10                 ` Linus Torvalds
  2011-04-25 17:20                   ` Linus Torvalds
  2011-04-25 18:36                   ` Bruno Prémont
  2011-04-25 17:29                 ` Paul E. McKenney
  1 sibling, 2 replies; 88+ messages in thread
From: Linus Torvalds @ 2011-04-25 17:10 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 10:00 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
>
> I hope tiny-rcu is not that broken... as it would mean driving any
> PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
> packages (and probably also just unpacking larger tarballs or running
> things like du).

I'm sure that TINYRCU can be fixed if it really is the problem.

So I just want to make sure that we know what the root cause of your
problem is. It's quite possible that it _is_ a real leak of filp or
something, but before possibly wasting time trying to figure that out,
let's see if your config is to blame.

> And with system doing nothing (except monitoring itself) memory usage
> goes increasing all the time until it starves (well it seems to keep
> ~20M free, pushing processes it can to swap). Config is just being
> make oldconfig from working 2.6.38 kernel (answering default for new
> options)

How sure are you that the system really is idle? Quite frankly, the
constant growing doesn't really look idle to me.

> Attached graph matching numbers of previous mail. (dropping caches was at
> 17:55, system idle since then)

Nothing at all going on in 'ps' during that time? And what does
slabinfo say at that point now that kmemleak isn't dominating
everything else?

                        Linus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 17:10                 ` Linus Torvalds
@ 2011-04-25 17:20                   ` Linus Torvalds
  2011-04-25 18:36                   ` Bruno Prémont
  1 sibling, 0 replies; 88+ messages in thread
From: Linus Torvalds @ 2011-04-25 17:20 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 10:10 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> Nothing at all going on in 'ps' during that time? And what does
> slabinfo say at that point now that kmemleak isn't dominating
> everything else?

In particular, if it's filp-related, what does

  ls /proc/*/fd

say? It should show any processes with lots of files very clearly.

                         Linus

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 16:31             ` Linus Torvalds
  2011-04-25 17:00               ` Bruno Prémont
@ 2011-04-25 17:26               ` Paul E. McKenney
  2011-04-27 10:28               ` Catalin Marinas
  2 siblings, 0 replies; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-25 17:26 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Bruno Prémont, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 09:31:03AM -0700, Linus Torvalds wrote:
> 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
> >
> > kmemleak reports 86681 new leaks between shortly after boot and -2 state.
> > (and 2348 additional ones between -2 and -4).
> 
> I wouldn't necessarily trust kmemleak with the whole RCU-freeing
> thing. In your slubinfo reports, the kmemleak data itself also tends
> to overwhelm everything else - none of it looks unreasonable per se.
> 
> That said, you clearly have a *lot* of filp entries. I wouldn't
> consider it unreasonable, though, because depending on load those may
> well be fine. Perhaps you really do have some application(s) that hold
> thousands of files open. The default file limit is 1024 (I think), but
> you can raise it, and some programs do end up opening tens of
> thousands of files for filesystem scanning purposes.
> 
> That said, I would suggest simply trying a saner kernel configuration,
> and seeing if that makes a difference:
> 
> > Yes, it's uni-processor system, so SMP=n.
> > TINY_RCU=y, PREEMPT_VOLUNTARY=y (whole /proc/config.gz attached keeping
> > compression)
> 
> I'm not at all certain that TINY_RCU is appropriate for
> general-purpose loads. I'd call it more of a "embedded low-performance
> option".
> 
> The _real_ RCU implementation ("tree rcu") forces quiescent states
> every few jiffies and has logic to handle "I've got tons of RCU
> events, I really need to start handling them now". All of which I
> think tiny-rcu lacks.
> 
> So right now I suspect that you have a situation where you just have a
> simple load that just ends up never triggering any RCU cleanup, and
> the tiny-rcu thing just keeps on gathering events and delays freeing
> stuff almost arbitrarily long.
> 
> So try CONFIG_PREEMPT and CONFIG_TREE_PREEMPT_RCU to see if the
> behavior goes away. That would confirm the "it's just tinyrcu being
> too dang stupid" hypothesis.

CONFIG_TINY_RCU is a bit more stupid than CONFIG_TREE_RCU, and ditto
for both PREEMPT versions.  CONFIG_TREE_RCU will throttle RCU callback
invocation.  It defaults to invoking no more than 10 at a time, until
the number of outstanding callbacks on a given CPU exceeds 10,000,
at which point it goes into emergency mode and just processes all the
remaining callbacks.

In contrast, the TINY versions always process all the remaining
callbacks.  There are two reasons for the difference:

1.	The fact that TINY has but one CPU speeds up the grace periods
	(particularly for synchronize_rcu() in CONFIG_TINY_RCU, which
	is essentially a no-op), so that callbacks should be invoked in
	a more timely manner.

2.	There is only one CPU for TINY, so the scenarios where one
	CPU keeps another CPU totally busy invoking RCU callbacks
	cannot happen.

3.	TINY is supposed to be TINY, so I figured I should add RCU
	callback-throttling smarts when and if they proved to be needed.
	(It is not clear to me that this problem means that more smarts
	are needed, but if they are, I will of course add them.)

It is quite possible that some adjustments are needed in the defaults
for CONFIG_TREE_RCU and CONFIG_TREE_PREEMPT_RCU due to the heavier
load from the tree-walking changes.

							Thanx, Paul

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 17:00               ` Bruno Prémont
  2011-04-25 17:10                 ` Linus Torvalds
@ 2011-04-25 17:29                 ` Paul E. McKenney
  2011-04-25 18:13                   ` Sedat Dilek
  1 sibling, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-25 17:29 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Linus Torvalds, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 07:00:32PM +0200, Bruno Prémont wrote:
> On Mon, 25 April 2011 Linus Torvalds wrote:
> > 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
> > >
> > > kmemleak reports 86681 new leaks between shortly after boot and -2 state.
> > > (and 2348 additional ones between -2 and -4).
> > 
> > I wouldn't necessarily trust kmemleak with the whole RCU-freeing
> > thing. In your slubinfo reports, the kmemleak data itself also tends
> > to overwhelm everything else - none of it looks unreasonable per se.
> > 
> > That said, you clearly have a *lot* of filp entries. I wouldn't
> > consider it unreasonable, though, because depending on load those may
> > well be fine. Perhaps you really do have some application(s) that hold
> > thousands of files open. The default file limit is 1024 (I think), but
> > you can raise it, and some programs do end up opening tens of
> > thousands of files for filesystem scanning purposes.
> > 
> > That said, I would suggest simply trying a saner kernel configuration,
> > and seeing if that makes a difference:
> > 
> > > Yes, it's uni-processor system, so SMP=n.
> > > TINY_RCU=y, PREEMPT_VOLUNTARY=y (whole /proc/config.gz attached keeping
> > > compression)
> > 
> > I'm not at all certain that TINY_RCU is appropriate for
> > general-purpose loads. I'd call it more of a "embedded low-performance
> > option".
> 
> Well, TINY_RCU is the only option when doing PREEMPT_VOLUNTARY on
> SMP=n...

You can either set SMP=y and NR_CPUS=1 or you can handed-edit
init/Kconfig to remove the dependency on SMP.  Just change the

	depends on !PREEMPT && SMP

to:

	depends on !PREEMPT

This will work fine, especially for experimental purposes.

> > The _real_ RCU implementation ("tree rcu") forces quiescent states
> > every few jiffies and has logic to handle "I've got tons of RCU
> > events, I really need to start handling them now". All of which I
> > think tiny-rcu lacks.
> 
> Going to try it out (will take some time to compile), kmemleak disabled.
> 
> > So right now I suspect that you have a situation where you just have a
> > simple load that just ends up never triggering any RCU cleanup, and
> > the tiny-rcu thing just keeps on gathering events and delays freeing
> > stuff almost arbitrarily long.
> 
> I hope tiny-rcu is not that broken... as it would mean driving any
> PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
> packages (and probably also just unpacking larger tarballs or running
> things like du).

If it is broken, I will fix it.  ;-)

							Thanx, Paul

> And with system doing nothing (except monitoring itself) memory usage
> goes increasing all the time until it starves (well it seems to keep
> ~20M free, pushing processes it can to swap). Config is just being
> make oldconfig from working 2.6.38 kernel (answering default for new
> options)
> 
> Memory usage evolution graph in first message of this thread:
> http://thread.gmane.org/gmane.linux.kernel.mm/61909/focus=1130480
> 
> Attached graph matching numbers of previous mail. (dropping caches was at
> 17:55, system idle since then)
> 
> Bruno
> 
> 
> > So try CONFIG_PREEMPT and CONFIG_TREE_PREEMPT_RCU to see if the
> > behavior goes away. That would confirm the "it's just tinyrcu being
> > too dang stupid" hypothesis.
> > 
> >                      Linus


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 15:22         ` Linus Torvalds
  2011-04-25 16:04           ` Bruno Prémont
@ 2011-04-25 17:51           ` Pekka Enberg
  1 sibling, 0 replies; 88+ messages in thread
From: Pekka Enberg @ 2011-04-25 17:51 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Bruno Prémont, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney

On Mon, Apr 25, 2011 at 6:22 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> (Pekka? This is a real _problem_. The whole "confused debugging" is
> wasting a lot of peoples time. Can we please try to get slabinfo
> statistics work right for the merged state. Or perhaps decide to just
> not merge at all?)

I sent proof of concept patches that hopefully fix SLUB statistics for
merged case. Lets see what Christoph and David think of them and if
it's a dead end, I'd be inclined to rip out slab merging
completely....

                       Pekka

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 17:29                 ` Paul E. McKenney
@ 2011-04-25 18:13                   ` Sedat Dilek
  2011-04-25 18:28                     ` Paul E. McKenney
  0 siblings, 1 reply; 88+ messages in thread
From: Sedat Dilek @ 2011-04-25 18:13 UTC (permalink / raw)
  To: paulmck
  Cc: Bruno Prémont, Linus Torvalds, Mike Frysinger,
	KOSAKI Motohiro, linux-kernel, linux-mm, linux-fsdevel,
	Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 7:29 PM, Paul E. McKenney
<paulmck@linux.vnet.ibm.com> wrote:
> On Mon, Apr 25, 2011 at 07:00:32PM +0200, Bruno Prémont wrote:
>> On Mon, 25 April 2011 Linus Torvalds wrote:
>> > 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
>> > >
>> > > kmemleak reports 86681 new leaks between shortly after boot and -2 state.
>> > > (and 2348 additional ones between -2 and -4).
>> >
>> > I wouldn't necessarily trust kmemleak with the whole RCU-freeing
>> > thing. In your slubinfo reports, the kmemleak data itself also tends
>> > to overwhelm everything else - none of it looks unreasonable per se.
>> >
>> > That said, you clearly have a *lot* of filp entries. I wouldn't
>> > consider it unreasonable, though, because depending on load those may
>> > well be fine. Perhaps you really do have some application(s) that hold
>> > thousands of files open. The default file limit is 1024 (I think), but
>> > you can raise it, and some programs do end up opening tens of
>> > thousands of files for filesystem scanning purposes.
>> >
>> > That said, I would suggest simply trying a saner kernel configuration,
>> > and seeing if that makes a difference:
>> >
>> > > Yes, it's uni-processor system, so SMP=n.
>> > > TINY_RCU=y, PREEMPT_VOLUNTARY=y (whole /proc/config.gz attached keeping
>> > > compression)
>> >
>> > I'm not at all certain that TINY_RCU is appropriate for
>> > general-purpose loads. I'd call it more of a "embedded low-performance
>> > option".
>>
>> Well, TINY_RCU is the only option when doing PREEMPT_VOLUNTARY on
>> SMP=n...
>
> You can either set SMP=y and NR_CPUS=1 or you can handed-edit
> init/Kconfig to remove the dependency on SMP.  Just change the
>
>        depends on !PREEMPT && SMP
>
> to:
>
>        depends on !PREEMPT
>
> This will work fine, especially for experimental purposes.
>
>> > The _real_ RCU implementation ("tree rcu") forces quiescent states
>> > every few jiffies and has logic to handle "I've got tons of RCU
>> > events, I really need to start handling them now". All of which I
>> > think tiny-rcu lacks.
>>
>> Going to try it out (will take some time to compile), kmemleak disabled.
>>
>> > So right now I suspect that you have a situation where you just have a
>> > simple load that just ends up never triggering any RCU cleanup, and
>> > the tiny-rcu thing just keeps on gathering events and delays freeing
>> > stuff almost arbitrarily long.
>>
>> I hope tiny-rcu is not that broken... as it would mean driving any
>> PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
>> packages (and probably also just unpacking larger tarballs or running
>> things like du).
>
> If it is broken, I will fix it.  ;-)
>
>                                                        Thanx, Paul
>
>> And with system doing nothing (except monitoring itself) memory usage
>> goes increasing all the time until it starves (well it seems to keep
>> ~20M free, pushing processes it can to swap). Config is just being
>> make oldconfig from working 2.6.38 kernel (answering default for new
>> options)
>>
>> Memory usage evolution graph in first message of this thread:
>> http://thread.gmane.org/gmane.linux.kernel.mm/61909/focus=1130480
>>
>> Attached graph matching numbers of previous mail. (dropping caches was at
>> 17:55, system idle since then)
>>
>> Bruno
>>
>>
>> > So try CONFIG_PREEMPT and CONFIG_TREE_PREEMPT_RCU to see if the
>> > behavior goes away. That would confirm the "it's just tinyrcu being
>> > too dang stupid" hypothesis.
>> >
>> >                      Linus
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Hi,

I was playing with Debian's kernel-buildsystem for -rc4 with a
self-defined '686-up' so-called flavour.

Here I have a Banias Pentium-M (UP, *no* PAE) and still experimenting
with kernel-config options.

CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y

...is not possible with CONFIG_SMP=y

These settings are possible by not hacking existing Kconfigs:

$ egrep 'M486|M686|X86_UP|CONFIG_SMP|NR_CPUS|PREEMPT|_RCU|_HIGHMEM|PAE'
debian/build/build_i386_none_686-up/.config
CONFIG_TREE_PREEMPT_RCU=y
# CONFIG_TINY_RCU is not set
# CONFIG_TINY_PREEMPT_RCU is not set
CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_TRACE is not set
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_SMP is not set
# CONFIG_M486 is not set
CONFIG_M686=y
CONFIG_NR_CPUS=1
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_DEBUG_PREEMPT=y
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_DEBUG_HIGHMEM is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_CPU_STALL_DETECTOR is not set
# CONFIG_PREEMPT_TRACER is not set

But I also see these warnings:

.config:2106:warning: override: TREE_PREEMPT_RCU changes choice state
.config:2182:warning: override: PREEMPT changes choice state

Not sure how to interprete them, so I am a bit careful :-).

( Untested - not compiled yet! )

- Sedat -

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 18:13                   ` Sedat Dilek
@ 2011-04-25 18:28                     ` Paul E. McKenney
  0 siblings, 0 replies; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-25 18:28 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Bruno Prémont, Linus Torvalds, Mike Frysinger,
	KOSAKI Motohiro, linux-kernel, linux-mm, linux-fsdevel,
	Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 08:13:27PM +0200, Sedat Dilek wrote:
> On Mon, Apr 25, 2011 at 7:29 PM, Paul E. McKenney
> <paulmck@linux.vnet.ibm.com> wrote:
> > On Mon, Apr 25, 2011 at 07:00:32PM +0200, Bruno Prémont wrote:
> >> On Mon, 25 April 2011 Linus Torvalds wrote:
> >> > 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
> >> > >
> >> > > kmemleak reports 86681 new leaks between shortly after boot and -2 state.
> >> > > (and 2348 additional ones between -2 and -4).
> >> >
> >> > I wouldn't necessarily trust kmemleak with the whole RCU-freeing
> >> > thing. In your slubinfo reports, the kmemleak data itself also tends
> >> > to overwhelm everything else - none of it looks unreasonable per se.
> >> >
> >> > That said, you clearly have a *lot* of filp entries. I wouldn't
> >> > consider it unreasonable, though, because depending on load those may
> >> > well be fine. Perhaps you really do have some application(s) that hold
> >> > thousands of files open. The default file limit is 1024 (I think), but
> >> > you can raise it, and some programs do end up opening tens of
> >> > thousands of files for filesystem scanning purposes.
> >> >
> >> > That said, I would suggest simply trying a saner kernel configuration,
> >> > and seeing if that makes a difference:
> >> >
> >> > > Yes, it's uni-processor system, so SMP=n.
> >> > > TINY_RCU=y, PREEMPT_VOLUNTARY=y (whole /proc/config.gz attached keeping
> >> > > compression)
> >> >
> >> > I'm not at all certain that TINY_RCU is appropriate for
> >> > general-purpose loads. I'd call it more of a "embedded low-performance
> >> > option".
> >>
> >> Well, TINY_RCU is the only option when doing PREEMPT_VOLUNTARY on
> >> SMP=n...
> >
> > You can either set SMP=y and NR_CPUS=1 or you can handed-edit
> > init/Kconfig to remove the dependency on SMP.  Just change the
> >
> >        depends on !PREEMPT && SMP
> >
> > to:
> >
> >        depends on !PREEMPT
> >
> > This will work fine, especially for experimental purposes.
> >
> >> > The _real_ RCU implementation ("tree rcu") forces quiescent states
> >> > every few jiffies and has logic to handle "I've got tons of RCU
> >> > events, I really need to start handling them now". All of which I
> >> > think tiny-rcu lacks.
> >>
> >> Going to try it out (will take some time to compile), kmemleak disabled.
> >>
> >> > So right now I suspect that you have a situation where you just have a
> >> > simple load that just ends up never triggering any RCU cleanup, and
> >> > the tiny-rcu thing just keeps on gathering events and delays freeing
> >> > stuff almost arbitrarily long.
> >>
> >> I hope tiny-rcu is not that broken... as it would mean driving any
> >> PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
> >> packages (and probably also just unpacking larger tarballs or running
> >> things like du).
> >
> > If it is broken, I will fix it.  ;-)
> >
> >                                                        Thanx, Paul
> >
> >> And with system doing nothing (except monitoring itself) memory usage
> >> goes increasing all the time until it starves (well it seems to keep
> >> ~20M free, pushing processes it can to swap). Config is just being
> >> make oldconfig from working 2.6.38 kernel (answering default for new
> >> options)
> >>
> >> Memory usage evolution graph in first message of this thread:
> >> http://thread.gmane.org/gmane.linux.kernel.mm/61909/focus=1130480
> >>
> >> Attached graph matching numbers of previous mail. (dropping caches was at
> >> 17:55, system idle since then)
> >>
> >> Bruno
> >>
> >>
> >> > So try CONFIG_PREEMPT and CONFIG_TREE_PREEMPT_RCU to see if the
> >> > behavior goes away. That would confirm the "it's just tinyrcu being
> >> > too dang stupid" hypothesis.
> >> >
> >> >                      Linus
> >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> 
> Hi,
> 
> I was playing with Debian's kernel-buildsystem for -rc4 with a
> self-defined '686-up' so-called flavour.
> 
> Here I have a Banias Pentium-M (UP, *no* PAE) and still experimenting
> with kernel-config options.
> 
> CONFIG_X86_UP_APIC=y
> CONFIG_X86_UP_IOAPIC=y
> 
> ...is not possible with CONFIG_SMP=y

Right, hence my advice to hand-edit init/Kconfig for experimental
purposes.  Once that is done, you can select CONFIG_TREE_RCU with
CONFIG_SMP=n.

						Thanx, Paul

> These settings are possible by not hacking existing Kconfigs:
> 
> $ egrep 'M486|M686|X86_UP|CONFIG_SMP|NR_CPUS|PREEMPT|_RCU|_HIGHMEM|PAE'
> debian/build/build_i386_none_686-up/.config
> CONFIG_TREE_PREEMPT_RCU=y
> # CONFIG_TINY_RCU is not set
> # CONFIG_TINY_PREEMPT_RCU is not set
> CONFIG_PREEMPT_RCU=y
> # CONFIG_RCU_TRACE is not set
> CONFIG_RCU_FANOUT=32
> # CONFIG_RCU_FANOUT_EXACT is not set
> # CONFIG_TREE_RCU_TRACE is not set
> CONFIG_PREEMPT_NOTIFIERS=y
> # CONFIG_SMP is not set
> # CONFIG_M486 is not set
> CONFIG_M686=y
> CONFIG_NR_CPUS=1
> # CONFIG_PREEMPT_NONE is not set
> # CONFIG_PREEMPT_VOLUNTARY is not set
> CONFIG_PREEMPT=y
> CONFIG_X86_UP_APIC=y
> CONFIG_X86_UP_IOAPIC=y
> CONFIG_HIGHMEM4G=y
> # CONFIG_HIGHMEM64G is not set
> CONFIG_HIGHMEM=y
> CONFIG_DEBUG_PREEMPT=y
> # CONFIG_SPARSE_RCU_POINTER is not set
> # CONFIG_DEBUG_HIGHMEM is not set
> # CONFIG_RCU_TORTURE_TEST is not set
> # CONFIG_RCU_CPU_STALL_DETECTOR is not set
> # CONFIG_PREEMPT_TRACER is not set
> 
> But I also see these warnings:
> 
> .config:2106:warning: override: TREE_PREEMPT_RCU changes choice state
> .config:2182:warning: override: PREEMPT changes choice state
> 
> Not sure how to interprete them, so I am a bit careful :-).
> 
> ( Untested - not compiled yet! )
> 
> - Sedat -

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 17:10                 ` Linus Torvalds
  2011-04-25 17:20                   ` Linus Torvalds
@ 2011-04-25 18:36                   ` Bruno Prémont
  2011-04-25 19:16                     ` Paul E. McKenney
  1 sibling, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25 18:36 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, 25 April 2011 Linus Torvalds wrote:
> On Mon, Apr 25, 2011 at 10:00 AM, Bruno Prémont wrote:
> >
> > I hope tiny-rcu is not that broken... as it would mean driving any
> > PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
> > packages (and probably also just unpacking larger tarballs or running
> > things like du).
> 
> I'm sure that TINYRCU can be fixed if it really is the problem.
> 
> So I just want to make sure that we know what the root cause of your
> problem is. It's quite possible that it _is_ a real leak of filp or
> something, but before possibly wasting time trying to figure that out,
> let's see if your config is to blame.

With changed config (PREEMPT=y, TREE_PREEMPT_RCU=y) I haven't reproduced
yet.

When I was reproducing with TINYRCU things went normally for some time
until suddenly slabs stopped being freed.

> > And with system doing nothing (except monitoring itself) memory usage
> > goes increasing all the time until it starves (well it seems to keep
> > ~20M free, pushing processes it can to swap). Config is just being
> > make oldconfig from working 2.6.38 kernel (answering default for new
> > options)
> 
> How sure are you that the system really is idle? Quite frankly, the
> constant growing doesn't really look idle to me.

Except the SIGSTOPed build there is not much left, collectd running in
background (it polls /proc for process counts, fork rate, memory usage,
... opening, reading, closing the files -- scanning every 10 seconds),
slabtop on one terminal.

CPU activity was near-zero with 10%-20% spikes of system use every 10
minutes and io-wait when all cache had been pushed out.

> > Attached graph matching numbers of previous mail. (dropping caches was at
> > 17:55, system idle since then)
> 
> Nothing at all going on in 'ps' during that time? And what does
> slabinfo say at that point now that kmemleak isn't dominating
> everything else?

ps definitely does not show anything special, 30 or so userspace processes.
Didn't check ls /proc/*/fd though. Will do at next occurrence.


Going to test further with various PREEMPT and RCU selections. Will report
back as I progress (but won't have much time tomorrow).

Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 18:36                   ` Bruno Prémont
@ 2011-04-25 19:16                     ` Paul E. McKenney
  2011-04-25 21:10                       ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-25 19:16 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Linus Torvalds, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 08:36:06PM +0200, Bruno Prémont wrote:
> On Mon, 25 April 2011 Linus Torvalds wrote:
> > On Mon, Apr 25, 2011 at 10:00 AM, Bruno Prémont wrote:
> > >
> > > I hope tiny-rcu is not that broken... as it would mean driving any
> > > PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
> > > packages (and probably also just unpacking larger tarballs or running
> > > things like du).
> > 
> > I'm sure that TINYRCU can be fixed if it really is the problem.
> > 
> > So I just want to make sure that we know what the root cause of your
> > problem is. It's quite possible that it _is_ a real leak of filp or
> > something, but before possibly wasting time trying to figure that out,
> > let's see if your config is to blame.
> 
> With changed config (PREEMPT=y, TREE_PREEMPT_RCU=y) I haven't reproduced
> yet.
> 
> When I was reproducing with TINYRCU things went normally for some time
> until suddenly slabs stopped being freed.

Hmmm... If the system is responsive during this time, could you please
do the following after the slabs stop being freed?

ps -eo pid,class,sched,rtprio,stat,state,sgi_p,cpu_time,cmd | grep '\[rcu'

							Thanx, Paul

> > > And with system doing nothing (except monitoring itself) memory usage
> > > goes increasing all the time until it starves (well it seems to keep
> > > ~20M free, pushing processes it can to swap). Config is just being
> > > make oldconfig from working 2.6.38 kernel (answering default for new
> > > options)
> > 
> > How sure are you that the system really is idle? Quite frankly, the
> > constant growing doesn't really look idle to me.
> 
> Except the SIGSTOPed build there is not much left, collectd running in
> background (it polls /proc for process counts, fork rate, memory usage,
> ... opening, reading, closing the files -- scanning every 10 seconds),
> slabtop on one terminal.
> 
> CPU activity was near-zero with 10%-20% spikes of system use every 10
> minutes and io-wait when all cache had been pushed out.
> 
> > > Attached graph matching numbers of previous mail. (dropping caches was at
> > > 17:55, system idle since then)
> > 
> > Nothing at all going on in 'ps' during that time? And what does
> > slabinfo say at that point now that kmemleak isn't dominating
> > everything else?
> 
> ps definitely does not show anything special, 30 or so userspace processes.
> Didn't check ls /proc/*/fd though. Will do at next occurrence.
> 
> 
> Going to test further with various PREEMPT and RCU selections. Will report
> back as I progress (but won't have much time tomorrow).
> 
> Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 19:16                     ` Paul E. McKenney
@ 2011-04-25 21:10                       ` Bruno Prémont
  2011-04-25 21:26                         ` Paul E. McKenney
                                           ` (2 more replies)
  0 siblings, 3 replies; 88+ messages in thread
From: Bruno Prémont @ 2011-04-25 21:10 UTC (permalink / raw)
  To: paulmck
  Cc: Linus Torvalds, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 2868 bytes --]

On Mon, 25 April 2011 "Paul E. McKenney" wrote:
> On Mon, Apr 25, 2011 at 08:36:06PM +0200, Bruno Prémont wrote:
> > On Mon, 25 April 2011 Linus Torvalds wrote:
> > > On Mon, Apr 25, 2011 at 10:00 AM, Bruno Prémont wrote:
> > > >
> > > > I hope tiny-rcu is not that broken... as it would mean driving any
> > > > PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
> > > > packages (and probably also just unpacking larger tarballs or running
> > > > things like du).
> > > 
> > > I'm sure that TINYRCU can be fixed if it really is the problem.
> > > 
> > > So I just want to make sure that we know what the root cause of your
> > > problem is. It's quite possible that it _is_ a real leak of filp or
> > > something, but before possibly wasting time trying to figure that out,
> > > let's see if your config is to blame.
> > 
> > With changed config (PREEMPT=y, TREE_PREEMPT_RCU=y) I haven't reproduced
> > yet.
> > 
> > When I was reproducing with TINYRCU things went normally for some time
> > until suddenly slabs stopped being freed.
> 
> Hmmm... If the system is responsive during this time, could you please
> do the following after the slabs stop being freed?
> 
> ps -eo pid,class,sched,rtprio,stat,state,sgi_p,cpu_time,cmd | grep '\[rcu'

Looks like tinyrcu is not innocent (or at least it makes bug appear much
more easily)

With + + TREE_PREMPT_RCU system was stable compiling for over 2 hours,
switching to TINY_RCU, filp count started increasing pretty early after beginning
compiling.

All the relevant information attached (PREEMPT+TINY_RCU):
  config.gz
  ps auxf     |
  slabinfo    |  twice, once early (1-*), the second 30 minutes later (2-*)
  meminfo     |

ls -l proc/*/fd produces 658 lines for the 1-* series of numbers, 300 for 2-*.

In both cases 
   ps -eo pid,class,sched,rtprio,stat,state,sgi_p,cputime,cmd | grep '\[rcu'
returns the same information:
      6 FF    1      1 R    R 0 00:00:00 [rcu_kthread]


according to slabtop filp count is increasing permanentally, (about +1000
every 3 seconds) probably because of top (1s refresh rate) and collectd (10s
rate) scanning /proc (without top, increasing by about 300 every 10s).

Running something like `for ((X=0; X < 200; X++)); do /bin/true; done` causes
count of pid, task_struct, signal_cache slab count to increase by about 200,
but no zombies are being left behind.

1-*  Taken a few minutes after starting compile process, but after having
     SIGSTOPed the compiling process tree
2-*  about 30 minutes later, killed compile process tree, run above for loop
     multiple times, close most terminal sessions (including top)

Between 1-slabinfo and 2-slabinfo some values increased (a lot) while a few
ones did decrease. Don't know which ones are RCU-affected and which ones are
not.

Bruno

[-- Attachment #2: config.gz --]
[-- Type: application/x-gzip, Size: 15707 bytes --]

[-- Attachment #3: 1-meminfo --]
[-- Type: text/plain, Size: 1044 bytes --]

MemTotal:         480420 kB
MemFree:          175180 kB
Buffers:           37604 kB
Cached:            30436 kB
SwapCached:          128 kB
Active:            97532 kB
Inactive:          77776 kB
Active(anon):      51012 kB
Inactive(anon):    55480 kB
Active(file):      46520 kB
Inactive(file):    22296 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:        524284 kB
SwapFree:         524156 kB
Dirty:                16 kB
Writeback:             0 kB
AnonPages:        106300 kB
Mapped:            12732 kB
Shmem:               112 kB
Slab:              67580 kB
SReclaimable:      18596 kB
SUnreclaim:        48984 kB
KernelStack:       56352 kB
PageTables:         1344 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      764492 kB
Committed_AS:     173588 kB
VmallocTotal:     548548 kB
VmallocUsed:        8392 kB
VmallocChunk:     534328 kB
AnonHugePages:         0 kB
DirectMap4k:       16320 kB
DirectMap4M:      475136 kB

[-- Attachment #4: 1-ps_auxf --]
[-- Type: text/plain, Size: 23445 bytes --]

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    22:14   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [ksoftirqd/0]
root         6  0.1  0.0      0     0 ?        R    22:14   0:00  \_ [rcu_kthread]
root         7  0.0  0.0      0     0 ?        R    22:14   0:00  \_ [watchdog/0]
root         8  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [khelper]
root       138  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [sync_supers]
root       140  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [bdi-default]
root       142  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kblockd]
root       230  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [ata_sff]
root       237  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [khubd]
root       365  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kswapd0]
root       464  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [fsnotify_mark]
root       486  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfs_mru_cache]
root       489  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfslogd]
root       490  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsdatad]
root       491  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsconvertd]
root       554  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_0]
root       559  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_1]
root       573  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_2]
root       576  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_3]
root       579  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:4]
root       580  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:5]
root       589  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_4]
root       592  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_5]
root       655  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kpsmoused]
root       706  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [reiserfs]
root      1485  0.1  0.0      0     0 ?        S    22:14   0:01  \_ [kworker/0:3]
root      1486  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [flush-8:0]
root      1692  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [rpciod]
root      1693  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [nfsiod]
root      1697  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [lockd]
root     26248  0.0  0.0      0     0 ?        S    22:21   0:00  \_ [kworker/0:2]
root     26445  0.0  0.0      0     0 ?        S    22:21   0:00  \_ [kworker/0:4]
root         1  0.3  0.1   1740   588 ?        Ss   22:14   0:02 init [3]  
root       823  0.0  0.1   2132   824 ?        S<s  22:14   0:00 /sbin/udevd --daemon
root      1778  0.0  0.1   2128   696 ?        S<   22:15   0:00  \_ /sbin/udevd --daemon
root      1377  0.0  0.3   4876  1780 tty2     Ss   22:14   0:00 -bash
root      3692  0.1  0.2   2276   988 tty2     S+   22:18   0:00  \_ slabtop
root      1378  0.0  0.3   4876  1768 tty3     Ss+  22:14   0:00 -bash
root      1781  1.4  6.1  34372 29736 tty3     TN   22:16   0:08  \_ /usr/bin/python2.7 /usr/bin/emerge --oneshot gimp
portage  15556  0.0  0.5   5924  2696 tty3     TN   22:19   0:00      \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
portage  15655  0.0  0.4   6060  2200 tty3     TN   22:19   0:00          \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
portage  15662  0.0  0.3   4880  1560 tty3     TN   22:19   0:00              \_ /bin/bash /usr/lib/portage/bin/ebuild-helpers/emake
portage  15667  0.0  0.1   3860   960 tty3     TN   22:19   0:00                  \_ make -j2
portage  15668  0.0  0.2   3864   992 tty3     TN   22:19   0:00                      \_ make all-recursive
portage  15669  0.0  0.2   4752  1420 tty3     TN   22:19   0:00                          \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='m4macros tools cursors themes po po-libgimp po-plug-ins po-python po-script-fu po-tips data desktop menus libgimpbase libgimpcolor libgimpmath libgimpconfig libgimpmodule libgimpthumb libgimpwidgets libgimp app modules plug-ins etc devel-docs docs'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage  31137  0.0  0.1   4752   740 tty3     TN   22:22   0:00                              \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='m4macros tools cursors themes po po-libgimp po-plug-ins po-python po-script-fu po-tips data desktop menus libgimpbase libgimpcolor libgimpmath libgimpconfig libgimpmodule libgimpthumb libgimpwidgets libgimp app modules plug-ins etc devel-docs docs'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage  31138  0.0  0.2   3992  1164 tty3     TN   22:22   0:00                                  \_ make all
portage    601  0.0  0.3   5012  1676 tty3     TN   22:22   0:00                                      \_ /bin/sh ../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpcolordisplaystack.lo -MD -MP -MF .deps/gimpcolordisplaystack.Tpo -c -o gimpcolordisplaystack.lo gimpcolordisplaystack.c
portage    616  0.0  0.1   1924   536 tty3     TN   22:22   0:00                                      |   \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpcolordisplaystack.lo -MD -MP -MF .deps/gimpcolordisplaystack.Tpo -c gimpcolordisplaystack.c -fPIC -DPIC -o .libs/gimpcolordisplaystack.o
portage    617  0.4  4.5  27296 21728 tty3     TN   22:22   0:00                                      |       \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I.. -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -MD .libs/gimpcolordisplaystack.d -MF .deps/gimpcolordisplaystack.Tpo -MP -MT gimpcolordisplaystack.lo -D_REENTRANT -DHAVE_CONFIG_H -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -DPIC gimpcolordisplaystack.c -D_FORTIFY_SOURCE=2 -quiet -dumpbase gimpcolordisplaystack.c -march=athlon-xp -auxbase-strip .libs/gimpcolordisplaystack.o -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wo
 ld-style-definition -fPIC -o -
portage    619  0.0  0.6   5284  3128 tty3     TN   22:22   0:00                                      |       \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy -o .libs/gimpcolordisplaystack.o -
portage    632  0.0  0.3   5012  1672 tty3     TN   22:22   0:00                                      \_ /bin/sh ../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpenumwidgets.lo -MD -MP -MF .deps/gimpenumwidgets.Tpo -c -o gimpenumwidgets.lo gimpenumwidgets.c
portage    647  0.0  0.1   1924   536 tty3     TN   22:22   0:00                                          \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpenumwidgets.lo -MD -MP -MF .deps/gimpenumwidgets.Tpo -c gimpenumwidgets.c -fPIC -DPIC -o .libs/gimpenumwidgets.o
portage    648  0.1  2.3  19448 11284 tty3     TN   22:22   0:00                                              \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I.. -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -MD .libs/gimpenumwidgets.d -MF .deps/gimpenumwidgets.Tpo -MP -MT gimpenumwidgets.lo -D_REENTRANT -DHAVE_CONFIG_H -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -DPIC gimpenumwidgets.c -D_FORTIFY_SOURCE=2 -quiet -dumpbase gimpenumwidgets.c -march=athlon-xp -auxbase-strip .libs/gimpenumwidgets.o -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -fPIC -o -
portage    649  0.0  0.6   5284  3116 tty3     TN   22:22   0:00                                              \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy -o .libs/gimpenumwidgets.o -
root      1379  0.0  0.3   4876  1728 tty4     Ss+  22:14   0:00 -bash
root      4015  1.2  6.1  34176 29364 tty4     TN   22:18   0:06  \_ /usr/bin/python2.7 /usr/bin/emerge --oneshot libetpan
portage   7306  0.0  0.3   5136  1864 tty4     TN   22:18   0:00      \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
portage   7463  0.0  0.5   6132  2460 tty4     TN   22:18   0:00          \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
portage  19334  0.0  0.3   4876  1556 tty4     TN   22:19   0:00              \_ /bin/bash /usr/lib/portage/bin/ebuild-helpers/emake
portage  19339  0.0  0.2   3848  1032 tty4     TN   22:19   0:00                  \_ make -j2
portage  19736  0.0  0.2   3860   972 tty4     TN   22:19   0:00                      \_ make all-recursive
portage  19737  0.0  0.2   4748  1404 tty4     TN   22:19   0:00                          \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='build-windows include src tests doc'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage  19747  0.0  0.1   4748   696 tty4     TN   22:19   0:00                              \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='build-windows include src tests doc'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage  19748  0.0  0.2   3848  1052 tty4     TN   22:19   0:00                                  \_ make all
portage  19749  0.0  0.2   3848   980 tty4     TN   22:19   0:00                                      \_ make all-recursive
portage  19750  0.0  0.2   4748  1404 tty4     TN   22:19   0:00                                          \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='bsd  data-types low-level driver main engine'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage  23219  0.0  0.1   4748   696 tty4     TN   22:20   0:00                                              \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='bsd  data-types low-level driver main engine'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage  23220  0.0  0.2   3840  1040 tty4     TN   22:20   0:00                                                  \_ make all
portage  23225  0.0  0.2   3860   968 tty4     TN   22:20   0:00                                                      \_ make all-recursive
portage  23227  0.0  0.2   4748  1404 tty4     TN   22:20   0:00                                                          \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='imap imf maildir mbox mh mime nntp pop3 smtp feed'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage    337  0.0  0.1   4748   696 tty4     TN   22:22   0:00                                                              \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='imap imf maildir mbox mh mime nntp pop3 smtp feed'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
portage    338  0.0  0.2   3944  1064 tty4     TN   22:22   0:00                                                                  \_ make all
portage    342  0.0  0.2   3844  1004 tty4     TN   22:22   0:00                                                                      \_ make all-am
portage    653  0.0  0.4   5532  2176 tty4     TN   22:22   0:00                                                                          \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_content.lo -MD -MP -MF .deps/mailmime_content.Tpo -c -o mailmime_content.lo mailmime_content.c
portage    927  0.0  0.1   1920   532 tty4     TN   22:22   0:00                                                                          |   \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_content.lo -MD -MP -MF .deps/mailmime_content.Tpo -c mailmime_content.c -o mailmime_content.o
portage    930  0.0  0.7  11692  3620 tty4     TN   22:22   0:00                                                                          |       \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -MD mailmime_content.d -MF .deps/mailmime_content.Tpo -MP -MT mailmime_content.lo -DHAVE_CONFIG_H -DDEBUG -D_REENTRANT mailmime_content.c -D_FORTIFY_SOURCE=2 -quiet -dumpbase mailmime_content.c -march=athlon-xp -auxbase-strip mailmime_content.o -g -O2 -O2 -W -Wall -o -
portage    932  0.0  0.6   5280  3108 tty4     TN   22:22   0:00                                                                          |       \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy -o mailmime_content.o -
portage    891  0.0  0.4   5400  2156 tty4     TN   22:22   0:00                                                                          \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
portage    938  0.0  0.2   5400  1244 tty4     TN   22:22   0:00                                                                              \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
portage    939  0.0  0.1   5400   944 tty4     TN   22:22   0:00                                                                                  \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
portage    940  0.0  0.1   5400   944 tty4     TN   22:22   0:00                                                                                  \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
root      1380  0.0  0.3   4876  1728 tty5     Ss   22:14   0:00 -bash
root      1792  2.6  0.2   2420  1156 tty5     S+   22:16   0:15  \_ top
root      1381  0.0  0.1   1892   768 tty6     Ss+  22:14   0:00 /sbin/agetty 38400 tty6 linux
root      1521  0.0  0.0   1928   356 ?        Ss   22:14   0:00 dhcpcd -m 2 eth0
root      1562  0.0  0.1   5128   544 ?        S    22:14   0:00 supervising syslog-ng
root      1563  0.0  0.4   5408  1968 ?        Ss   22:14   0:00  \_ /usr/sbin/syslog-ng
ntp       1587  0.0  0.2   4360  1352 ?        Ss   22:14   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -u ntp:ntp
collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:04 /usr/sbin/collectd -P /var/run/collectd/collectd.pid -C /etc/collectd.conf
root      1623  0.0  0.1   1944   508 ?        Ss   22:14   0:00 /usr/sbin/gpm -m /dev/input/mice -t ps2
root      1663  0.0  0.1   2116   760 ?        Ss   22:14   0:00 /sbin/rpcbind
root      1677  0.0  0.2   2188   968 ?        Ss   22:14   0:00 /sbin/rpc.statd --no-notify
root      1737  0.0  0.2   4204   988 ?        Ss   22:15   0:00 /usr/sbin/sshd
root       942  0.0  0.4   6872  2252 ?        Ss   22:23   0:00  \_ sshd: root@pts/2 
root       944  0.0  0.3   4876  1780 pts/2    Ss   22:23   0:00      \_ -bash
root       961  0.0  0.2   4124   964 pts/2    R+   22:26   0:00          \_ ps auxf
root      1766  0.0  0.1   1892   780 tty1     Ss+  22:15   0:00 /sbin/agetty 38400 tty1 linux
root      1767  0.0  0.1   1892   784 ttyS0    Ss+  22:15   0:00 /sbin/agetty 115200 ttyS0 vt100

[-- Attachment #5: 1-slabinfo --]
[-- Type: text/plain, Size: 16001 bytes --]

slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
squashfs_inode_cache   1900   1900    384   10    1 : tunables    0    0    0 : slabdata    190    190      0
nfs_direct_cache       0      0     88   46    1 : tunables    0    0    0 : slabdata      0      0      0
nfs_write_data        40     40    480    8    1 : tunables    0    0    0 : slabdata      5      5      0
nfs_read_data         36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
nfs_inode_cache       70     70    576   14    2 : tunables    0    0    0 : slabdata      5      5      0
nfs_page              42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_buffers           15     15   2080   15    8 : tunables    0    0    0 : slabdata      1      1      0
rpc_tasks             25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_inode_cache       36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
fib6_nodes            64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
ip6_dst_cache         29     42    192   21    1 : tunables    0    0    0 : slabdata      2      2      0
ndisc_cache           21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAWv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
UDPLITEv6              0      0    672   12    2 : tunables    0    0    0 : slabdata      0      0      0
UDPv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
tw_sock_TCPv6          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
request_sock_TCPv6     32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
TCPv6                 12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
aoe_bufs               0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
scsi_sense_cache      32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_cmd_cache        25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
sd_ext_cdb            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
cfq_io_context       102    102     80   51    1 : tunables    0    0    0 : slabdata      2      2      0
cfq_queue             41     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
mqueue_inode_cache      8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
xfs_buf                0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
fstrm_item             0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_mru_cache_elem      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ili                0      0    168   24    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_inode              0      0    608   13    2 : tunables    0    0    0 : slabdata      0      0      0
xfs_efi_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_efd_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_buf_item           0      0    184   22    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_item_desc      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_trans              0      0    240   17    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ifork              0      0     72   56    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_dabuf              0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_da_state           0      0    352   11    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_btree_cur          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_bmap_free_item      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_ticket         0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ioend             51     51     80   51    1 : tunables    0    0    0 : slabdata      1      1      0
reiser_inode_cache  12780  12780    400   10    1 : tunables    0    0    0 : slabdata   1278   1278      0
configfs_dir_cache     64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
kioctx                 0      0    224   18    1 : tunables    0    0    0 : slabdata      0      0      0
kiocb                  0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
inotify_event_private_data    128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
inotify_inode_mark     46     46     88   46    1 : tunables    0    0    0 : slabdata      1      1      0
fasync_cache           0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
khugepaged_mm_slot      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
nsproxy                0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
posix_timers_cache      0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
uid_cache             42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
UNIX                  25     27    448    9    1 : tunables    0    0    0 : slabdata      3      3      0
UDP-Lite               0      0    544   15    2 : tunables    0    0    0 : slabdata      0      0      0
tcp_bind_bucket      128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
inet_peer_cache       21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_trie          102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_alias         102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
ip_dst_cache          50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
arp_cache             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAW                    8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
UDP                   15     15    544   15    2 : tunables    0    0    0 : slabdata      1      1      0
tw_sock_TCP           32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
request_sock_TCP      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
TCP                   13     13   1184   13    4 : tunables    0    0    0 : slabdata      1      1      0
eventpoll_pwq          0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
eventpoll_epi          0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
sgpool-128            12     12   2592   12    8 : tunables    0    0    0 : slabdata      1      1      0
sgpool-64             12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
sgpool-32             12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
sgpool-16             11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
sgpool-8              21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_data_buffer       0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
blkdev_queue          17     17    936   17    4 : tunables    0    0    0 : slabdata      1      1      0
blkdev_requests       26     36    224   18    1 : tunables    0    0    0 : slabdata      2      2      0
blkdev_ioc            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
fsnotify_event_holder      0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
fsnotify_event        56     56     72   56    1 : tunables    0    0    0 : slabdata      1      1      0
bio-0                 27     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
biovec-256            10     10   3104   10    8 : tunables    0    0    0 : slabdata      1      1      0
biovec-128             0      0   1568   10    4 : tunables    0    0    0 : slabdata      0      0      0
biovec-64             10     10    800   10    2 : tunables    0    0    0 : slabdata      1      1      0
biovec-16             18     18    224   18    1 : tunables    0    0    0 : slabdata      1      1      0
sock_inode_cache      70     77    352   11    1 : tunables    0    0    0 : slabdata      7      7      0
skbuff_fclone_cache     11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
skbuff_head_cache    511    546    192   21    1 : tunables    0    0    0 : slabdata     26     26      0
file_lock_cache       36     36    112   36    1 : tunables    0    0    0 : slabdata      1      1      0
shmem_inode_cache    894    910    408   10    1 : tunables    0    0    0 : slabdata     91     91      0
Acpi-Operand         949    949     56   73    1 : tunables    0    0    0 : slabdata     13     13      0
Acpi-ParseExt         64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Parse            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-State            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Namespace       612    612     40  102    1 : tunables    0    0    0 : slabdata      6      6      0
proc_inode_cache    4393   4393    344   23    2 : tunables    0    0    0 : slabdata    191    191      0
sigqueue              32     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
bdev_cache            13     18    448    9    1 : tunables    0    0    0 : slabdata      2      2      0
sysfs_dir_cache    13696  13696     64   64    1 : tunables    0    0    0 : slabdata    214    214      0
mnt_cache             50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
filp              209184 209184    128   32    1 : tunables    0    0    0 : slabdata   6537   6537      0
inode_cache         3972   3972    320   12    1 : tunables    0    0    0 : slabdata    331    331      0
dentry             35700  35700    144   28    1 : tunables    0    0    0 : slabdata   1275   1275      0
names_cache            7      7   4128    7    8 : tunables    0    0    0 : slabdata      1      1      0
buffer_head        13166  37856     72   56    1 : tunables    0    0    0 : slabdata    676    676      0
vm_area_struct      2508   2535    104   39    1 : tunables    0    0    0 : slabdata     65     65      0
mm_struct             68     72    448    9    1 : tunables    0    0    0 : slabdata      8      8      0
fs_cache             128    128     64   64    1 : tunables    0    0    0 : slabdata      2      2      0
files_cache         4240   4242    192   21    1 : tunables    0    0    0 : slabdata    202    202      0
signal_cache        7040   7040    512    8    1 : tunables    0    0    0 : slabdata    880    880      0
sighand_cache        102    108   1312   12    4 : tunables    0    0    0 : slabdata      9      9      0
task_xstate          350    350    576   14    2 : tunables    0    0    0 : slabdata     25     25      0
task_struct         7049   7049    832   19    4 : tunables    0    0    0 : slabdata    371    371      0
cred_jar           18496  18496    128   32    1 : tunables    0    0    0 : slabdata    578    578      0
anon_vma_chain      2371   2448     40  102    1 : tunables    0    0    0 : slabdata     24     24      0
anon_vma            1432   1536     32  128    1 : tunables    0    0    0 : slabdata     12     12      0
pid                 7104   7104     64   64    1 : tunables    0    0    0 : slabdata    111    111      0
radix_tree_node     6422   6422    312   13    1 : tunables    0    0    0 : slabdata    494    494      0
idr_layer_cache      273    275    160   25    1 : tunables    0    0    0 : slabdata     11     11      0
dma-kmalloc-8192       0      0   8208    3    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-4096       0      0   4112    7    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-2048       0      0   2064   15    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-1024       0      0   1040   15    4 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-512        0      0    528   15    2 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-256        0      0    272   15    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-128        0      0    144   28    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-64         0      0     80   51    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-32         0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-16         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-8          0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-192        0      0    208   19    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-96         0      0    112   36    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-8192          12     12   8208    3    8 : tunables    0    0    0 : slabdata      4      4      0
kmalloc-4096         300    301   4112    7    8 : tunables    0    0    0 : slabdata     43     43      0
kmalloc-2048         556    570   2064   15    8 : tunables    0    0    0 : slabdata     38     38      0
kmalloc-1024        2984   2985   1040   15    4 : tunables    0    0    0 : slabdata    199    199      0
kmalloc-512          431    435    528   15    2 : tunables    0    0    0 : slabdata     29     29      0
kmalloc-256           44     45    272   15    1 : tunables    0    0    0 : slabdata      3      3      0
kmalloc-128          336    336    144   28    1 : tunables    0    0    0 : slabdata     12     12      0
kmalloc-64          3822   3825     80   51    1 : tunables    0    0    0 : slabdata     75     75      0
kmalloc-32          4505   4505     48   85    1 : tunables    0    0    0 : slabdata     53     53      0
kmalloc-16          2363   5248     32  128    1 : tunables    0    0    0 : slabdata     41     41      0
kmalloc-8           3569   3570     24  170    1 : tunables    0    0    0 : slabdata     21     21      0
kmalloc-192          133    133    208   19    1 : tunables    0    0    0 : slabdata      7      7      0
kmalloc-96          1008   1008    112   36    1 : tunables    0    0    0 : slabdata     28     28      0
kmem_cache            32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
kmem_cache_node      192    192     64   64    1 : tunables    0    0    0 : slabdata      3      3      0

[-- Attachment #6: 2-meminfo --]
[-- Type: text/plain, Size: 1044 bytes --]

MemTotal:         480420 kB
MemFree:          233396 kB
Buffers:           38816 kB
Cached:            34944 kB
SwapCached:          128 kB
Active:            53088 kB
Inactive:          28216 kB
Active(anon):       1844 kB
Inactive(anon):     4924 kB
Active(file):      51244 kB
Inactive(file):    23292 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:        524284 kB
SwapFree:         524156 kB
Dirty:                32 kB
Writeback:             0 kB
AnonPages:          6580 kB
Mapped:             5456 kB
Shmem:               112 kB
Slab:              97772 kB
SReclaimable:      19920 kB
SUnreclaim:        77852 kB
KernelStack:       62800 kB
PageTables:          460 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      764492 kB
Committed_AS:      56340 kB
VmallocTotal:     548548 kB
VmallocUsed:        8392 kB
VmallocChunk:     534328 kB
AnonHugePages:         0 kB
DirectMap4k:       16320 kB
DirectMap4M:      475136 kB

[-- Attachment #7: 2-ps_auxf --]
[-- Type: text/plain, Size: 4784 bytes --]

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         2  0.0  0.0      0     0 ?        S    22:14   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [ksoftirqd/0]
root         6  0.0  0.0      0     0 ?        R    22:14   0:00  \_ [rcu_kthread]
root         7  0.0  0.0      0     0 ?        R    22:14   0:00  \_ [watchdog/0]
root         8  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [khelper]
root       138  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [sync_supers]
root       140  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [bdi-default]
root       142  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kblockd]
root       230  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [ata_sff]
root       237  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [khubd]
root       365  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kswapd0]
root       464  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [fsnotify_mark]
root       486  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfs_mru_cache]
root       489  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfslogd]
root       490  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsdatad]
root       491  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsconvertd]
root       554  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_0]
root       559  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_1]
root       573  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_2]
root       576  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_3]
root       579  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:4]
root       580  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:5]
root       589  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_4]
root       592  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_5]
root       655  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kpsmoused]
root       706  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [reiserfs]
root      1486  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [flush-8:0]
root      1692  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [rpciod]
root      1693  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [nfsiod]
root      1697  0.0  0.0      0     0 ?        S    22:15   0:00  \_ [lockd]
root       976  0.0  0.0      0     0 ?        S    22:30   0:00  \_ [kworker/0:0]
root      1004  0.0  0.0      0     0 ?        S    22:38   0:00  \_ [kworker/0:1]
root         1  0.1  0.1   1740   588 ?        Ss   22:14   0:02 init [3]  
root       823  0.0  0.1   2132   824 ?        S<s  22:14   0:00 /sbin/udevd --daemon
root      1778  0.0  0.1   2128   696 ?        S<   22:15   0:00  \_ /sbin/udevd --daemon
root      1377  0.0  0.3   4876  1780 tty2     Ss   22:14   0:00 -bash
root      1145  0.0  0.2   2276   988 tty2     S+   22:40   0:00  \_ slabtop
root      1381  0.0  0.1   1892   768 tty6     Ss+  22:14   0:00 /sbin/agetty 38400 tty6 linux
root      1521  0.0  0.0   1928   356 ?        Ss   22:14   0:00 dhcpcd -m 2 eth0
root      1562  0.0  0.1   5128   544 ?        S    22:14   0:00 supervising syslog-ng
root      1563  0.0  0.4   5408  1968 ?        Ss   22:14   0:00  \_ /usr/sbin/syslog-ng
ntp       1587  0.0  0.2   4360  1352 ?        Ss   22:14   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -u ntp:ntp
collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:14 /usr/sbin/collectd -P /var/run/collectd/collectd.pid -C /etc/collectd.conf
root      1623  0.0  0.1   1944   508 ?        Ss   22:14   0:00 /usr/sbin/gpm -m /dev/input/mice -t ps2
root      1663  0.0  0.1   2116   760 ?        Ss   22:14   0:00 /sbin/rpcbind
root      1677  0.0  0.2   2188   968 ?        Ss   22:14   0:00 /sbin/rpc.statd --no-notify
root      1737  0.0  0.2   4204   988 ?        Ss   22:15   0:00 /usr/sbin/sshd
root       942  0.0  0.4   7004  2264 ?        Ss   22:23   0:00  \_ sshd: root@pts/2 
root       944  0.0  0.3   4876  1812 pts/2    Ss   22:23   0:00      \_ -bash
root      1791  0.0  0.1   4124   960 pts/2    R+   22:53   0:00          \_ ps auxf
root      1766  0.0  0.1   1892   780 tty1     Ss+  22:15   0:00 /sbin/agetty 38400 tty1 linux
root      1767  0.0  0.1   1892   784 ttyS0    Ss+  22:15   0:00 /sbin/agetty 115200 ttyS0 vt100
root       982  0.0  0.1   1892   784 tty5     Ss+  22:38   0:00 /sbin/agetty 38400 tty5 linux
root      1011  0.0  0.3   4876  1748 tty3     Ss+  22:38   0:00 -bash
root      1126  0.0  0.1   1892   780 tty4     Ss+  22:38   0:00 /sbin/agetty 38400 tty4 linux

[-- Attachment #8: 2-slabinfo --]
[-- Type: text/plain, Size: 16001 bytes --]

slabinfo - version: 2.1
# name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
squashfs_inode_cache   1920   1920    384   10    1 : tunables    0    0    0 : slabdata    192    192      0
nfs_direct_cache       0      0     88   46    1 : tunables    0    0    0 : slabdata      0      0      0
nfs_write_data        40     40    480    8    1 : tunables    0    0    0 : slabdata      5      5      0
nfs_read_data         36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
nfs_inode_cache       70     70    576   14    2 : tunables    0    0    0 : slabdata      5      5      0
nfs_page              42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_buffers           15     15   2080   15    8 : tunables    0    0    0 : slabdata      1      1      0
rpc_tasks             25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
rpc_inode_cache       36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
fib6_nodes            64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
ip6_dst_cache         29     42    192   21    1 : tunables    0    0    0 : slabdata      2      2      0
ndisc_cache           21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAWv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
UDPLITEv6              0      0    672   12    2 : tunables    0    0    0 : slabdata      0      0      0
UDPv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
tw_sock_TCPv6          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
request_sock_TCPv6     32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
TCPv6                 12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
aoe_bufs               0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
scsi_sense_cache      32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_cmd_cache        25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
sd_ext_cdb            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
cfq_io_context       153    153     80   51    1 : tunables    0    0    0 : slabdata      3      3      0
cfq_queue             36     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
mqueue_inode_cache      8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
xfs_buf                0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
fstrm_item             0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_mru_cache_elem      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ili                0      0    168   24    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_inode              0      0    608   13    2 : tunables    0    0    0 : slabdata      0      0      0
xfs_efi_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_efd_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_buf_item           0      0    184   22    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_item_desc      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_trans              0      0    240   17    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ifork              0      0     72   56    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_dabuf              0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_da_state           0      0    352   11    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_btree_cur          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_bmap_free_item      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_log_ticket         0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
xfs_ioend             51     51     80   51    1 : tunables    0    0    0 : slabdata      1      1      0
reiser_inode_cache  13050  13050    400   10    1 : tunables    0    0    0 : slabdata   1305   1305      0
configfs_dir_cache     64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
kioctx                 0      0    224   18    1 : tunables    0    0    0 : slabdata      0      0      0
kiocb                  0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
inotify_event_private_data    128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
inotify_inode_mark     46     46     88   46    1 : tunables    0    0    0 : slabdata      1      1      0
fasync_cache           0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
khugepaged_mm_slot      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
nsproxy                0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
posix_timers_cache      0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
uid_cache             42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
UNIX                  25     27    448    9    1 : tunables    0    0    0 : slabdata      3      3      0
UDP-Lite               0      0    544   15    2 : tunables    0    0    0 : slabdata      0      0      0
tcp_bind_bucket      128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
inet_peer_cache       21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_trie          102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
ip_fib_alias         102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
ip_dst_cache          50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
arp_cache             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
RAW                    8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
UDP                   15     15    544   15    2 : tunables    0    0    0 : slabdata      1      1      0
tw_sock_TCP           32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
request_sock_TCP      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
TCP                   13     13   1184   13    4 : tunables    0    0    0 : slabdata      1      1      0
eventpoll_pwq          0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
eventpoll_epi          0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
sgpool-128            12     12   2592   12    8 : tunables    0    0    0 : slabdata      1      1      0
sgpool-64             12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
sgpool-32             12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
sgpool-16             11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
sgpool-8              21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
scsi_data_buffer       0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
blkdev_queue          17     17    936   17    4 : tunables    0    0    0 : slabdata      1      1      0
blkdev_requests       26     36    224   18    1 : tunables    0    0    0 : slabdata      2      2      0
blkdev_ioc            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
fsnotify_event_holder      0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
fsnotify_event        56     56     72   56    1 : tunables    0    0    0 : slabdata      1      1      0
bio-0                 25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
biovec-256            10     10   3104   10    8 : tunables    0    0    0 : slabdata      1      1      0
biovec-128             0      0   1568   10    4 : tunables    0    0    0 : slabdata      0      0      0
biovec-64             10     10    800   10    2 : tunables    0    0    0 : slabdata      1      1      0
biovec-16             18     18    224   18    1 : tunables    0    0    0 : slabdata      1      1      0
sock_inode_cache      70     77    352   11    1 : tunables    0    0    0 : slabdata      7      7      0
skbuff_fclone_cache     11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
skbuff_head_cache    517    567    192   21    1 : tunables    0    0    0 : slabdata     27     27      0
file_lock_cache       36     36    112   36    1 : tunables    0    0    0 : slabdata      1      1      0
shmem_inode_cache    910    910    408   10    1 : tunables    0    0    0 : slabdata     91     91      0
Acpi-Operand         949    949     56   73    1 : tunables    0    0    0 : slabdata     13     13      0
Acpi-ParseExt         64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Parse            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-State            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
Acpi-Namespace       612    612     40  102    1 : tunables    0    0    0 : slabdata      6      6      0
proc_inode_cache    6256   6256    344   23    2 : tunables    0    0    0 : slabdata    272    272      0
sigqueue              25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
bdev_cache            13     18    448    9    1 : tunables    0    0    0 : slabdata      2      2      0
sysfs_dir_cache    13696  13696     64   64    1 : tunables    0    0    0 : slabdata    214    214      0
mnt_cache             50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
filp              422592 422592    128   32    1 : tunables    0    0    0 : slabdata  13206  13206      0
inode_cache         3954   3972    320   12    1 : tunables    0    0    0 : slabdata    331    331      0
dentry             39312  39312    144   28    1 : tunables    0    0    0 : slabdata   1404   1404      0
names_cache            7      7   4128    7    8 : tunables    0    0    0 : slabdata      1      1      0
buffer_head        13560  37856     72   56    1 : tunables    0    0    0 : slabdata    676    676      0
vm_area_struct       862   1053    104   39    1 : tunables    0    0    0 : slabdata     27     27      0
mm_struct             27     54    448    9    1 : tunables    0    0    0 : slabdata      6      6      0
fs_cache              80    128     64   64    1 : tunables    0    0    0 : slabdata      2      2      0
files_cache         4325   4326    192   21    1 : tunables    0    0    0 : slabdata    206    206      0
signal_cache        7848   7848    512    8    1 : tunables    0    0    0 : slabdata    981    981      0
sighand_cache         64    108   1312   12    4 : tunables    0    0    0 : slabdata      9      9      0
task_xstate          392    392    576   14    2 : tunables    0    0    0 : slabdata     28     28      0
task_struct         7866   7866    832   19    4 : tunables    0    0    0 : slabdata    414    414      0
cred_jar           21792  21792    128   32    1 : tunables    0    0    0 : slabdata    681    681      0
anon_vma_chain      1033   1632     40  102    1 : tunables    0    0    0 : slabdata     16     16      0
anon_vma             707    896     32  128    1 : tunables    0    0    0 : slabdata      7      7      0
pid                 7872   7872     64   64    1 : tunables    0    0    0 : slabdata    123    123      0
radix_tree_node     6565   6565    312   13    1 : tunables    0    0    0 : slabdata    505    505      0
idr_layer_cache      269    275    160   25    1 : tunables    0    0    0 : slabdata     11     11      0
dma-kmalloc-8192       0      0   8208    3    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-4096       0      0   4112    7    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-2048       0      0   2064   15    8 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-1024       0      0   1040   15    4 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-512        0      0    528   15    2 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-256        0      0    272   15    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-128        0      0    144   28    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-64         0      0     80   51    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-32         0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-16         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-8          0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-192        0      0    208   19    1 : tunables    0    0    0 : slabdata      0      0      0
dma-kmalloc-96         0      0    112   36    1 : tunables    0    0    0 : slabdata      0      0      0
kmalloc-8192          12     12   8208    3    8 : tunables    0    0    0 : slabdata      4      4      0
kmalloc-4096         285    294   4112    7    8 : tunables    0    0    0 : slabdata     42     42      0
kmalloc-2048         547    555   2064   15    8 : tunables    0    0    0 : slabdata     37     37      0
kmalloc-1024        3690   3690   1040   15    4 : tunables    0    0    0 : slabdata    246    246      0
kmalloc-512          422    435    528   15    2 : tunables    0    0    0 : slabdata     29     29      0
kmalloc-256           44     45    272   15    1 : tunables    0    0    0 : slabdata      3      3      0
kmalloc-128          336    336    144   28    1 : tunables    0    0    0 : slabdata     12     12      0
kmalloc-64          4486   4488     80   51    1 : tunables    0    0    0 : slabdata     88     88      0
kmalloc-32          5354   5355     48   85    1 : tunables    0    0    0 : slabdata     63     63      0
kmalloc-16          2351   5248     32  128    1 : tunables    0    0    0 : slabdata     41     41      0
kmalloc-8           3566   3570     24  170    1 : tunables    0    0    0 : slabdata     21     21      0
kmalloc-192          152    152    208   19    1 : tunables    0    0    0 : slabdata      8      8      0
kmalloc-96          1038   1044    112   36    1 : tunables    0    0    0 : slabdata     29     29      0
kmem_cache            32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
kmem_cache_node      192    192     64   64    1 : tunables    0    0    0 : slabdata      3      3      0

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 21:10                       ` Bruno Prémont
@ 2011-04-25 21:26                         ` Paul E. McKenney
  2011-04-25 21:30                         ` Linus Torvalds
  2011-04-25 22:08                         ` Mike Frysinger
  2 siblings, 0 replies; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-25 21:26 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Linus Torvalds, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 11:10:16PM +0200, Bruno Prémont wrote:
> On Mon, 25 April 2011 "Paul E. McKenney" wrote:
> > On Mon, Apr 25, 2011 at 08:36:06PM +0200, Bruno Prémont wrote:
> > > On Mon, 25 April 2011 Linus Torvalds wrote:
> > > > On Mon, Apr 25, 2011 at 10:00 AM, Bruno Prémont wrote:
> > > > >
> > > > > I hope tiny-rcu is not that broken... as it would mean driving any
> > > > > PREEMPT_NONE or PREEMPT_VOLUNTARY system out of memory when compiling
> > > > > packages (and probably also just unpacking larger tarballs or running
> > > > > things like du).
> > > > 
> > > > I'm sure that TINYRCU can be fixed if it really is the problem.
> > > > 
> > > > So I just want to make sure that we know what the root cause of your
> > > > problem is. It's quite possible that it _is_ a real leak of filp or
> > > > something, but before possibly wasting time trying to figure that out,
> > > > let's see if your config is to blame.
> > > 
> > > With changed config (PREEMPT=y, TREE_PREEMPT_RCU=y) I haven't reproduced
> > > yet.
> > > 
> > > When I was reproducing with TINYRCU things went normally for some time
> > > until suddenly slabs stopped being freed.
> > 
> > Hmmm... If the system is responsive during this time, could you please
> > do the following after the slabs stop being freed?
> > 
> > ps -eo pid,class,sched,rtprio,stat,state,sgi_p,cpu_time,cmd | grep '\[rcu'
> 
> Looks like tinyrcu is not innocent (or at least it makes bug appear much
> more easily)
> 
> With + + TREE_PREMPT_RCU system was stable compiling for over 2 hours,
> switching to TINY_RCU, filp count started increasing pretty early after beginning
> compiling.
> 
> All the relevant information attached (PREEMPT+TINY_RCU):
>   config.gz
>   ps auxf     |
>   slabinfo    |  twice, once early (1-*), the second 30 minutes later (2-*)
>   meminfo     |
> 
> ls -l proc/*/fd produces 658 lines for the 1-* series of numbers, 300 for 2-*.
> 
> In both cases 
>    ps -eo pid,class,sched,rtprio,stat,state,sgi_p,cputime,cmd | grep '\[rcu'
> returns the same information:
>       6 FF    1      1 R    R 0 00:00:00 [rcu_kthread]

So rcu_kthread is runnable at SCHED_FIFO priority 1, but not accumulating
any CPU time.  Sedat has also seen this, and I never have been able to
reproduce it.

Anyone have any idea how this woiuld happen?

(And if rcu_kthread isn't running, I would expect exactly the symptoms
you are seeing.  I just don't understand why it isn't running if it
is runnable.)

							Thanx, Paul

> according to slabtop filp count is increasing permanentally, (about +1000
> every 3 seconds) probably because of top (1s refresh rate) and collectd (10s
> rate) scanning /proc (without top, increasing by about 300 every 10s).
> 
> Running something like `for ((X=0; X < 200; X++)); do /bin/true; done` causes
> count of pid, task_struct, signal_cache slab count to increase by about 200,
> but no zombies are being left behind.
> 
> 1-*  Taken a few minutes after starting compile process, but after having
>      SIGSTOPed the compiling process tree
> 2-*  about 30 minutes later, killed compile process tree, run above for loop
>      multiple times, close most terminal sessions (including top)
> 
> Between 1-slabinfo and 2-slabinfo some values increased (a lot) while a few
> ones did decrease. Don't know which ones are RCU-affected and which ones are
> not.
> 
> Bruno


> MemTotal:         480420 kB
> MemFree:          175180 kB
> Buffers:           37604 kB
> Cached:            30436 kB
> SwapCached:          128 kB
> Active:            97532 kB
> Inactive:          77776 kB
> Active(anon):      51012 kB
> Inactive(anon):    55480 kB
> Active(file):      46520 kB
> Inactive(file):    22296 kB
> Unevictable:          32 kB
> Mlocked:              32 kB
> SwapTotal:        524284 kB
> SwapFree:         524156 kB
> Dirty:                16 kB
> Writeback:             0 kB
> AnonPages:        106300 kB
> Mapped:            12732 kB
> Shmem:               112 kB
> Slab:              67580 kB
> SReclaimable:      18596 kB
> SUnreclaim:        48984 kB
> KernelStack:       56352 kB
> PageTables:         1344 kB
> NFS_Unstable:          0 kB
> Bounce:                0 kB
> WritebackTmp:          0 kB
> CommitLimit:      764492 kB
> Committed_AS:     173588 kB
> VmallocTotal:     548548 kB
> VmallocUsed:        8392 kB
> VmallocChunk:     534328 kB
> AnonHugePages:         0 kB
> DirectMap4k:       16320 kB
> DirectMap4M:      475136 kB

> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> root         2  0.0  0.0      0     0 ?        S    22:14   0:00 [kthreadd]
> root         3  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [ksoftirqd/0]
> root         6  0.1  0.0      0     0 ?        R    22:14   0:00  \_ [rcu_kthread]
> root         7  0.0  0.0      0     0 ?        R    22:14   0:00  \_ [watchdog/0]
> root         8  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [khelper]
> root       138  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [sync_supers]
> root       140  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [bdi-default]
> root       142  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kblockd]
> root       230  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [ata_sff]
> root       237  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [khubd]
> root       365  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kswapd0]
> root       464  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [fsnotify_mark]
> root       486  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfs_mru_cache]
> root       489  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfslogd]
> root       490  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsdatad]
> root       491  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsconvertd]
> root       554  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_0]
> root       559  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_1]
> root       573  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_2]
> root       576  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_3]
> root       579  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:4]
> root       580  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:5]
> root       589  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_4]
> root       592  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_5]
> root       655  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kpsmoused]
> root       706  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [reiserfs]
> root      1485  0.1  0.0      0     0 ?        S    22:14   0:01  \_ [kworker/0:3]
> root      1486  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [flush-8:0]
> root      1692  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [rpciod]
> root      1693  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [nfsiod]
> root      1697  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [lockd]
> root     26248  0.0  0.0      0     0 ?        S    22:21   0:00  \_ [kworker/0:2]
> root     26445  0.0  0.0      0     0 ?        S    22:21   0:00  \_ [kworker/0:4]
> root         1  0.3  0.1   1740   588 ?        Ss   22:14   0:02 init [3]  
> root       823  0.0  0.1   2132   824 ?        S<s  22:14   0:00 /sbin/udevd --daemon
> root      1778  0.0  0.1   2128   696 ?        S<   22:15   0:00  \_ /sbin/udevd --daemon
> root      1377  0.0  0.3   4876  1780 tty2     Ss   22:14   0:00 -bash
> root      3692  0.1  0.2   2276   988 tty2     S+   22:18   0:00  \_ slabtop
> root      1378  0.0  0.3   4876  1768 tty3     Ss+  22:14   0:00 -bash
> root      1781  1.4  6.1  34372 29736 tty3     TN   22:16   0:08  \_ /usr/bin/python2.7 /usr/bin/emerge --oneshot gimp
> portage  15556  0.0  0.5   5924  2696 tty3     TN   22:19   0:00      \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
> portage  15655  0.0  0.4   6060  2200 tty3     TN   22:19   0:00          \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
> portage  15662  0.0  0.3   4880  1560 tty3     TN   22:19   0:00              \_ /bin/bash /usr/lib/portage/bin/ebuild-helpers/emake
> portage  15667  0.0  0.1   3860   960 tty3     TN   22:19   0:00                  \_ make -j2
> portage  15668  0.0  0.2   3864   992 tty3     TN   22:19   0:00                      \_ make all-recursive
> portage  15669  0.0  0.2   4752  1420 tty3     TN   22:19   0:00                          \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='m4macros tools cursors themes po po-libgimp po-plug-ins po-python po-script-fu po-tips data desktop menus libgimpbase libgimpcolor libgimpmath libgimpconfig libgimpmodule libgimpthumb libgimpwidgets libgimp app modules plug-ins etc devel-docs docs'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage  31137  0.0  0.1   4752   740 tty3     TN   22:22   0:00                              \_ /bin/sh -c fail= failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='m4macros tools cursors themes po po-libgimp po-plug-ins po-python po-script-fu po-tips data desktop menus libgimpbase libgimpcolor libgimpmath libgimpconfig libgimpmodule libgimpthumb libgimpwidgets libgimp app modules plug-ins etc devel-docs docs'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage  31138  0.0  0.2   3992  1164 tty3     TN   22:22   0:00                                  \_ make all
> portage    601  0.0  0.3   5012  1676 tty3     TN   22:22   0:00                                      \_ /bin/sh ../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpcolordisplaystack.lo -MD -MP -MF .deps/gimpcolordisplaystack.Tpo -c -o gimpcolordisplaystack.lo gimpcolordisplaystack.c
> portage    616  0.0  0.1   1924   536 tty3     TN   22:22   0:00                                      |   \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpcolordisplaystack.lo -MD -MP -MF .deps/gimpcolordisplaystack.Tpo -c gimpcolordisplaystack.c -fPIC -DPIC -o .libs/gimpcolordisplaystack.o
> portage    617  0.4  4.5  27296 21728 tty3     TN   22:22   0:00                                      |       \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I.. -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -MD .libs/gimpcolordisplaystack.d -MF .deps/gimpcolordisplaystack.Tpo -MP -MT gimpcolordisplaystack.lo -D_REENTRANT -DHAVE_CONFIG_H -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -DPIC gimpcolordisplaystack.c -D_FORTIFY_SOURCE=2 -quiet -dumpbase gimpcolordisplaystack.c -march=athlon-xp -auxbase-strip .libs/gimpcolordisplaystack.o -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wo
>  ld-style-definition -fPIC -o -
> portage    619  0.0  0.6   5284  3128 tty3     TN   22:22   0:00                                      |       \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy -o .libs/gimpcolordisplaystack.o -
> portage    632  0.0  0.3   5012  1672 tty3     TN   22:22   0:00                                      \_ /bin/sh ../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpenumwidgets.lo -MD -MP -MF .deps/gimpenumwidgets.Tpo -c -o gimpenumwidgets.lo gimpenumwidgets.c
> portage    647  0.0  0.1   1924   536 tty3     TN   22:22   0:00                                          \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -O2 -march=athlon-xp -pipe -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpenumwidgets.lo -MD -MP -MF .deps/gimpenumwidgets.Tpo -c gimpenumwidgets.c -fPIC -DPIC -o .libs/gimpenumwidgets.o
> portage    648  0.1  2.3  19448 11284 tty3     TN   22:22   0:00                                              \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I.. -I.. -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng14 -I/usr/include/libdrm -I/usr/include -MD .libs/gimpenumwidgets.d -MF .deps/gimpenumwidgets.Tpo -MP -MT gimpenumwidgets.lo -D_REENTRANT -DHAVE_CONFIG_H -DG_LOG_DOMAIN="LibGimpWidgets" -DGIMP_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE -DPIC gimpenumwidgets.c -D_FORTIFY_SOURCE=2 -quiet -dumpbase gimpenumwidgets.c -march=athlon-xp -auxbase-strip .libs/gimpenumwidgets.o -O2 -Wall -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -fPIC -o -
> portage    649  0.0  0.6   5284  3116 tty3     TN   22:22   0:00                                              \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy -o .libs/gimpenumwidgets.o -
> root      1379  0.0  0.3   4876  1728 tty4     Ss+  22:14   0:00 -bash
> root      4015  1.2  6.1  34176 29364 tty4     TN   22:18   0:06  \_ /usr/bin/python2.7 /usr/bin/emerge --oneshot libetpan
> portage   7306  0.0  0.3   5136  1864 tty4     TN   22:18   0:00      \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
> portage   7463  0.0  0.5   6132  2460 tty4     TN   22:18   0:00          \_ /bin/bash /usr/lib/portage/bin/ebuild.sh compile
> portage  19334  0.0  0.3   4876  1556 tty4     TN   22:19   0:00              \_ /bin/bash /usr/lib/portage/bin/ebuild-helpers/emake
> portage  19339  0.0  0.2   3848  1032 tty4     TN   22:19   0:00                  \_ make -j2
> portage  19736  0.0  0.2   3860   972 tty4     TN   22:19   0:00                      \_ make all-recursive
> portage  19737  0.0  0.2   4748  1404 tty4     TN   22:19   0:00                          \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='build-windows include src tests doc'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage  19747  0.0  0.1   4748   696 tty4     TN   22:19   0:00                              \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='build-windows include src tests doc'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage  19748  0.0  0.2   3848  1052 tty4     TN   22:19   0:00                                  \_ make all
> portage  19749  0.0  0.2   3848   980 tty4     TN   22:19   0:00                                      \_ make all-recursive
> portage  19750  0.0  0.2   4748  1404 tty4     TN   22:19   0:00                                          \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='bsd  data-types low-level driver main engine'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage  23219  0.0  0.1   4748   696 tty4     TN   22:20   0:00                                              \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='bsd  data-types low-level driver main engine'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage  23220  0.0  0.2   3840  1040 tty4     TN   22:20   0:00                                                  \_ make all
> portage  23225  0.0  0.2   3860   968 tty4     TN   22:20   0:00                                                      \_ make all-recursive
> portage  23227  0.0  0.2   4748  1404 tty4     TN   22:20   0:00                                                          \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='imap imf maildir mbox mh mime nntp pop3 smtp feed'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage    337  0.0  0.1   4748   696 tty4     TN   22:22   0:00                                                              \_ /bin/sh -c failcom='exit 1'; \?for f in x $MAKEFLAGS; do \?  case $f in \?    *=* | --[!k]*);; \?    *k*) failcom='fail=yes';; \?  esac; \?done; \?dot_seen=no; \?target=`echo all-recursive | sed s/-recursive//`; \?list='imap imf maildir mbox mh mime nntp pop3 smtp feed'; for subdir in $list; do \?  echo "Making $target in $subdir"; \?  if test "$subdir" = "."; then \?    dot_seen=yes; \?    local_target="$target-am"; \?  else \?    local_target="$target"; \?  fi; \?  (cd $subdir && make  $local_target) \?  || eval $failcom; \?done; \?if test "$dot_seen" = "no"; then \?  make  "$target-am" || exit 1; \?fi; test -z "$fail"
> portage    338  0.0  0.2   3944  1064 tty4     TN   22:22   0:00                                                                  \_ make all
> portage    342  0.0  0.2   3844  1004 tty4     TN   22:22   0:00                                                                      \_ make all-am
> portage    653  0.0  0.4   5532  2176 tty4     TN   22:22   0:00                                                                          \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_content.lo -MD -MP -MF .deps/mailmime_content.Tpo -c -o mailmime_content.lo mailmime_content.c
> portage    927  0.0  0.1   1920   532 tty4     TN   22:22   0:00                                                                          |   \_ /usr/i686-pc-linux-gnu/gcc-bin/4.4.5/i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_content.lo -MD -MP -MF .deps/mailmime_content.Tpo -c mailmime_content.c -o mailmime_content.o
> portage    930  0.0  0.7  11692  3620 tty4     TN   22:22   0:00                                                                          |       \_ /usr/libexec/gcc/i686-pc-linux-gnu/4.4.5/cc1 -quiet -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -MD mailmime_content.d -MF .deps/mailmime_content.Tpo -MP -MT mailmime_content.lo -DHAVE_CONFIG_H -DDEBUG -D_REENTRANT mailmime_content.c -D_FORTIFY_SOURCE=2 -quiet -dumpbase mailmime_content.c -march=athlon-xp -auxbase-strip mailmime_content.o -g -O2 -O2 -W -Wall -o -
> portage    932  0.0  0.6   5280  3108 tty4     TN   22:22   0:00                                                                          |       \_ /usr/lib/gcc/i686-pc-linux-gnu/4.4.5/../../../../i686-pc-linux-gnu/bin/as -Qy -o mailmime_content.o -
> portage    891  0.0  0.4   5400  2156 tty4     TN   22:22   0:00                                                                          \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
> portage    938  0.0  0.2   5400  1244 tty4     TN   22:22   0:00                                                                              \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
> portage    939  0.0  0.1   5400   944 tty4     TN   22:22   0:00                                                                                  \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
> portage    940  0.0  0.1   5400   944 tty4     TN   22:22   0:00                                                                                  \_ /bin/sh ../../../libtool --tag=CC --mode=compile i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../../include -I../../../src/low-level/imf -I../../../src/data-types -DDEBUG -D_REENTRANT -O2 -march=athlon-xp -pipe -O2 -g -W -Wall -MT mailmime_disposition.lo -MD -MP -MF .deps/mailmime_disposition.Tpo -c -o mailmime_disposition.lo mailmime_disposition.c
> root      1380  0.0  0.3   4876  1728 tty5     Ss   22:14   0:00 -bash
> root      1792  2.6  0.2   2420  1156 tty5     S+   22:16   0:15  \_ top
> root      1381  0.0  0.1   1892   768 tty6     Ss+  22:14   0:00 /sbin/agetty 38400 tty6 linux
> root      1521  0.0  0.0   1928   356 ?        Ss   22:14   0:00 dhcpcd -m 2 eth0
> root      1562  0.0  0.1   5128   544 ?        S    22:14   0:00 supervising syslog-ng
> root      1563  0.0  0.4   5408  1968 ?        Ss   22:14   0:00  \_ /usr/sbin/syslog-ng
> ntp       1587  0.0  0.2   4360  1352 ?        Ss   22:14   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -u ntp:ntp
> collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:04 /usr/sbin/collectd -P /var/run/collectd/collectd.pid -C /etc/collectd.conf
> root      1623  0.0  0.1   1944   508 ?        Ss   22:14   0:00 /usr/sbin/gpm -m /dev/input/mice -t ps2
> root      1663  0.0  0.1   2116   760 ?        Ss   22:14   0:00 /sbin/rpcbind
> root      1677  0.0  0.2   2188   968 ?        Ss   22:14   0:00 /sbin/rpc.statd --no-notify
> root      1737  0.0  0.2   4204   988 ?        Ss   22:15   0:00 /usr/sbin/sshd
> root       942  0.0  0.4   6872  2252 ?        Ss   22:23   0:00  \_ sshd: root@pts/2 
> root       944  0.0  0.3   4876  1780 pts/2    Ss   22:23   0:00      \_ -bash
> root       961  0.0  0.2   4124   964 pts/2    R+   22:26   0:00          \_ ps auxf
> root      1766  0.0  0.1   1892   780 tty1     Ss+  22:15   0:00 /sbin/agetty 38400 tty1 linux
> root      1767  0.0  0.1   1892   784 ttyS0    Ss+  22:15   0:00 /sbin/agetty 115200 ttyS0 vt100

> slabinfo - version: 2.1
> # name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
> squashfs_inode_cache   1900   1900    384   10    1 : tunables    0    0    0 : slabdata    190    190      0
> nfs_direct_cache       0      0     88   46    1 : tunables    0    0    0 : slabdata      0      0      0
> nfs_write_data        40     40    480    8    1 : tunables    0    0    0 : slabdata      5      5      0
> nfs_read_data         36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
> nfs_inode_cache       70     70    576   14    2 : tunables    0    0    0 : slabdata      5      5      0
> nfs_page              42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
> rpc_buffers           15     15   2080   15    8 : tunables    0    0    0 : slabdata      1      1      0
> rpc_tasks             25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
> rpc_inode_cache       36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
> fib6_nodes            64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
> ip6_dst_cache         29     42    192   21    1 : tunables    0    0    0 : slabdata      2      2      0
> ndisc_cache           21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> RAWv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
> UDPLITEv6              0      0    672   12    2 : tunables    0    0    0 : slabdata      0      0      0
> UDPv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
> tw_sock_TCPv6          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
> request_sock_TCPv6     32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> TCPv6                 12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
> aoe_bufs               0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
> scsi_sense_cache      32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> scsi_cmd_cache        25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
> sd_ext_cdb            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
> cfq_io_context       102    102     80   51    1 : tunables    0    0    0 : slabdata      2      2      0
> cfq_queue             41     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> mqueue_inode_cache      8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
> xfs_buf                0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
> fstrm_item             0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_mru_cache_elem      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_ili                0      0    168   24    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_inode              0      0    608   13    2 : tunables    0    0    0 : slabdata      0      0      0
> xfs_efi_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_efd_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_buf_item           0      0    184   22    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_log_item_desc      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_trans              0      0    240   17    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_ifork              0      0     72   56    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_dabuf              0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_da_state           0      0    352   11    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_btree_cur          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_bmap_free_item      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_log_ticket         0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_ioend             51     51     80   51    1 : tunables    0    0    0 : slabdata      1      1      0
> reiser_inode_cache  12780  12780    400   10    1 : tunables    0    0    0 : slabdata   1278   1278      0
> configfs_dir_cache     64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
> kioctx                 0      0    224   18    1 : tunables    0    0    0 : slabdata      0      0      0
> kiocb                  0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
> inotify_event_private_data    128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
> inotify_inode_mark     46     46     88   46    1 : tunables    0    0    0 : slabdata      1      1      0
> fasync_cache           0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
> khugepaged_mm_slot      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> nsproxy                0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
> posix_timers_cache      0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
> uid_cache             42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
> UNIX                  25     27    448    9    1 : tunables    0    0    0 : slabdata      3      3      0
> UDP-Lite               0      0    544   15    2 : tunables    0    0    0 : slabdata      0      0      0
> tcp_bind_bucket      128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
> inet_peer_cache       21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> ip_fib_trie          102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
> ip_fib_alias         102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
> ip_dst_cache          50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> arp_cache             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> RAW                    8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
> UDP                   15     15    544   15    2 : tunables    0    0    0 : slabdata      1      1      0
> tw_sock_TCP           32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> request_sock_TCP      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
> TCP                   13     13   1184   13    4 : tunables    0    0    0 : slabdata      1      1      0
> eventpoll_pwq          0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
> eventpoll_epi          0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
> sgpool-128            12     12   2592   12    8 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-64             12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-32             12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-16             11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-8              21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> scsi_data_buffer       0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> blkdev_queue          17     17    936   17    4 : tunables    0    0    0 : slabdata      1      1      0
> blkdev_requests       26     36    224   18    1 : tunables    0    0    0 : slabdata      2      2      0
> blkdev_ioc            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
> fsnotify_event_holder      0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
> fsnotify_event        56     56     72   56    1 : tunables    0    0    0 : slabdata      1      1      0
> bio-0                 27     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> biovec-256            10     10   3104   10    8 : tunables    0    0    0 : slabdata      1      1      0
> biovec-128             0      0   1568   10    4 : tunables    0    0    0 : slabdata      0      0      0
> biovec-64             10     10    800   10    2 : tunables    0    0    0 : slabdata      1      1      0
> biovec-16             18     18    224   18    1 : tunables    0    0    0 : slabdata      1      1      0
> sock_inode_cache      70     77    352   11    1 : tunables    0    0    0 : slabdata      7      7      0
> skbuff_fclone_cache     11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
> skbuff_head_cache    511    546    192   21    1 : tunables    0    0    0 : slabdata     26     26      0
> file_lock_cache       36     36    112   36    1 : tunables    0    0    0 : slabdata      1      1      0
> shmem_inode_cache    894    910    408   10    1 : tunables    0    0    0 : slabdata     91     91      0
> Acpi-Operand         949    949     56   73    1 : tunables    0    0    0 : slabdata     13     13      0
> Acpi-ParseExt         64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
> Acpi-Parse            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
> Acpi-State            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
> Acpi-Namespace       612    612     40  102    1 : tunables    0    0    0 : slabdata      6      6      0
> proc_inode_cache    4393   4393    344   23    2 : tunables    0    0    0 : slabdata    191    191      0
> sigqueue              32     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> bdev_cache            13     18    448    9    1 : tunables    0    0    0 : slabdata      2      2      0
> sysfs_dir_cache    13696  13696     64   64    1 : tunables    0    0    0 : slabdata    214    214      0
> mnt_cache             50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> filp              209184 209184    128   32    1 : tunables    0    0    0 : slabdata   6537   6537      0
> inode_cache         3972   3972    320   12    1 : tunables    0    0    0 : slabdata    331    331      0
> dentry             35700  35700    144   28    1 : tunables    0    0    0 : slabdata   1275   1275      0
> names_cache            7      7   4128    7    8 : tunables    0    0    0 : slabdata      1      1      0
> buffer_head        13166  37856     72   56    1 : tunables    0    0    0 : slabdata    676    676      0
> vm_area_struct      2508   2535    104   39    1 : tunables    0    0    0 : slabdata     65     65      0
> mm_struct             68     72    448    9    1 : tunables    0    0    0 : slabdata      8      8      0
> fs_cache             128    128     64   64    1 : tunables    0    0    0 : slabdata      2      2      0
> files_cache         4240   4242    192   21    1 : tunables    0    0    0 : slabdata    202    202      0
> signal_cache        7040   7040    512    8    1 : tunables    0    0    0 : slabdata    880    880      0
> sighand_cache        102    108   1312   12    4 : tunables    0    0    0 : slabdata      9      9      0
> task_xstate          350    350    576   14    2 : tunables    0    0    0 : slabdata     25     25      0
> task_struct         7049   7049    832   19    4 : tunables    0    0    0 : slabdata    371    371      0
> cred_jar           18496  18496    128   32    1 : tunables    0    0    0 : slabdata    578    578      0
> anon_vma_chain      2371   2448     40  102    1 : tunables    0    0    0 : slabdata     24     24      0
> anon_vma            1432   1536     32  128    1 : tunables    0    0    0 : slabdata     12     12      0
> pid                 7104   7104     64   64    1 : tunables    0    0    0 : slabdata    111    111      0
> radix_tree_node     6422   6422    312   13    1 : tunables    0    0    0 : slabdata    494    494      0
> idr_layer_cache      273    275    160   25    1 : tunables    0    0    0 : slabdata     11     11      0
> dma-kmalloc-8192       0      0   8208    3    8 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-4096       0      0   4112    7    8 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-2048       0      0   2064   15    8 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-1024       0      0   1040   15    4 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-512        0      0    528   15    2 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-256        0      0    272   15    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-128        0      0    144   28    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-64         0      0     80   51    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-32         0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-16         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-8          0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-192        0      0    208   19    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-96         0      0    112   36    1 : tunables    0    0    0 : slabdata      0      0      0
> kmalloc-8192          12     12   8208    3    8 : tunables    0    0    0 : slabdata      4      4      0
> kmalloc-4096         300    301   4112    7    8 : tunables    0    0    0 : slabdata     43     43      0
> kmalloc-2048         556    570   2064   15    8 : tunables    0    0    0 : slabdata     38     38      0
> kmalloc-1024        2984   2985   1040   15    4 : tunables    0    0    0 : slabdata    199    199      0
> kmalloc-512          431    435    528   15    2 : tunables    0    0    0 : slabdata     29     29      0
> kmalloc-256           44     45    272   15    1 : tunables    0    0    0 : slabdata      3      3      0
> kmalloc-128          336    336    144   28    1 : tunables    0    0    0 : slabdata     12     12      0
> kmalloc-64          3822   3825     80   51    1 : tunables    0    0    0 : slabdata     75     75      0
> kmalloc-32          4505   4505     48   85    1 : tunables    0    0    0 : slabdata     53     53      0
> kmalloc-16          2363   5248     32  128    1 : tunables    0    0    0 : slabdata     41     41      0
> kmalloc-8           3569   3570     24  170    1 : tunables    0    0    0 : slabdata     21     21      0
> kmalloc-192          133    133    208   19    1 : tunables    0    0    0 : slabdata      7      7      0
> kmalloc-96          1008   1008    112   36    1 : tunables    0    0    0 : slabdata     28     28      0
> kmem_cache            32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> kmem_cache_node      192    192     64   64    1 : tunables    0    0    0 : slabdata      3      3      0

> MemTotal:         480420 kB
> MemFree:          233396 kB
> Buffers:           38816 kB
> Cached:            34944 kB
> SwapCached:          128 kB
> Active:            53088 kB
> Inactive:          28216 kB
> Active(anon):       1844 kB
> Inactive(anon):     4924 kB
> Active(file):      51244 kB
> Inactive(file):    23292 kB
> Unevictable:          32 kB
> Mlocked:              32 kB
> SwapTotal:        524284 kB
> SwapFree:         524156 kB
> Dirty:                32 kB
> Writeback:             0 kB
> AnonPages:          6580 kB
> Mapped:             5456 kB
> Shmem:               112 kB
> Slab:              97772 kB
> SReclaimable:      19920 kB
> SUnreclaim:        77852 kB
> KernelStack:       62800 kB
> PageTables:          460 kB
> NFS_Unstable:          0 kB
> Bounce:                0 kB
> WritebackTmp:          0 kB
> CommitLimit:      764492 kB
> Committed_AS:      56340 kB
> VmallocTotal:     548548 kB
> VmallocUsed:        8392 kB
> VmallocChunk:     534328 kB
> AnonHugePages:         0 kB
> DirectMap4k:       16320 kB
> DirectMap4M:      475136 kB

> USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
> root         2  0.0  0.0      0     0 ?        S    22:14   0:00 [kthreadd]
> root         3  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [ksoftirqd/0]
> root         6  0.0  0.0      0     0 ?        R    22:14   0:00  \_ [rcu_kthread]
> root         7  0.0  0.0      0     0 ?        R    22:14   0:00  \_ [watchdog/0]
> root         8  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [khelper]
> root       138  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [sync_supers]
> root       140  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [bdi-default]
> root       142  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kblockd]
> root       230  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [ata_sff]
> root       237  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [khubd]
> root       365  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kswapd0]
> root       464  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [fsnotify_mark]
> root       486  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfs_mru_cache]
> root       489  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfslogd]
> root       490  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsdatad]
> root       491  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [xfsconvertd]
> root       554  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_0]
> root       559  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_1]
> root       573  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_2]
> root       576  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_3]
> root       579  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:4]
> root       580  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [kworker/u:5]
> root       589  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_4]
> root       592  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [scsi_eh_5]
> root       655  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [kpsmoused]
> root       706  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [reiserfs]
> root      1486  0.0  0.0      0     0 ?        S    22:14   0:00  \_ [flush-8:0]
> root      1692  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [rpciod]
> root      1693  0.0  0.0      0     0 ?        S<   22:14   0:00  \_ [nfsiod]
> root      1697  0.0  0.0      0     0 ?        S    22:15   0:00  \_ [lockd]
> root       976  0.0  0.0      0     0 ?        S    22:30   0:00  \_ [kworker/0:0]
> root      1004  0.0  0.0      0     0 ?        S    22:38   0:00  \_ [kworker/0:1]
> root         1  0.1  0.1   1740   588 ?        Ss   22:14   0:02 init [3]  
> root       823  0.0  0.1   2132   824 ?        S<s  22:14   0:00 /sbin/udevd --daemon
> root      1778  0.0  0.1   2128   696 ?        S<   22:15   0:00  \_ /sbin/udevd --daemon
> root      1377  0.0  0.3   4876  1780 tty2     Ss   22:14   0:00 -bash
> root      1145  0.0  0.2   2276   988 tty2     S+   22:40   0:00  \_ slabtop
> root      1381  0.0  0.1   1892   768 tty6     Ss+  22:14   0:00 /sbin/agetty 38400 tty6 linux
> root      1521  0.0  0.0   1928   356 ?        Ss   22:14   0:00 dhcpcd -m 2 eth0
> root      1562  0.0  0.1   5128   544 ?        S    22:14   0:00 supervising syslog-ng
> root      1563  0.0  0.4   5408  1968 ?        Ss   22:14   0:00  \_ /usr/sbin/syslog-ng
> ntp       1587  0.0  0.2   4360  1352 ?        Ss   22:14   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -u ntp:ntp
> collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:14 /usr/sbin/collectd -P /var/run/collectd/collectd.pid -C /etc/collectd.conf
> root      1623  0.0  0.1   1944   508 ?        Ss   22:14   0:00 /usr/sbin/gpm -m /dev/input/mice -t ps2
> root      1663  0.0  0.1   2116   760 ?        Ss   22:14   0:00 /sbin/rpcbind
> root      1677  0.0  0.2   2188   968 ?        Ss   22:14   0:00 /sbin/rpc.statd --no-notify
> root      1737  0.0  0.2   4204   988 ?        Ss   22:15   0:00 /usr/sbin/sshd
> root       942  0.0  0.4   7004  2264 ?        Ss   22:23   0:00  \_ sshd: root@pts/2 
> root       944  0.0  0.3   4876  1812 pts/2    Ss   22:23   0:00      \_ -bash
> root      1791  0.0  0.1   4124   960 pts/2    R+   22:53   0:00          \_ ps auxf
> root      1766  0.0  0.1   1892   780 tty1     Ss+  22:15   0:00 /sbin/agetty 38400 tty1 linux
> root      1767  0.0  0.1   1892   784 ttyS0    Ss+  22:15   0:00 /sbin/agetty 115200 ttyS0 vt100
> root       982  0.0  0.1   1892   784 tty5     Ss+  22:38   0:00 /sbin/agetty 38400 tty5 linux
> root      1011  0.0  0.3   4876  1748 tty3     Ss+  22:38   0:00 -bash
> root      1126  0.0  0.1   1892   780 tty4     Ss+  22:38   0:00 /sbin/agetty 38400 tty4 linux

> slabinfo - version: 2.1
> # name            <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <limit> <batchcount> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
> squashfs_inode_cache   1920   1920    384   10    1 : tunables    0    0    0 : slabdata    192    192      0
> nfs_direct_cache       0      0     88   46    1 : tunables    0    0    0 : slabdata      0      0      0
> nfs_write_data        40     40    480    8    1 : tunables    0    0    0 : slabdata      5      5      0
> nfs_read_data         36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
> nfs_inode_cache       70     70    576   14    2 : tunables    0    0    0 : slabdata      5      5      0
> nfs_page              42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
> rpc_buffers           15     15   2080   15    8 : tunables    0    0    0 : slabdata      1      1      0
> rpc_tasks             25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
> rpc_inode_cache       36     36    448    9    1 : tunables    0    0    0 : slabdata      4      4      0
> fib6_nodes            64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
> ip6_dst_cache         29     42    192   21    1 : tunables    0    0    0 : slabdata      2      2      0
> ndisc_cache           21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> RAWv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
> UDPLITEv6              0      0    672   12    2 : tunables    0    0    0 : slabdata      0      0      0
> UDPv6                 12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
> tw_sock_TCPv6          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
> request_sock_TCPv6     32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> TCPv6                 12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
> aoe_bufs               0      0     64   64    1 : tunables    0    0    0 : slabdata      0      0      0
> scsi_sense_cache      32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> scsi_cmd_cache        25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
> sd_ext_cdb            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
> cfq_io_context       153    153     80   51    1 : tunables    0    0    0 : slabdata      3      3      0
> cfq_queue             36     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> mqueue_inode_cache      8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
> xfs_buf                0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
> fstrm_item             0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_mru_cache_elem      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_ili                0      0    168   24    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_inode              0      0    608   13    2 : tunables    0    0    0 : slabdata      0      0      0
> xfs_efi_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_efd_item           0      0    296   13    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_buf_item           0      0    184   22    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_log_item_desc      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_trans              0      0    240   17    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_ifork              0      0     72   56    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_dabuf              0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_da_state           0      0    352   11    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_btree_cur          0      0    160   25    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_bmap_free_item      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_log_ticket         0      0    192   21    1 : tunables    0    0    0 : slabdata      0      0      0
> xfs_ioend             51     51     80   51    1 : tunables    0    0    0 : slabdata      1      1      0
> reiser_inode_cache  13050  13050    400   10    1 : tunables    0    0    0 : slabdata   1305   1305      0
> configfs_dir_cache     64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
> kioctx                 0      0    224   18    1 : tunables    0    0    0 : slabdata      0      0      0
> kiocb                  0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
> inotify_event_private_data    128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
> inotify_inode_mark     46     46     88   46    1 : tunables    0    0    0 : slabdata      1      1      0
> fasync_cache           0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
> khugepaged_mm_slot      0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> nsproxy                0      0     40  102    1 : tunables    0    0    0 : slabdata      0      0      0
> posix_timers_cache      0      0    128   32    1 : tunables    0    0    0 : slabdata      0      0      0
> uid_cache             42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
> UNIX                  25     27    448    9    1 : tunables    0    0    0 : slabdata      3      3      0
> UDP-Lite               0      0    544   15    2 : tunables    0    0    0 : slabdata      0      0      0
> tcp_bind_bucket      128    128     32  128    1 : tunables    0    0    0 : slabdata      1      1      0
> inet_peer_cache       21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> ip_fib_trie          102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
> ip_fib_alias         102    102     40  102    1 : tunables    0    0    0 : slabdata      1      1      0
> ip_dst_cache          50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> arp_cache             21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> RAW                    8      8    512    8    1 : tunables    0    0    0 : slabdata      1      1      0
> UDP                   15     15    544   15    2 : tunables    0    0    0 : slabdata      1      1      0
> tw_sock_TCP           32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> request_sock_TCP      42     42     96   42    1 : tunables    0    0    0 : slabdata      1      1      0
> TCP                   13     13   1184   13    4 : tunables    0    0    0 : slabdata      1      1      0
> eventpoll_pwq          0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
> eventpoll_epi          0      0     96   42    1 : tunables    0    0    0 : slabdata      0      0      0
> sgpool-128            12     12   2592   12    8 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-64             12     12   1312   12    4 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-32             12     12    672   12    2 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-16             11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
> sgpool-8              21     21    192   21    1 : tunables    0    0    0 : slabdata      1      1      0
> scsi_data_buffer       0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> blkdev_queue          17     17    936   17    4 : tunables    0    0    0 : slabdata      1      1      0
> blkdev_requests       26     36    224   18    1 : tunables    0    0    0 : slabdata      2      2      0
> blkdev_ioc            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
> fsnotify_event_holder      0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
> fsnotify_event        56     56     72   56    1 : tunables    0    0    0 : slabdata      1      1      0
> bio-0                 25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
> biovec-256            10     10   3104   10    8 : tunables    0    0    0 : slabdata      1      1      0
> biovec-128             0      0   1568   10    4 : tunables    0    0    0 : slabdata      0      0      0
> biovec-64             10     10    800   10    2 : tunables    0    0    0 : slabdata      1      1      0
> biovec-16             18     18    224   18    1 : tunables    0    0    0 : slabdata      1      1      0
> sock_inode_cache      70     77    352   11    1 : tunables    0    0    0 : slabdata      7      7      0
> skbuff_fclone_cache     11     11    352   11    1 : tunables    0    0    0 : slabdata      1      1      0
> skbuff_head_cache    517    567    192   21    1 : tunables    0    0    0 : slabdata     27     27      0
> file_lock_cache       36     36    112   36    1 : tunables    0    0    0 : slabdata      1      1      0
> shmem_inode_cache    910    910    408   10    1 : tunables    0    0    0 : slabdata     91     91      0
> Acpi-Operand         949    949     56   73    1 : tunables    0    0    0 : slabdata     13     13      0
> Acpi-ParseExt         64     64     64   64    1 : tunables    0    0    0 : slabdata      1      1      0
> Acpi-Parse            85     85     48   85    1 : tunables    0    0    0 : slabdata      1      1      0
> Acpi-State            73     73     56   73    1 : tunables    0    0    0 : slabdata      1      1      0
> Acpi-Namespace       612    612     40  102    1 : tunables    0    0    0 : slabdata      6      6      0
> proc_inode_cache    6256   6256    344   23    2 : tunables    0    0    0 : slabdata    272    272      0
> sigqueue              25     25    160   25    1 : tunables    0    0    0 : slabdata      1      1      0
> bdev_cache            13     18    448    9    1 : tunables    0    0    0 : slabdata      2      2      0
> sysfs_dir_cache    13696  13696     64   64    1 : tunables    0    0    0 : slabdata    214    214      0
> mnt_cache             50     50    160   25    1 : tunables    0    0    0 : slabdata      2      2      0
> filp              422592 422592    128   32    1 : tunables    0    0    0 : slabdata  13206  13206      0
> inode_cache         3954   3972    320   12    1 : tunables    0    0    0 : slabdata    331    331      0
> dentry             39312  39312    144   28    1 : tunables    0    0    0 : slabdata   1404   1404      0
> names_cache            7      7   4128    7    8 : tunables    0    0    0 : slabdata      1      1      0
> buffer_head        13560  37856     72   56    1 : tunables    0    0    0 : slabdata    676    676      0
> vm_area_struct       862   1053    104   39    1 : tunables    0    0    0 : slabdata     27     27      0
> mm_struct             27     54    448    9    1 : tunables    0    0    0 : slabdata      6      6      0
> fs_cache              80    128     64   64    1 : tunables    0    0    0 : slabdata      2      2      0
> files_cache         4325   4326    192   21    1 : tunables    0    0    0 : slabdata    206    206      0
> signal_cache        7848   7848    512    8    1 : tunables    0    0    0 : slabdata    981    981      0
> sighand_cache         64    108   1312   12    4 : tunables    0    0    0 : slabdata      9      9      0
> task_xstate          392    392    576   14    2 : tunables    0    0    0 : slabdata     28     28      0
> task_struct         7866   7866    832   19    4 : tunables    0    0    0 : slabdata    414    414      0
> cred_jar           21792  21792    128   32    1 : tunables    0    0    0 : slabdata    681    681      0
> anon_vma_chain      1033   1632     40  102    1 : tunables    0    0    0 : slabdata     16     16      0
> anon_vma             707    896     32  128    1 : tunables    0    0    0 : slabdata      7      7      0
> pid                 7872   7872     64   64    1 : tunables    0    0    0 : slabdata    123    123      0
> radix_tree_node     6565   6565    312   13    1 : tunables    0    0    0 : slabdata    505    505      0
> idr_layer_cache      269    275    160   25    1 : tunables    0    0    0 : slabdata     11     11      0
> dma-kmalloc-8192       0      0   8208    3    8 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-4096       0      0   4112    7    8 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-2048       0      0   2064   15    8 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-1024       0      0   1040   15    4 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-512        0      0    528   15    2 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-256        0      0    272   15    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-128        0      0    144   28    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-64         0      0     80   51    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-32         0      0     48   85    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-16         0      0     32  128    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-8          0      0     24  170    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-192        0      0    208   19    1 : tunables    0    0    0 : slabdata      0      0      0
> dma-kmalloc-96         0      0    112   36    1 : tunables    0    0    0 : slabdata      0      0      0
> kmalloc-8192          12     12   8208    3    8 : tunables    0    0    0 : slabdata      4      4      0
> kmalloc-4096         285    294   4112    7    8 : tunables    0    0    0 : slabdata     42     42      0
> kmalloc-2048         547    555   2064   15    8 : tunables    0    0    0 : slabdata     37     37      0
> kmalloc-1024        3690   3690   1040   15    4 : tunables    0    0    0 : slabdata    246    246      0
> kmalloc-512          422    435    528   15    2 : tunables    0    0    0 : slabdata     29     29      0
> kmalloc-256           44     45    272   15    1 : tunables    0    0    0 : slabdata      3      3      0
> kmalloc-128          336    336    144   28    1 : tunables    0    0    0 : slabdata     12     12      0
> kmalloc-64          4486   4488     80   51    1 : tunables    0    0    0 : slabdata     88     88      0
> kmalloc-32          5354   5355     48   85    1 : tunables    0    0    0 : slabdata     63     63      0
> kmalloc-16          2351   5248     32  128    1 : tunables    0    0    0 : slabdata     41     41      0
> kmalloc-8           3566   3570     24  170    1 : tunables    0    0    0 : slabdata     21     21      0
> kmalloc-192          152    152    208   19    1 : tunables    0    0    0 : slabdata      8      8      0
> kmalloc-96          1038   1044    112   36    1 : tunables    0    0    0 : slabdata     29     29      0
> kmem_cache            32     32    128   32    1 : tunables    0    0    0 : slabdata      1      1      0
> kmem_cache_node      192    192     64   64    1 : tunables    0    0    0 : slabdata      3      3      0

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 21:10                       ` Bruno Prémont
  2011-04-25 21:26                         ` Paul E. McKenney
@ 2011-04-25 21:30                         ` Linus Torvalds
  2011-04-25 21:49                           ` Paul E. McKenney
  2011-04-25 22:08                         ` Mike Frysinger
  2 siblings, 1 reply; 88+ messages in thread
From: Linus Torvalds @ 2011-04-25 21:30 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: paulmck, Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
>
> Between 1-slabinfo and 2-slabinfo some values increased (a lot) while a few
> ones did decrease. Don't know which ones are RCU-affected and which ones are
> not.

It really sounds as if the tiny-rcu kthread somehow just stops
handling callbacks. The ones that keep increasing do seem to be all
rcu-free'd (but I didn't really check).

The thing is shown as running:

root         6  0.0  0.0      0     0 ?        R    22:14   0:00  \_
[rcu_kthread]

but nothing seems to happen and the CPU time hasn't increased at all.

I dunno. Makes no  sense to me, but yeah, I'm definitely blaming
tiny-rcu. Paul, any ideas?

                          Linus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 21:30                         ` Linus Torvalds
@ 2011-04-25 21:49                           ` Paul E. McKenney
  2011-04-26  6:19                             ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-25 21:49 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Bruno Prémont, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, Apr 25, 2011 at 02:30:02PM -0700, Linus Torvalds wrote:
> 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
> >
> > Between 1-slabinfo and 2-slabinfo some values increased (a lot) while a few
> > ones did decrease. Don't know which ones are RCU-affected and which ones are
> > not.
> 
> It really sounds as if the tiny-rcu kthread somehow just stops
> handling callbacks. The ones that keep increasing do seem to be all
> rcu-free'd (but I didn't really check).
> 
> The thing is shown as running:
> 
> root         6  0.0  0.0      0     0 ?        R    22:14   0:00  \_
> [rcu_kthread]
> 
> but nothing seems to happen and the CPU time hasn't increased at all.
> 
> I dunno. Makes no  sense to me, but yeah, I'm definitely blaming
> tiny-rcu. Paul, any ideas?

So the only ways I know for something to be runnable but not run on
a uniprocessor are:

1.	The CPU is continually busy with higher-priority work.
	This doesn't make sense in this case because the system
	is idle much of the time.

2.	The system is hibernating.  This doesn't make sense, otherwise
	"ps" wouldn't run either.

Any others ideas on how the heck a process can get into this state?
(I have thus far been completely unable to reproduce it.)

The process in question has a loop in rcu_kthread() in kernel/rcutiny.c.
This loop contains a wait_event_interruptible(), waits for a global flag
to become non-zero.

It is awakened by invoke_rcu_kthread() in that same file, which
simply sets the flag to 1 and does a wake_up(), all with hardirqs
disabled.

Hmmm...  One "hail mary" patch below.  What it does is make rcu_kthread
run at normal priority rather than at real-time priority.  This is
not for inclusion -- it breaks RCU priority boosting.  But well worth
trying.

							Thanx, Paul

------------------------------------------------------------------------

diff --git a/kernel/rcutiny.c b/kernel/rcutiny.c
index 0c343b9..4551824 100644
--- a/kernel/rcutiny.c
+++ b/kernel/rcutiny.c
@@ -314,11 +314,15 @@ EXPORT_SYMBOL_GPL(rcu_barrier_sched);
  */
 static int __init rcu_spawn_kthreads(void)
 {
+#if 0
 	struct sched_param sp;
+#endif
 
 	rcu_kthread_task = kthread_run(rcu_kthread, NULL, "rcu_kthread");
+#if 0
 	sp.sched_priority = RCU_BOOST_PRIO;
 	sched_setscheduler_nocheck(rcu_kthread_task, SCHED_FIFO, &sp);
+#endif
 	return 0;
 }
 early_initcall(rcu_spawn_kthreads);

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply related	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 21:10                       ` Bruno Prémont
  2011-04-25 21:26                         ` Paul E. McKenney
  2011-04-25 21:30                         ` Linus Torvalds
@ 2011-04-25 22:08                         ` Mike Frysinger
  2 siblings, 0 replies; 88+ messages in thread
From: Mike Frysinger @ 2011-04-25 22:08 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: paulmck, Linus Torvalds, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

2011/4/25 Bruno Prémont:
> With + + TREE_PREMPT_RCU system was stable compiling for over 2 hours,
> switching to TINY_RCU, filp count started increasing pretty early after beginning
> compiling.

since you can reproduce fairly easily, could you try some of the major
rc's to see if you could narrow down things ?  see if 2.6.39-rc[123]
all act the same while 2.6.38 works ?
-mike

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 21:49                           ` Paul E. McKenney
@ 2011-04-26  6:19                             ` Bruno Prémont
  2011-04-26 11:27                               ` Paul E. McKenney
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-26  6:19 UTC (permalink / raw)
  To: paulmck, Mike Frysinger
  Cc: Linus Torvalds, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Mon, 25 Apr 2011 14:49:33 "Paul E. McKenney" wrote:
> On Mon, Apr 25, 2011 at 02:30:02PM -0700, Linus Torvalds wrote:
> > 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
> > >
> > > Between 1-slabinfo and 2-slabinfo some values increased (a lot) while a few
> > > ones did decrease. Don't know which ones are RCU-affected and which ones are
> > > not.
> > 
> > It really sounds as if the tiny-rcu kthread somehow just stops
> > handling callbacks. The ones that keep increasing do seem to be all
> > rcu-free'd (but I didn't really check).
> > 
> > The thing is shown as running:
> > 
> > root         6  0.0  0.0      0     0 ?        R    22:14   0:00  \_
> > [rcu_kthread]
> > 
> > but nothing seems to happen and the CPU time hasn't increased at all.
> > 
> > I dunno. Makes no  sense to me, but yeah, I'm definitely blaming
> > tiny-rcu. Paul, any ideas?
> 
> So the only ways I know for something to be runnable but not run on
> a uniprocessor are:
> 
> 1.	The CPU is continually busy with higher-priority work.
> 	This doesn't make sense in this case because the system
> 	is idle much of the time.
> 
> 2.	The system is hibernating.  This doesn't make sense, otherwise
> 	"ps" wouldn't run either.
> 
> Any others ideas on how the heck a process can get into this state?
> (I have thus far been completely unable to reproduce it.)
> 
> The process in question has a loop in rcu_kthread() in kernel/rcutiny.c.
> This loop contains a wait_event_interruptible(), waits for a global flag
> to become non-zero.
> 
> It is awakened by invoke_rcu_kthread() in that same file, which
> simply sets the flag to 1 and does a wake_up(), all with hardirqs
> disabled.
> 
> Hmmm...  One "hail mary" patch below.  What it does is make rcu_kthread
> run at normal priority rather than at real-time priority.  This is
> not for inclusion -- it breaks RCU priority boosting.  But well worth
> trying.
> 
> 							Thanx, Paul
> 
> ------------------------------------------------------------------------
> 
> diff --git a/kernel/rcutiny.c b/kernel/rcutiny.c
> index 0c343b9..4551824 100644
> --- a/kernel/rcutiny.c
> +++ b/kernel/rcutiny.c
> @@ -314,11 +314,15 @@ EXPORT_SYMBOL_GPL(rcu_barrier_sched);
>   */
>  static int __init rcu_spawn_kthreads(void)
>  {
> +#if 0
>  	struct sched_param sp;
> +#endif
>  
>  	rcu_kthread_task = kthread_run(rcu_kthread, NULL, "rcu_kthread");
> +#if 0
>  	sp.sched_priority = RCU_BOOST_PRIO;
>  	sched_setscheduler_nocheck(rcu_kthread_task, SCHED_FIFO, &sp);
> +#endif
>  	return 0;
>  }
>  early_initcall(rcu_spawn_kthreads);

I will give that patch a shot on Wednesday evening (European time) as I
wont have enough time in front of the affected box until then to do any
deeper testing. (same for trying to out with the other -rc kernels as
suggested by Mike)

Though I will use the few minutes I have this evening to try to fetch
kernel traces of running tasks with sysrq+t which may eventually give
us a hint at where rcu_thread is stuck/waiting.

Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26  6:19                             ` Bruno Prémont
@ 2011-04-26 11:27                               ` Paul E. McKenney
  2011-04-26 16:38                                 ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-26 11:27 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Mike Frysinger, Linus Torvalds, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Tue, Apr 26, 2011 at 08:19:04AM +0200, Bruno Prémont wrote:
> On Mon, 25 Apr 2011 14:49:33 "Paul E. McKenney" wrote:
> > On Mon, Apr 25, 2011 at 02:30:02PM -0700, Linus Torvalds wrote:
> > > 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
> > > >
> > > > Between 1-slabinfo and 2-slabinfo some values increased (a lot) while a few
> > > > ones did decrease. Don't know which ones are RCU-affected and which ones are
> > > > not.
> > > 
> > > It really sounds as if the tiny-rcu kthread somehow just stops
> > > handling callbacks. The ones that keep increasing do seem to be all
> > > rcu-free'd (but I didn't really check).
> > > 
> > > The thing is shown as running:
> > > 
> > > root         6  0.0  0.0      0     0 ?        R    22:14   0:00  \_
> > > [rcu_kthread]
> > > 
> > > but nothing seems to happen and the CPU time hasn't increased at all.
> > > 
> > > I dunno. Makes no  sense to me, but yeah, I'm definitely blaming
> > > tiny-rcu. Paul, any ideas?
> > 
> > So the only ways I know for something to be runnable but not run on
> > a uniprocessor are:
> > 
> > 1.	The CPU is continually busy with higher-priority work.
> > 	This doesn't make sense in this case because the system
> > 	is idle much of the time.
> > 
> > 2.	The system is hibernating.  This doesn't make sense, otherwise
> > 	"ps" wouldn't run either.
> > 
> > Any others ideas on how the heck a process can get into this state?
> > (I have thus far been completely unable to reproduce it.)
> > 
> > The process in question has a loop in rcu_kthread() in kernel/rcutiny.c.
> > This loop contains a wait_event_interruptible(), waits for a global flag
> > to become non-zero.
> > 
> > It is awakened by invoke_rcu_kthread() in that same file, which
> > simply sets the flag to 1 and does a wake_up(), all with hardirqs
> > disabled.
> > 
> > Hmmm...  One "hail mary" patch below.  What it does is make rcu_kthread
> > run at normal priority rather than at real-time priority.  This is
> > not for inclusion -- it breaks RCU priority boosting.  But well worth
> > trying.
> > 
> > 							Thanx, Paul
> > 
> > ------------------------------------------------------------------------
> > 
> > diff --git a/kernel/rcutiny.c b/kernel/rcutiny.c
> > index 0c343b9..4551824 100644
> > --- a/kernel/rcutiny.c
> > +++ b/kernel/rcutiny.c
> > @@ -314,11 +314,15 @@ EXPORT_SYMBOL_GPL(rcu_barrier_sched);
> >   */
> >  static int __init rcu_spawn_kthreads(void)
> >  {
> > +#if 0
> >  	struct sched_param sp;
> > +#endif
> >  
> >  	rcu_kthread_task = kthread_run(rcu_kthread, NULL, "rcu_kthread");
> > +#if 0
> >  	sp.sched_priority = RCU_BOOST_PRIO;
> >  	sched_setscheduler_nocheck(rcu_kthread_task, SCHED_FIFO, &sp);
> > +#endif
> >  	return 0;
> >  }
> >  early_initcall(rcu_spawn_kthreads);
> 
> I will give that patch a shot on Wednesday evening (European time) as I
> wont have enough time in front of the affected box until then to do any
> deeper testing. (same for trying to out with the other -rc kernels as
> suggested by Mike)

Thank you for both of these!!!

> Though I will use the few minutes I have this evening to try to fetch
> kernel traces of running tasks with sysrq+t which may eventually give
> us a hint at where rcu_thread is stuck/waiting.

This would be very helpful to me!

For my part, I will use some plane time today to stare at my code some
more and see what bugs I can find.

Linus, in the meantime, please feel free to revert 687d7a960 (rcu:
restrict TREE_RCU to SMP builds with !PREEMPT), which would allow anyone
not wanting to help chase this down to get on with their lives.

							Thanx, Paul

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 11:27                               ` Paul E. McKenney
@ 2011-04-26 16:38                                 ` Bruno Prémont
  2011-04-26 17:09                                   ` Bruno Prémont
  2011-04-26 17:12                                   ` Linus Torvalds
  0 siblings, 2 replies; 88+ messages in thread
From: Bruno Prémont @ 2011-04-26 16:38 UTC (permalink / raw)
  To: paulmck
  Cc: Mike Frysinger, Linus Torvalds, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 3683 bytes --]

On Tue, 26 April 2011 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> On Tue, Apr 26, 2011 at 08:19:04AM +0200, Bruno Prémont wrote:
> > Though I will use the few minutes I have this evening to try to fetch
> > kernel traces of running tasks with sysrq+t which may eventually give
> > us a hint at where rcu_thread is stuck/waiting.
> 
> This would be very helpful to me!

Here it comes:

rcu_kthread (when build processes are STOPped):
[  836.050003] rcu_kthread     R running   7324     6      2 0x00000000
[  836.050003]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
[  836.050003]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
[  836.050003]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
[  836.050003] Call Trace:
[  836.050003]  [<c10bf8a2>] ? check_object+0x92/0x210
[  836.050003]  [<c10be848>] ? init_object+0x38/0x70
[  836.050003]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
[  836.050003]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
[  836.050003]  [<c13c8ec7>] schedule_timeout+0x137/0x280
[  836.050003]  [<c10c02b8>] ? kmem_cache_free+0xe8/0x140
[  836.050003]  [<c103db60>] ? sys_gettid+0x20/0x20
[  836.050003]  [<c13c9064>] schedule_timeout_interruptible+0x14/0x20
[  836.050003]  [<c10736e0>] rcu_kthread+0xa0/0xc0
[  836.050003]  [<c104de00>] ? wake_up_bit+0x70/0x70
[  836.050003]  [<c1073640>] ? rcu_process_callbacks+0x60/0x60
[  836.050003]  [<c104d874>] kthread+0x74/0x80
[  836.050003]  [<c104d800>] ? flush_kthread_worker+0x90/0x90
[  836.050003]  [<c13caeb6>] kernel_thread_helper+0x6/0xd

a few minutes later when build processes have been killed:
[  966.930008] rcu_kthread     R running   7324     6      2 0x00000000
[  966.930008]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
[  966.930008]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
[  966.930008]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
[  966.930008] Call Trace:
[  966.930008]  [<c10bf8a2>] ? check_object+0x92/0x210
[  966.930008]  [<c10be848>] ? init_object+0x38/0x70
[  966.930008]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
[  966.930008]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
[  966.930008]  [<c13c8ec7>] schedule_timeout+0x137/0x280
[  966.930008]  [<c10c02b8>] ? kmem_cache_free+0xe8/0x140
[  966.930008]  [<c103db60>] ? sys_gettid+0x20/0x20
[  966.930008]  [<c13c9064>] schedule_timeout_interruptible+0x14/0x20
[  966.930008]  [<c10736e0>] rcu_kthread+0xa0/0xc0
[  966.930008]  [<c104de00>] ? wake_up_bit+0x70/0x70
[  966.930008]  [<c1073640>] ? rcu_process_callbacks+0x60/0x60
[  966.930008]  [<c104d874>] kthread+0x74/0x80
[  966.930008]  [<c104d800>] ? flush_kthread_worker+0x90/0x90
[  966.930008]  [<c13caeb6>] kernel_thread_helper+0x6/0xd

Attached (gzipped) the complete dmesg log (dmesg-t1 contains dmesg from boot until
after first sysrq+t  -- dmesg-t2 the output of sysrq+t 2 minutes later
after having killed build processes).
Just in case, I joined slabinfo.
Ten minutes later rcu_kthread trace has not changed at all.

> 
> For my part, I will use some plane time today to stare at my code some
> more and see what bugs I can find.

Possibly useful detail, it's somewhere during my compile that rcu_kthread
seems to stop doing its job as after booting things look fine (no slabs
piling up). Some part of the whole emerge -> configure and/or emerge -> make -> gcc
process tree must be confusing kernel as it's only then that things
start piling up (don't know if other kinds of work trigger it as well)

Bruno

[-- Attachment #2: dmesg-t1.gz --]
[-- Type: application/x-gzip, Size: 24299 bytes --]

[-- Attachment #3: dmesg-t2.gz --]
[-- Type: application/x-gzip, Size: 11534 bytes --]

[-- Attachment #4: slabinfo.gz --]
[-- Type: application/x-gzip, Size: 2283 bytes --]

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 16:38                                 ` Bruno Prémont
@ 2011-04-26 17:09                                   ` Bruno Prémont
  2011-04-26 17:18                                     ` Linus Torvalds
  2011-04-26 17:12                                   ` Linus Torvalds
  1 sibling, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-26 17:09 UTC (permalink / raw)
  To: paulmck
  Cc: Mike Frysinger, Linus Torvalds, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Tue, 26 April 2011 Bruno Prémont <bonbons@linux-vserver.org> wrote:
> On Tue, 26 April 2011 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> > On Tue, Apr 26, 2011 at 08:19:04AM +0200, Bruno Prémont wrote:
> > > Though I will use the few minutes I have this evening to try to fetch
> > > kernel traces of running tasks with sysrq+t which may eventually give
> > > us a hint at where rcu_thread is stuck/waiting.
> > 
> > This would be very helpful to me!
> 
> Here it comes:
> 
> rcu_kthread (when build processes are STOPped):
> [  836.050003] rcu_kthread     R running   7324     6      2 0x00000000
> [  836.050003]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
> [  836.050003]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
> [  836.050003]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
> [  836.050003] Call Trace:
> [  836.050003]  [<c10bf8a2>] ? check_object+0x92/0x210
> [  836.050003]  [<c10be848>] ? init_object+0x38/0x70
> [  836.050003]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
> [  836.050003]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
> [  836.050003]  [<c13c8ec7>] schedule_timeout+0x137/0x280
> [  836.050003]  [<c10c02b8>] ? kmem_cache_free+0xe8/0x140
> [  836.050003]  [<c103db60>] ? sys_gettid+0x20/0x20
> [  836.050003]  [<c13c9064>] schedule_timeout_interruptible+0x14/0x20
> [  836.050003]  [<c10736e0>] rcu_kthread+0xa0/0xc0
> [  836.050003]  [<c104de00>] ? wake_up_bit+0x70/0x70
> [  836.050003]  [<c1073640>] ? rcu_process_callbacks+0x60/0x60
> [  836.050003]  [<c104d874>] kthread+0x74/0x80
> [  836.050003]  [<c104d800>] ? flush_kthread_worker+0x90/0x90
> [  836.050003]  [<c13caeb6>] kernel_thread_helper+0x6/0xd
> 
> a few minutes later when build processes have been killed:
> [  966.930008] rcu_kthread     R running   7324     6      2 0x00000000
> [  966.930008]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
> [  966.930008]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
> [  966.930008]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
> [  966.930008] Call Trace:
> [  966.930008]  [<c10bf8a2>] ? check_object+0x92/0x210
> [  966.930008]  [<c10be848>] ? init_object+0x38/0x70
> [  966.930008]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
> [  966.930008]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
> [  966.930008]  [<c13c8ec7>] schedule_timeout+0x137/0x280
> [  966.930008]  [<c10c02b8>] ? kmem_cache_free+0xe8/0x140
> [  966.930008]  [<c103db60>] ? sys_gettid+0x20/0x20
> [  966.930008]  [<c13c9064>] schedule_timeout_interruptible+0x14/0x20
> [  966.930008]  [<c10736e0>] rcu_kthread+0xa0/0xc0
> [  966.930008]  [<c104de00>] ? wake_up_bit+0x70/0x70
> [  966.930008]  [<c1073640>] ? rcu_process_callbacks+0x60/0x60
> [  966.930008]  [<c104d874>] kthread+0x74/0x80
> [  966.930008]  [<c104d800>] ? flush_kthread_worker+0x90/0x90
> [  966.930008]  [<c13caeb6>] kernel_thread_helper+0x6/0xd
> 
> Attached (gzipped) the complete dmesg log (dmesg-t1 contains dmesg from boot until
> after first sysrq+t  -- dmesg-t2 the output of sysrq+t 2 minutes later
> after having killed build processes).
> Just in case, I joined slabinfo.
> Ten minutes later rcu_kthread trace has not changed at all.

Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
context switches and exactly one non-voluntary one.

In addition when rcu_kthread has stopped doing its work
`swapoff $(swapdevice)` seems to block forever (at least normal shutdown
blocks on disabling swap device).
If I get to do it when I get back home I will manually try to swapoff
and take process traces with sysrq-t.

Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 16:38                                 ` Bruno Prémont
  2011-04-26 17:09                                   ` Bruno Prémont
@ 2011-04-26 17:12                                   ` Linus Torvalds
  2011-04-26 18:50                                     ` Paul E. McKenney
  1 sibling, 1 reply; 88+ messages in thread
From: Linus Torvalds @ 2011-04-26 17:12 UTC (permalink / raw)
  To: Bruno Prémont, Ingo Molnar, Peter Zijlstra
  Cc: paulmck, Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Tue, Apr 26, 2011 at 9:38 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
>
> Here it comes:
>
> rcu_kthread (when build processes are STOPped):
> [  836.050003] rcu_kthread     R running   7324     6      2 0x00000000
> [  836.050003]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
> [  836.050003]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
> [  836.050003]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
> [  836.050003] Call Trace:
> [  836.050003]  [<c10bf8a2>] ? check_object+0x92/0x210
> [  836.050003]  [<c10be848>] ? init_object+0x38/0x70
> [  836.050003]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
> [  836.050003]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
> [  836.050003]  [<c13c8ec7>] schedule_timeout+0x137/0x280

Hmm.

I'm adding Ingo and Peter to the cc, because this whole "rcu_kthread
is running, but never actually running" is starting to smell like a
scheduler issue.

Peter/Ingo: RCUTINY seems to be broken for Bruno. During any kind of
heavy workload, at some point it looks like rcu_kthread simply stops
making any progress. It's constantly in runnable state, but it doesn't
actually use any CPU time, and it's not processing the RCU callbacks,
so the RCU memory freeing isn't happening, and slabs just build up
until the machine dies.

And it really is RCUTINY, because the thing doesn't happen with the
regular tree-RCU.

This is without CONFIG_RCU_BOOST_PRIO, so we basically have

        struct sched_param sp;

        rcu_kthread_task = kthread_run(rcu_kthread, NULL, "rcu_kthread");
        sp.sched_priority = RCU_BOOST_PRIO;
        sched_setscheduler_nocheck(rcu_kthread_task, SCHED_FIFO, &sp);

where RCU_BOOST_PRIO is 1 for the non-boost case.

Is that so low that even the idle thread will take priority? It's a UP
config with PREEMPT_VOLUNTARY. So pretty much _all_ the stars are
aligned for odd scheduling behavior.

Other users of SCHED_FIFO tend to set the priority really high (eg
"MAX_RT_PRIO-1" is clearly the default one - softirq's, watchdog), but
"1" is not unheard of either (touchscreen/ucb1400_ts and
mmc/core/sdio_irq), and there are some other random choises out tere.

Any ideas?

                             Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 17:09                                   ` Bruno Prémont
@ 2011-04-26 17:18                                     ` Linus Torvalds
  2011-04-26 22:28                                       ` Thomas Gleixner
  0 siblings, 1 reply; 88+ messages in thread
From: Linus Torvalds @ 2011-04-26 17:18 UTC (permalink / raw)
  To: Bruno Prémont, Ingo Molnar, Peter Zijlstra
  Cc: paulmck, Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
>
> Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
> context switches and exactly one non-voluntary one.
>
> In addition when rcu_kthread has stopped doing its work
> `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
> blocks on disabling swap device).
> If I get to do it when I get back home I will manually try to swapoff
> and take process traces with sysrq-t.

That "exactly one non-voluntary one" sounds like the smoking gun.

Normally SCHED_FIFO runs until it voluntarily gives up the CPU. That's
kind of the point of SCHED_FIFO. Involuntary context switches happen
when some higher-priority SCHED_FIFO process becomes runnable (irq
handlers? You _do_ have CONFIG_IRQ_FORCED_THREADING=y in your config
too), and maybe there is a bug in the runqueue handling for that case.

Ingo, do you have any tests for SCHED_FIFO scheduling? Particularly
with UP and voluntary preempt?

                          Linus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 17:12                                   ` Linus Torvalds
@ 2011-04-26 18:50                                     ` Paul E. McKenney
  2011-04-26 19:17                                       ` Sedat Dilek
  0 siblings, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-26 18:50 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Bruno Prémont, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, linux-kernel, linux-mm, linux-fsdevel,
	Paul E. McKenney, Pekka Enberg

On Tue, Apr 26, 2011 at 10:12:39AM -0700, Linus Torvalds wrote:
> On Tue, Apr 26, 2011 at 9:38 AM, Bruno Prémont
> <bonbons@linux-vserver.org> wrote:
> >
> > Here it comes:
> >
> > rcu_kthread (when build processes are STOPped):
> > [  836.050003] rcu_kthread     R running   7324     6      2 0x00000000
> > [  836.050003]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
> > [  836.050003]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
> > [  836.050003]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
> > [  836.050003] Call Trace:
> > [  836.050003]  [<c10bf8a2>] ? check_object+0x92/0x210
> > [  836.050003]  [<c10be848>] ? init_object+0x38/0x70
> > [  836.050003]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
> > [  836.050003]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
> > [  836.050003]  [<c13c8ec7>] schedule_timeout+0x137/0x280
> 
> Hmm.
> 
> I'm adding Ingo and Peter to the cc, because this whole "rcu_kthread
> is running, but never actually running" is starting to smell like a
> scheduler issue.
> 
> Peter/Ingo: RCUTINY seems to be broken for Bruno. During any kind of
> heavy workload, at some point it looks like rcu_kthread simply stops
> making any progress. It's constantly in runnable state, but it doesn't
> actually use any CPU time, and it's not processing the RCU callbacks,
> so the RCU memory freeing isn't happening, and slabs just build up
> until the machine dies.
> 
> And it really is RCUTINY, because the thing doesn't happen with the
> regular tree-RCU.

The difference between TINY_RCU and TREE_RCU is that TREE_RCU still uses
softirq for the core RCU processing.  TINY_RCU switched to a kthread
when I implemented RCU priority boosting.  There is a similar change in
my -rcu tree that makes TREE_RCU use kthreads, and Sedat has been running
into a very similar problem with that change in place.  Which is why I
do not yet push it to the -next tree.

> This is without CONFIG_RCU_BOOST_PRIO, so we basically have
> 
>         struct sched_param sp;
> 
>         rcu_kthread_task = kthread_run(rcu_kthread, NULL, "rcu_kthread");
>         sp.sched_priority = RCU_BOOST_PRIO;
>         sched_setscheduler_nocheck(rcu_kthread_task, SCHED_FIFO, &sp);
> 
> where RCU_BOOST_PRIO is 1 for the non-boost case.

Good point!  Bruno, Sedat, could you please set CONFIG_RCU_BOOST_PRIO to
(say) 50, and see if this still happens?  (I bet that you do, but...)

> Is that so low that even the idle thread will take priority? It's a UP
> config with PREEMPT_VOLUNTARY. So pretty much _all_ the stars are
> aligned for odd scheduling behavior.
> 
> Other users of SCHED_FIFO tend to set the priority really high (eg
> "MAX_RT_PRIO-1" is clearly the default one - softirq's, watchdog), but
> "1" is not unheard of either (touchscreen/ucb1400_ts and
> mmc/core/sdio_irq), and there are some other random choises out tere.
> 
> Any ideas?

I have found one bug so far in my code, but it only affects TREE_RCU
in my -rcu tree, and even then only if HOTPLUG_CPU is enabled.  I am
testing a fix, but I expect Sedat's tests to still break.

I gave Sedat a patch that make rcu_kthread() run at normal (non-realtime)
priority, and he did not see the failure.  So running non-realtime at
least greatly reduces the probability of failure.

							Thanx, Paul

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 18:50                                     ` Paul E. McKenney
@ 2011-04-26 19:17                                       ` Sedat Dilek
  2011-04-27 22:02                                         ` Paul E. McKenney
  0 siblings, 1 reply; 88+ messages in thread
From: Sedat Dilek @ 2011-04-26 19:17 UTC (permalink / raw)
  To: paulmck
  Cc: Linus Torvalds, Bruno Prémont, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Tue, Apr 26, 2011 at 8:50 PM, Paul E. McKenney
<paulmck@linux.vnet.ibm.com> wrote:
> On Tue, Apr 26, 2011 at 10:12:39AM -0700, Linus Torvalds wrote:
>> On Tue, Apr 26, 2011 at 9:38 AM, Bruno Prémont
>> <bonbons@linux-vserver.org> wrote:
>> >
>> > Here it comes:
>> >
>> > rcu_kthread (when build processes are STOPped):
>> > [  836.050003] rcu_kthread     R running   7324     6      2 0x00000000
>> > [  836.050003]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
>> > [  836.050003]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
>> > [  836.050003]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
>> > [  836.050003] Call Trace:
>> > [  836.050003]  [<c10bf8a2>] ? check_object+0x92/0x210
>> > [  836.050003]  [<c10be848>] ? init_object+0x38/0x70
>> > [  836.050003]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
>> > [  836.050003]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
>> > [  836.050003]  [<c13c8ec7>] schedule_timeout+0x137/0x280
>>
>> Hmm.
>>
>> I'm adding Ingo and Peter to the cc, because this whole "rcu_kthread
>> is running, but never actually running" is starting to smell like a
>> scheduler issue.
>>
>> Peter/Ingo: RCUTINY seems to be broken for Bruno. During any kind of
>> heavy workload, at some point it looks like rcu_kthread simply stops
>> making any progress. It's constantly in runnable state, but it doesn't
>> actually use any CPU time, and it's not processing the RCU callbacks,
>> so the RCU memory freeing isn't happening, and slabs just build up
>> until the machine dies.
>>
>> And it really is RCUTINY, because the thing doesn't happen with the
>> regular tree-RCU.
>
> The difference between TINY_RCU and TREE_RCU is that TREE_RCU still uses
> softirq for the core RCU processing.  TINY_RCU switched to a kthread
> when I implemented RCU priority boosting.  There is a similar change in
> my -rcu tree that makes TREE_RCU use kthreads, and Sedat has been running
> into a very similar problem with that change in place.  Which is why I
> do not yet push it to the -next tree.
>
>> This is without CONFIG_RCU_BOOST_PRIO, so we basically have
>>
>>         struct sched_param sp;
>>
>>         rcu_kthread_task = kthread_run(rcu_kthread, NULL, "rcu_kthread");
>>         sp.sched_priority = RCU_BOOST_PRIO;
>>         sched_setscheduler_nocheck(rcu_kthread_task, SCHED_FIFO, &sp);
>>
>> where RCU_BOOST_PRIO is 1 for the non-boost case.
>
> Good point!  Bruno, Sedat, could you please set CONFIG_RCU_BOOST_PRIO to
> (say) 50, and see if this still happens?  (I bet that you do, but...)
>

What's with CONFIG_RCU_BOOST_DELAY setting?

Are those values OK?

$ egrep 'M486|M686|X86_UP|CONFIG_SMP|NR_CPUS|PREEMPT|_RCU|_HIGHMEM|PAE' .config
CONFIG_TREE_PREEMPT_RCU=y
CONFIG_PREEMPT_RCU=y
CONFIG_RCU_TRACE=y
CONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_TREE_RCU_TRACE=y
CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_PRIO=50
CONFIG_RCU_BOOST_DELAY=500
CONFIG_SMP=y
# CONFIG_M486 is not set
CONFIG_M686=y
CONFIG_NR_CPUS=32
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
CONFIG_DEBUG_PREEMPT=y
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_RCU_TORTURE_TEST=m
CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_CPU_STALL_VERBOSE=y
CONFIG_PREEMPT_TRACER=y

- Sedat -

>> Is that so low that even the idle thread will take priority? It's a UP
>> config with PREEMPT_VOLUNTARY. So pretty much _all_ the stars are
>> aligned for odd scheduling behavior.
>>
>> Other users of SCHED_FIFO tend to set the priority really high (eg
>> "MAX_RT_PRIO-1" is clearly the default one - softirq's, watchdog), but
>> "1" is not unheard of either (touchscreen/ucb1400_ts and
>> mmc/core/sdio_irq), and there are some other random choises out tere.
>>
>> Any ideas?
>
> I have found one bug so far in my code, but it only affects TREE_RCU
> in my -rcu tree, and even then only if HOTPLUG_CPU is enabled.  I am
> testing a fix, but I expect Sedat's tests to still break.
>
> I gave Sedat a patch that make rcu_kthread() run at normal (non-realtime)
> priority, and he did not see the failure.  So running non-realtime at
> least greatly reduces the probability of failure.
>
>                                                        Thanx, Paul
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 17:18                                     ` Linus Torvalds
@ 2011-04-26 22:28                                       ` Thomas Gleixner
  2011-04-27  6:15                                         ` Bruno Prémont
  2011-04-27 21:55                                         ` Paul E. McKenney
  0 siblings, 2 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-26 22:28 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Bruno Prémont, Ingo Molnar, Peter Zijlstra, paulmck,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2282 bytes --]

On Tue, 26 Apr 2011, Linus Torvalds wrote:

> On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont
> <bonbons@linux-vserver.org> wrote:
> >
> > Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
> > context switches and exactly one non-voluntary one.
> >
> > In addition when rcu_kthread has stopped doing its work
> > `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
> > blocks on disabling swap device).
> > If I get to do it when I get back home I will manually try to swapoff
> > and take process traces with sysrq-t.
> 
> That "exactly one non-voluntary one" sounds like the smoking gun.
> 
> Normally SCHED_FIFO runs until it voluntarily gives up the CPU. That's
> kind of the point of SCHED_FIFO. Involuntary context switches happen
> when some higher-priority SCHED_FIFO process becomes runnable (irq
> handlers? You _do_ have CONFIG_IRQ_FORCED_THREADING=y in your config
> too), and maybe there is a bug in the runqueue handling for that case.

The forced irq threading is only effective when you add the command
line parameter "threadirqs". I don't see any irq threads in the ps
outputs, so that's not the problem.

Though the whole ps output is weird. There is only one thread/process
which accumulated CPU time

collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:14

All others show 0:00 CPU time - not only kthread_rcu.

Bruno, are you running on real hardware or in a virtual machine?

Can you please enable CONFIG_SCHED_DEBUG and provide the output of
/proc/sched_stat when the problem surfaces and a minute after the
first snapshot?

Also please apply the patch below and check, whether the printk shows
up in your dmesg.

Thanks,

	tglx

---
 kernel/sched_rt.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux-2.6-tip/kernel/sched_rt.c
===================================================================
--- linux-2.6-tip.orig/kernel/sched_rt.c
+++ linux-2.6-tip/kernel/sched_rt.c
@@ -609,6 +609,7 @@ static int sched_rt_runtime_exceeded(str
 
 	if (rt_rq->rt_time > runtime) {
 		rt_rq->rt_throttled = 1;
+		printk_once(KERN_WARNING "sched: RT throttling activated\n");
 		if (rt_rq_throttled(rt_rq)) {
 			sched_rt_rq_dequeue(rt_rq);
 			return 1;

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 22:28                                       ` Thomas Gleixner
@ 2011-04-27  6:15                                         ` Bruno Prémont
  2011-04-27 18:41                                           ` Bruno Prémont
  2011-04-27 21:55                                         ` Paul E. McKenney
  1 sibling, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-27  6:15 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, Ingo Molnar, Peter Zijlstra, paulmck,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
> On Tue, 26 Apr 2011, Linus Torvalds wrote:
> > On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont wrote:
> > >
> > > Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
> > > context switches and exactly one non-voluntary one.
> > >
> > > In addition when rcu_kthread has stopped doing its work
> > > `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
> > > blocks on disabling swap device).
> > > If I get to do it when I get back home I will manually try to swapoff
> > > and take process traces with sysrq-t.
> > 
> > That "exactly one non-voluntary one" sounds like the smoking gun.
> > 
> > Normally SCHED_FIFO runs until it voluntarily gives up the CPU. That's
> > kind of the point of SCHED_FIFO. Involuntary context switches happen
> > when some higher-priority SCHED_FIFO process becomes runnable (irq
> > handlers? You _do_ have CONFIG_IRQ_FORCED_THREADING=y in your config
> > too), and maybe there is a bug in the runqueue handling for that case.
> 
> The forced irq threading is only effective when you add the command
> line parameter "threadirqs". I don't see any irq threads in the ps
> outputs, so that's not the problem.
> 
> Though the whole ps output is weird. There is only one thread/process
> which accumulated CPU time
> 
> collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:14

Whole system does not have much uptime so it's quite expected that CPU
time remains low. collectd is the only daemon that has more work to do
(scan many files every 10s)
On the ps output with stopped build processes there should be some more
with accumulated CPU time... though looking at it only top and python
have accumulated anything.

Next time I can scan /proc/${PID}/ for more precise CPU times to see
how zero they are.

> All others show 0:00 CPU time - not only kthread_rcu.
> 
> Bruno, are you running on real hardware or in a virtual machine?

It's real hardware (nforce420 chipset - aka first nforce generation -,
AMD Athlon 1800 CPU, 512MB of RAM out of which 32MB taken by
IGP, so something like 7-10 or so years old)

> Can you please enable CONFIG_SCHED_DEBUG and provide the output of
> /proc/sched_stat when the problem surfaces and a minute after the
> first snapshot?
> 
> Also please apply the patch below and check, whether the printk shows
> up in your dmesg.

Will include in my testing when back home this evening. (Will have to
offload kernel compilations to a quicker box otherwise my evening will
be much too short...)

Bruno


> Thanks,
> 
> 	tglx
> 
> ---
>  kernel/sched_rt.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> Index: linux-2.6-tip/kernel/sched_rt.c
> ===================================================================
> --- linux-2.6-tip.orig/kernel/sched_rt.c
> +++ linux-2.6-tip/kernel/sched_rt.c
> @@ -609,6 +609,7 @@ static int sched_rt_runtime_exceeded(str
>  
>  	if (rt_rq->rt_time > runtime) {
>  		rt_rq->rt_throttled = 1;
> +		printk_once(KERN_WARNING "sched: RT throttling activated\n");
>  		if (rt_rq_throttled(rt_rq)) {
>  			sched_rt_rq_dequeue(rt_rq);
>  			return 1;

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-25 16:31             ` Linus Torvalds
  2011-04-25 17:00               ` Bruno Prémont
  2011-04-25 17:26               ` Paul E. McKenney
@ 2011-04-27 10:28               ` Catalin Marinas
  2 siblings, 0 replies; 88+ messages in thread
From: Catalin Marinas @ 2011-04-27 10:28 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Bruno Prémont, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On 25 April 2011 17:31, Linus Torvalds <torvalds@linux-foundation.org> wrote:
> 2011/4/25 Bruno Prémont <bonbons@linux-vserver.org>:
>> kmemleak reports 86681 new leaks between shortly after boot and -2 state.
>> (and 2348 additional ones between -2 and -4).
>
> I wouldn't necessarily trust kmemleak with the whole RCU-freeing
> thing. In your slubinfo reports, the kmemleak data itself also tends
> to overwhelm everything else - none of it looks unreasonable per se.

Kmemleak reports that it couldn't find any pointers to those objects
when scanning the memory. In theory, it is safe with RCU since objects
queued for freeing via the RCU are in a linked list and still
referred.

There are of course false positives, usually when pointers are stored
in some structures not scanned by kmemleak (e.g. some arrays allocated
with alloc_pages which are not explicitly tracked by kmemleak) but I
haven't seen any related to RCU (yet).

-- 
Catalin

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27  6:15                                         ` Bruno Prémont
@ 2011-04-27 18:41                                           ` Bruno Prémont
  2011-04-27 19:16                                             ` Pádraig Brady
                                                               ` (2 more replies)
  0 siblings, 3 replies; 88+ messages in thread
From: Bruno Prémont @ 2011-04-27 18:41 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, Ingo Molnar, Peter Zijlstra, paulmck,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 5331 bytes --]

On Wed, 27 April 2011 Bruno Prémont wrote:
> On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
> > On Tue, 26 Apr 2011, Linus Torvalds wrote:
> > > On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont wrote:
> > > >
> > > > Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
> > > > context switches and exactly one non-voluntary one.
> > > >
> > > > In addition when rcu_kthread has stopped doing its work
> > > > `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
> > > > blocks on disabling swap device).

Apparently it's not swapoff but `umount -a -t tmpfs` that's getting
stuck here. Manual swapoff worked.

The stuck umount:
[ 1714.960735] umount          D 5a000040  5668 20331  20324 0x00000000
[ 1714.960735]  c3c99e5c 00000086 dd407900 5a000040 dd25a1a8 dd407900 dd25a120 c3c99e0c
[ 1714.960735]  c3c99e24 c10c1be2 c14d9f20 c3c99e5c c3c8c680 c3c8c680 000000bb c3c99e24
[ 1714.960735]  c10c0b88 dd25a120 dd407900 ddfd4b40 c3c99e4c ddfc9d20 dd402380 5a000010
[ 1714.960735] Call Trace:
[ 1714.960735]  [<c10c1be2>] ? check_object+0x92/0x210
[ 1714.960735]  [<c10c0b88>] ? init_object+0x38/0x70
[ 1714.960735]  [<c10c1be2>] ? check_object+0x92/0x210
[ 1714.960735]  [<c13cb37d>] schedule_timeout+0x16d/0x280
[ 1714.960735]  [<c10c0b88>] ? init_object+0x38/0x70
[ 1714.960735]  [<c10c2122>] ? free_debug_processing+0x112/0x1f0
[ 1714.960735]  [<c10a3791>] ? shmem_put_super+0x11/0x20
[ 1714.960735]  [<c13cae9c>] wait_for_common+0x9c/0x150
[ 1714.960735]  [<c102c890>] ? try_to_wake_up+0x170/0x170
[ 1714.960735]  [<c13caff2>] wait_for_completion+0x12/0x20
[ 1714.960735]  [<c1075ad7>] rcu_barrier_sched+0x47/0x50
[ 1714.960735]  [<c104d3c0>] ? alloc_pid+0x370/0x370
[ 1714.960735]  [<c10ce74a>] deactivate_locked_super+0x3a/0x60
[ 1714.960735]  [<c10ce948>] deactivate_super+0x48/0x70
[ 1714.960735]  [<c10e7427>] mntput_no_expire+0x87/0xe0
[ 1714.960735]  [<c10e7800>] sys_umount+0x60/0x320
[ 1714.960735]  [<c10b231a>] ? remove_vma+0x3a/0x50
[ 1714.960735]  [<c10b3b22>] ? do_munmap+0x212/0x2f0
[ 1714.960735]  [<c10e7ad9>] sys_oldumount+0x19/0x20
[ 1714.960735]  [<c13cce10>] sysenter_do_call+0x12/0x26

which looks like lock conflict with RCU:

[ 1714.960735] rcu_kthread     R running   6924     6      2 0x00000000
[ 1714.960735]  dd473f28 00000046 5a000240 dbd6ba7c dd407360 ddfaf840 dbd6b740 dd473ed8
[ 1714.960735]  ddfaee00 dd407a20 5a000000 dd473f28 dd445040 dd445040 0000009c dd473f0c
[ 1714.960735]  c10c1be2 c14d9f20 dbf7057c 0000005a 000000bb 000000bb dd473f0c c10c0b88
[ 1714.960735] Call Trace:
[ 1714.960735]  [<c10c1be2>] ? check_object+0x92/0x210
[ 1714.960735]  [<c10c0b88>] ? init_object+0x38/0x70
[ 1714.960735]  [<c103fd8d>] ? lock_timer_base+0x2d/0x70
[ 1714.960735]  [<c13cb347>] schedule_timeout+0x137/0x280
[ 1714.960735]  [<c103fef0>] ? sys_gettid+0x20/0x20
[ 1714.960735]  [<c13cb4e4>] schedule_timeout_interruptible+0x14/0x20
[ 1714.960735]  [<c1075a70>] rcu_kthread+0xa0/0xc0
[ 1714.960735]  [<c1050190>] ? wake_up_bit+0x70/0x70
[ 1714.960735]  [<c10759d0>] ? rcu_process_callbacks+0x60/0x60
[ 1714.960735]  [<c104fc04>] kthread+0x74/0x80
[ 1714.960735]  [<c104fb90>] ? flush_kthread_worker+0x90/0x90
[ 1714.960735]  [<c13cd336>] kernel_thread_helper+0x6/0xd

(I have rest of sysreq+t output available in case someone wants it)

> > > > If I get to do it when I get back home I will manually try to swapoff
> > > > and take process traces with sysrq-t.
> > > 
> > > That "exactly one non-voluntary one" sounds like the smoking gun.

It's not the gun we're looking for as it's already smoking long before
any RCU-managed slabs start piling up (e.g. already when I get at a
shell after boot sequence).

Voluntary context switches stay constant from the time on SLABs pile up.
(which makes sense as it doesn't run get CPU slices anymore)

> > Can you please enable CONFIG_SCHED_DEBUG and provide the output of
> > /proc/sched_stat when the problem surfaces and a minute after the
> > first snapshot?

hm, did you mean CONFIG_SCHEDSTAT or /proc/sched_debug?

I did use CONFIG_SCHED_DEBUG (and there is no /proc/sched_stat) so I took
/proc/sched_debug which exists... (attached, taken about 7min and +1min
after SLABs started piling up), though build processes were SIGSTOPped
during first minute.

printk wrote (in case its timestamp is useful, more below):
[  518.480103] sched: RT throttling activated

If my choice was the wrong one, please tell so I can generate the other
ones.

> > Also please apply the patch below and check, whether the printk shows
> > up in your dmesg.
> 
> > Index: linux-2.6-tip/kernel/sched_rt.c
> > ===================================================================
> > --- linux-2.6-tip.orig/kernel/sched_rt.c
> > +++ linux-2.6-tip/kernel/sched_rt.c
> > @@ -609,6 +609,7 @@ static int sched_rt_runtime_exceeded(str
> >  
> >  	if (rt_rq->rt_time > runtime) {
> >  		rt_rq->rt_throttled = 1;
> > +		printk_once(KERN_WARNING "sched: RT throttling activated\n");

This gun is triggering right before RCU-managed slabs start piling up as
visible under slabtop so chances are it's at least a related!

Bruno


> >  		if (rt_rq_throttled(rt_rq)) {
> >  			sched_rt_rq_dequeue(rt_rq);
> >  			return 1;

[-- Attachment #2: sched_debug-n --]
[-- Type: text/plain, Size: 13432 bytes --]

Sched Debug Version: v0.10, 2.6.39-rc4-jupiter1-00187-g686c4cb-dirty #3
ktime                                   : 905613.047984
sched_clk                               : 905964.436991
cpu_clk                                 : 905613.047795
jiffies                                 : 60561
sched_clock_stable                      : 0

sysctl_sched
  .sysctl_sched_latency                    : 6.000000
  .sysctl_sched_min_granularity            : 0.750000
  .sysctl_sched_wakeup_granularity         : 1.000000
  .sysctl_sched_child_runs_first           : 0
  .sysctl_sched_features                   : 7279
  .sysctl_sched_tunable_scaling            : 1 (logaritmic)

cpu#0, 1536.952 MHz
  .nr_running                    : 3
  .load                          : 1024
  .nr_switches                   : 256821
  .nr_load_updates               : 34218
  .nr_uninterruptible            : 0
  .next_balance                  : 0.000000
  .curr->pid                     : 20302
  .clock                         : 905610.184134
  .cpu_load[0]                   : 1024
  .cpu_load[1]                   : 512
  .cpu_load[2]                   : 256
  .cpu_load[3]                   : 128
  .cpu_load[4]                   : 64

cfs_rq[0]:/autogroup-31
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 32.428483
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250290.624883
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 48651.034996
  .se->vruntime                  : 11386.544607
  .se->sum_exec_runtime          : 33.477059
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-30
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 4.750914
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250318.302452
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 48650.930709
  .se->vruntime                  : 11383.513621
  .se->sum_exec_runtime          : 5.799490
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-29
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 1.259565
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250321.793801
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 47345.196993
  .se->vruntime                  : 11143.631354
  .se->sum_exec_runtime          : 2.308141
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-27
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 5.664943
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250317.388423
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 46773.145157
  .se->vruntime                  : 10850.993742
  .se->sum_exec_runtime          : 6.713519
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-25
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 12.001858
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250311.051508
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 884979.311623
  .se->vruntime                  : 250196.905043
  .se->sum_exec_runtime          : 13.050434
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-23
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 0.704941
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250322.348425
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 33068.602462
  .se->vruntime                  : 10100.905811
  .se->sum_exec_runtime          : 1.753517
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-21
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 11731.456625
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -238591.596741
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 900349.982653
  .se->vruntime                  : 250318.886477
  .se->sum_exec_runtime          : 4895.135656
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-19
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 47.286940
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250275.766426
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 900927.938404
  .se->vruntime                  : 250315.931378
  .se->sum_exec_runtime          : 48.335516
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-17
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 357.298120
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -249965.755246
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 650398.332497
  .se->vruntime                  : 248631.217388
  .se->sum_exec_runtime          : 358.346696
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-16
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 8.865868
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250314.187498
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 23672.153504
  .se->vruntime                  : 9597.142868
  .se->sum_exec_runtime          : 4.501025
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-14
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 0.379704
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250323.433070
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 24113.709183
  .se->vruntime                  : 9701.835305
  .se->sum_exec_runtime          : 0.668872
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-13
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 899.191622
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -249423.861744
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 900715.342667
  .se->vruntime                  : 250318.391635
  .se->sum_exec_runtime          : 896.780102
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-12
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 7881.771616
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -242441.281750
  .nr_spread_over                : 0
  .nr_running                    : 1
  .load                          : 1024
  .se->exec_start                : 901282.397156
  .se->vruntime                  : 250323.053366
  .se->sum_exec_runtime          : 7886.452282
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-11
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 327444.606138
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : 77121.552772
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 590827.086481
  .se->vruntime                  : 246807.766077
  .se->sum_exec_runtime          : 227004.896350
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-9
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 4.901558
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250318.151808
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 16353.807059
  .se->vruntime                  : 8798.213404
  .se->sum_exec_runtime          : 5.864229
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-8
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 5.092357
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250317.961009
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 16351.804335
  .se->vruntime                  : 8798.060733
  .se->sum_exec_runtime          : 6.047419
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-4
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 194.043637
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250129.009729
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 214180.833484
  .se->vruntime                  : 16973.019690
  .se->sum_exec_runtime          : 1179.311396
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-1
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 46.620704
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250276.432662
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 900942.773257
  .se->vruntime                  : 250316.002285
  .se->sum_exec_runtime          : 49.120925
  .se->load.weight               : 1024

cfs_rq[0]:/
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 250323.053366
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : 0.000000
  .nr_spread_over                : 0
  .nr_running                    : 1
  .load                          : 1024

rt_rq[0]:
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.008387
  .rt_runtime                    : 950.000000

runnable tasks:
            task   PID         tree-key  switches  prio     exec-runtime         sum-exec        sum-sleep
----------------------------------------------------------------------------------------------------------
     rcu_kthread     6         0.000000     24701    98               0               0               0.000000               0.000000               0.000000 /
      watchdog/0     7         0.000000       154     0               0               0               0.000000               0.000000               0.000000 /
R            cat 20302      7884.303335         0   120               0               0               0.000000               0.000000               0.000000 /autogroup-12


[-- Attachment #3: sched_debug-n+60 --]
[-- Type: text/plain, Size: 13444 bytes --]

Sched Debug Version: v0.10, 2.6.39-rc4-jupiter1-00187-g686c4cb-dirty #3
ktime                                   : 965620.925133
sched_clk                               : 965968.533388
cpu_clk                                 : 965620.925129
jiffies                                 : 66562
sched_clock_stable                      : 0

sysctl_sched
  .sysctl_sched_latency                    : 6.000000
  .sysctl_sched_min_granularity            : 0.750000
  .sysctl_sched_wakeup_granularity         : 1.000000
  .sysctl_sched_child_runs_first           : 0
  .sysctl_sched_features                   : 7279
  .sysctl_sched_tunable_scaling            : 1 (logaritmic)

cpu#0, 1536.952 MHz
  .nr_running                    : 4
  .load                          : 2048
  .nr_switches                   : 258178
  .nr_load_updates               : 34735
  .nr_uninterruptible            : 0
  .next_balance                  : 0.000000
  .curr->pid                     : 20304
  .clock                         : 965620.017504
  .cpu_load[0]                   : 2048
  .cpu_load[1]                   : 1024
  .cpu_load[2]                   : 512
  .cpu_load[3]                   : 256
  .cpu_load[4]                   : 129

cfs_rq[0]:/autogroup-31
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 32.428483
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250659.411324
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 48651.034996
  .se->vruntime                  : 11386.544607
  .se->sum_exec_runtime          : 33.477059
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-30
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 4.750914
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250687.088893
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 48650.930709
  .se->vruntime                  : 11383.513621
  .se->sum_exec_runtime          : 5.799490
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-29
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 1.259565
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250690.580242
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 47345.196993
  .se->vruntime                  : 11143.631354
  .se->sum_exec_runtime          : 2.308141
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-27
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 5.664943
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250686.174864
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 46773.145157
  .se->vruntime                  : 10850.993742
  .se->sum_exec_runtime          : 6.713519
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-25
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 12.062566
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250679.777241
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 944999.839634
  .se->vruntime                  : 250569.218332
  .se->sum_exec_runtime          : 13.111142
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-23
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 0.704941
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250691.134866
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 33068.602462
  .se->vruntime                  : 10100.905811
  .se->sum_exec_runtime          : 1.753517
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-21
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 12601.382211
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -238090.457596
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 960317.931144
  .se->vruntime                  : 250691.825513
  .se->sum_exec_runtime          : 5246.772916
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-19
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 49.695928
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250642.143879
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 960895.765697
  .se->vruntime                  : 250688.869265
  .se->sum_exec_runtime          : 50.744504
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-17
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 357.298120
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250334.541687
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 650398.332497
  .se->vruntime                  : 248631.217388
  .se->sum_exec_runtime          : 358.346696
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-16
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 8.865868
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250682.973939
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 23672.153504
  .se->vruntime                  : 9597.142868
  .se->sum_exec_runtime          : 4.501025
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-14
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 0.379704
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250692.219511
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 24113.709183
  .se->vruntime                  : 9701.835305
  .se->sum_exec_runtime          : 0.668872
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-13
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 948.016263
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -249743.823544
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 960791.018110
  .se->vruntime                  : 250691.430149
  .se->sum_exec_runtime          : 945.604743
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-12
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 7896.659461
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -242795.180346
  .nr_spread_over                : 0
  .nr_running                    : 1
  .load                          : 1024
  .se->exec_start                : 961260.183602
  .se->vruntime                  : 250691.669201
  .se->sum_exec_runtime          : 7896.210852
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-11
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 327444.606138
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : 76752.766331
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 590827.086481
  .se->vruntime                  : 246807.766077
  .se->sum_exec_runtime          : 227004.896350
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-9
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 4.901558
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250686.938249
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 16353.807059
  .se->vruntime                  : 8798.213404
  .se->sum_exec_runtime          : 5.864229
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-8
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 5.092357
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250686.747450
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 16351.804335
  .se->vruntime                  : 8798.060733
  .se->sum_exec_runtime          : 6.047419
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-4
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 194.043637
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250497.796170
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 214180.833484
  .se->vruntime                  : 16973.019690
  .se->sum_exec_runtime          : 1179.311396
  .se->load.weight               : 1024

cfs_rq[0]:/autogroup-1
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 0.000001
  .min_vruntime                  : 48.036315
  .max_vruntime                  : 0.000001
  .spread                        : 0.000000
  .spread0                       : -250643.803492
  .nr_spread_over                : 0
  .nr_running                    : 0
  .load                          : 0
  .se->exec_start                : 960971.811607
  .se->vruntime                  : 250688.941814
  .se->sum_exec_runtime          : 50.536536
  .se->load.weight               : 1024

cfs_rq[0]:/
  .exec_clock                    : 0.000000
  .MIN_vruntime                  : 250691.839807
  .min_vruntime                  : 250691.839807
  .max_vruntime                  : 250691.839807
  .spread                        : 0.000000
  .spread0                       : 0.000000
  .nr_spread_over                : 0
  .nr_running                    : 2
  .load                          : 2048

rt_rq[0]:
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.008387
  .rt_runtime                    : 950.000000

runnable tasks:
            task   PID         tree-key  switches  prio     exec-runtime         sum-exec        sum-sleep
----------------------------------------------------------------------------------------------------------
     rcu_kthread     6         0.000000     24701    98               0               0               0.000000               0.000000               0.000000 /
      watchdog/0     7         0.000000       154     0               0               0               0.000000               0.000000               0.000000 /
R            cat 20304      7896.659461         0   120               0               0               0.000000               0.000000               0.000000 /autogroup-12


^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 18:41                                           ` Bruno Prémont
@ 2011-04-27 19:16                                             ` Pádraig Brady
  2011-04-27 19:34                                               ` Bruno Prémont
  2011-04-27 20:40                                             ` Bruno Prémont
  2011-04-27 22:06                                             ` Thomas Gleixner
  2 siblings, 1 reply; 88+ messages in thread
From: Pádraig Brady @ 2011-04-27 19:16 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Thomas Gleixner, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	paulmck, Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On 27/04/11 19:41, Bruno Prémont wrote:
> On Wed, 27 April 2011 Bruno Prémont wrote:
>> On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
>>> On Tue, 26 Apr 2011, Linus Torvalds wrote:
>>>> On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont wrote:
>>>>>
>>>>> Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
>>>>> context switches and exactly one non-voluntary one.
>>>>>
>>>>> In addition when rcu_kthread has stopped doing its work
>>>>> `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
>>>>> blocks on disabling swap device).
> 
> Apparently it's not swapoff but `umount -a -t tmpfs` that's getting
> stuck here. Manual swapoff worked.

Anything to do with this?
http://thread.gmane.org/gmane.linux.kernel.mm/60953/

cheers,
Pádraig.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 19:16                                             ` Pádraig Brady
@ 2011-04-27 19:34                                               ` Bruno Prémont
  2011-04-27 22:05                                                 ` Paul E. McKenney
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-27 19:34 UTC (permalink / raw)
  To: Pádraig Brady
  Cc: Thomas Gleixner, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	paulmck, Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, 27 April 2011 Pádraig Brady wrote:
> On 27/04/11 19:41, Bruno Prémont wrote:
> > On Wed, 27 April 2011 Bruno Prémont wrote:
> >> On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
> >>> On Tue, 26 Apr 2011, Linus Torvalds wrote:
> >>>> On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont wrote:
> >>>>> Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
> >>>>> context switches and exactly one non-voluntary one.
> >>>>>
> >>>>> In addition when rcu_kthread has stopped doing its work
> >>>>> `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
> >>>>> blocks on disabling swap device).
> > 
> > Apparently it's not swapoff but `umount -a -t tmpfs` that's getting
> > stuck here. Manual swapoff worked.
> 
> Anything to do with this?
> http://thread.gmane.org/gmane.linux.kernel.mm/60953/

I don't think so, if it is, it is only loosely related.

From the trace you omitted to keep it's visible that it gets hit by
non-operating RCU kthread.
Maybe existence of RCU barrier in this trace has some relation to
above thread but I don't see it at first glance.

[ 1714.960735] umount          D 5a000040  5668 20331  20324 0x00000000
[ 1714.960735]  c3c99e5c 00000086 dd407900 5a000040 dd25a1a8 dd407900 dd25a120 c3c99e0c
[ 1714.960735]  c3c99e24 c10c1be2 c14d9f20 c3c99e5c c3c8c680 c3c8c680 000000bb c3c99e24
[ 1714.960735]  c10c0b88 dd25a120 dd407900 ddfd4b40 c3c99e4c ddfc9d20 dd402380 5a000010
[ 1714.960735] Call Trace:
[ 1714.960735]  [<c10c1be2>] ? check_object+0x92/0x210
[ 1714.960735]  [<c10c0b88>] ? init_object+0x38/0x70
[ 1714.960735]  [<c10c1be2>] ? check_object+0x92/0x210
[ 1714.960735]  [<c13cb37d>] schedule_timeout+0x16d/0x280
[ 1714.960735]  [<c10c0b88>] ? init_object+0x38/0x70
[ 1714.960735]  [<c10c2122>] ? free_debug_processing+0x112/0x1f0
[ 1714.960735]  [<c10a3791>] ? shmem_put_super+0x11/0x20
[ 1714.960735]  [<c13cae9c>] wait_for_common+0x9c/0x150
[ 1714.960735]  [<c102c890>] ? try_to_wake_up+0x170/0x170
[ 1714.960735]  [<c13caff2>] wait_for_completion+0x12/0x20
[ 1714.960735]  [<c1075ad7>] rcu_barrier_sched+0x47/0x50
                             ^^^^^^^^^^^^^^^^^
[ 1714.960735]  [<c104d3c0>] ? alloc_pid+0x370/0x370
[ 1714.960735]  [<c10ce74a>] deactivate_locked_super+0x3a/0x60
[ 1714.960735]  [<c10ce948>] deactivate_super+0x48/0x70
[ 1714.960735]  [<c10e7427>] mntput_no_expire+0x87/0xe0
[ 1714.960735]  [<c10e7800>] sys_umount+0x60/0x320
[ 1714.960735]  [<c10b231a>] ? remove_vma+0x3a/0x50
[ 1714.960735]  [<c10b3b22>] ? do_munmap+0x212/0x2f0
[ 1714.960735]  [<c10e7ad9>] sys_oldumount+0x19/0x20
[ 1714.960735]  [<c13cce10>] sysenter_do_call+0x12/0x26

Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 18:41                                           ` Bruno Prémont
  2011-04-27 19:16                                             ` Pádraig Brady
@ 2011-04-27 20:40                                             ` Bruno Prémont
  2011-04-27 22:07                                               ` Paul E. McKenney
  2011-04-27 22:06                                             ` Thomas Gleixner
  2 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-27 20:40 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, Ingo Molnar, Peter Zijlstra, paulmck,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, 27 April 2011 Bruno Prémont wrote:
> On Wed, 27 April 2011 Bruno Prémont wrote:
> > On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
> > > Also please apply the patch below and check, whether the printk shows
> > > up in your dmesg.
> > 
> > > Index: linux-2.6-tip/kernel/sched_rt.c
> > > ===================================================================
> > > --- linux-2.6-tip.orig/kernel/sched_rt.c
> > > +++ linux-2.6-tip/kernel/sched_rt.c
> > > @@ -609,6 +609,7 @@ static int sched_rt_runtime_exceeded(str
> > >  
> > >  	if (rt_rq->rt_time > runtime) {
> > >  		rt_rq->rt_throttled = 1;
> > > +		printk_once(KERN_WARNING "sched: RT throttling activated\n");
> 
> This gun is triggering right before RCU-managed slabs start piling up as
> visible under slabtop so chances are it's at least a related!

Letting the machine idle (except running collectd and slabtop) scheduler
suddenly decided to restart giving rcu_kthread CPU cycles (after two hours
or so! if I read my statistics graphs correctly)

While looking at lkml during the above 2 hours I stumbled across this (the
patch of which doesn't help in my case) which looked possibly related.
  http://thread.gmane.org/gmane.linux.kernel/1129614

Bruno
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 22:28                                       ` Thomas Gleixner
  2011-04-27  6:15                                         ` Bruno Prémont
@ 2011-04-27 21:55                                         ` Paul E. McKenney
  2011-04-28  6:22                                           ` Bruno Prémont
  1 sibling, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-27 21:55 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Linus Torvalds, Bruno Prémont, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, Apr 27, 2011 at 12:28:37AM +0200, Thomas Gleixner wrote:
> On Tue, 26 Apr 2011, Linus Torvalds wrote:
> 
> > On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont
> > <bonbons@linux-vserver.org> wrote:
> > >
> > > Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
> > > context switches and exactly one non-voluntary one.
> > >
> > > In addition when rcu_kthread has stopped doing its work
> > > `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
> > > blocks on disabling swap device).
> > > If I get to do it when I get back home I will manually try to swapoff
> > > and take process traces with sysrq-t.
> > 
> > That "exactly one non-voluntary one" sounds like the smoking gun.
> > 
> > Normally SCHED_FIFO runs until it voluntarily gives up the CPU. That's
> > kind of the point of SCHED_FIFO. Involuntary context switches happen
> > when some higher-priority SCHED_FIFO process becomes runnable (irq
> > handlers? You _do_ have CONFIG_IRQ_FORCED_THREADING=y in your config
> > too), and maybe there is a bug in the runqueue handling for that case.
> 
> The forced irq threading is only effective when you add the command
> line parameter "threadirqs". I don't see any irq threads in the ps
> outputs, so that's not the problem.
> 
> Though the whole ps output is weird. There is only one thread/process
> which accumulated CPU time
> 
> collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:14

I believe that the above is the script that prints out the RCU debugfs
information periodically.  Unless there is something else that begins
with "collectd" instead of just collectdebugfs.sh.

							Thanx, Paul

> All others show 0:00 CPU time - not only kthread_rcu.
> 
> Bruno, are you running on real hardware or in a virtual machine?
> 
> Can you please enable CONFIG_SCHED_DEBUG and provide the output of
> /proc/sched_stat when the problem surfaces and a minute after the
> first snapshot?
> 
> Also please apply the patch below and check, whether the printk shows
> up in your dmesg.
> 
> Thanks,
> 
> 	tglx
> 
> ---
>  kernel/sched_rt.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> Index: linux-2.6-tip/kernel/sched_rt.c
> ===================================================================
> --- linux-2.6-tip.orig/kernel/sched_rt.c
> +++ linux-2.6-tip/kernel/sched_rt.c
> @@ -609,6 +609,7 @@ static int sched_rt_runtime_exceeded(str
> 
>  	if (rt_rq->rt_time > runtime) {
>  		rt_rq->rt_throttled = 1;
> +		printk_once(KERN_WARNING "sched: RT throttling activated\n");
>  		if (rt_rq_throttled(rt_rq)) {
>  			sched_rt_rq_dequeue(rt_rq);
>  			return 1;

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-26 19:17                                       ` Sedat Dilek
@ 2011-04-27 22:02                                         ` Paul E. McKenney
  0 siblings, 0 replies; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-27 22:02 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Linus Torvalds, Bruno Prémont, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Tue, Apr 26, 2011 at 09:17:28PM +0200, Sedat Dilek wrote:
> On Tue, Apr 26, 2011 at 8:50 PM, Paul E. McKenney
> <paulmck@linux.vnet.ibm.com> wrote:
> > On Tue, Apr 26, 2011 at 10:12:39AM -0700, Linus Torvalds wrote:
> >> On Tue, Apr 26, 2011 at 9:38 AM, Bruno Prémont
> >> <bonbons@linux-vserver.org> wrote:
> >> >
> >> > Here it comes:
> >> >
> >> > rcu_kthread (when build processes are STOPped):
> >> > [  836.050003] rcu_kthread     R running   7324     6      2 0x00000000
> >> > [  836.050003]  dd473f28 00000046 5a000240 dd65207c dd407360 dd651d40 0000035c dd473ed8
> >> > [  836.050003]  c10bf8a2 c14d63d8 dd65207c dd473f28 dd445040 dd445040 dd473eec c10be848
> >> > [  836.050003]  dd651d40 dd407360 ddfdca00 dd473f14 c10bfde2 00000000 00000001 000007b6
> >> > [  836.050003] Call Trace:
> >> > [  836.050003]  [<c10bf8a2>] ? check_object+0x92/0x210
> >> > [  836.050003]  [<c10be848>] ? init_object+0x38/0x70
> >> > [  836.050003]  [<c10bfde2>] ? free_debug_processing+0x112/0x1f0
> >> > [  836.050003]  [<c103d9fd>] ? lock_timer_base+0x2d/0x70
> >> > [  836.050003]  [<c13c8ec7>] schedule_timeout+0x137/0x280
> >>
> >> Hmm.
> >>
> >> I'm adding Ingo and Peter to the cc, because this whole "rcu_kthread
> >> is running, but never actually running" is starting to smell like a
> >> scheduler issue.
> >>
> >> Peter/Ingo: RCUTINY seems to be broken for Bruno. During any kind of
> >> heavy workload, at some point it looks like rcu_kthread simply stops
> >> making any progress. It's constantly in runnable state, but it doesn't
> >> actually use any CPU time, and it's not processing the RCU callbacks,
> >> so the RCU memory freeing isn't happening, and slabs just build up
> >> until the machine dies.
> >>
> >> And it really is RCUTINY, because the thing doesn't happen with the
> >> regular tree-RCU.
> >
> > The difference between TINY_RCU and TREE_RCU is that TREE_RCU still uses
> > softirq for the core RCU processing.  TINY_RCU switched to a kthread
> > when I implemented RCU priority boosting.  There is a similar change in
> > my -rcu tree that makes TREE_RCU use kthreads, and Sedat has been running
> > into a very similar problem with that change in place.  Which is why I
> > do not yet push it to the -next tree.
> >
> >> This is without CONFIG_RCU_BOOST_PRIO, so we basically have
> >>
> >>         struct sched_param sp;
> >>
> >>         rcu_kthread_task = kthread_run(rcu_kthread, NULL, "rcu_kthread");
> >>         sp.sched_priority = RCU_BOOST_PRIO;
> >>         sched_setscheduler_nocheck(rcu_kthread_task, SCHED_FIFO, &sp);
> >>
> >> where RCU_BOOST_PRIO is 1 for the non-boost case.
> >
> > Good point!  Bruno, Sedat, could you please set CONFIG_RCU_BOOST_PRIO to
> > (say) 50, and see if this still happens?  (I bet that you do, but...)
> >
> 
> What's with CONFIG_RCU_BOOST_DELAY setting?

CONFIG_RCU_BOOST_DELAY controls how long preemptible RCU lets a grace
period run before boosting the priority of any blocked RCU readers.

It is completely irrelevant if the rcu_kthread task isn't getting a
chance to run, though.  This is because it is the rcu_kthread task
that does the boosting.

> Are those values OK?
> 
> $ egrep 'M486|M686|X86_UP|CONFIG_SMP|NR_CPUS|PREEMPT|_RCU|_HIGHMEM|PAE' .config
> CONFIG_TREE_PREEMPT_RCU=y
> CONFIG_PREEMPT_RCU=y
> CONFIG_RCU_TRACE=y
> CONFIG_RCU_FANOUT=32
> # CONFIG_RCU_FANOUT_EXACT is not set
> CONFIG_TREE_RCU_TRACE=y
> CONFIG_RCU_BOOST=y

I suggest CONFIG_RCU_BOOST=n to keep things simple for the moment, but
CONFIG_RCU_BOOST=y should be OK too.

> CONFIG_RCU_BOOST_PRIO=50
> CONFIG_RCU_BOOST_DELAY=500
> CONFIG_SMP=y
> # CONFIG_M486 is not set
> CONFIG_M686=y

I don't have an opinion on CONFIG_M486 vs. CONFIG_M686.

> CONFIG_NR_CPUS=32
> # CONFIG_PREEMPT_NONE is not set
> # CONFIG_PREEMPT_VOLUNTARY is not set
> CONFIG_PREEMPT=y
> CONFIG_HIGHMEM4G=y
> # CONFIG_HIGHMEM64G is not set
> CONFIG_HIGHMEM=y
> CONFIG_DEBUG_OBJECTS_RCU_HEAD=y
> CONFIG_DEBUG_PREEMPT=y

The above two could be left out, but shouldn't hurt.

> # CONFIG_SPARSE_RCU_POINTER is not set
> # CONFIG_DEBUG_HIGHMEM is not set
> CONFIG_RCU_TORTURE_TEST=m
> CONFIG_RCU_CPU_STALL_TIMEOUT=60
> CONFIG_RCU_CPU_STALL_VERBOSE=y
> CONFIG_PREEMPT_TRACER=y

So they look fine to me, the ones that I understand, anyway.  ;-)

							Thanx, Paul
> 
> - Sedat -
> 
> >> Is that so low that even the idle thread will take priority? It's a UP
> >> config with PREEMPT_VOLUNTARY. So pretty much _all_ the stars are
> >> aligned for odd scheduling behavior.
> >>
> >> Other users of SCHED_FIFO tend to set the priority really high (eg
> >> "MAX_RT_PRIO-1" is clearly the default one - softirq's, watchdog), but
> >> "1" is not unheard of either (touchscreen/ucb1400_ts and
> >> mmc/core/sdio_irq), and there are some other random choises out tere.
> >>
> >> Any ideas?
> >
> > I have found one bug so far in my code, but it only affects TREE_RCU
> > in my -rcu tree, and even then only if HOTPLUG_CPU is enabled.  I am
> > testing a fix, but I expect Sedat's tests to still break.
> >
> > I gave Sedat a patch that make rcu_kthread() run at normal (non-realtime)
> > priority, and he did not see the failure.  So running non-realtime at
> > least greatly reduces the probability of failure.
> >
> >                                                        Thanx, Paul
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 19:34                                               ` Bruno Prémont
@ 2011-04-27 22:05                                                 ` Paul E. McKenney
  0 siblings, 0 replies; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-27 22:05 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Pádraig Brady, Thomas Gleixner, Linus Torvalds, Ingo Molnar,
	Peter Zijlstra, Mike Frysinger, KOSAKI Motohiro, linux-kernel,
	linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, Apr 27, 2011 at 09:34:31PM +0200, Bruno Prémont wrote:
> On Wed, 27 April 2011 Pádraig Brady wrote:
> > On 27/04/11 19:41, Bruno Prémont wrote:
> > > On Wed, 27 April 2011 Bruno Prémont wrote:
> > >> On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
> > >>> On Tue, 26 Apr 2011, Linus Torvalds wrote:
> > >>>> On Tue, Apr 26, 2011 at 10:09 AM, Bruno Prémont wrote:
> > >>>>> Just in case, /proc/$(pidof rcu_kthread)/status shows ~20k voluntary
> > >>>>> context switches and exactly one non-voluntary one.
> > >>>>>
> > >>>>> In addition when rcu_kthread has stopped doing its work
> > >>>>> `swapoff $(swapdevice)` seems to block forever (at least normal shutdown
> > >>>>> blocks on disabling swap device).
> > > 
> > > Apparently it's not swapoff but `umount -a -t tmpfs` that's getting
> > > stuck here. Manual swapoff worked.

Doesn't "umount" wait for an RCU grace period?  If so, then your hang
is just a consequence of RCU grace periods hanging, which in turn appears
to be a consequence of rcu_kthread not being allowed to run.

> > Anything to do with this?
> > http://thread.gmane.org/gmane.linux.kernel.mm/60953/
> 
> I don't think so, if it is, it is only loosely related.
> 
> From the trace you omitted to keep it's visible that it gets hit by
> non-operating RCU kthread.

Yep, makes sense!

							Thanx, Paul

> Maybe existence of RCU barrier in this trace has some relation to
> above thread but I don't see it at first glance.
> 
> [ 1714.960735] umount          D 5a000040  5668 20331  20324 0x00000000
> [ 1714.960735]  c3c99e5c 00000086 dd407900 5a000040 dd25a1a8 dd407900 dd25a120 c3c99e0c
> [ 1714.960735]  c3c99e24 c10c1be2 c14d9f20 c3c99e5c c3c8c680 c3c8c680 000000bb c3c99e24
> [ 1714.960735]  c10c0b88 dd25a120 dd407900 ddfd4b40 c3c99e4c ddfc9d20 dd402380 5a000010
> [ 1714.960735] Call Trace:
> [ 1714.960735]  [<c10c1be2>] ? check_object+0x92/0x210
> [ 1714.960735]  [<c10c0b88>] ? init_object+0x38/0x70
> [ 1714.960735]  [<c10c1be2>] ? check_object+0x92/0x210
> [ 1714.960735]  [<c13cb37d>] schedule_timeout+0x16d/0x280
> [ 1714.960735]  [<c10c0b88>] ? init_object+0x38/0x70
> [ 1714.960735]  [<c10c2122>] ? free_debug_processing+0x112/0x1f0
> [ 1714.960735]  [<c10a3791>] ? shmem_put_super+0x11/0x20
> [ 1714.960735]  [<c13cae9c>] wait_for_common+0x9c/0x150
> [ 1714.960735]  [<c102c890>] ? try_to_wake_up+0x170/0x170
> [ 1714.960735]  [<c13caff2>] wait_for_completion+0x12/0x20
> [ 1714.960735]  [<c1075ad7>] rcu_barrier_sched+0x47/0x50
>                              ^^^^^^^^^^^^^^^^^
> [ 1714.960735]  [<c104d3c0>] ? alloc_pid+0x370/0x370
> [ 1714.960735]  [<c10ce74a>] deactivate_locked_super+0x3a/0x60
> [ 1714.960735]  [<c10ce948>] deactivate_super+0x48/0x70
> [ 1714.960735]  [<c10e7427>] mntput_no_expire+0x87/0xe0
> [ 1714.960735]  [<c10e7800>] sys_umount+0x60/0x320
> [ 1714.960735]  [<c10b231a>] ? remove_vma+0x3a/0x50
> [ 1714.960735]  [<c10b3b22>] ? do_munmap+0x212/0x2f0
> [ 1714.960735]  [<c10e7ad9>] sys_oldumount+0x19/0x20
> [ 1714.960735]  [<c13cce10>] sysenter_do_call+0x12/0x26
> 
> Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 18:41                                           ` Bruno Prémont
  2011-04-27 19:16                                             ` Pádraig Brady
  2011-04-27 20:40                                             ` Bruno Prémont
@ 2011-04-27 22:06                                             ` Thomas Gleixner
  2011-04-27 22:27                                               ` Paul E. McKenney
  2011-04-28  9:09                                               ` Thomas Gleixner
  2 siblings, 2 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-27 22:06 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Linus Torvalds, Ingo Molnar, Peter Zijlstra, paulmck,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1779 bytes --]

On Wed, 27 Apr 2011, Bruno Prémont wrote:
> On Wed, 27 April 2011 Bruno Prémont wrote:
> Voluntary context switches stay constant from the time on SLABs pile up.
> (which makes sense as it doesn't run get CPU slices anymore)
> 
> > > Can you please enable CONFIG_SCHED_DEBUG and provide the output of
> > > /proc/sched_stat when the problem surfaces and a minute after the
> > > first snapshot?
> 
> hm, did you mean CONFIG_SCHEDSTAT or /proc/sched_debug?
> 
> I did use CONFIG_SCHED_DEBUG (and there is no /proc/sched_stat) so I took
> /proc/sched_debug which exists... (attached, taken about 7min and +1min
> after SLABs started piling up), though build processes were SIGSTOPped
> during first minute.

Oops. /proc/sched_debug is the right thing.
 
> printk wrote (in case its timestamp is useful, more below):
> [  518.480103] sched: RT throttling activated

Ok. Aside of the fact that the CPU time accounting is completely hosed
this is pointing to the root cause of the problem.

kthread_rcu seems to run in circles for whatever reason and the RT
throttler catches it. After that things go down the drain completely
as it should get on the CPU again after that 50ms throttling break.

Though we should not ignore the fact, that the RT throttler hit, but
none of the RT tasks actually accumulated runtime.

So there is a couple of questions:

   - Why does the scheduler detect the 950 ms RT runtime, but does
     not accumulate that runtime to any thread

   - Why is the runtime accounting totally hosed

   - Why does that not happen (at least not reproducible) with 
     TREE_RCU

I need some sleep now, but I will try to come up with sensible
debugging tomorrow unless Paul or someone else beats me to it.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 20:40                                             ` Bruno Prémont
@ 2011-04-27 22:07                                               ` Paul E. McKenney
  2011-04-28  6:10                                                 ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-27 22:07 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Thomas Gleixner, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, Apr 27, 2011 at 10:40:23PM +0200, Bruno Prémont wrote:
> On Wed, 27 April 2011 Bruno Prémont wrote:
> > On Wed, 27 April 2011 Bruno Prémont wrote:
> > > On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
> > > > Also please apply the patch below and check, whether the printk shows
> > > > up in your dmesg.
> > > 
> > > > Index: linux-2.6-tip/kernel/sched_rt.c
> > > > ===================================================================
> > > > --- linux-2.6-tip.orig/kernel/sched_rt.c
> > > > +++ linux-2.6-tip/kernel/sched_rt.c
> > > > @@ -609,6 +609,7 @@ static int sched_rt_runtime_exceeded(str
> > > >  
> > > >  	if (rt_rq->rt_time > runtime) {
> > > >  		rt_rq->rt_throttled = 1;
> > > > +		printk_once(KERN_WARNING "sched: RT throttling activated\n");
> > 
> > This gun is triggering right before RCU-managed slabs start piling up as
> > visible under slabtop so chances are it's at least a related!
> 
> Letting the machine idle (except running collectd and slabtop) scheduler
> suddenly decided to restart giving rcu_kthread CPU cycles (after two hours
> or so! if I read my statistics graphs correctly)

And this also returned the slab memory, right?

Two hours is quite some time...

							Thanx, Paul

> While looking at lkml during the above 2 hours I stumbled across this (the
> patch of which doesn't help in my case) which looked possibly related.
>   http://thread.gmane.org/gmane.linux.kernel/1129614
> 
> Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 22:06                                             ` Thomas Gleixner
@ 2011-04-27 22:27                                               ` Paul E. McKenney
  2011-04-27 22:32                                                 ` Thomas Gleixner
  2011-04-28  9:09                                               ` Thomas Gleixner
  1 sibling, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-27 22:27 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Bruno Prémont, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Thu, Apr 28, 2011 at 12:06:11AM +0200, Thomas Gleixner wrote:
> On Wed, 27 Apr 2011, Bruno Prémont wrote:
> > On Wed, 27 April 2011 Bruno Prémont wrote:
> > Voluntary context switches stay constant from the time on SLABs pile up.
> > (which makes sense as it doesn't run get CPU slices anymore)
> > 
> > > > Can you please enable CONFIG_SCHED_DEBUG and provide the output of
> > > > /proc/sched_stat when the problem surfaces and a minute after the
> > > > first snapshot?
> > 
> > hm, did you mean CONFIG_SCHEDSTAT or /proc/sched_debug?
> > 
> > I did use CONFIG_SCHED_DEBUG (and there is no /proc/sched_stat) so I took
> > /proc/sched_debug which exists... (attached, taken about 7min and +1min
> > after SLABs started piling up), though build processes were SIGSTOPped
> > during first minute.
> 
> Oops. /proc/sched_debug is the right thing.
> 
> > printk wrote (in case its timestamp is useful, more below):
> > [  518.480103] sched: RT throttling activated
> 
> Ok. Aside of the fact that the CPU time accounting is completely hosed
> this is pointing to the root cause of the problem.
> 
> kthread_rcu seems to run in circles for whatever reason and the RT
> throttler catches it. After that things go down the drain completely
> as it should get on the CPU again after that 50ms throttling break.

Ah.  This could happen if there was a huge number of callbacks, in
which case blimit would be set very large and kthread_rcu could then
go CPU-bound.  And this workload was generating large numbers of
callbacks due to filesystem operations, right?

So, perhaps I should kick kthread_rcu back to SCHED_NORMAL if blimit
has been set high.  Or have some throttling of my own.  I must confess
that throttling kthread_rcu for two hours seems a bit harsh.  ;-)

If this was just throttling kthread_rcu for a few hundred milliseconds,
or even for a second or two, things would be just fine.

Left to myself, I will put together a patch that puts callback processing
down to SCHED_NORMAL in the case where there are huge numbers of
callbacks to be processed.

> Though we should not ignore the fact, that the RT throttler hit, but
> none of the RT tasks actually accumulated runtime.
> 
> So there is a couple of questions:
> 
>    - Why does the scheduler detect the 950 ms RT runtime, but does
>      not accumulate that runtime to any thread
> 
>    - Why is the runtime accounting totally hosed
> 
>    - Why does that not happen (at least not reproducible) with 
>      TREE_RCU

This one I can answer -- In Linus's tree, TREE_RCU still uses softirq,
so there is no RCU kthread, so there is nothing to throttle other
than ksoftirqd itself.

							Thanx, Paul

> I need some sleep now, but I will try to come up with sensible
> debugging tomorrow unless Paul or someone else beats me to it.
> 
> Thanks,
> 
> 	tglx

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 22:27                                               ` Paul E. McKenney
@ 2011-04-27 22:32                                                 ` Thomas Gleixner
  2011-04-27 22:59                                                   ` Paul E. McKenney
  2011-04-27 23:28                                                   ` Linus Torvalds
  0 siblings, 2 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-27 22:32 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: Bruno Prémont, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2665 bytes --]



On Wed, 27 Apr 2011, Paul E. McKenney wrote:

> On Thu, Apr 28, 2011 at 12:06:11AM +0200, Thomas Gleixner wrote:
> > On Wed, 27 Apr 2011, Bruno Prémont wrote:
> > > On Wed, 27 April 2011 Bruno Prémont wrote:
> > > Voluntary context switches stay constant from the time on SLABs pile up.
> > > (which makes sense as it doesn't run get CPU slices anymore)
> > > 
> > > > > Can you please enable CONFIG_SCHED_DEBUG and provide the output of
> > > > > /proc/sched_stat when the problem surfaces and a minute after the
> > > > > first snapshot?
> > > 
> > > hm, did you mean CONFIG_SCHEDSTAT or /proc/sched_debug?
> > > 
> > > I did use CONFIG_SCHED_DEBUG (and there is no /proc/sched_stat) so I took
> > > /proc/sched_debug which exists... (attached, taken about 7min and +1min
> > > after SLABs started piling up), though build processes were SIGSTOPped
> > > during first minute.
> > 
> > Oops. /proc/sched_debug is the right thing.
> > 
> > > printk wrote (in case its timestamp is useful, more below):
> > > [  518.480103] sched: RT throttling activated
> > 
> > Ok. Aside of the fact that the CPU time accounting is completely hosed
> > this is pointing to the root cause of the problem.
> > 
> > kthread_rcu seems to run in circles for whatever reason and the RT
> > throttler catches it. After that things go down the drain completely
> > as it should get on the CPU again after that 50ms throttling break.
> 
> Ah.  This could happen if there was a huge number of callbacks, in
> which case blimit would be set very large and kthread_rcu could then
> go CPU-bound.  And this workload was generating large numbers of
> callbacks due to filesystem operations, right?
> 
> So, perhaps I should kick kthread_rcu back to SCHED_NORMAL if blimit
> has been set high.  Or have some throttling of my own.  I must confess
> that throttling kthread_rcu for two hours seems a bit harsh.  ;-)

That's not the intended thing. See below.
 
> If this was just throttling kthread_rcu for a few hundred milliseconds,
> or even for a second or two, things would be just fine.
> 
> Left to myself, I will put together a patch that puts callback processing
> down to SCHED_NORMAL in the case where there are huge numbers of
> callbacks to be processed.

Well that's going to paper over the problem at hand possibly. I really
don't see why that thing would run for more than 950ms in a row even
if there is a large number of callbacks pending.

And then I don't have an explanation for the hosed CPU accounting and
why that thing does not get another 950ms RT time when the 50ms
throttling break is over.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 22:32                                                 ` Thomas Gleixner
@ 2011-04-27 22:59                                                   ` Paul E. McKenney
  2011-04-27 23:28                                                   ` Linus Torvalds
  1 sibling, 0 replies; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-27 22:59 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Bruno Prémont, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Thu, Apr 28, 2011 at 12:32:50AM +0200, Thomas Gleixner wrote:
> On Wed, 27 Apr 2011, Paul E. McKenney wrote:
> > On Thu, Apr 28, 2011 at 12:06:11AM +0200, Thomas Gleixner wrote:
> > > On Wed, 27 Apr 2011, Bruno Prémont wrote:
> > > > On Wed, 27 April 2011 Bruno Prémont wrote:
> > > > Voluntary context switches stay constant from the time on SLABs pile up.
> > > > (which makes sense as it doesn't run get CPU slices anymore)
> > > > 
> > > > > > Can you please enable CONFIG_SCHED_DEBUG and provide the output of
> > > > > > /proc/sched_stat when the problem surfaces and a minute after the
> > > > > > first snapshot?
> > > > 
> > > > hm, did you mean CONFIG_SCHEDSTAT or /proc/sched_debug?
> > > > 
> > > > I did use CONFIG_SCHED_DEBUG (and there is no /proc/sched_stat) so I took
> > > > /proc/sched_debug which exists... (attached, taken about 7min and +1min
> > > > after SLABs started piling up), though build processes were SIGSTOPped
> > > > during first minute.
> > > 
> > > Oops. /proc/sched_debug is the right thing.
> > > 
> > > > printk wrote (in case its timestamp is useful, more below):
> > > > [  518.480103] sched: RT throttling activated
> > > 
> > > Ok. Aside of the fact that the CPU time accounting is completely hosed
> > > this is pointing to the root cause of the problem.
> > > 
> > > kthread_rcu seems to run in circles for whatever reason and the RT
> > > throttler catches it. After that things go down the drain completely
> > > as it should get on the CPU again after that 50ms throttling break.
> > 
> > Ah.  This could happen if there was a huge number of callbacks, in
> > which case blimit would be set very large and kthread_rcu could then
> > go CPU-bound.  And this workload was generating large numbers of
> > callbacks due to filesystem operations, right?
> > 
> > So, perhaps I should kick kthread_rcu back to SCHED_NORMAL if blimit
> > has been set high.  Or have some throttling of my own.  I must confess
> > that throttling kthread_rcu for two hours seems a bit harsh.  ;-)
> 
> That's not the intended thing. See below.
> 
> > If this was just throttling kthread_rcu for a few hundred milliseconds,
> > or even for a second or two, things would be just fine.
> > 
> > Left to myself, I will put together a patch that puts callback processing
> > down to SCHED_NORMAL in the case where there are huge numbers of
> > callbacks to be processed.
> 
> Well that's going to paper over the problem at hand possibly. I really
> don't see why that thing would run for more than 950ms in a row even
> if there is a large number of callbacks pending.

True enough, it would probably take millions of callbacks to keep
rcu_do_batch() busy for 950 milliseconds.  Possible, but hopefully
unlikely.

Hmmm...  If this is happening, I should see it in the debug stuff that
Sedat sent me.  And the biggest change I see in a 15-second interval
is 50,000 RCU callbacks, which is large, but should not be problematic.
Even if they all showed up at once, I would hope that they could be
invoked within a few hundred milliseconds.

> And then I don't have an explanation for the hosed CPU accounting and
> why that thing does not get another 950ms RT time when the 50ms
> throttling break is over.

Would problems in the CPU accounting result in spurious throttles,
or are we talking different types of accounting here?

							Thanx, Paul

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 22:32                                                 ` Thomas Gleixner
  2011-04-27 22:59                                                   ` Paul E. McKenney
@ 2011-04-27 23:28                                                   ` Linus Torvalds
  2011-04-27 23:46                                                     ` Linus Torvalds
  1 sibling, 1 reply; 88+ messages in thread
From: Linus Torvalds @ 2011-04-27 23:28 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Paul E. McKenney, Bruno Prémont, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, Apr 27, 2011 at 3:32 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
>
> Well that's going to paper over the problem at hand possibly. I really
> don't see why that thing would run for more than 950ms in a row even
> if there is a large number of callbacks pending.

Stop with this bogosity already, guys.

We _know_ it didn't run continuously for 950ms. That number is totally
made up. There's not enough work for it to run that long, but more
importantly, the thread has zero CPU time. There is _zero_ reason to
believe that it runs for long periods.

There is some scheduler bug, probably the rt_time hasn't been
initialized at all, or runtime we compare against is zero, or the
calculations are just wrong.

The 950ms didn't happen. Stop harping on it. It almost certainly
simply doesn't exist.

Since that

       if (rt_rq->rt_time > runtime) {
               rt_rq->rt_throttled = 1;
+               printk_once(KERN_WARNING "sched: RT throttling activated\n");

test triggers, we know that either 'runtime' or 'rt_time' is just
bogus. Make the printk print out the values, and maybe that gives some
hints.

But in the meantime, I'd suggest looking for the places that
initialize or calculate those values, and just assume that some of
them are buggy.

> And then I don't have an explanation for the hosed CPU accounting and
> why that thing does not get another 950ms RT time when the 50ms
> throttling break is over.

Again, don't even bother talking about "another 950ms". It didn't
happen in the first place, there's no "another" there either.

                      Linus

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 23:28                                                   ` Linus Torvalds
@ 2011-04-27 23:46                                                     ` Linus Torvalds
  0 siblings, 0 replies; 88+ messages in thread
From: Linus Torvalds @ 2011-04-27 23:46 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Paul E. McKenney, Bruno Prémont, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, Apr 27, 2011 at 4:28 PM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> We _know_ it didn't run continuously for 950ms. That number is totally
> made up. There's not enough work for it to run that long, but more
> importantly, the thread has zero CPU time. There is _zero_ reason to
> believe that it runs for long periods.

Hmm. But it might certainly have run for a _total_ of 950ms. Since
that's just under a second, we wouldn't see it in the "ps" output.

Where is rt_time cleared? I see that subtract in
do_sched_rt_period_timer(), but judging by the caller that is only
called for some timer overrun case (I didn't look at what the
definition of such an overrun is, though). Shouldn't rt_time be
cleared when the task goes to sleep voluntarily?

What am I missing?

                   Linus

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 22:07                                               ` Paul E. McKenney
@ 2011-04-28  6:10                                                 ` Bruno Prémont
  0 siblings, 0 replies; 88+ messages in thread
From: Bruno Prémont @ 2011-04-28  6:10 UTC (permalink / raw)
  To: paulmck
  Cc: Thomas Gleixner, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, 27 Apr 2011 15:07:17 "Paul E. McKenney" wrote:
> On Wed, Apr 27, 2011 at 10:40:23PM +0200, Bruno Prémont wrote:
> > On Wed, 27 April 2011 Bruno Prémont wrote:
> > > On Wed, 27 April 2011 Bruno Prémont wrote:
> > > > On Wed, 27 Apr 2011 00:28:37 +0200 (CEST) Thomas Gleixner wrote:
> > > > > Also please apply the patch below and check, whether the printk shows
> > > > > up in your dmesg.
> > > > 
> > > > > Index: linux-2.6-tip/kernel/sched_rt.c
> > > > > ===================================================================
> > > > > --- linux-2.6-tip.orig/kernel/sched_rt.c
> > > > > +++ linux-2.6-tip/kernel/sched_rt.c
> > > > > @@ -609,6 +609,7 @@ static int sched_rt_runtime_exceeded(str
> > > > >  
> > > > >  	if (rt_rq->rt_time > runtime) {
> > > > >  		rt_rq->rt_throttled = 1;
> > > > > +		printk_once(KERN_WARNING "sched: RT throttling activated\n");
> > > 
> > > This gun is triggering right before RCU-managed slabs start piling up as
> > > visible under slabtop so chances are it's at least a related!
> > 
> > Letting the machine idle (except running collectd and slabtop) scheduler
> > suddenly decided to restart giving rcu_kthread CPU cycles (after two hours
> > or so! if I read my statistics graphs correctly)
> 
> And this also returned the slab memory, right?

Exactly!

> Two hours is quite some time...
> 
> 							Thanx, Paul
> 
> > While looking at lkml during the above 2 hours I stumbled across this (the
> > patch of which doesn't help in my case) which looked possibly related.
> >   http://thread.gmane.org/gmane.linux.kernel/1129614
> > 
> > Bruno
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 21:55                                         ` Paul E. McKenney
@ 2011-04-28  6:22                                           ` Bruno Prémont
  2011-04-28 10:26                                             ` Paul E. McKenney
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-28  6:22 UTC (permalink / raw)
  To: paulmck
  Cc: Thomas Gleixner, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Wed, 27 Apr 2011 14:55:49 "Paul E. McKenney" wrote:
> On Wed, Apr 27, 2011 at 12:28:37AM +0200, Thomas Gleixner wrote:
> > On Tue, 26 Apr 2011, Linus Torvalds wrote:
> > > Normally SCHED_FIFO runs until it voluntarily gives up the CPU. That's
> > > kind of the point of SCHED_FIFO. Involuntary context switches happen
> > > when some higher-priority SCHED_FIFO process becomes runnable (irq
> > > handlers? You _do_ have CONFIG_IRQ_FORCED_THREADING=y in your config
> > > too), and maybe there is a bug in the runqueue handling for that case.
> > 
> > The forced irq threading is only effective when you add the command
> > line parameter "threadirqs". I don't see any irq threads in the ps
> > outputs, so that's not the problem.
> > 
> > Though the whole ps output is weird. There is only one thread/process
> > which accumulated CPU time
> > 
> > collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:14
> 
> I believe that the above is the script that prints out the RCU debugfs
> information periodically.  Unless there is something else that begins
> with "collectd" instead of just collectdebugfs.sh.

No, collectd is a multi-threaded daemon that collects statistics of all
kinds, see  http://www.collectd.org/  for details (on my machine it
collects CPU usage, memory usage [just the basics], disk statistics,
network statistics load and a few more)

Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-27 22:06                                             ` Thomas Gleixner
  2011-04-27 22:27                                               ` Paul E. McKenney
@ 2011-04-28  9:09                                               ` Thomas Gleixner
  2011-04-28  9:17                                                 ` Sedat Dilek
  2011-04-28  9:45                                                 ` Sedat Dilek
  1 sibling, 2 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-28  9:09 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Linus Torvalds, Ingo Molnar, Peter Zijlstra, Paul E. McKenney,
	Mike Frysinger, KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel,
	Paul E. McKenney, Pekka Enberg, Mike Galbraith

[-- Attachment #1: Type: TEXT/PLAIN, Size: 839 bytes --]

Bruno,

On Thu, 28 Apr 2011, Thomas Gleixner wrote:
> On Wed, 27 Apr 2011, Bruno Prémont wrote:
> I need some sleep now, but I will try to come up with sensible
> debugging tomorrow unless Paul or someone else beats me to it.

can you please add the patch below and provide the /proc/sched_debug
output when the problem shows up again?

Thanks,

	tglx

---
 kernel/sched.c |    3 ---
 1 file changed, 3 deletions(-)

Index: linux-2.6/kernel/sched.c
===================================================================
--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -642,9 +642,6 @@ static void update_rq_clock(struct rq *r
 {
 	s64 delta;
 
-	if (rq->skip_clock_update)
-		return;
-
 	delta = sched_clock_cpu(cpu_of(rq)) - rq->clock;
 	rq->clock += delta;
 	update_rq_clock_task(rq, delta);

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28  9:09                                               ` Thomas Gleixner
@ 2011-04-28  9:17                                                 ` Sedat Dilek
  2011-04-28  9:40                                                   ` Thomas Gleixner
  2011-04-28  9:45                                                 ` Sedat Dilek
  1 sibling, 1 reply; 88+ messages in thread
From: Sedat Dilek @ 2011-04-28  9:17 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Bruno Prémont, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Paul E. McKenney, Mike Frysinger, KOSAKI Motohiro, LKML, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg, Mike Galbraith

On Thu, Apr 28, 2011 at 11:09 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> Bruno,
>
> On Thu, 28 Apr 2011, Thomas Gleixner wrote:
>> On Wed, 27 Apr 2011, Bruno Prémont wrote:
>> I need some sleep now, but I will try to come up with sensible
>> debugging tomorrow unless Paul or someone else beats me to it.
>
> can you please add the patch below and provide the /proc/sched_debug
> output when the problem shows up again?
>
> Thanks,
>
>        tglx
>
> ---
>  kernel/sched.c |    3 ---
>  1 file changed, 3 deletions(-)
>
> Index: linux-2.6/kernel/sched.c
> ===================================================================
> --- linux-2.6.orig/kernel/sched.c
> +++ linux-2.6/kernel/sched.c
> @@ -642,9 +642,6 @@ static void update_rq_clock(struct rq *r
>  {
>        s64 delta;
>
> -       if (rq->skip_clock_update)
> -               return;
> -
>        delta = sched_clock_cpu(cpu_of(rq)) - rq->clock;
>        rq->clock += delta;
>        update_rq_clock_task(rq, delta);

Referring to [1]?

- Sedat -

[1] http://lkml.org/lkml/2011/4/22/35

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28  9:17                                                 ` Sedat Dilek
@ 2011-04-28  9:40                                                   ` Thomas Gleixner
  2011-04-28 10:12                                                     ` Mike Galbraith
  0 siblings, 1 reply; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-28  9:40 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Bruno Prémont, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Paul E. McKenney, Mike Frysinger, KOSAKI Motohiro, LKML, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg, Mike Galbraith

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1367 bytes --]

On Thu, 28 Apr 2011, Sedat Dilek wrote:
> On Thu, Apr 28, 2011 at 11:09 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > Bruno,
> >
> > On Thu, 28 Apr 2011, Thomas Gleixner wrote:
> >> On Wed, 27 Apr 2011, Bruno Prémont wrote:
> >> I need some sleep now, but I will try to come up with sensible
> >> debugging tomorrow unless Paul or someone else beats me to it.
> >
> > can you please add the patch below and provide the /proc/sched_debug
> > output when the problem shows up again?
> >
> > Thanks,
> >
> >        tglx
> >
> > ---
> >  kernel/sched.c |    3 ---
> >  1 file changed, 3 deletions(-)
> >
> > Index: linux-2.6/kernel/sched.c
> > ===================================================================
> > --- linux-2.6.orig/kernel/sched.c
> > +++ linux-2.6/kernel/sched.c
> > @@ -642,9 +642,6 @@ static void update_rq_clock(struct rq *r
> >  {
> >        s64 delta;
> >
> > -       if (rq->skip_clock_update)
> > -               return;
> > -
> >        delta = sched_clock_cpu(cpu_of(rq)) - rq->clock;
> >        rq->clock += delta;
> >        update_rq_clock_task(rq, delta);
> 
> Referring to [1]?
> 
> - Sedat -
> 
> [1] http://lkml.org/lkml/2011/4/22/35

Kinda, but I suspect there is more wrong with that optimization thing
for yet unknown reasons.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28  9:09                                               ` Thomas Gleixner
  2011-04-28  9:17                                                 ` Sedat Dilek
@ 2011-04-28  9:45                                                 ` Sedat Dilek
  2011-04-28 10:26                                                   ` Paul E. McKenney
  1 sibling, 1 reply; 88+ messages in thread
From: Sedat Dilek @ 2011-04-28  9:45 UTC (permalink / raw)
  To: Bruno Prémont, Thomas Gleixner, Paul E. McKenney
  Cc: Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg, Mike Galbraith

[-- Attachment #1: Type: text/plain, Size: 916 bytes --]

Hi,

not sure if my problem from linux-2.6-rcu.git#sedat.2011.04.23a is
related to the issue here.

Just FYI:
I am here on a Pentium-M (uniprocessor aka UP) and still unsure if I
have the correct (optimal?) kernel-configs set.

Paul gave me a script to collect RCU data and I enhanced it with
collecting SCHED data.

In the above mentionned GIT branch I applied these two extra commits
(0001 requested by Paul and 0002 proposed by Thomas):

patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch

Furthermore, I have added my kernel-config file, scripts, patches and
logs (also output of 'cat /proc/cpuinfo').

Hope this helps the experts to narrow down the problem.

Regards,
- Sedat -

P.S.: I adapted the patch from [1] against
linux-2.6-rcu.git#sedat.2011.04.23a, but did not help here.

[1] http://lkml.org/lkml/2011/4/22/35

[-- Attachment #2: from-dileks.tar.xz --]
[-- Type: application/octet-stream, Size: 94592 bytes --]

[-- Attachment #3: from-dileks.tar.xz.sha256sum --]
[-- Type: application/octet-stream, Size: 85 bytes --]

d24369c754dce91335851e2681e6b7469f978dafc72c6ef5797530c061bc54ff  from-dileks.tar.xz

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28  9:40                                                   ` Thomas Gleixner
@ 2011-04-28 10:12                                                     ` Mike Galbraith
  0 siblings, 0 replies; 88+ messages in thread
From: Mike Galbraith @ 2011-04-28 10:12 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: sedat.dilek, Bruno Prémont, Linus Torvalds, Ingo Molnar,
	Peter Zijlstra, Paul E. McKenney, Mike Frysinger, KOSAKI Motohiro,
	LKML, linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Thu, 2011-04-28 at 11:40 +0200, Thomas Gleixner wrote:
> On Thu, 28 Apr 2011, Sedat Dilek wrote:
> > On Thu, Apr 28, 2011 at 11:09 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > > Bruno,
> > >
> > > On Thu, 28 Apr 2011, Thomas Gleixner wrote:
> > >> On Wed, 27 Apr 2011, Bruno Prémont wrote:
> > >> I need some sleep now, but I will try to come up with sensible
> > >> debugging tomorrow unless Paul or someone else beats me to it.
> > >
> > > can you please add the patch below and provide the /proc/sched_debug
> > > output when the problem shows up again?
> > >
> > > Thanks,
> > >
> > >        tglx
> > >
> > > ---
> > >  kernel/sched.c |    3 ---
> > >  1 file changed, 3 deletions(-)
> > >
> > > Index: linux-2.6/kernel/sched.c
> > > ===================================================================
> > > --- linux-2.6.orig/kernel/sched.c
> > > +++ linux-2.6/kernel/sched.c
> > > @@ -642,9 +642,6 @@ static void update_rq_clock(struct rq *r
> > >  {
> > >        s64 delta;
> > >
> > > -       if (rq->skip_clock_update)
> > > -               return;
> > > -
> > >        delta = sched_clock_cpu(cpu_of(rq)) - rq->clock;
> > >        rq->clock += delta;
> > >        update_rq_clock_task(rq, delta);
> > 
> > Referring to [1]?
> > 
> > - Sedat -
> > 
> > [1] http://lkml.org/lkml/2011/4/22/35
> 
> Kinda, but I suspect there is more wrong with that optimization thing
> for yet unknown reasons.

It's definitely getting in the way in the throttled to unthrottled RT
when otherwise idle case.  Removing it to test is a good idea.

	-Mike

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28  9:45                                                 ` Sedat Dilek
@ 2011-04-28 10:26                                                   ` Paul E. McKenney
  2011-04-28 13:30                                                     ` Mike Galbraith
  0 siblings, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-28 10:26 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Bruno Prémont, Thomas Gleixner, Linus Torvalds, Ingo Molnar,
	Peter Zijlstra, Mike Frysinger, KOSAKI Motohiro, LKML, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg, Mike Galbraith

On Thu, Apr 28, 2011 at 11:45:03AM +0200, Sedat Dilek wrote:
> Hi,
> 
> not sure if my problem from linux-2.6-rcu.git#sedat.2011.04.23a is
> related to the issue here.
> 
> Just FYI:
> I am here on a Pentium-M (uniprocessor aka UP) and still unsure if I
> have the correct (optimal?) kernel-configs set.
> 
> Paul gave me a script to collect RCU data and I enhanced it with
> collecting SCHED data.
> 
> In the above mentionned GIT branch I applied these two extra commits
> (0001 requested by Paul and 0002 proposed by Thomas):
> 
> patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
> patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch
> 
> Furthermore, I have added my kernel-config file, scripts, patches and
> logs (also output of 'cat /proc/cpuinfo').
> 
> Hope this helps the experts to narrow down the problem.

Yow!!!

Now this one might well be able to hit the 950 millisecond limit.
There are no fewer than 1,314,958 RCU callbacks queued up at the end of
the test.  And RCU has indeed noticed this and cranked up the number
of callbacks to be handled by each invocation of rcu_do_batch() to
2,147,483,647.  And only 15 seconds earlier, there were zero callbacks
queued and the rcu_do_batch() limit was at the default of 10 callbacks
per invocation.

							Thanx, Paul

> Regards,
> - Sedat -
> 
> P.S.: I adapted the patch from [1] against
> linux-2.6-rcu.git#sedat.2011.04.23a, but did not help here.
> 
> [1] http://lkml.org/lkml/2011/4/22/35



--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28  6:22                                           ` Bruno Prémont
@ 2011-04-28 10:26                                             ` Paul E. McKenney
  0 siblings, 0 replies; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-28 10:26 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Thomas Gleixner, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, linux-kernel, linux-mm,
	linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Thu, Apr 28, 2011 at 08:22:29AM +0200, Bruno Prémont wrote:
> On Wed, 27 Apr 2011 14:55:49 "Paul E. McKenney" wrote:
> > On Wed, Apr 27, 2011 at 12:28:37AM +0200, Thomas Gleixner wrote:
> > > On Tue, 26 Apr 2011, Linus Torvalds wrote:
> > > > Normally SCHED_FIFO runs until it voluntarily gives up the CPU. That's
> > > > kind of the point of SCHED_FIFO. Involuntary context switches happen
> > > > when some higher-priority SCHED_FIFO process becomes runnable (irq
> > > > handlers? You _do_ have CONFIG_IRQ_FORCED_THREADING=y in your config
> > > > too), and maybe there is a bug in the runqueue handling for that case.
> > > 
> > > The forced irq threading is only effective when you add the command
> > > line parameter "threadirqs". I don't see any irq threads in the ps
> > > outputs, so that's not the problem.
> > > 
> > > Though the whole ps output is weird. There is only one thread/process
> > > which accumulated CPU time
> > > 
> > > collectd  1605  0.6  0.7  49924  3748 ?        SNLsl 22:14   0:14
> > 
> > I believe that the above is the script that prints out the RCU debugfs
> > information periodically.  Unless there is something else that begins
> > with "collectd" instead of just collectdebugfs.sh.
> 
> No, collectd is a multi-threaded daemon that collects statistics of all
> kinds, see  http://www.collectd.org/  for details (on my machine it
> collects CPU usage, memory usage [just the basics], disk statistics,
> network statistics load and a few more)

OK, thank you for the info!

							Thanx, Paul

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 10:26                                                   ` Paul E. McKenney
@ 2011-04-28 13:30                                                     ` Mike Galbraith
  2011-04-28 15:28                                                       ` Sedat Dilek
  0 siblings, 1 reply; 88+ messages in thread
From: Mike Galbraith @ 2011-04-28 13:30 UTC (permalink / raw)
  To: paulmck
  Cc: sedat.dilek, Bruno Prémont, Thomas Gleixner, Linus Torvalds,
	Ingo Molnar, Peter Zijlstra, Mike Frysinger, KOSAKI Motohiro,
	LKML, linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Thu, 2011-04-28 at 03:26 -0700, Paul E. McKenney wrote:
> On Thu, Apr 28, 2011 at 11:45:03AM +0200, Sedat Dilek wrote:
> > Hi,
> > 
> > not sure if my problem from linux-2.6-rcu.git#sedat.2011.04.23a is
> > related to the issue here.
> > 
> > Just FYI:
> > I am here on a Pentium-M (uniprocessor aka UP) and still unsure if I
> > have the correct (optimal?) kernel-configs set.
> > 
> > Paul gave me a script to collect RCU data and I enhanced it with
> > collecting SCHED data.
> > 
> > In the above mentionned GIT branch I applied these two extra commits
> > (0001 requested by Paul and 0002 proposed by Thomas):
> > 
> > patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
> > patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch
> > 
> > Furthermore, I have added my kernel-config file, scripts, patches and
> > logs (also output of 'cat /proc/cpuinfo').
> > 
> > Hope this helps the experts to narrow down the problem.
> 
> Yow!!!
> 
> Now this one might well be able to hit the 950 millisecond limit.
> There are no fewer than 1,314,958 RCU callbacks queued up at the end of
> the test.  And RCU has indeed noticed this and cranked up the number
> of callbacks to be handled by each invocation of rcu_do_batch() to
> 2,147,483,647.  And only 15 seconds earlier, there were zero callbacks
> queued and the rcu_do_batch() limit was at the default of 10 callbacks
> per invocation.

Yeah, yow.  Once the RT throttle hit, it stuck.

  .clock                         : 1386824.201768
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.132427
  .rt_runtime                    : 950.000000
           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
FF    1      1 R    R 0 [rcuc0]
  .clock                         : 1402450.997994
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.132427
  .rt_runtime                    : 950.000000
           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
FF    1      1 R    R 0 [rcuc0]

...

  .clock                         : 2707432.862374
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.132427
  .rt_runtime                    : 950.000000                                                                                              
           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /                               
FF    1      1 R    R 0 [rcuc0]
  .clock                         : 2722572.958381                                                                                          
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.132427
  .rt_runtime                    : 950.000000                                                                                              
           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
FF    1      1 R    R 0 [rcuc0]                                                                                                            


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 13:30                                                     ` Mike Galbraith
@ 2011-04-28 15:28                                                       ` Sedat Dilek
  2011-04-28 15:44                                                         ` Sedat Dilek
                                                                           ` (3 more replies)
  0 siblings, 4 replies; 88+ messages in thread
From: Sedat Dilek @ 2011-04-28 15:28 UTC (permalink / raw)
  To: Mike Galbraith, Thomas Gleixner, Paul E. McKenney
  Cc: Bruno Prémont, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel,
	Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 6196 bytes --]

On Thu, Apr 28, 2011 at 3:30 PM, Mike Galbraith <efault@gmx.de> wrote:
> On Thu, 2011-04-28 at 03:26 -0700, Paul E. McKenney wrote:
>> On Thu, Apr 28, 2011 at 11:45:03AM +0200, Sedat Dilek wrote:
>> > Hi,
>> >
>> > not sure if my problem from linux-2.6-rcu.git#sedat.2011.04.23a is
>> > related to the issue here.
>> >
>> > Just FYI:
>> > I am here on a Pentium-M (uniprocessor aka UP) and still unsure if I
>> > have the correct (optimal?) kernel-configs set.
>> >
>> > Paul gave me a script to collect RCU data and I enhanced it with
>> > collecting SCHED data.
>> >
>> > In the above mentionned GIT branch I applied these two extra commits
>> > (0001 requested by Paul and 0002 proposed by Thomas):
>> >
>> > patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
>> > patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch
>> >
>> > Furthermore, I have added my kernel-config file, scripts, patches and
>> > logs (also output of 'cat /proc/cpuinfo').
>> >
>> > Hope this helps the experts to narrow down the problem.
>>
>> Yow!!!
>>
>> Now this one might well be able to hit the 950 millisecond limit.
>> There are no fewer than 1,314,958 RCU callbacks queued up at the end of
>> the test.  And RCU has indeed noticed this and cranked up the number
>> of callbacks to be handled by each invocation of rcu_do_batch() to
>> 2,147,483,647.  And only 15 seconds earlier, there were zero callbacks
>> queued and the rcu_do_batch() limit was at the default of 10 callbacks
>> per invocation.
>
> Yeah, yow.  Once the RT throttle hit, it stuck.
>
>  .clock                         : 1386824.201768
>  .rt_nr_running                 : 2
>  .rt_throttled                  : 1
>  .rt_time                       : 950.132427
>  .rt_runtime                    : 950.000000
>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
> FF    1      1 R    R 0 [rcuc0]
>  .clock                         : 1402450.997994
>  .rt_nr_running                 : 2
>  .rt_throttled                  : 1
>  .rt_time                       : 950.132427
>  .rt_runtime                    : 950.000000
>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
> FF    1      1 R    R 0 [rcuc0]
>
> ...
>
>  .clock                         : 2707432.862374
>  .rt_nr_running                 : 2
>  .rt_throttled                  : 1
>  .rt_time                       : 950.132427
>  .rt_runtime                    : 950.000000
>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
> FF    1      1 R    R 0 [rcuc0]
>  .clock                         : 2722572.958381
>  .rt_nr_running                 : 2
>  .rt_throttled                  : 1
>  .rt_time                       : 950.132427
>  .rt_runtime                    : 950.000000
>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
> FF    1      1 R    R 0 [rcuc0]
>
>

Hi,

OK, I tried with the patch proposed by Thomas (0003):

patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch
patches/0003-sched-Remove-skip_clock_update-check.patch

>From the very beginning it looked as the system is "stable" due to:

  .rt_nr_running                 : 0
  .rt_throttled                  : 0

This changed when I started a simple tar-job to save my kernel
build-dir to an external USB-hdd.
From...

  .rt_nr_running                 : 1
  .rt_throttled                  : 1

...To:

  .rt_nr_running                 : 2
  .rt_throttled                  : 1

Unfortunately, reducing all activities to a minimum load, did not
change from last known RT throttling state.

Just noticed rt_time exceeds the value of 950 first time here:

  .rt_nr_running                 : 1
  .rt_throttled                  : 1
  .rt_time                       : 950.005460

Full data attchached as tarball.

- Sedat -

P.S.: Excerpt from
collectdebugfs-v2_2.6.39-rc3-rcutree-sedat.2011.04.23a+.log (0:0 ->
1:1 -> 2:1)

--
rt_rq[0]:
  .rt_nr_running                 : 0
  .rt_throttled                  : 0
  .rt_time                       : 888.893877
  .rt_runtime                    : 950.000000

runnable tasks:
            task   PID         tree-key  switches  prio
exec-runtime         sum-exec        sum-sleep
----------------------------------------------------------------------------------------------------------
R            cat  2652    115108.993460         1   120
115108.993460         1.147986         0.000000 /
--
rt_rq[0]:
  .rt_nr_running                 : 1
  .rt_throttled                  : 1
  .rt_time                       : 950.005460
  .rt_runtime                    : 950.000000

runnable tasks:
            task   PID         tree-key  switches  prio
exec-runtime         sum-exec        sum-sleep
----------------------------------------------------------------------------------------------------------
           rcuc0     7         0.000000     56869    98
0.000000       981.385605         0.000000 /
--
rt_rq[0]:
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.005460
  .rt_runtime                    : 950.000000

runnable tasks:
            task   PID         tree-key  switches  prio
exec-runtime         sum-exec        sum-sleep
----------------------------------------------------------------------------------------------------------
           rcuc0     7         0.000000     56869    98
0.000000       981.385605         0.000000 /
--

[-- Attachment #2: from-dileks-2.tar.xz --]
[-- Type: application/octet-stream, Size: 72532 bytes --]

[-- Attachment #3: from-dileks-2.tar.xz.sha256sum --]
[-- Type: application/octet-stream, Size: 87 bytes --]

ca09bc3c0f0d9d3794014f7540a48b40b804b21b62d94773dcd205b4843906f8  from-dileks-2.tar.xz

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 15:28                                                       ` Sedat Dilek
@ 2011-04-28 15:44                                                         ` Sedat Dilek
  2011-04-28 15:48                                                         ` Linus Torvalds
                                                                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 88+ messages in thread
From: Sedat Dilek @ 2011-04-28 15:44 UTC (permalink / raw)
  To: Mike Galbraith, Thomas Gleixner, Paul E. McKenney
  Cc: Bruno Prémont, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	Mike Frysinger, KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel,
	Paul E. McKenney, Pekka Enberg

On Thu, Apr 28, 2011 at 5:28 PM, Sedat Dilek <sedat.dilek@googlemail.com> wrote:
> On Thu, Apr 28, 2011 at 3:30 PM, Mike Galbraith <efault@gmx.de> wrote:
>> On Thu, 2011-04-28 at 03:26 -0700, Paul E. McKenney wrote:
>>> On Thu, Apr 28, 2011 at 11:45:03AM +0200, Sedat Dilek wrote:
>>> > Hi,
>>> >
>>> > not sure if my problem from linux-2.6-rcu.git#sedat.2011.04.23a is
>>> > related to the issue here.
>>> >
>>> > Just FYI:
>>> > I am here on a Pentium-M (uniprocessor aka UP) and still unsure if I
>>> > have the correct (optimal?) kernel-configs set.
>>> >
>>> > Paul gave me a script to collect RCU data and I enhanced it with
>>> > collecting SCHED data.
>>> >
>>> > In the above mentionned GIT branch I applied these two extra commits
>>> > (0001 requested by Paul and 0002 proposed by Thomas):
>>> >
>>> > patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
>>> > patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch
>>> >
>>> > Furthermore, I have added my kernel-config file, scripts, patches and
>>> > logs (also output of 'cat /proc/cpuinfo').
>>> >
>>> > Hope this helps the experts to narrow down the problem.
>>>
>>> Yow!!!
>>>
>>> Now this one might well be able to hit the 950 millisecond limit.
>>> There are no fewer than 1,314,958 RCU callbacks queued up at the end of
>>> the test.  And RCU has indeed noticed this and cranked up the number
>>> of callbacks to be handled by each invocation of rcu_do_batch() to
>>> 2,147,483,647.  And only 15 seconds earlier, there were zero callbacks
>>> queued and the rcu_do_batch() limit was at the default of 10 callbacks
>>> per invocation.
>>
>> Yeah, yow.  Once the RT throttle hit, it stuck.
>>
>>  .clock                         : 1386824.201768
>>  .rt_nr_running                 : 2
>>  .rt_throttled                  : 1
>>  .rt_time                       : 950.132427
>>  .rt_runtime                    : 950.000000
>>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
>> FF    1      1 R    R 0 [rcuc0]
>>  .clock                         : 1402450.997994
>>  .rt_nr_running                 : 2
>>  .rt_throttled                  : 1
>>  .rt_time                       : 950.132427
>>  .rt_runtime                    : 950.000000
>>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
>> FF    1      1 R    R 0 [rcuc0]
>>
>> ...
>>
>>  .clock                         : 2707432.862374
>>  .rt_nr_running                 : 2
>>  .rt_throttled                  : 1
>>  .rt_time                       : 950.132427
>>  .rt_runtime                    : 950.000000
>>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
>> FF    1      1 R    R 0 [rcuc0]
>>  .clock                         : 2722572.958381
>>  .rt_nr_running                 : 2
>>  .rt_throttled                  : 1
>>  .rt_time                       : 950.132427
>>  .rt_runtime                    : 950.000000
>>           rcuc0     7         0.034118     10857    98         0.034118      1472.309646         0.000000 /
>> FF    1      1 R    R 0 [rcuc0]
>>
>>
>
> Hi,
>
> OK, I tried with the patch proposed by Thomas (0003):
>
> patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
> patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch
> patches/0003-sched-Remove-skip_clock_update-check.patch
>
> From the very beginning it looked as the system is "stable" due to:
>
>  .rt_nr_running                 : 0
>  .rt_throttled                  : 0
>
> This changed when I started a simple tar-job to save my kernel
> build-dir to an external USB-hdd.
> From...
>
>  .rt_nr_running                 : 1
>  .rt_throttled                  : 1
>
> ...To:
>
>  .rt_nr_running                 : 2
>  .rt_throttled                  : 1
>
> Unfortunately, reducing all activities to a minimum load, did not
> change from last known RT throttling state.
>
> Just noticed rt_time exceeds the value of 950 first time here:
>
>  .rt_nr_running                 : 1
>  .rt_throttled                  : 1
>  .rt_time                       : 950.005460
>
> Full data attchached as tarball.
>
> - Sedat -
>
> P.S.: Excerpt from
> collectdebugfs-v2_2.6.39-rc3-rcutree-sedat.2011.04.23a+.log (0:0 ->
> 1:1 -> 2:1)
>
> --
> rt_rq[0]:
>  .rt_nr_running                 : 0
>  .rt_throttled                  : 0
>  .rt_time                       : 888.893877
>  .rt_runtime                    : 950.000000
>
> runnable tasks:
>            task   PID         tree-key  switches  prio
> exec-runtime         sum-exec        sum-sleep
> ----------------------------------------------------------------------------------------------------------
> R            cat  2652    115108.993460         1   120
> 115108.993460         1.147986         0.000000 /
> --
> rt_rq[0]:
>  .rt_nr_running                 : 1
>  .rt_throttled                  : 1
>  .rt_time                       : 950.005460
>  .rt_runtime                    : 950.000000
>
> runnable tasks:
>            task   PID         tree-key  switches  prio
> exec-runtime         sum-exec        sum-sleep
> ----------------------------------------------------------------------------------------------------------
>           rcuc0     7         0.000000     56869    98
> 0.000000       981.385605         0.000000 /
> --
> rt_rq[0]:
>  .rt_nr_running                 : 2
>  .rt_throttled                  : 1
>  .rt_time                       : 950.005460
>  .rt_runtime                    : 950.000000
>
> runnable tasks:
>            task   PID         tree-key  switches  prio
> exec-runtime         sum-exec        sum-sleep
> ----------------------------------------------------------------------------------------------------------
>           rcuc0     7         0.000000     56869    98
> 0.000000       981.385605         0.000000 /
> --
>

As an addendum:

First call trace is seen after:

[  651.616057] sched: RT throttling activated
[  711.616033] INFO: rcu_sched_state detected stall on CPU 0 (t=15000 jiffies)

- Sedat -

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 15:28                                                       ` Sedat Dilek
  2011-04-28 15:44                                                         ` Sedat Dilek
@ 2011-04-28 15:48                                                         ` Linus Torvalds
  2011-04-28 18:49                                                         ` Thomas Gleixner
  2011-04-28 19:22                                                         ` Mike Galbraith
  3 siblings, 0 replies; 88+ messages in thread
From: Linus Torvalds @ 2011-04-28 15:48 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Mike Galbraith, Thomas Gleixner, Paul E. McKenney,
	Bruno Prémont, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Thu, Apr 28, 2011 at 8:28 AM, Sedat Dilek <sedat.dilek@googlemail.com> wrote:
>
> From the very beginning it looked as the system is "stable" due to:

Actually, look here, right from the beginning that log is showing
total breakage:

  Thu Apr 28 16:49:51 CEST 2011
    .rt_time                       : 233.923773
  Thu Apr 28 16:50:06 CEST 2011
    .rt_time                       : 259.446506
  Thu Apr 28 16:50:22 CEST 2011
    .rt_time                       : 273.110840
  Thu Apr 28 16:50:37 CEST 2011
    .rt_time                       : 282.713537
  Thu Apr 28 16:50:52 CEST 2011
    .rt_time                       : 288.136013
  Thu Apr 28 16:51:07 CEST 2011
    .rt_time                       : 293.057088
..
  Thu Apr 28 16:58:29 CEST 2011
    .rt_time                       : 888.893877
  Thu Apr 28 16:58:44 CEST 2011
    .rt_time                       : 950.005460

iow, rt_time just constantly grows. You have that "sleep 15" between
every log entry, so rt_time growing by 10-100 ms every 15 seconds
obviously does mean that it's using real CPU time, but it's still well
in the "much less than 1% CPU" range. So the rcu thread is clearly
doing work, but equally clearly it should NOT be throttled.

But since it is constantly growing, at some point it _will_ hit that
magical "950ms total time used", and then it gets throttled. For no
good reason.

It shouldn't have been throttled in the first place, and then the
other bug - that it isn't apparently ever unthrottled - just makes it
not work at all.

So that whole throttling is totally broken.

                           Linus

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 15:28                                                       ` Sedat Dilek
  2011-04-28 15:44                                                         ` Sedat Dilek
  2011-04-28 15:48                                                         ` Linus Torvalds
@ 2011-04-28 18:49                                                         ` Thomas Gleixner
  2011-04-28 20:23                                                           ` Bruno Prémont
  2011-04-28 20:41                                                           ` Sedat Dilek
  2011-04-28 19:22                                                         ` Mike Galbraith
  3 siblings, 2 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-28 18:49 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Mike Galbraith, Paul E. McKenney, Bruno Prémont,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Thu, 28 Apr 2011, Sedat Dilek wrote:
> On Thu, Apr 28, 2011 at 3:30 PM, Mike Galbraith <efault@gmx.de> wrote:
> rt_rq[0]:
>   .rt_nr_running                 : 0
>   .rt_throttled                  : 0

>   .rt_time                       : 888.893877

>   .rt_time                       : 950.005460

So rt_time is constantly accumulated, but never decreased. The
decrease happens in the timer callback. Looks like the timer is not
running for whatever reason.

Can you add the following patch as well ?

Thanks,

	tglx

--- linux-2.6.orig/kernel/sched.c
+++ linux-2.6/kernel/sched.c
@@ -172,7 +172,7 @@ static enum hrtimer_restart sched_rt_per
 		idle = do_sched_rt_period_timer(rt_b, overrun);
 	}
 
-	return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
+	return HRTIMER_RESTART;
 }
 
 static

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 15:28                                                       ` Sedat Dilek
                                                                           ` (2 preceding siblings ...)
  2011-04-28 18:49                                                         ` Thomas Gleixner
@ 2011-04-28 19:22                                                         ` Mike Galbraith
  3 siblings, 0 replies; 88+ messages in thread
From: Mike Galbraith @ 2011-04-28 19:22 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Thomas Gleixner, Paul E. McKenney, Bruno Prémont,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Thu, 2011-04-28 at 17:28 +0200, Sedat Dilek wrote:

> OK, I tried with the patch proposed by Thomas (0003):

(thanks)

> patches/0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
> patches/0002-sched-Add-warning-when-RT-throttling-is-activated.patch
> patches/0003-sched-Remove-skip_clock_update-check.patch
> 
> >From the very beginning it looked as the system is "stable" due to:
> 
>   .rt_nr_running                 : 0
>   .rt_throttled                  : 0
> 
> This changed when I started a simple tar-job to save my kernel
> build-dir to an external USB-hdd.
> From...
> 
>   .rt_nr_running                 : 1
>   .rt_throttled                  : 1
> 
> ...To:
> 
>   .rt_nr_running                 : 2
>   .rt_throttled                  : 1
> 
> Unfortunately, reducing all activities to a minimum load, did not
> change from last known RT throttling state.
> 
> Just noticed rt_time exceeds the value of 950 first time here:

That would happen even if we did forced eviction.

> ----------------------------------------------------------------------------------------------------------
> R            cat  2652    115108.993460         1   120
> 115108.993460         1.147986         0.000000 /
> --
> rt_rq[0]:
>   .rt_nr_running                 : 1
>   .rt_throttled                  : 1
>   .rt_time                       : 950.005460
>   .rt_runtime                    : 950.000000
> ----------------------------------------------------------------------------------------------------------
>            rcuc0     7         0.000000     56869    98
> 0.000000       981.385605         0.000000 /
> --
> rt_rq[0]:
>   .rt_nr_running                 : 2
>   .rt_throttled                  : 1
>   .rt_time                       : 950.005460
>   .rt_runtime                    : 950.000000

Still getting stuck.  Eliminates the clock update optimization, but that
seemed unlikely anyway.  (I'll build a UP kernel and poke it)

	-Mike

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 18:49                                                         ` Thomas Gleixner
@ 2011-04-28 20:23                                                           ` Bruno Prémont
  2011-04-28 20:29                                                             ` Thomas Gleixner
  2011-04-28 20:41                                                           ` Sedat Dilek
  1 sibling, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-28 20:23 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: sedat.dilek, Mike Galbraith, Paul E. McKenney, Linus Torvalds,
	Ingo Molnar, Peter Zijlstra, Mike Frysinger, KOSAKI Motohiro,
	LKML, linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 3704 bytes --]

On Thu, 28 April 2011 Thomas Gleixner <tglx@linutronix.de> wrote:
> On Thu, 28 Apr 2011, Sedat Dilek wrote:
> > On Thu, Apr 28, 2011 at 3:30 PM, Mike Galbraith <efault@gmx.de> wrote:
> > rt_rq[0]:
> >   .rt_nr_running                 : 0
> >   .rt_throttled                  : 0
> 
> >   .rt_time                       : 888.893877
> 
> >   .rt_time                       : 950.005460
> 
> So rt_time is constantly accumulated, but never decreased. The
> decrease happens in the timer callback. Looks like the timer is not
> running for whatever reason.
> 
> Can you add the following patch as well ?
> 
> Thanks,
> 
> 	tglx
> 
> --- linux-2.6.orig/kernel/sched.c
> +++ linux-2.6/kernel/sched.c
> @@ -172,7 +172,7 @@ static enum hrtimer_restart sched_rt_per
>  		idle = do_sched_rt_period_timer(rt_b, overrun);
>  	}
>  
> -	return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
> +	return HRTIMER_RESTART;

This doesn't help here.
Be it applied on top of the others, full diff attached
or applied alone (with throttling printk).

Could it be that NO_HZ=y has some importance in this matter?


Extended throttling printk (Linus asked what exact values were looking
like):
[  401.000119] sched: RT throttling activated 950012539 > 950000000


Equivalent to what Sedat sees (/proc/sched_debug):
rt_rq[0]:
  .rt_nr_running                 : 2
  .rt_throttled                  : 1
  .rt_time                       : 950.012539
  .rt_runtime                    : 950.000000


/proc/$(pidof rcu_kthread)/sched captured at regular intervals:
Thu Apr 28 21:33:41 CEST 2011
rcu_kthread (6, #threads: 1)
---------------------------------------------------------
se.exec_start                      :             0.000000
se.vruntime                        :             0.000703
se.sum_exec_runtime                :           903.067982
nr_switches                        :                23752
nr_voluntary_switches              :                23751
nr_involuntary_switches            :                    1
se.load.weight                     :                 1024
policy                             :                    1
prio                               :                   98
clock-delta                        :                  912
Thu Apr 28 21:34:11 CEST 2011
rcu_kthread (6, #threads: 1)
---------------------------------------------------------
se.exec_start                      :             0.000000
se.vruntime                        :             0.000703
se.sum_exec_runtime                :           974.899495
nr_switches                        :                25721
nr_voluntary_switches              :                25720
nr_involuntary_switches            :                    1
se.load.weight                     :                 1024
policy                             :                    1
prio                               :                   98
clock-delta                        :                 1098
Thu Apr 28 21:34:41 CEST 2011
rcu_kthread (6, #threads: 1)
---------------------------------------------------------
se.exec_start                      :             0.000000
se.vruntime                        :             0.000703
se.sum_exec_runtime                :           974.899495
nr_switches                        :                25721
nr_voluntary_switches              :                25720
nr_involuntary_switches            :                    1
se.load.weight                     :                 1024
policy                             :                    1
prio                               :                   98
clock-delta                        :                 1126
Thu Apr 28 21:35:11 CEST 2011
rcu_kthread (6, #threads: 1)



>  }
>  
>  static

[-- Attachment #2: sched_rt.diff --]
[-- Type: text/x-patch, Size: 2051 bytes --]

diff --git a/kernel/sched.c b/kernel/sched.c
index 312f8b9..aad1b88 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -172,7 +172,7 @@ static enum hrtimer_restart sched_rt_period_timer(struct hrtimer *timer)
 		idle = do_sched_rt_period_timer(rt_b, overrun);
 	}
 
-	return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
+	return /* idle ? HRTIMER_NORESTART : */ HRTIMER_RESTART;
 }
 
 static
@@ -460,7 +460,7 @@ struct rq {
 	u64 nohz_stamp;
 	unsigned char nohz_balance_kick;
 #endif
-	unsigned int skip_clock_update;
+	int skip_clock_update;
 
 	/* capture load from *all* tasks on this cpu: */
 	struct load_weight load;
@@ -642,8 +642,8 @@ static void update_rq_clock(struct rq *rq)
 {
 	s64 delta;
 
-	if (rq->skip_clock_update)
-		return;
+/*	if (rq->skip_clock_update > 0)
+		return; */
 
 	delta = sched_clock_cpu(cpu_of(rq)) - rq->clock;
 	rq->clock += delta;
@@ -4035,7 +4035,7 @@ static inline void schedule_debug(struct task_struct *prev)
 
 static void put_prev_task(struct rq *rq, struct task_struct *prev)
 {
-	if (prev->se.on_rq)
+	if (prev->se.on_rq || rq->skip_clock_update < 0)
 		update_rq_clock(rq);
 	prev->sched_class->put_prev_task(rq, prev);
 }
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index e7cebdc..2feae93 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -572,8 +572,15 @@ static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun)
 				enqueue = 1;
 		}
 
-		if (enqueue)
+		if (enqueue) {
+			/*
+			 * Tag a forced clock update if we're coming out of idle
+			 * so rq->clock_task will be updated when we schedule().
+			 */
+			if (rq->curr == rq->idle)
+				rq->skip_clock_update = -1;
 			sched_rt_rq_enqueue(rt_rq);
+		}
 		raw_spin_unlock(&rq->lock);
 	}
 
@@ -608,6 +615,7 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
 		return 0;
 
 	if (rt_rq->rt_time > runtime) {
+		printk_once(KERN_WARNING "sched: RT throttling activated %llu > %llu\n", rt_rq->rt_time, runtime);
 		rt_rq->rt_throttled = 1;
 		if (rt_rq_throttled(rt_rq)) {
 			sched_rt_rq_dequeue(rt_rq);

^ permalink raw reply related	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 20:23                                                           ` Bruno Prémont
@ 2011-04-28 20:29                                                             ` Thomas Gleixner
  2011-04-28 20:44                                                               ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-28 20:29 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: sedat.dilek, Mike Galbraith, Paul E. McKenney, Linus Torvalds,
	Ingo Molnar, Peter Zijlstra, Mike Frysinger, KOSAKI Motohiro,
	LKML, linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

[-- Attachment #1: Type: TEXT/PLAIN, Size: 550 bytes --]

On Thu, 28 Apr 2011, Bruno Prémont wrote:
> On Thu, 28 April 2011 Thomas Gleixner <tglx@linutronix.de> wrote:
> > -	return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
> > +	return HRTIMER_RESTART;
> 
> This doesn't help here.
> Be it applied on top of the others, full diff attached
> or applied alone (with throttling printk).
> 
> Could it be that NO_HZ=y has some importance in this matter?

Might be. Can you try with nohz=off on the kernel command line ?
 
Can you please provide the output of /proc/timer_list ?

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 18:49                                                         ` Thomas Gleixner
  2011-04-28 20:23                                                           ` Bruno Prémont
@ 2011-04-28 20:41                                                           ` Sedat Dilek
  1 sibling, 0 replies; 88+ messages in thread
From: Sedat Dilek @ 2011-04-28 20:41 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Mike Galbraith, Paul E. McKenney, Bruno Prémont,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 1083 bytes --]

On Thu, Apr 28, 2011 at 8:49 PM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Thu, 28 Apr 2011, Sedat Dilek wrote:
>> On Thu, Apr 28, 2011 at 3:30 PM, Mike Galbraith <efault@gmx.de> wrote:
>> rt_rq[0]:
>>   .rt_nr_running                 : 0
>>   .rt_throttled                  : 0
>
>>   .rt_time                       : 888.893877
>
>>   .rt_time                       : 950.005460
>
> So rt_time is constantly accumulated, but never decreased. The
> decrease happens in the timer callback. Looks like the timer is not
> running for whatever reason.
>
> Can you add the following patch as well ?
>
> Thanks,
>
>        tglx
>
> --- linux-2.6.orig/kernel/sched.c
> +++ linux-2.6/kernel/sched.c
> @@ -172,7 +172,7 @@ static enum hrtimer_restart sched_rt_per
>                idle = do_sched_rt_period_timer(rt_b, overrun);
>        }
>
> -       return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
> +       return HRTIMER_RESTART;
>  }
>
>  static
>

See tarball.

- Sedat -

[-- Attachment #2: from-dileks-3.tar.xz --]
[-- Type: application/octet-stream, Size: 20740 bytes --]

[-- Attachment #3: from-dileks-3.tar.xz.sha256sum --]
[-- Type: application/octet-stream, Size: 87 bytes --]

c272a5d1a0e4a10617d7329fa760d52b4d8c345b790b088318f9f79903fef85b  from-dileks-3.tar.xz

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 20:29                                                             ` Thomas Gleixner
@ 2011-04-28 20:44                                                               ` Bruno Prémont
  2011-04-28 21:04                                                                 ` Thomas Gleixner
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-28 20:44 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: sedat.dilek, Mike Galbraith, Paul E. McKenney, Linus Torvalds,
	Ingo Molnar, Peter Zijlstra, Mike Frysinger, KOSAKI Motohiro,
	LKML, linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg

On Thu, 28 April 2011 Thomas Gleixner wrote:
> On Thu, 28 Apr 2011, Bruno Prémont wrote:
> > On Thu, 28 April 2011 Thomas Gleixner wrote:
> > > -	return idle ? HRTIMER_NORESTART : HRTIMER_RESTART;
> > > +	return HRTIMER_RESTART;
> > 
> > This doesn't help here.
> > Be it applied on top of the others, full diff attached
> > or applied alone (with throttling printk).
> > 
> > Could it be that NO_HZ=y has some importance in this matter?
> 
> Might be. Can you try with nohz=off on the kernel command line ?

Doesn't make any visible difference (tested with "applied alone" kernel
as of above).

> Can you please provide the output of /proc/timer_list ?

See below,
Bruno



Timer List Version: v0.6
HRTIMER_MAX_CLOCK_BASES: 3
now at 1150126155286 nsecs

cpu: 0
 clock 0:
  .base:       c1559360
  .index:      0
  .resolution: 1 nsecs
  .get_time:   ktime_get_real
  .offset:     1304021489280954699 nsecs
active timers:
 #0: def_rt_bandwidth, sched_rt_period_timer, S:01, enqueue_task_rt, swapper/1
 # expires at 1304028703000000000-1304028703000000000 nsecs [in 1304027552873844714 to 1304027552873844714 nsecs]
 clock 1:
  .base:       c155938c
  .index:      1
  .resolution: 1 nsecs
  .get_time:   ktime_get
  .offset:     0 nsecs
active timers:
 #0: tick_cpu_sched, tick_sched_timer, S:01, hrtimer_start_range_ns, swapper/0
 # expires at 1150130000000-1150130000000 nsecs [in 3844714 to 3844714 nsecs]
 #1: <dd612844>, it_real_fn, S:01, hrtimer_start, ntpd/1623
 # expires at 1150443573670-1150443573670 nsecs [in 317418384 to 317418384 nsecs]
 #2: <dd443ad4>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, init/1
 # expires at 1150450113736-1150455113735 nsecs [in 323958450 to 328958449 nsecs]
 #3: <db6bbad4>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, slabtop/1817
 # expires at 1152632990798-1152635990795 nsecs [in 2506835512 to 2509835509 nsecs]
 #4: watchdog_hrtimer, watchdog_timer_fn, S:01, hrtimer_start, watchdog/0/7
 # expires at 1152742107906-1152742107906 nsecs [in 2615952620 to 2615952620 nsecs]
 #5: <dce4be54>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, collectd/1647
 # expires at 1159748146627-1159748196627 nsecs [in 9621991341 to 9622041341 nsecs]
 #6: <daf75e54>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, collectd/1644
 # expires at 1159748971801-1159749021801 nsecs [in 9622816515 to 9622866515 nsecs]
 #7: <dce49e54>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, collectd/1646
 # expires at 1159749646863-1159749696863 nsecs [in 9623491577 to 9623541577 nsecs]
 #8: <daf77e54>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, collectd/1645
 # expires at 1159750273989-1159750323989 nsecs [in 9624118703 to 9624168703 nsecs]
 #9: <dbd51e54>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, collectd/1643
 # expires at 1159751170319-1159751220319 nsecs [in 9625015033 to 9625065033 nsecs]
 #10: <db687f44>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, collectd/1641
 # expires at 1159884463552-1159884513552 nsecs [in 9758308266 to 9758358266 nsecs]
 #11: <db6bdb6c>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, rpcbind/1699
 # expires at 1164510072442-1164540072440 nsecs [in 14383917156 to 14413917154 nsecs]
 #12: <dccbbb6c>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, syslog-ng/1599
 # expires at 1859759077032-1859859077032 nsecs [in 709632921746 to 709732921746 nsecs]
 #13: <dce2bb6c>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, dhcpcd/1557
 # expires at 86432406451906-86432506451906 nsecs [in 85282280296620 to 85282380296620 nsecs]
 #14: <dccbdad4>, hrtimer_wakeup, S:01, hrtimer_start_range_ns, gpm/1659
 # expires at 86440042646716-86440142646716 nsecs [in 85289916491430 to 85290016491430 nsecs]
 clock 2:
  .base:       c15593b8
  .index:      7
  .resolution: 1 nsecs
  .get_time:   ktime_get_boottime
  .offset:     0 nsecs
active timers:
  .expires_next   : 1150130000000 nsecs
  .hres_active    : 1
  .nr_events      : 62851
  .nr_retries     : 1232
  .nr_hangs       : 0
  .max_hang_time  : 0 nsecs
  .nohz_mode      : 2
  .idle_tick      : 1150120000000 nsecs
  .tick_stopped   : 0
  .idle_jiffies   : 85011
  .idle_calls     : 59192
  .idle_sleeps    : 23733
  .idle_entrytime : 1150123805083 nsecs
  .idle_waketime  : 1150123805083 nsecs
  .idle_exittime  : 1150123876750 nsecs
  .idle_sleeptime : 861310470458 nsecs
  .iowait_sleeptime: 72683738430 nsecs
  .last_jiffies   : 85011
  .next_jiffies   : 85017
  .idle_expires   : 1150170000000 nsecs
jiffies: 85012


Tick Device: mode:     1
Broadcast device
Clock Event Device: pit
 max_delta_ns:   27461866
 min_delta_ns:   12571
 mult:           5124677
 shift:          32
 mode:           3
 next_event:     9223372036854775807 nsecs
 set_next_event: pit_next_event
 set_mode:       init_pit_timer
 event_handler:  tick_handle_oneshot_broadcast
 retries:        0
tick_broadcast_mask: 00000000
tick_broadcast_oneshot_mask: 00000000


Tick Device: mode:     1
Per CPU device: 0
Clock Event Device: lapic
 max_delta_ns:   128554655331
 min_delta_ns:   1000
 mult:           71746698
 shift:          32
 mode:           3
 next_event:     1150130000000 nsecs
 set_next_event: lapic_next_event
 set_mode:       lapic_timer_setup
 event_handler:  hrtimer_interrupt
 retries:        1

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 20:44                                                               ` Bruno Prémont
@ 2011-04-28 21:04                                                                 ` Thomas Gleixner
  2011-04-28 21:51                                                                   ` john stultz
  0 siblings, 1 reply; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-28 21:04 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: sedat.dilek, Mike Galbraith, Paul E. McKenney, Linus Torvalds,
	Ingo Molnar, Peter Zijlstra, Mike Frysinger, KOSAKI Motohiro,
	LKML, linux-mm, linux-fsdevel, Paul E. McKenney, Pekka Enberg,
	John Stultz

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1061 bytes --]

On Thu, 28 Apr 2011, Bruno Prémont wrote:
> Timer List Version: v0.6
> HRTIMER_MAX_CLOCK_BASES: 3
> now at 1150126155286 nsecs
> 
> cpu: 0
>  clock 0:
>   .base:       c1559360
>   .index:      0
>   .resolution: 1 nsecs
>   .get_time:   ktime_get_real
>   .offset:     1304021489280954699 nsecs
> active timers:
>  #0: def_rt_bandwidth, sched_rt_period_timer, S:01, enqueue_task_rt, swapper/1
>  # expires at 1304028703000000000-1304028703000000000 nsecs [in 1304027552873844714 to 1304027552873844714 nsecs]

Ok, that expiry time is obviously bogus as it does not account the offset:

So in reality it's: expires in: 6063592890015ns 

Which is still completely wrong. The timer should expire at max a
second from now. But it's going to expire in 6063.592890015 seconds
from now, which is pretty much explaining the after 2hrs stuff got
going again.

But the real interesting question is why he heck is that timer on
CLOCK_REALTIME ???? It is initalized for CLOCK_MONOTONIC.

/me suspects hrtimer changes to be the real culprit.

John ????

Thanks,

	tglx




^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 21:04                                                                 ` Thomas Gleixner
@ 2011-04-28 21:51                                                                   ` john stultz
  2011-04-28 22:02                                                                     ` Thomas Gleixner
  0 siblings, 1 reply; 88+ messages in thread
From: john stultz @ 2011-04-28 21:51 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: Bruno Prémont, sedat.dilek, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
> On Thu, 28 Apr 2011, Bruno Prémont wrote:
> > Timer List Version: v0.6
> > HRTIMER_MAX_CLOCK_BASES: 3
> > now at 1150126155286 nsecs
> > 
> > cpu: 0
> >  clock 0:
> >   .base:       c1559360
> >   .index:      0
> >   .resolution: 1 nsecs
> >   .get_time:   ktime_get_real
> >   .offset:     1304021489280954699 nsecs
> > active timers:
> >  #0: def_rt_bandwidth, sched_rt_period_timer, S:01, enqueue_task_rt, swapper/1
> >  # expires at 1304028703000000000-1304028703000000000 nsecs [in 1304027552873844714 to 1304027552873844714 nsecs]
> 
> Ok, that expiry time is obviously bogus as it does not account the offset:
> 
> So in reality it's: expires in: 6063592890015ns 
> 
> Which is still completely wrong. The timer should expire at max a
> second from now. But it's going to expire in 6063.592890015 seconds
> from now, which is pretty much explaining the after 2hrs stuff got
> going again.
> 
> But the real interesting question is why he heck is that timer on
> CLOCK_REALTIME ???? It is initalized for CLOCK_MONOTONIC.
> 
> /me suspects hrtimer changes to be the real culprit.

I'm not seeing anything on right off, but it does smell like
e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
would crop up.

Bruno, could you try checking out e06383db9ec, confirming it still
occurs (and then maybe seeing if it goes away at e06383db9ec^1)?

I'll keep digging in the meantime.

thanks
-john






--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 21:51                                                                   ` john stultz
@ 2011-04-28 22:02                                                                     ` Thomas Gleixner
  2011-04-28 23:06                                                                       ` Sedat Dilek
                                                                                         ` (3 more replies)
  0 siblings, 4 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-28 22:02 UTC (permalink / raw)
  To: john stultz
  Cc: Bruno Prémont, sedat.dilek, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Thu, 28 Apr 2011, john stultz wrote:
> On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
> > /me suspects hrtimer changes to be the real culprit.
> 
> I'm not seeing anything on right off, but it does smell like
> e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
> would crop up.
> 
> Bruno, could you try checking out e06383db9ec, confirming it still
> occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
> 
> I'll keep digging in the meantime.

I found the bug already. The problem is that sched_init() calls
init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
hrtimers_init() is called.

That was unnoticed so far as the CLOCK id to hrtimer base conversion
was hardcoded. Now we use a table which is set up at hrtimers_init(),
so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
in the bss.

The patch below fixes this, by providing the table statically rather
than runtime initialized. Though that whole ordering wants to be
revisited.

Thanks,

	tglx

--- linux-2.6.orig/kernel/hrtimer.c
+++ linux-2.6/kernel/hrtimer.c
@@ -81,7 +81,11 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base, 
 	}
 };
 
-static int hrtimer_clock_to_base_table[MAX_CLOCKS];
+static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
+	[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
+	[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
+	[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
+};
 
 static inline int hrtimer_clockid_to_base(clockid_t clock_id)
 {
@@ -1722,10 +1726,6 @@ static struct notifier_block __cpuinitda
 
 void __init hrtimers_init(void)
 {
-	hrtimer_clock_to_base_table[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME;
-	hrtimer_clock_to_base_table[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC;
-	hrtimer_clock_to_base_table[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME;
-
 	hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
 			  (void *)(long)smp_processor_id());
 	register_cpu_notifier(&hrtimers_nb);


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 22:02                                                                     ` Thomas Gleixner
@ 2011-04-28 23:06                                                                       ` Sedat Dilek
  2011-04-28 23:35                                                                         ` Sedat Dilek
  2011-04-29  7:55                                                                       ` Sedat Dilek
                                                                                         ` (2 subsequent siblings)
  3 siblings, 1 reply; 88+ messages in thread
From: Sedat Dilek @ 2011-04-28 23:06 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: john stultz, Bruno Prémont, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Fri, Apr 29, 2011 at 12:02 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Thu, 28 Apr 2011, john stultz wrote:
>> On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
>> > /me suspects hrtimer changes to be the real culprit.
>>
>> I'm not seeing anything on right off, but it does smell like
>> e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
>> would crop up.
>>
>> Bruno, could you try checking out e06383db9ec, confirming it still
>> occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
>>
>> I'll keep digging in the meantime.
>
> I found the bug already. The problem is that sched_init() calls
> init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
> hrtimers_init() is called.
>
> That was unnoticed so far as the CLOCK id to hrtimer base conversion
> was hardcoded. Now we use a table which is set up at hrtimers_init(),
> so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
> in the bss.
>
> The patch below fixes this, by providing the table statically rather
> than runtime initialized. Though that whole ordering wants to be
> revisited.
>
> Thanks,
>
>        tglx
>
> --- linux-2.6.orig/kernel/hrtimer.c
> +++ linux-2.6/kernel/hrtimer.c
> @@ -81,7 +81,11 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base,
>        }
>  };
>
> -static int hrtimer_clock_to_base_table[MAX_CLOCKS];
> +static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
> +       [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
> +       [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
> +       [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
> +};
>
>  static inline int hrtimer_clockid_to_base(clockid_t clock_id)
>  {
> @@ -1722,10 +1726,6 @@ static struct notifier_block __cpuinitda
>
>  void __init hrtimers_init(void)
>  {
> -       hrtimer_clock_to_base_table[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME;
> -       hrtimer_clock_to_base_table[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC;
> -       hrtimer_clock_to_base_table[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME;
> -
>        hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
>                          (void *)(long)smp_processor_id());
>        register_cpu_notifier(&hrtimers_nb);
>
>
>

Looks good so far, no stalls or call-traces.

Really stressing with 20+ open tabs in firefox with flash-movie
running in one of them , tar-job, IRC-client etc.
I will run some more tests and collect data and send them later.

- Sedat -

P.S.: Patchset against linux-2.6-rcu.git#sedat.2011.04.23a where 0003
is from [2]

[1] http://git.us.kernel.org/?p=linux/kernel/git/paulmck/linux-2.6-rcu.git;a=shortlog;h=refs/heads/sedat.2011.04.23a
[2] https://patchwork.kernel.org/patch/739782/

$ l ../RCU-HOORAY/
insgesamt 40
drwxr-xr-x  2 sd sd  4096 29. Apr 01:02 .
drwxr-xr-x 35 sd sd 20480 29. Apr 01:01 ..
-rw-r--r--  1 sd sd   726 29. Apr 01:01
0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
-rw-r--r--  1 sd sd   735 29. Apr 01:01
0002-sched-Add-warning-when-RT-throttling-is-activated.patch
-rw-r--r--  1 sd sd  2376 29. Apr 01:01
0003-2.6.39-rc4-Kernel-leaking-memory-during-FS-scanning-.patch

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 23:06                                                                       ` Sedat Dilek
@ 2011-04-28 23:35                                                                         ` Sedat Dilek
  2011-04-29  0:42                                                                           ` Paul E. McKenney
  0 siblings, 1 reply; 88+ messages in thread
From: Sedat Dilek @ 2011-04-28 23:35 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: john stultz, Bruno Prémont, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

[-- Attachment #1: Type: text/plain, Size: 3690 bytes --]

On Fri, Apr 29, 2011 at 1:06 AM, Sedat Dilek <sedat.dilek@googlemail.com> wrote:
> On Fri, Apr 29, 2011 at 12:02 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
>> On Thu, 28 Apr 2011, john stultz wrote:
>>> On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
>>> > /me suspects hrtimer changes to be the real culprit.
>>>
>>> I'm not seeing anything on right off, but it does smell like
>>> e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
>>> would crop up.
>>>
>>> Bruno, could you try checking out e06383db9ec, confirming it still
>>> occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
>>>
>>> I'll keep digging in the meantime.
>>
>> I found the bug already. The problem is that sched_init() calls
>> init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
>> hrtimers_init() is called.
>>
>> That was unnoticed so far as the CLOCK id to hrtimer base conversion
>> was hardcoded. Now we use a table which is set up at hrtimers_init(),
>> so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
>> in the bss.
>>
>> The patch below fixes this, by providing the table statically rather
>> than runtime initialized. Though that whole ordering wants to be
>> revisited.
>>
>> Thanks,
>>
>>        tglx
>>
>> --- linux-2.6.orig/kernel/hrtimer.c
>> +++ linux-2.6/kernel/hrtimer.c
>> @@ -81,7 +81,11 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base,
>>        }
>>  };
>>
>> -static int hrtimer_clock_to_base_table[MAX_CLOCKS];
>> +static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
>> +       [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
>> +       [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
>> +       [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
>> +};
>>
>>  static inline int hrtimer_clockid_to_base(clockid_t clock_id)
>>  {
>> @@ -1722,10 +1726,6 @@ static struct notifier_block __cpuinitda
>>
>>  void __init hrtimers_init(void)
>>  {
>> -       hrtimer_clock_to_base_table[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME;
>> -       hrtimer_clock_to_base_table[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC;
>> -       hrtimer_clock_to_base_table[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME;
>> -
>>        hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
>>                          (void *)(long)smp_processor_id());
>>        register_cpu_notifier(&hrtimers_nb);
>>
>>
>>
>
> Looks good so far, no stalls or call-traces.
>
> Really stressing with 20+ open tabs in firefox with flash-movie
> running in one of them , tar-job, IRC-client etc.
> I will run some more tests and collect data and send them later.
>
> - Sedat -
>
> P.S.: Patchset against linux-2.6-rcu.git#sedat.2011.04.23a where 0003
> is from [2]
>
> [1] http://git.us.kernel.org/?p=linux/kernel/git/paulmck/linux-2.6-rcu.git;a=shortlog;h=refs/heads/sedat.2011.04.23a
> [2] https://patchwork.kernel.org/patch/739782/
>
> $ l ../RCU-HOORAY/
> insgesamt 40
> drwxr-xr-x  2 sd sd  4096 29. Apr 01:02 .
> drwxr-xr-x 35 sd sd 20480 29. Apr 01:01 ..
> -rw-r--r--  1 sd sd   726 29. Apr 01:01
> 0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
> -rw-r--r--  1 sd sd   735 29. Apr 01:01
> 0002-sched-Add-warning-when-RT-throttling-is-activated.patch
> -rw-r--r--  1 sd sd  2376 29. Apr 01:01
> 0003-2.6.39-rc4-Kernel-leaking-memory-during-FS-scanning-.patch
>

As promised the tarball (at the end of the log I made some XZ compressing).

Wow!
$ uptime
 01:35:17 up 45 min,  3 users,  load average: 0.45, 0.57, 1.27

Thanks to all involved people helping to kill that bug (Come on Paul, smile!).

- Sedat -

[-- Attachment #2: from-dileks-4.tar.xz --]
[-- Type: application/octet-stream, Size: 110584 bytes --]

[-- Attachment #3: from-dileks-4.tar.xz.sha256sum --]
[-- Type: application/octet-stream, Size: 87 bytes --]

a2edb87e7ecc864c60aa9ac31d9ffa55ab425b527b77bd18a2bd2592a7d389e1  from-dileks-4.tar.xz

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 23:35                                                                         ` Sedat Dilek
@ 2011-04-29  0:42                                                                           ` Paul E. McKenney
  2011-04-29  9:34                                                                             ` Thomas Gleixner
  0 siblings, 1 reply; 88+ messages in thread
From: Paul E. McKenney @ 2011-04-29  0:42 UTC (permalink / raw)
  To: sedat.dilek
  Cc: Thomas Gleixner, john stultz, Bruno Prémont, Mike Galbraith,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Fri, Apr 29, 2011 at 01:35:44AM +0200, Sedat Dilek wrote:
> On Fri, Apr 29, 2011 at 1:06 AM, Sedat Dilek <sedat.dilek@googlemail.com> wrote:
> > On Fri, Apr 29, 2011 at 12:02 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> >> On Thu, 28 Apr 2011, john stultz wrote:
> >>> On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
> >>> > /me suspects hrtimer changes to be the real culprit.
> >>>
> >>> I'm not seeing anything on right off, but it does smell like
> >>> e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
> >>> would crop up.
> >>>
> >>> Bruno, could you try checking out e06383db9ec, confirming it still
> >>> occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
> >>>
> >>> I'll keep digging in the meantime.
> >>
> >> I found the bug already. The problem is that sched_init() calls
> >> init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
> >> hrtimers_init() is called.
> >>
> >> That was unnoticed so far as the CLOCK id to hrtimer base conversion
> >> was hardcoded. Now we use a table which is set up at hrtimers_init(),
> >> so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
> >> in the bss.
> >>
> >> The patch below fixes this, by providing the table statically rather
> >> than runtime initialized. Though that whole ordering wants to be
> >> revisited.
> >>
> >> Thanks,
> >>
> >>        tglx
> >>
> >> --- linux-2.6.orig/kernel/hrtimer.c
> >> +++ linux-2.6/kernel/hrtimer.c
> >> @@ -81,7 +81,11 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base,
> >>        }
> >>  };
> >>
> >> -static int hrtimer_clock_to_base_table[MAX_CLOCKS];
> >> +static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
> >> +       [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
> >> +       [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
> >> +       [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
> >> +};
> >>
> >>  static inline int hrtimer_clockid_to_base(clockid_t clock_id)
> >>  {
> >> @@ -1722,10 +1726,6 @@ static struct notifier_block __cpuinitda
> >>
> >>  void __init hrtimers_init(void)
> >>  {
> >> -       hrtimer_clock_to_base_table[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME;
> >> -       hrtimer_clock_to_base_table[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC;
> >> -       hrtimer_clock_to_base_table[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME;
> >> -
> >>        hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
> >>                          (void *)(long)smp_processor_id());
> >>        register_cpu_notifier(&hrtimers_nb);
> >>
> >>
> >>
> >
> > Looks good so far, no stalls or call-traces.
> >
> > Really stressing with 20+ open tabs in firefox with flash-movie
> > running in one of them , tar-job, IRC-client etc.
> > I will run some more tests and collect data and send them later.
> >
> > - Sedat -
> >
> > P.S.: Patchset against linux-2.6-rcu.git#sedat.2011.04.23a where 0003
> > is from [2]
> >
> > [1] http://git.us.kernel.org/?p=linux/kernel/git/paulmck/linux-2.6-rcu.git;a=shortlog;h=refs/heads/sedat.2011.04.23a
> > [2] https://patchwork.kernel.org/patch/739782/
> >
> > $ l ../RCU-HOORAY/
> > insgesamt 40
> > drwxr-xr-x  2 sd sd  4096 29. Apr 01:02 .
> > drwxr-xr-x 35 sd sd 20480 29. Apr 01:01 ..
> > -rw-r--r--  1 sd sd   726 29. Apr 01:01
> > 0001-Revert-rcu-restrict-TREE_RCU-to-SMP-builds-with-PREE.patch
> > -rw-r--r--  1 sd sd   735 29. Apr 01:01
> > 0002-sched-Add-warning-when-RT-throttling-is-activated.patch
> > -rw-r--r--  1 sd sd  2376 29. Apr 01:01
> > 0003-2.6.39-rc4-Kernel-leaking-memory-during-FS-scanning-.patch
> >
> 
> As promised the tarball (at the end of the log I made some XZ compressing).
> 
> Wow!
> $ uptime
>  01:35:17 up 45 min,  3 users,  load average: 0.45, 0.57, 1.27
> 
> Thanks to all involved people helping to kill that bug (Come on Paul, smile!).

Woo-hoo!!!!

Many thanks to Thomas for tracking this down -- it is fair to say that
I never would have thought to look at timer initialization!  ;-)

							Thanx, Paul

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 22:02                                                                     ` Thomas Gleixner
  2011-04-28 23:06                                                                       ` Sedat Dilek
@ 2011-04-29  7:55                                                                       ` Sedat Dilek
  2011-04-29 18:09                                                                       ` Mike Frysinger
  2011-04-29 19:31                                                                       ` Bruno Prémont
  3 siblings, 0 replies; 88+ messages in thread
From: Sedat Dilek @ 2011-04-29  7:55 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: john stultz, Bruno Prémont, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Fri, Apr 29, 2011 at 12:02 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> On Thu, 28 Apr 2011, john stultz wrote:
>> On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
>> > /me suspects hrtimer changes to be the real culprit.
>>
>> I'm not seeing anything on right off, but it does smell like
>> e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
>> would crop up.
>>
>> Bruno, could you try checking out e06383db9ec, confirming it still
>> occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
>>
>> I'll keep digging in the meantime.
>
> I found the bug already. The problem is that sched_init() calls
> init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
> hrtimers_init() is called.
>
> That was unnoticed so far as the CLOCK id to hrtimer base conversion
> was hardcoded. Now we use a table which is set up at hrtimers_init(),
> so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
> in the bss.
>
> The patch below fixes this, by providing the table statically rather
> than runtime initialized. Though that whole ordering wants to be
> revisited.
>
> Thanks,
>
>        tglx
>
> --- linux-2.6.orig/kernel/hrtimer.c
> +++ linux-2.6/kernel/hrtimer.c
> @@ -81,7 +81,11 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base,
>        }
>  };
>
> -static int hrtimer_clock_to_base_table[MAX_CLOCKS];
> +static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
> +       [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
> +       [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
> +       [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
> +};
>
>  static inline int hrtimer_clockid_to_base(clockid_t clock_id)
>  {
> @@ -1722,10 +1726,6 @@ static struct notifier_block __cpuinitda
>
>  void __init hrtimers_init(void)
>  {
> -       hrtimer_clock_to_base_table[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME;
> -       hrtimer_clock_to_base_table[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC;
> -       hrtimer_clock_to_base_table[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME;
> -
>        hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
>                          (void *)(long)smp_processor_id());
>        register_cpu_notifier(&hrtimers_nb);
>

Will you send this as a separate patch?

Please also feel free to add:

     Tested-by: Sedat Dilek <sedat.dilek@gmail.com>

If you like also a Reported-by... as the issue is not new, I have
first reported it here [1].

- Sedat -

[1] http://lkml.org/lkml/2011/3/25/97

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-29  0:42                                                                           ` Paul E. McKenney
@ 2011-04-29  9:34                                                                             ` Thomas Gleixner
  0 siblings, 0 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-29  9:34 UTC (permalink / raw)
  To: Paul E. McKenney
  Cc: sedat.dilek, john stultz, Bruno Prémont, Mike Galbraith,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Thu, 28 Apr 2011, Paul E. McKenney wrote:
> On Fri, Apr 29, 2011 at 01:35:44AM +0200, Sedat Dilek wrote:
> >  01:35:17 up 45 min,  3 users,  load average: 0.45, 0.57, 1.27
> > 
> > Thanks to all involved people helping to kill that bug (Come on Paul, smile!).
> 
> Woo-hoo!!!!
> 
> Many thanks to Thomas for tracking this down -- it is fair to say that
> I never would have thought to look at timer initialization!  ;-)

Many thanks to the reporters who provided all the information and
tested all the random debug patches we threw at them !

       tglx

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 22:02                                                                     ` Thomas Gleixner
  2011-04-28 23:06                                                                       ` Sedat Dilek
  2011-04-29  7:55                                                                       ` Sedat Dilek
@ 2011-04-29 18:09                                                                       ` Mike Frysinger
  2011-04-29 18:26                                                                         ` Thomas Gleixner
  2011-04-29 19:31                                                                       ` Bruno Prémont
  3 siblings, 1 reply; 88+ messages in thread
From: Mike Frysinger @ 2011-04-29 18:09 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: john stultz, Bruno Prémont, sedat.dilek, Mike Galbraith,
	Paul E. McKenney, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Thu, Apr 28, 2011 at 18:02, Thomas Gleixner wrote:
> -static int hrtimer_clock_to_base_table[MAX_CLOCKS];
> +static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
> +       [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
> +       [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
> +       [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
> +};

this would let us constify the array too
-mike

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-29 18:09                                                                       ` Mike Frysinger
@ 2011-04-29 18:26                                                                         ` Thomas Gleixner
  0 siblings, 0 replies; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-29 18:26 UTC (permalink / raw)
  To: Mike Frysinger
  Cc: john stultz, Bruno Prémont, sedat.dilek, Mike Galbraith,
	Paul E. McKenney, Linus Torvalds, Ingo Molnar, Peter Zijlstra,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

[-- Attachment #1: Type: TEXT/PLAIN, Size: 464 bytes --]

On Fri, 29 Apr 2011, Mike Frysinger wrote:

> On Thu, Apr 28, 2011 at 18:02, Thomas Gleixner wrote:
> > -static int hrtimer_clock_to_base_table[MAX_CLOCKS];
> > +static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
> > +       [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
> > +       [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
> > +       [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
> > +};
> 
> this would let us constify the array too

Indeed.

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-28 22:02                                                                     ` Thomas Gleixner
                                                                                         ` (2 preceding siblings ...)
  2011-04-29 18:09                                                                       ` Mike Frysinger
@ 2011-04-29 19:31                                                                       ` Bruno Prémont
  2011-04-29 20:10                                                                         ` Thomas Gleixner
  3 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-29 19:31 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: john stultz, sedat.dilek, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Fri, 29 April 2011 Thomas Gleixner wrote:
> On Thu, 28 Apr 2011, john stultz wrote:
> > On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
> > > /me suspects hrtimer changes to be the real culprit.
> > 
> > I'm not seeing anything on right off, but it does smell like
> > e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
> > would crop up.
> > 
> > Bruno, could you try checking out e06383db9ec, confirming it still
> > occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
> > 
> > I'll keep digging in the meantime.
> 
> I found the bug already. The problem is that sched_init() calls
> init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
> hrtimers_init() is called.
> 
> That was unnoticed so far as the CLOCK id to hrtimer base conversion
> was hardcoded. Now we use a table which is set up at hrtimers_init(),
> so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
> in the bss.
> 
> The patch below fixes this, by providing the table statically rather
> than runtime initialized. Though that whole ordering wants to be
> revisited.

Works here as well (applied alone), /proc/$(pidof rcu_kthread)/sched shows
total runtime continuing to increase beyond 950 and slubs continue being
released!

Thanks,
Bruno

> Thanks,
> 
> 	tglx
> 
> --- linux-2.6.orig/kernel/hrtimer.c
> +++ linux-2.6/kernel/hrtimer.c
> @@ -81,7 +81,11 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base, 
>  	}
>  };
>  
> -static int hrtimer_clock_to_base_table[MAX_CLOCKS];
> +static int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
> +	[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
> +	[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
> +	[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
> +};
>  
>  static inline int hrtimer_clockid_to_base(clockid_t clock_id)
>  {
> @@ -1722,10 +1726,6 @@ static struct notifier_block __cpuinitda
>  
>  void __init hrtimers_init(void)
>  {
> -	hrtimer_clock_to_base_table[CLOCK_REALTIME] = HRTIMER_BASE_REALTIME;
> -	hrtimer_clock_to_base_table[CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC;
> -	hrtimer_clock_to_base_table[CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME;
> -
>  	hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
>  			  (void *)(long)smp_processor_id());
>  	register_cpu_notifier(&hrtimers_nb);

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-29 19:31                                                                       ` Bruno Prémont
@ 2011-04-29 20:10                                                                         ` Thomas Gleixner
  2011-04-29 20:14                                                                           ` Bruno Prémont
  0 siblings, 1 reply; 88+ messages in thread
From: Thomas Gleixner @ 2011-04-29 20:10 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: john stultz, sedat.dilek, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1430 bytes --]

On Fri, 29 Apr 2011, Bruno Prémont wrote:
> On Fri, 29 April 2011 Thomas Gleixner wrote:
> > On Thu, 28 Apr 2011, john stultz wrote:
> > > On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
> > > > /me suspects hrtimer changes to be the real culprit.
> > > 
> > > I'm not seeing anything on right off, but it does smell like
> > > e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
> > > would crop up.
> > > 
> > > Bruno, could you try checking out e06383db9ec, confirming it still
> > > occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
> > > 
> > > I'll keep digging in the meantime.
> > 
> > I found the bug already. The problem is that sched_init() calls
> > init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
> > hrtimers_init() is called.
> > 
> > That was unnoticed so far as the CLOCK id to hrtimer base conversion
> > was hardcoded. Now we use a table which is set up at hrtimers_init(),
> > so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
> > in the bss.
> > 
> > The patch below fixes this, by providing the table statically rather
> > than runtime initialized. Though that whole ordering wants to be
> > revisited.
> 
> Works here as well (applied alone), /proc/$(pidof rcu_kthread)/sched shows
> total runtime continuing to increase beyond 950 and slubs continue being
> released!

Does the CPU time show up in top/ps as well now ?

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-29 20:10                                                                         ` Thomas Gleixner
@ 2011-04-29 20:14                                                                           ` Bruno Prémont
  2011-04-30  9:14                                                                             ` Sedat Dilek
  0 siblings, 1 reply; 88+ messages in thread
From: Bruno Prémont @ 2011-04-29 20:14 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: john stultz, sedat.dilek, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Fri, 29 April 2011 Thomas Gleixner wrote:
> On Fri, 29 Apr 2011, Bruno Prémont wrote:
> > On Fri, 29 April 2011 Thomas Gleixner wrote:
> > > On Thu, 28 Apr 2011, john stultz wrote:
> > > > On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
> > > > > /me suspects hrtimer changes to be the real culprit.
> > > > 
> > > > I'm not seeing anything on right off, but it does smell like
> > > > e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
> > > > would crop up.
> > > > 
> > > > Bruno, could you try checking out e06383db9ec, confirming it still
> > > > occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
> > > > 
> > > > I'll keep digging in the meantime.
> > > 
> > > I found the bug already. The problem is that sched_init() calls
> > > init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
> > > hrtimers_init() is called.
> > > 
> > > That was unnoticed so far as the CLOCK id to hrtimer base conversion
> > > was hardcoded. Now we use a table which is set up at hrtimers_init(),
> > > so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
> > > in the bss.
> > > 
> > > The patch below fixes this, by providing the table statically rather
> > > than runtime initialized. Though that whole ordering wants to be
> > > revisited.
> > 
> > Works here as well (applied alone), /proc/$(pidof rcu_kthread)/sched shows
> > total runtime continuing to increase beyond 950 and slubs continue being
> > released!
> 
> Does the CPU time show up in top/ps as well now ?

Yes, it does (currently at 0:09 in ps for 9336.075 in
/proc/$(pidof rcu_kthread)/sched)

Thanks,
Bruno

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

* Re: 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression?
  2011-04-29 20:14                                                                           ` Bruno Prémont
@ 2011-04-30  9:14                                                                             ` Sedat Dilek
  0 siblings, 0 replies; 88+ messages in thread
From: Sedat Dilek @ 2011-04-30  9:14 UTC (permalink / raw)
  To: Bruno Prémont
  Cc: Thomas Gleixner, john stultz, Mike Galbraith, Paul E. McKenney,
	Linus Torvalds, Ingo Molnar, Peter Zijlstra, Mike Frysinger,
	KOSAKI Motohiro, LKML, linux-mm, linux-fsdevel, Paul E. McKenney,
	Pekka Enberg

On Fri, Apr 29, 2011 at 10:14 PM, Bruno Prémont
<bonbons@linux-vserver.org> wrote:
> On Fri, 29 April 2011 Thomas Gleixner wrote:
>> On Fri, 29 Apr 2011, Bruno Prémont wrote:
>> > On Fri, 29 April 2011 Thomas Gleixner wrote:
>> > > On Thu, 28 Apr 2011, john stultz wrote:
>> > > > On Thu, 2011-04-28 at 23:04 +0200, Thomas Gleixner wrote:
>> > > > > /me suspects hrtimer changes to be the real culprit.
>> > > >
>> > > > I'm not seeing anything on right off, but it does smell like
>> > > > e06383db9ec591696a06654257474b85bac1f8cb would be where such an issue
>> > > > would crop up.
>> > > >
>> > > > Bruno, could you try checking out e06383db9ec, confirming it still
>> > > > occurs (and then maybe seeing if it goes away at e06383db9ec^1)?
>> > > >
>> > > > I'll keep digging in the meantime.
>> > >
>> > > I found the bug already. The problem is that sched_init() calls
>> > > init_rt_bandwidth() which calls hrtimer_init() _BEFORE_
>> > > hrtimers_init() is called.
>> > >
>> > > That was unnoticed so far as the CLOCK id to hrtimer base conversion
>> > > was hardcoded. Now we use a table which is set up at hrtimers_init(),
>> > > so the bandwith hrtimer ends up on CLOCK_REALTIME because the table is
>> > > in the bss.
>> > >
>> > > The patch below fixes this, by providing the table statically rather
>> > > than runtime initialized. Though that whole ordering wants to be
>> > > revisited.
>> >
>> > Works here as well (applied alone), /proc/$(pidof rcu_kthread)/sched shows
>> > total runtime continuing to increase beyond 950 and slubs continue being
>> > released!
>>
>> Does the CPU time show up in top/ps as well now ?
>
> Yes, it does (currently at 0:09 in ps for 9336.075 in
> /proc/$(pidof rcu_kthread)/sched)
>
> Thanks,
> Bruno
>

Just FYI: The patch is now in mainline (2.6.39-rc5-git3).

- Sedat -

[1] http://git.us.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ce31332d3c77532d6ea97ddcb475a2b02dd358b4
[2] http://www.kernel.org/diff/diffview.cgi?file=/pub/linux/kernel/v2.6/snapshots/patch-2.6.39-rc5-git3.bz2

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 88+ messages in thread

end of thread, other threads:[~2011-04-30  9:14 UTC | newest]

Thread overview: 88+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-24 18:21 2.6.39-rc4+: Kernel leaking memory during FS scanning, regression? Bruno Prémont
2011-04-24 21:59 ` Bruno Prémont
2011-04-25  2:42   ` KOSAKI Motohiro
2011-04-25  7:47     ` Mike Frysinger
2011-04-25  9:17       ` Bruno Prémont
2011-04-25  9:25         ` Pekka Enberg
2011-04-25 10:34           ` Bruno Prémont
2011-04-25 11:41             ` Bruno Prémont
2011-04-25 11:47               ` Pekka Enberg
2011-04-25 12:11                 ` Bruno Prémont
2011-04-25 12:14                 ` Tetsuo Handa
2011-04-25 12:21                   ` Tetsuo Handa
2011-04-25 15:22         ` Linus Torvalds
2011-04-25 16:04           ` Bruno Prémont
2011-04-25 16:31             ` Linus Torvalds
2011-04-25 17:00               ` Bruno Prémont
2011-04-25 17:10                 ` Linus Torvalds
2011-04-25 17:20                   ` Linus Torvalds
2011-04-25 18:36                   ` Bruno Prémont
2011-04-25 19:16                     ` Paul E. McKenney
2011-04-25 21:10                       ` Bruno Prémont
2011-04-25 21:26                         ` Paul E. McKenney
2011-04-25 21:30                         ` Linus Torvalds
2011-04-25 21:49                           ` Paul E. McKenney
2011-04-26  6:19                             ` Bruno Prémont
2011-04-26 11:27                               ` Paul E. McKenney
2011-04-26 16:38                                 ` Bruno Prémont
2011-04-26 17:09                                   ` Bruno Prémont
2011-04-26 17:18                                     ` Linus Torvalds
2011-04-26 22:28                                       ` Thomas Gleixner
2011-04-27  6:15                                         ` Bruno Prémont
2011-04-27 18:41                                           ` Bruno Prémont
2011-04-27 19:16                                             ` Pádraig Brady
2011-04-27 19:34                                               ` Bruno Prémont
2011-04-27 22:05                                                 ` Paul E. McKenney
2011-04-27 20:40                                             ` Bruno Prémont
2011-04-27 22:07                                               ` Paul E. McKenney
2011-04-28  6:10                                                 ` Bruno Prémont
2011-04-27 22:06                                             ` Thomas Gleixner
2011-04-27 22:27                                               ` Paul E. McKenney
2011-04-27 22:32                                                 ` Thomas Gleixner
2011-04-27 22:59                                                   ` Paul E. McKenney
2011-04-27 23:28                                                   ` Linus Torvalds
2011-04-27 23:46                                                     ` Linus Torvalds
2011-04-28  9:09                                               ` Thomas Gleixner
2011-04-28  9:17                                                 ` Sedat Dilek
2011-04-28  9:40                                                   ` Thomas Gleixner
2011-04-28 10:12                                                     ` Mike Galbraith
2011-04-28  9:45                                                 ` Sedat Dilek
2011-04-28 10:26                                                   ` Paul E. McKenney
2011-04-28 13:30                                                     ` Mike Galbraith
2011-04-28 15:28                                                       ` Sedat Dilek
2011-04-28 15:44                                                         ` Sedat Dilek
2011-04-28 15:48                                                         ` Linus Torvalds
2011-04-28 18:49                                                         ` Thomas Gleixner
2011-04-28 20:23                                                           ` Bruno Prémont
2011-04-28 20:29                                                             ` Thomas Gleixner
2011-04-28 20:44                                                               ` Bruno Prémont
2011-04-28 21:04                                                                 ` Thomas Gleixner
2011-04-28 21:51                                                                   ` john stultz
2011-04-28 22:02                                                                     ` Thomas Gleixner
2011-04-28 23:06                                                                       ` Sedat Dilek
2011-04-28 23:35                                                                         ` Sedat Dilek
2011-04-29  0:42                                                                           ` Paul E. McKenney
2011-04-29  9:34                                                                             ` Thomas Gleixner
2011-04-29  7:55                                                                       ` Sedat Dilek
2011-04-29 18:09                                                                       ` Mike Frysinger
2011-04-29 18:26                                                                         ` Thomas Gleixner
2011-04-29 19:31                                                                       ` Bruno Prémont
2011-04-29 20:10                                                                         ` Thomas Gleixner
2011-04-29 20:14                                                                           ` Bruno Prémont
2011-04-30  9:14                                                                             ` Sedat Dilek
2011-04-28 20:41                                                           ` Sedat Dilek
2011-04-28 19:22                                                         ` Mike Galbraith
2011-04-27 21:55                                         ` Paul E. McKenney
2011-04-28  6:22                                           ` Bruno Prémont
2011-04-28 10:26                                             ` Paul E. McKenney
2011-04-26 17:12                                   ` Linus Torvalds
2011-04-26 18:50                                     ` Paul E. McKenney
2011-04-26 19:17                                       ` Sedat Dilek
2011-04-27 22:02                                         ` Paul E. McKenney
2011-04-25 22:08                         ` Mike Frysinger
2011-04-25 17:29                 ` Paul E. McKenney
2011-04-25 18:13                   ` Sedat Dilek
2011-04-25 18:28                     ` Paul E. McKenney
2011-04-25 17:26               ` Paul E. McKenney
2011-04-27 10:28               ` Catalin Marinas
2011-04-25 17:51           ` Pekka Enberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).