public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* mmotm 2010-03-09-19-15 uploaded
@ 2010-03-10  3:16 akpm
  2010-03-10 19:43 ` [PATCH -mmotm] leds: fix net5501 kconfig Randy Dunlap
  2010-03-10 19:57 ` mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU Mel Gorman
  0 siblings, 2 replies; 11+ messages in thread
From: akpm @ 2010-03-10  3:16 UTC (permalink / raw)
  To: mm-commits, linux-kernel

The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to

   http://userweb.kernel.org/~akpm/mmotm/

and will soon be available at

   git://zen-kernel.org/kernel/mmotm.git

It contains the following patches against 2.6.34-rc1:

fs-ocfs2-cluster-tcpc-remove-use-of-nipquad-use-%pi4.patch
fs-buffer_head-remove-kmem_cache-constructor-to-reduce-memory-usage-under-slub.patch
rtc-hctosys-only-claim-the-rtc-provided-the-system-time-if-it-did.patch
sdio-recognize-io-card-without-powercycle.patch
maintainers-add-bfin_sdh-driver.patch
nommu-fix-build-breakage.patch
mm-do-not-iterate-over-nr_cpus-in-__zone_pcp_update.patch
drivers-scsi-sesc-eliminate-double-free.patch
mm-introduce-dump_page-and-print-symbolic-flag-names.patch
drivers-block-floppyc-convert-some-include-asm-to-include-linux.patch
drivers-block-floppyc-define-space-and-column-neatening.patch
drivers-block-floppyc-use-pr_level.patch
drivers-block-floppyc-remove-unnecessary-braces.patch
drivers-block-floppyc-remove-used-once-check_ready-macro.patch
drivers-block-floppyc-hoist-assigns-from-ifs-neatening.patch
drivers-block-floppyc-remove-last_out-macro.patch
drivers-block-floppyc-comment-neatening-and-remove-naked.patch
drivers-block-floppyc-remove-clearstruct-macro-use-memset.patch
drivers-block-floppyc-indent-a-comment.patch
drivers-block-floppyc-remove-in-out-macros-indent-switch-case.patch
drivers-block-floppyc-remove-a-few-spaces-from-function-casts.patch
drivers-block-floppyc-remove-macro-lock_fdc.patch
drivers-block-floppyc-add-debug_dcl-macro.patch
drivers-block-floppyc-remove-clearf-setf-and-testf-macros.patch
drivers-block-floppyc-remove-most-uses-of-call-and-ecall-macros.patch
drivers-block-floppyc-remove-copyin-copyout-and-ecall-macros.patch
drivers-block-floppyc-remove-macros-call-wait-and-iwait.patch
drivers-block-floppyc-convert-int-1-0-to-bool-true-false.patch
drivers-block-floppyc-move-leading-and-to-preceding-line.patch
drivers-block-floppyc-remove-define-device_name-floppy.patch
drivers-block-floppyc-convert-int-initialising-to-bool-initialized.patch
drivers-block-floppyc-add-function-is_ready_state.patch
drivers-block-floppyc-remove-unnecessary-return-and-braces.patch
drivers-block-floppyc-remove-repeat-macro.patch
drivers-block-floppyc-unclutter-redo_fd_request-logic.patch
drivers-block-floppyc-remove-unnecessary-argument-from-reschedule_timeout.patch
drivers-block-floppyc-remove-define-floppy_sanity_check.patch
drivers-block-floppyc-dprint-neatening.patch
drivers-block-floppyc-use-__func__-where-appropriate.patch
drivers-block-floppyc-use-%pf-in-logging-messages.patch
drivers-block-floppyc-remove-some-unnecessary-casting.patch
drivers-block-floppyc-convert-raw_cmd_copyin-from-while1-to-label-goto.patch
drivers-block-floppyc-add-__func__-to-debugt.patch
drivers-block-floppyc-remove-obfuscating-code2size-macro.patch
drivers-block-floppyc-remove-misleading-used-once-fd_ioctl_allowed-macro.patch
drivers-block-floppyc-remove-unnecessary-casting-in-fd_ioctl.patch
add-generic-sys_old_select.patch
add-generic-sys_old_select-fix.patch
add-generic-sys_old_mmap.patch
add-generic-sys_ipc-wrapper.patch
add-generic-sys_ipc-wrapper-fix.patch
improve-sys_newuname-for-compat-architectures.patch
add-generic-sys_olduname.patch
coredump-plug-a-memory-leak-situation-on-dump_seek.patch
asiliantfb-fix-test-of-unsigned-in-asiliant_calc_dclk2.patch
fbdev-bf54x-lq043fb-bfin-t350mcqb-fb-drop-custom-mmap-handler.patch
broadsheetfb-add-multiple-panel-type-support.patch
viafb-deprecate-private-ioctls.patch
viafb-remove-dead-code.patch
viafb-split-global-index-up.patch
viafb-split-global-index-up-fix.patch
viafb-remove-the-remaining-via_res_-uses.patch
viafb-some-dvi-cleanup.patch
viafb-yet-another-dead-code-removal.patch
viafb-reorder-initialization-for-dual-framebuffer-mode.patch
viafb-video-address-setting-revisited.patch
viafb-make-viafb_set_par-more-dual-framebuffer-compatible.patch
viafb-introduce-strict-parameter-checking.patch
viafb-split-color-mode-setting-up.patch
viafb-remove-dead-code-due-to-iga1_iga2.patch
viafb-make-some-variables-a-bit-less-global.patch
viafb-rework-color-checking.patch
viafb-some-virtual_xres-handling-fixes.patch
viafb-rework-color-setting.patch
viafb-support-color-depth-15-and-30.patch
broadsheetfb-add-mmio-hooks.patch
broadsheetfb-support-storing-waveform.patch
broadsheetfb-support-storing-waveform-fix.patch
intelfb-new-maintainer.patch
fbdev-remove-obsolete-config_fb_soft_cursor.patch
nuc900-lcd-controller-driver.patch
nuc900-lcd-controller-driver-updates.patch
drivers-video-via-fix-continuation-line-formats.patch
obsolete-config-in-kernel-source-lwmon5.patch
video-fix-first-line-of-kernel-doc-for-a-few-functions.patch
fbdev-bfin-lq035q1-fb-remove-duplicated-include.patch
devmem-dont-allow-seek-to-last-page.patch
drivers-char-memc-cleanups.patch
drivers-char-memc-cleanups-fix.patch
drivers-char-memc-cleanups-fix-fix.patch
fs-ufs-recognize-solaris-specific-file-system-state.patch
ufs-make-solaris-fsck-happy.patch
documentation-timers-split-txt-and-source-files.patch
documentation-laptop-split-txt-and-source-files.patch
documentation-fs-split-txt-and-source-files.patch
documentation-vm-split-txt-and-source-files.patch
doc-submitchecklist-add-rule-1.patch
documentation-remove-obsolete-voyagertxt-file.patch
scripts-kernel-doc-fix-empty-function-description-section.patch
documentation-email-clientstxt-update-gmail-information.patch
cgroup-introduce-cancel_attach.patch
cgroup-introduce-coalesce-css_get-and-css_put.patch
cgroups-revamp-subsys-array.patch
cgroups-subsystem-module-loading-interface.patch
cgroups-subsystem-module-loading-interface-fix.patch
cgroups-subsystem-module-unloading.patch
cgroups-subsystem-module-unloading-fix.patch
cgroups-net_cls-as-module.patch
cgroups-fix-contents-in-cgroups-documentation.patch
cgroups-blkio-subsystem-as-module.patch
cgroups-clean-up-cgroup_pidlist_find-a-bit.patch
memcg-add-interface-to-move-charge-at-task-migration.patch
memcg-move-charges-of-anonymous-page.patch
memcg-move-charges-of-anonymous-page-cleanup.patch
memcg-improve-performance-in-moving-charge.patch
memcg-avoid-oom-during-moving-charge.patch
memcg-move-charges-of-anonymous-swap.patch
memcg-move-charges-of-anonymous-swap-fix.patch
memcg-move-charges-of-anonymous-swap-fix-2.patch
memcg-move-charges-of-anonymous-swap-fix-3.patch
memcg-move-charges-of-anonymous-swap-fix-3-fix.patch
memcg-improve-performance-in-moving-swap-charge.patch
memcg-improve-performance-in-moving-swap-charge-fix.patch
cgroup-implement-eventfd-based-generic-api-for-notifications.patch
cgroup-implement-eventfd-based-generic-api-for-notifications-kconfig-fix.patch
cgroup-implement-eventfd-based-generic-api-for-notifications-fixes.patch
cgroup-implement-eventfd-based-generic-api-for-notifications-fixes-fix.patch
memcg-extract-mem_group_usage-from-mem_cgroup_read.patch
memcg-rework-usage-of-stats-by-soft-limit.patch
memcg-implement-memory-thresholds.patch
memcg-implement-memory-thresholds-checkpatch-fixes.patch
memcg-implement-memory-thresholds-checkpatch-fixes-fix.patch
memcg-implement-memory-thresholds-check-if-first-threshold-crossed.patch
memcg-typo-in-comment-to-mem_cgroup_print_oom_info.patch
memcg-use-generic-percpu-instead-of-private-implementation.patch
memcg-update-threshold-and-softlimit-at-commit-v2.patch
memcg-share-event-counter-rather-than-duplicate-v2.patch
memcg-update-memcg_testtxt.patch
memcg-handle-panic_on_oom=always-case-v2.patch
cgroups-fix-race-between-userspace-and-kernelspace.patch
cgroups-remove-events-before-destroying-subsystem-state-objects.patch
cgroups-add-simple-listener-of-cgroup-events-to-documentation.patch
cgroups-add-simple-listener-of-cgroup-events-to-documentation-fix.patch
memcg-update-memcg_testtxt-to-describe-memory-thresholds.patch
memcg-fix-typos-in-memcg_testtxt.patch
memcg-fix-oom-kill-behavior-v3.patch
memcg-fix-oom-kill-behavior-v4.patch
memcg-update-maintainer-list.patch
cpuset-fix-the-problem-that-cpuset_mem_spread_node-returns-an-offline-node.patch
nodemask-fix-the-declaration-of-nodemask_alloc.patch
cpuset-alloc-nodemask_t-at-heap-not-stack.patch
ptrace-use-ptrace_request-in-the-remaining-architectures.patch
ptrace-move-user_enable_single_step-co-prototypes-to-linux-ptraceh.patch
alpha-use-generic-ptrace_resume-code.patch
arm-use-generic-ptrace_resume-code.patch
avr32-use-generic-ptrace_resume-code.patch
h8300-use-generic-ptrace_resume-code.patch
m68knommu-use-generic-ptrace_resume-code.patch
microblaze-use-generic-ptrace_resume-code.patch
mips-use-generic-ptrace_resume-code.patch
um-use-generic-ptrace_resume-code.patch
xtensa-use-generic-ptrace_resume-code.patch
cris-arch-v10-use-generic-ptrace_resume-code.patch
cris-arch-v32-use-generic-ptrace_resume-code.patch
m32r-use-generic-ptrace_resume-code.patch
copy_signal-cleanup-use-zalloc-and-remove-initializations.patch
copy_signal-cleanup-kill-taskstats_tgid_init-and-acct_init_pacct.patch
copy_signal-cleanup-clean-thread_group_cputime_init.patch
copy_signal-cleanup-clean-tty_audit_fork.patch
ipc-use-rlimit-helpers.patch
ipmi-add-parameter-to-limit-cpu-usage-in-kipmid.patch
ipmi-fix-slave_addrs-setting-to-actually-work.patch
ipmi-remove-ipmi_smih-self-include.patch
ipmi-add-proper-offset-for-hp-pci-interfaces.patch
pid_ns-zap_pid_ns_processes-use-send_sig_noinfo-instead-of-force_sig.patch
nsproxy-remove-init_nsproxy.patch
edac-mpc85xx-mask-ecc-syndrome-correctly.patch
edac-mpc85xx-improve-sdram-error-reporting.patch
edac-mpc85xx-use-resource_size-instead-of-raw-math.patch
edac-e752x-fsb-ecc.patch
edac-e752x-add-dram-scrubbing-support.patch
documentation-dma-apitxt-remove-deprecated-function-descriptions.patch
dma-apitxt-add-dma_sync_single-sg-api-description.patch
dma-apitxt-remove-dma_sync_single_range-description.patch
alpha-remove-dma_sync_single_range.patch
um-remove-dma_sync_single_range.patch
pci-dma-add-include-linux-pci-dmah.patch
pci-dma-x86-use-include-linux-pci-dmah.patch
pci-dma-alpha-use-include-linux-pci-dmah.patch
pci-dma-arm-use-include-linux-pci-dmah.patch
pci-dma-frv-use-include-linux-pci-dmah.patch
pci-dma-ia64-use-include-linux-pci-dmah.patch
pci-dma-mips-use-include-linux-pci-dmah.patch
pci-dma-parisc-use-include-linux-pci-dmah.patch
pci-dma-powerpc-use-include-linux-pci-dmah.patch
pci-dma-sh-use-include-linux-pci-dmah.patch
pci-dma-sparc-use-include-linux-pci-dmah.patch
pci-dma-xtensa-use-include-linux-pci-dmah.patch
pci-dma-cris-use-include-linux-pci-dmah.patch
pci-dma-add-linux-pci-dmah-to-linux-pcih.patch
dma-mappingh-add-the-dma_unmap-state-api.patch
dma-mappingh-add-the-dma_unmap-state-api-fix.patch
dma-mappingh-add-the-dma_unmap-state-api-fix-2.patch
frv-remove-the-obsolete-and-unnecessary-dma-api-comments.patch
frv-remove-the-obsolete-and-unnecessary-dma-api-comments-fix.patch
blackfin-remove-the-obsolete-and-unnecessary-dma-api-comments.patch
mn10300-remove-the-obsolete-and-unnecessary-dma-api-comments.patch
mn10300-remove-the-obsolete-and-unnecessary-dma-api-comments-fix.patch
dma-mapping-sparc-unify-32bit-and-64bit-dma_set_mask.patch
dma-mapping-alpha-use-include-linux-pci-dma-compath.patch
dma-mapping-pci-convert-pci_set_dma_mask-to-call-dma_set_mask.patch
dma-mapping-dma-mappingh-add-dma_set_coherent_mask.patch
dma-mapping-powerpc-use-generic-pci_set_dma_mask-and-pci_set_consistent_dma_mask.patch
dma-mapping-arm-use-generic-pci_set_dma_mask-and-pci_set_consistent_dma_mask.patch
dma-mapping-pci-move-pci_set_dma_mask-and-pci_set_consistent_dma_mask-to-pci-dma-compath.patch
dma-mapping-pci-move-pci_set_dma_mask-and-pci_set_consistent_dma_mask-to-pci-dma-compath-fix.patch
documentation-convert-pci-dma-mappingtxt-to-use-the-generic-dma-api.patch
documentation-convert-pci-dma-mappingtxt-to-use-the-generic-dma-api-fix.patch
documentation-remove-the-pci-dma-api-description-in-dma-apitxt.patch
documentation-rename-pci-dma-mappingtxt-to-dma-api-howtotxt.patch
pps-linuxpps-clients-support.patch
pps-linuxpps-clients-support-v3.patch
pps-linuxpps-clients-support-v3-checkpatch-fixes.patch
ldisc-new-dcd_change-method-for-line-disciplines.patch
ldisc-n_tty-add-new-method-n_tty_inherit_ops.patch
ldisc-n_tty-add-new-method-n_tty_inherit_ops-update.patch
pps-serial-clients-support.patch
serial-8250-enable-pps-support.patch
serial-amba-pl010-enable-pps-support.patch
w1-fix-test-in-ds2482_wait_1wire_idle.patch
w1-mxc_w1-move-probe-and-remove-to-the-dev-text-area.patch
drivers-char-mmtimerc-eliminate-useless-code.patch
sgi-gru-use-for_each_set_bit.patch
decompress-fix-new-decompressor-for-pic.patch
zlib-make-new-optimized-inflate-endian-independent.patch
inflate_fast-sout-is-already-a-short-so-ptr-arith-was-off-by-one.patch
linux-next.patch
next-remove-localversion.patch
i-need-old-gcc.patch
include-linux-fsh-complete-hexification-of-fmode_-constants.patch
hardware-latency-detector-remove-default-m.patch
revert-input-wistron_btns-switch-to-using-sparse-keymap-library.patch
memory-hotplug-allow-setting-of-phys_device.patch
memory-hotplug-s390-set-phys_device.patch
sparsemem-on-no-vmemmap-path-put-mem_map-on-node-high-too.patch
leds-gpio-fix-default-state-handling-on-of-platforms.patch
acpica-fix-acpi_ex_release_mutex-comment.patch
acerhdf-add-new-bios-versions.patch
arch-x86-kernel-rebootc-add-imac91-to-pci_reboot_dmi_table.patch
arch-x86-kernel-hpetc-fix-bug-in-rtc-emulation.patch
agp-amd64-fix-pci-reference-leaks.patch
bitops-rename-for_each_bit-to-for_each_set_bit-arm.patch
arm-convert-proc-cpu-aligment-to-seq_file.patch
arch-arm-plat-pxa-dmac-correct-null-test.patch
arch-arm-include-asm-elfh-forward-declare-the-task-struct.patch
arm-convert-arm-to-arch_gettimeoffset.patch
cpufreq-ondemand-dont-synchronize-sample-rate-unless-mulitple-cpus-present.patch
cpufreq-unexport-unlock_policy_rwsem-functions.patch
cpufreq-fix-a-lockdep-warning.patch
powerpc-sky-cpu-redundant-or-incorrect-tests-on-unsigned.patch
drivers-gpu-drm-i915-intel_biosc-fix-continuation-line-formats.patch
vmwgfx-depends-on-fb.patch
drm-i915-blacklist-lid-status-sony-vgn-bx196vp-dell-inspiron-700m.patch
drivers-media-video-cx23885-needs-kfifo-conversion.patch
drivers-media-video-move-dereference-after-null-test.patch
v4l-dvb-gspca-sn9c20x-correct-onstack-wait_queue_head-declaration.patch
dib3000mc-reduce-large-stack-usage.patch
dib7000p-reduce-large-stack-usage.patch
drivers-media-video-kconfig-add-video_dev-dependency-as-needed-in-drivers-media-video-kconfig.patch
fs-fscache-object-listc-fix-warning-on-32-bit.patch
hpet-use-for_each_set_bit.patch
intel-iommu-use-for_each_set_bit.patch
timer-stats-fix-del_timer_sync-and-try_to_del_timer_sync.patch
posix-cpu-timers-reset-expire-cache-when-no-timer-is-running.patch
hrtimer-correct-a-few-numbers-in-comments.patch
clockevents-ensure-taht-min_delta_ns-is-increased-in-error-path.patch
timers-introduce-the-concept-of-timer-slack-for-legacy-timers.patch
cpu-timers-simplify-rlimit_cpu-handling.patch
cpu-timers-cleanup-arm_timer.patch
cpu-timers-return-correct-previous-timer-reload-value.patch
cpu-timers-change-sigev_none-timer-implementation.patch
cpu-timers-assure-to-not-iterate-over-all-threads-in-fastpath_timer_check.patch
cpu-timers-optimize-run_posix_cpu_timers.patch
cs5535-clockevt-free-timer-in-irq-setup-error-path.patch
timer-print-function-name-for-timer-callbacks-modifying-preemption-count.patch
time-clean-up-warp_clock.patch
time-clean-up-direct-xtime-usage-in-xen.patch
input-bcm5974-retract-efi-broken-suspend_resume.patch
markup_oops-fix-perlcritic-warnings.patch
headerdep-perlcritic-warning.patch
led-driver-for-the-soekris-net5501-board.patch
led-driver-for-the-soekris-net5501-board-checkpatch-fixes.patch
jffs2-fixup-rb_root-initializations-to-use-rb_root.patch
bitops-rename-for_each_bit-to-for_each_set_bit-mtd.patch
ntfs-use-bitmap_weight.patch
score-fix-dereference-of-null-pointer-in-local_flush_tlb_page.patch
omap2_mcspic-null-pointer-dereference.patch
isdn-misplaced-parenthesis-in-pof_handle_data.patch
i4l-silence-compiler-warnings-for-array-access-in-eicon-diva-isdn-driver.patch
i4l-change-magic-numbers-in-eicon-diva-isdn-driver-to-symbolic-names.patch
phonet-use-for_each_set_bit.patch
atm-use-for_each_set_bit.patch
ll-temac-driver-add-non-virtex-5-support.patch
obsolete-config-in-kernel-source-use_internal_timer.patch
obsolete-config-in-kernel-source-hso_autopm.patch
3x59x-fix-pci-resource-management.patch
sunrpc-use-formatting-of-module-name-in-sunrpc.patch
sunrpc-cache-fix-module-refcnt-leak-in-a-failure-path.patch
cpm_uart-use-resource_size.patch
acpiphp-execute-acpi-_reg-method-for-hotadded-devices.patch
pci-kill-off-pci_register_set_vga_state-symbol-export.patch
kernel-schedc-suppress-unused-var-warning.patch
core-kernel-make-sparse-work-with-inline-spinlocks-and-rwlocks.patch
kernel-irq-procc-expose-the-irq_desc-node-in-proc-irq.patch
genirq-warn-about-irqf_sharedirqf_disabled-at-the-right-place.patch
genirq-introduce-irqf_allow_nested-flag-for-request_irq.patch
rcu-remove-init_rcu_head-rcu_head_init-rcu_head.patch
scsi-add-__init-__exit-macros-to-ibmvstgtc.patch
drivers-scsi-fnic-fnic_scsic-clean-up.patch
drivers-scsi-gdthc-fix-buffer-overflow.patch
drivers-scsi-lpfc-lpfc_vportc-fix-read-buffer-overflow.patch
osst-fix-read-buffer-overflow.patch
gdth-unmap-ccb_phys-when-scsi_add_host-fails-in-gdth_eisa_probe_one.patch
drivers-scsi-libsas-use-sam_good.patch
ncr5380-bit-mr_dma_mode-set-twice-in-ncr5380_transfer_dma.patch
drivers-scsi-remove-unnecessary-null-test.patch
drivers-message-move-dereference-after-null-test.patch
scsi-pmcraid-redundant-check-in-pmcraid_check_ioctl_buffer.patch
mpt-fusion-convert-to-seq_file.patch
g_ncr5380-remove-misleading-pnp-error-message.patch
g_ncr5380-fix-broken-mmio-compilation.patch
g_ncr5380-fix-missing-pnp_device_detach-and-scsi_unregister-on-rmmod.patch
dc395x-decrease-iteration-for-tag_number-of-max_command-in-start_scsi.patch
drivers-scsi-correct-the-size-argument-to-kmalloc.patch
scsi-remove-superfluous-null-pointer-check-from-scsi_kill_request.patch
mpt2sas-fix-confusion-in-_scsih_sas_device_status_change_event.patch
scsi-sdc-quiet-all-sparse-noise.patch
drivers-scsi-bfa-bfad_imc-eliminate-useless-code.patch
lpfc-positive-error-return-into-negative.patch
drivers-scsi-qla2xxx-qla_osc-fix-continuation-line-formats.patch
scsi-bfa-correct-onstack-wait_queue_head-declaration.patch
mptscsih-fix-first-line-of-kernel-doc-for-a-few-functions.patch
drivers-scsi-chc-dont-use-vprintk-as-macro.patch
paride-fix-off-by-one-test.patch
vfs-improve-writeback_inodes_wb.patch
documentation-fix-block-biodoctxt-dma-mapping-description.patch
usb-serial-ftdi-add-contec-vendor-and-product-id.patch
usb-serial-ftdi-add-contec-vendor-and-product-id-fix.patch
usb-option-add-support-for-a-variant-of-dlink-dwm-652-u5.patch
vfs-fix-vfs_rename_dir-for-fs_rename_does_d_move-filesystems.patch
vfs-improve-comment-describing-fget_light.patch
ecryptfs-another-lockdep-issue.patch
vfs-o_-bit-numbers-uniqueness-check.patch
vfs-introduce-fmode_neg_offset-for-allowing-negative-f_pos.patch
vfs-clarify-that-nonseekable_open-will-never-fail.patch
mac80211-give-warning-if-building-w-out-rate-ctrl-algorithm.patch
xtensa-convert-to-asm-generic-hardirqh.patch
xtensa-includecheck-fix-vectorss.patch
xtensa-fix-unnecessary-setting-of-xtime.patch
modpost-support-objects-with-more-than-64k-sections.patch
drivers-char-tty_bufferc-fix-min-warnings.patch
mm.patch
define-madv_hugepage.patch
page-allocator-reduce-fragmentation-in-buddy-allocator-by-adding-buddies-that-are-merging-to-the-tail-of-the-free-lists.patch
page-allocator-reduce-fragmentation-in-buddy-allocator-by-adding-buddies-that-are-merging-to-the-tail-of-the-free-lists-fix.patch
frv-duplicate-output_buffer-of-e03.patch
frv-duplicate-output_buffer-of-e03-checkpatch-fixes.patch
improve-sys_personality-for-compat-architectures.patch
mxcmmc-fixed-max_seg_size-value-on-initialization.patch
hwmon-driver-for-ti-tmp102-temperature-sensor.patch
add-a-new-vt-mode-which-is-like-vt_process-but-doesnt-require-a-vt_reldisp-ioctl-call-checkpatch-fixes.patch
gpiolib-introduce-chip-addition-removal-notifier.patch
of-gpio-add-support-for-two-stage-registration-for-the-of_gpio_chips.patch
of-gpio-implement-gpiolib-notifier-hooks.patch
of-gpio-implement-gpiolib-notifier-hooks-fix.patch
powerpc-mcu_mpc8349emitx-remove-of-gpio-handling-stuff.patch
gpiolib-cosmetic-improvements-for-error-handling-in-gpiochip_add.patch
ext3-fixup-rb_root-initializations-to-use-rb_root.patch
hfsplus-identify-journal-info-block-in-volume-header.patch
hfsplus-fix-journal-detection.patch
tracehooks-kill-some-pt_ptraced-checks.patch
tracehooks-check-pt_ptraced-before-reporting-the-single-step.patch
ptrace_signal-check-pt_ptraced-before-reporting-a-signal.patch
export-__ptrace_detach-and-do_notify_parent_cldstop.patch
reorder-the-code-in-kernel-ptracec.patch
implement-utrace-ptrace.patch
utrace-core.patch
utrace-core-utrace-fix-utrace_maybe_reap-vs-find_matching_engine-race.patch
rcu-add-rcustring-adt-for-rcu-protected-strings.patch
add-a-kernel_address-that-works-for-data-too.patch
sysctl-add-proc_rcu_string-to-manage-sysctls-using-rcu-strings.patch
sysctl-use-rcu-strings-for-core_pattern-sysctl.patch
sysctl-add-call_usermodehelper_cleanup.patch
sysctl-convert-modprobe_path-to-proc_rcu_string.patch
sysctl-convert-poweroff_command-to-proc_rcu_string.patch
sysctl-convert-hotplug-helper-string-to-proc_rcu_string.patch
sysctl-use-rcu-protected-sysctl-for-ocfs-group-add-helper.patch
sysctl-fix-up-remaining-references-to-uevent_helper.patch
sysctl-fix-up-remaining-references-to-uevent_helper-fix.patch
sysctl-clean-up-vm-related-variable-declarations.patch
sysctl-clean-up-vm-related-variable-declarations-fix.patch
sysctl-remove-references-to-ctl_unnumbered-which-has-been-removed.patch
sysctl-extern-cleanup-c_a_d.patch
sysctl-extern-cleanup-signal.patch
sysctl-extern-cleanup-binfmts.patch
sysctl-extern-cleanup-pid.patch
sysctl-extern-cleanup-mm.patch
sysctl-extern-cleanup-compat.patch
sysctl-extern-cleanup-latencytop.patch
sysctl-extern-cleanup-file-nr.patch
sysctl-extern-cleanup-rcu.patch
sysctl-extern-cleanup-block-iopoll.patch
sysctl-extern-cleanup-module.patch
sysctl-extern-cleanup-sg.patch
sysctl-extern-cleanup-acct.patch
sysctl-extern-cleanup-rtmutex.patch
sysctl-extern-cleanup-lockdep.patch
sysctl-extern-cleanup-poll.patch
kmod-add-init-function-to-usermodehelper.patch
kmod-add-init-function-to-usermodehelper-fix.patch
kmod-replace-call_usermodehelper_pipe-with-use-of-umh-init-function-and-resolve-limit.patch
kmod-replace-call_usermodehelper_pipe-with-use-of-umh-init-function-and-resolve-limitcleanup.patch
delay-accounting-re-implement-c-for-getdelaysc-to-report-information-on-a-target-command.patch
delay-accounting-re-implement-c-for-getdelaysc-to-report-information-on-a-target-command-checkpatch-fixes.patch
delayacct-align-to-8-byte-boundary-on-64-bit-systems.patch
drivers-edac-introduce-missing-kfree.patch
edac-add-__init-to-i7core_xeon_pci_fixup.patch
ssb-add-dma_dev-to-ssb_device-structure.patch
b43legacy-replace-the-ssb_dma-api-with-the-generic-dma-api.patch
b43-replace-the-ssb_dma-api-with-the-generic-dma-api.patch
b44-replace-the-ssb_dma-api-with-the-generic-dma-api.patch
ssb-remove-the-ssb-dma-api.patch
time-kill-off-config_generic_time.patch
bitops-remove-temporary-for_each_bit.patch
vfs-add-super-operation-writeback_inodes.patch
vfs-take-2add-set_page_dirty_notag.patch
reiser4-export-remove_from_page_cache.patch
reiser4-export-remove_from_page_cache-fix.patch
reiser4-export-find_get_pages.patch
reiser4.patch
reiser4-writeback_inodes-implementation.patch
reiser4-writeback_inodes-implementation-fix.patch
reiser4-fixup-checkin-checkout-jnodes-for-entd.patch
reiser4-fixups.patch
reiser4-broke.patch
make-sure-nobodys-leaking-resources.patch
journal_add_journal_head-debug.patch
releasing-resources-with-children.patch
make-frame_pointer-default=y.patch
mutex-subsystem-synchro-test-module.patch
mutex-subsystem-synchro-test-module-add-missing-header-file.patch
slab-leaks3-default-y.patch
put_bh-debug.patch
add-debugging-aid-for-memory-initialisation-problems.patch
workaround-for-a-pci-restoring-bug.patch
prio_tree-debugging-patch.patch
single_open-seq_release-leak-diagnostics.patch
add-a-refcount-check-in-dput.patch
getblk-handle-2tb-devices.patch
getblk-handle-2tb-devices-fix.patch
notify_change-callers-must-hold-i_mutex.patch

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

* [PATCH -mmotm] leds: fix net5501 kconfig
  2010-03-10  3:16 mmotm 2010-03-09-19-15 uploaded akpm
@ 2010-03-10 19:43 ` Randy Dunlap
  2010-03-10 19:57 ` mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU Mel Gorman
  1 sibling, 0 replies; 11+ messages in thread
From: Randy Dunlap @ 2010-03-10 19:43 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, Bjarke Istrup Pedersen

From: Randy Dunlap <randy.dunlap@oracle.com>

LEDS_NET5501 selects LEDS_TRIGGER_DEFAULT_ON even when the symbol
LEDS_TRIGGERS is not enabled.  This causes build errors, so make
LEDS_NET5501 depend on LEDS_TRIGGERS to prevent the build errors.

drivers/leds/ledtrig-default-on.c:25: error: variable 'defon_led_trigger' has initializer but incomplete type
drivers/leds/ledtrig-default-on.c:26: error: unknown field 'name' specified in initializer
drivers/leds/ledtrig-default-on.c:26: warning: excess elements in struct initializer
drivers/leds/ledtrig-default-on.c:26: warning: (near initialization for 'defon_led_trigger')
drivers/leds/ledtrig-default-on.c:27: error: unknown field 'activate' specified in initializer
drivers/leds/ledtrig-default-on.c:27: warning: excess elements in struct initializer
drivers/leds/ledtrig-default-on.c:27: warning: (near initialization for 'defon_led_trigger')
drivers/leds/ledtrig-default-on.c:32: error: implicit declaration of function 'led_trigger_register'
drivers/leds/ledtrig-default-on.c:37: error: implicit declaration of function 'led_trigger_unregister'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Bjarke Istrup Pedersen <gurligebis@gentoo.org>
---
 drivers/leds/Kconfig |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- mmotm-2010-0309-1915.orig/drivers/leds/Kconfig
+++ mmotm-2010-0309-1915/drivers/leds/Kconfig
@@ -69,7 +69,8 @@ config LEDS_NET48XX
 
 config LEDS_NET5501
 	tristate "LED Support for Soekris net5501 series Error LED"
-	depends on LEDS_CLASS && LEDS_GPIO_PLATFORM && GPIO_CS5535
+	depends on LEDS_CLASS && LEDS_TRIGGERS
+	depends on LEDS_GPIO_PLATFORM && GPIO_CS5535
 	select LEDS_TRIGGER_DEFAULT_ON
 	default n
 	help

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

* mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-10  3:16 mmotm 2010-03-09-19-15 uploaded akpm
  2010-03-10 19:43 ` [PATCH -mmotm] leds: fix net5501 kconfig Randy Dunlap
@ 2010-03-10 19:57 ` Mel Gorman
  2010-03-10 20:21   ` Andrew Morton
  2010-03-10 20:32   ` Neil Horman
  1 sibling, 2 replies; 11+ messages in thread
From: Mel Gorman @ 2010-03-10 19:57 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel, Neil Horman, Andi Kleen, Paul E. McKenney

On Tue, Mar 09, 2010 at 07:16:03PM -0800, akpm@linux-foundation.org wrote:
> The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to
> 
>    http://userweb.kernel.org/~akpm/mmotm/
> 
> and will soon be available at
> 
>    git://zen-kernel.org/kernel/mmotm.git
> 
> It contains the following patches against 2.6.34-rc1:
> 

With preempt and sleeping spinlock debugging on, I'm seeing a lot of warnings
about scheduling while atomic. Starts off with messages like

[    0.572278] BUG: scheduling while atomic: swapper/1/0x00000002
[    0.576004] 1 lock held by swapper/1:
[    0.580002]  #0:  (rcu_read_lock){.+.+.+}, at: [<ffffffff811b6950>] kobject_uevent_env+0x363/0x4d0
[    0.600001] Modules linked in:
[    0.608003] Pid: 1, comm: swapper Not tainted 2.6.34-rc1-mm1-vanilla #1
[    0.612001] Call Trace:
[    0.616005]  [<ffffffff810727fe>] ?  __debug_show_held_locks+0x22/0x24
[    0.620005]  [<ffffffff810395ed>] __schedule_bug+0x77/0x7c
[    0.624004]  [<ffffffff812f4cc5>] schedule+0xcc/0x723
[    0.628003]  [<ffffffff812f55b6>] schedule_timeout+0x2d/0x28d
[    0.632003]  [<ffffffff8107315d>] ? mark_held_locks+0x4d/0x6b
[    0.636004]  [<ffffffff812f81e9>] ? _raw_spin_unlock_irq+0x30/0x5d
[    0.640003]  [<ffffffff810733de>] ?  trace_hardirqs_on_caller+0x110/0x134
[    0.644003]  [<ffffffff812f4a0f>] wait_for_common+0xdc/0x152
[    0.648003]  [<ffffffff8103a43b>] ? default_wake_function+0x0/0x14
[    0.652004]  [<ffffffff812f4b28>] wait_for_completion+0x1d/0x1f
[    0.656004]  [<ffffffff8105cdf0>] call_usermodehelper_exec+0xad/0xfa
[    0.660004]  [<ffffffff81068429>] ?  prepare_usermodehelper_creds+0x136/0x168
[    0.664003]  [<ffffffff811b6a37>] kobject_uevent_env+0x44a/0x4d0
[    0.668003]  [<ffffffff811b6950>] ? kobject_uevent_env+0x363/0x4d0
[    0.672003]  [<ffffffff811b6ac8>] kobject_uevent+0xb/0xd
[    0.676002]  [<ffffffff811b5e65>] kset_register+0x37/0x3f
[    0.680004]  [<ffffffff8123239a>] bus_register+0x11f/0x2b1
[    0.684005]  [<ffffffff8175973e>] platform_bus_init+0x2c/0x44
[    0.688003]  [<ffffffff817597b9>] driver_init+0x1d/0x29
[    0.692004]  [<ffffffff8172c69b>] kernel_init+0x12e/0x1e3
[    0.696003]  [<ffffffff81003be4>] kernel_thread_helper+0x4/0x10
[    0.700004]  [<ffffffff812f8794>] ? restore_args+0x0/0x30
[    0.704003]  [<ffffffff8172c56d>] ? kernel_init+0x0/0x1e3
[    0.708002]  [<ffffffff81003be0>] ? kernel_thread_helper+0x0/0x10

There are a lot of warnings along these lines during boot. This system did
boot *eventually* but it was in obvious trouble. The warnings appear to
be all around kobject_uevent_env acquiring the RCU lock and then going to
sleep. Most likely candidate problem patches in mmotm are

sysctl-fix-up-remaining-references-to-uevent_helper
sysctl-fix-up-remaining-references-to-uevent_helper-fix

But there are also a whole host of other sysctl-related changes around RCU in
there. The changelog implies that these patches are part of some long-lived
review process so I didn't delve too deeply. The people most likely to be
involved based on comments in the changelog are cc'd.

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-10 19:57 ` mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU Mel Gorman
@ 2010-03-10 20:21   ` Andrew Morton
  2010-03-10 20:34     ` Mel Gorman
  2010-03-10 20:32   ` Neil Horman
  1 sibling, 1 reply; 11+ messages in thread
From: Andrew Morton @ 2010-03-10 20:21 UTC (permalink / raw)
  To: Mel Gorman; +Cc: linux-kernel, Neil Horman, Andi Kleen, Paul E. McKenney

On Wed, 10 Mar 2010 19:57:46 +0000
Mel Gorman <mel@csn.ul.ie> wrote:

> On Tue, Mar 09, 2010 at 07:16:03PM -0800, akpm@linux-foundation.org wrote:
> > The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to
> > 
> >    http://userweb.kernel.org/~akpm/mmotm/
> > 
> > and will soon be available at
> > 
> >    git://zen-kernel.org/kernel/mmotm.git
> > 
> > It contains the following patches against 2.6.34-rc1:
> > 
> 
> With preempt and sleeping spinlock debugging on, I'm seeing a lot of warnings
> about scheduling while atomic. Starts off with messages like
> 
> [    0.572278] BUG: scheduling while atomic: swapper/1/0x00000002
> [    0.576004] 1 lock held by swapper/1:
> [    0.580002]  #0:  (rcu_read_lock){.+.+.+}, at: [<ffffffff811b6950>] kobject_uevent_env+0x363/0x4d0
> [    0.600001] Modules linked in:
> [    0.608003] Pid: 1, comm: swapper Not tainted 2.6.34-rc1-mm1-vanilla #1
> [    0.612001] Call Trace:
> [    0.616005]  [<ffffffff810727fe>] ?  __debug_show_held_locks+0x22/0x24
> [    0.620005]  [<ffffffff810395ed>] __schedule_bug+0x77/0x7c
> [    0.624004]  [<ffffffff812f4cc5>] schedule+0xcc/0x723
> [    0.628003]  [<ffffffff812f55b6>] schedule_timeout+0x2d/0x28d
> [    0.632003]  [<ffffffff8107315d>] ? mark_held_locks+0x4d/0x6b
> [    0.636004]  [<ffffffff812f81e9>] ? _raw_spin_unlock_irq+0x30/0x5d
> [    0.640003]  [<ffffffff810733de>] ?  trace_hardirqs_on_caller+0x110/0x134
> [    0.644003]  [<ffffffff812f4a0f>] wait_for_common+0xdc/0x152
> [    0.648003]  [<ffffffff8103a43b>] ? default_wake_function+0x0/0x14
> [    0.652004]  [<ffffffff812f4b28>] wait_for_completion+0x1d/0x1f
> [    0.656004]  [<ffffffff8105cdf0>] call_usermodehelper_exec+0xad/0xfa
> [    0.660004]  [<ffffffff81068429>] ?  prepare_usermodehelper_creds+0x136/0x168
> [    0.664003]  [<ffffffff811b6a37>] kobject_uevent_env+0x44a/0x4d0
> [    0.668003]  [<ffffffff811b6950>] ? kobject_uevent_env+0x363/0x4d0
> [    0.672003]  [<ffffffff811b6ac8>] kobject_uevent+0xb/0xd
> [    0.676002]  [<ffffffff811b5e65>] kset_register+0x37/0x3f
> [    0.680004]  [<ffffffff8123239a>] bus_register+0x11f/0x2b1
> [    0.684005]  [<ffffffff8175973e>] platform_bus_init+0x2c/0x44
> [    0.688003]  [<ffffffff817597b9>] driver_init+0x1d/0x29
> [    0.692004]  [<ffffffff8172c69b>] kernel_init+0x12e/0x1e3
> [    0.696003]  [<ffffffff81003be4>] kernel_thread_helper+0x4/0x10
> [    0.700004]  [<ffffffff812f8794>] ? restore_args+0x0/0x30
> [    0.704003]  [<ffffffff8172c56d>] ? kernel_init+0x0/0x1e3
> [    0.708002]  [<ffffffff81003be0>] ? kernel_thread_helper+0x0/0x10
> 
> There are a lot of warnings along these lines during boot. This system did
> boot *eventually* but it was in obvious trouble. The warnings appear to
> be all around kobject_uevent_env acquiring the RCU lock and then going to
> sleep. Most likely candidate problem patches in mmotm are
> 
> sysctl-fix-up-remaining-references-to-uevent_helper
> sysctl-fix-up-remaining-references-to-uevent_helper-fix
> 
> But there are also a whole host of other sysctl-related changes around RCU in
> there. The changelog implies that these patches are part of some long-lived
> review process so I didn't delve too deeply. The people most likely to be
> involved based on comments in the changelog are cc'd.
> 

Thanks.  It's Neil's
sysctl-fix-up-remaining-references-to-uevent_helper-fix.patch which does

--- a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
+++ a/lib/kobject_uevent.c
@@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
 #endif
 
 	/* call uevent_helper, usually only enabled during early boot */
+	rcu_read_lock();
 	helper = rcu_dereference(uevent_helper);
 	if (helper[0])
 		retval = uevent_call_helper(subsystem, env);
-
+	rcu_read_unlock();
 exit:
 	kfree(devpath);
 	kfree(env);


Ho hum.  I guess all of

#rcu-add-rcustring-adt-for-rcu-protected-strings.patch: TBU
rcu-add-rcustring-adt-for-rcu-protected-strings.patch
#add-a-kernel_address-that-works-for-data-too.patch: TBU
add-a-kernel_address-that-works-for-data-too.patch
sysctl-add-proc_rcu_string-to-manage-sysctls-using-rcu-strings.patch
sysctl-use-rcu-strings-for-core_pattern-sysctl.patch
sysctl-add-call_usermodehelper_cleanup.patch
sysctl-convert-modprobe_path-to-proc_rcu_string.patch
sysctl-convert-poweroff_command-to-proc_rcu_string.patch
#sysctl-convert-hotplug-helper-string-to-proc_rcu_string.patch: jirislaby crash
sysctl-convert-hotplug-helper-string-to-proc_rcu_string.patch
#sysctl-use-rcu-protected-sysctl-for-ocfs-group-add-helper.patch: Joel nack
sysctl-use-rcu-protected-sysctl-for-ocfs-group-add-helper.patch
#
sysctl-fix-up-remaining-references-to-uevent_helper.patch
sysctl-fix-up-remaining-references-to-uevent_helper-fix.patch
#
sysctl-clean-up-vm-related-variable-declarations.patch
sysctl-clean-up-vm-related-variable-declarations-fix.patch
#
sysctl-remove-references-to-ctl_unnumbered-which-has-been-removed.patch
#
#
sysctl-extern-cleanup-c_a_d.patch
sysctl-extern-cleanup-signal.patch
sysctl-extern-cleanup-binfmts.patch
sysctl-extern-cleanup-pid.patch
sysctl-extern-cleanup-mm.patch
sysctl-extern-cleanup-compat.patch
sysctl-extern-cleanup-latencytop.patch
sysctl-extern-cleanup-file-nr.patch
sysctl-extern-cleanup-rcu.patch
sysctl-extern-cleanup-block-iopoll.patch
sysctl-extern-cleanup-module.patch
sysctl-extern-cleanup-sg.patch
sysctl-extern-cleanup-acct.patch
sysctl-extern-cleanup-rtmutex.patch
sysctl-extern-cleanup-lockdep.patch
sysctl-extern-cleanup-poll.patch
#
kmod-add-init-function-to-usermodehelper.patch
kmod-add-init-function-to-usermodehelper-fix.patch
kmod-replace-call_usermodehelper_pipe-with-use-of-umh-init-function-and-resolve-limit.patch
kmod-replace-call_usermodehelper_pipe-with-use-of-umh-init-function-and-resolve-limitcleanup.patch

are not a prospect for 2.6.34.  There are issues in the rcustring
patches and the others have dependencies.  I suppose I can rebase
sysctl-extern-cleanup-* though.


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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-10 19:57 ` mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU Mel Gorman
  2010-03-10 20:21   ` Andrew Morton
@ 2010-03-10 20:32   ` Neil Horman
  2010-03-11 22:30     ` Andi Kleen
  2010-03-12 11:46     ` Mel Gorman
  1 sibling, 2 replies; 11+ messages in thread
From: Neil Horman @ 2010-03-10 20:32 UTC (permalink / raw)
  To: Mel Gorman; +Cc: akpm, linux-kernel, Andi Kleen, Paul E. McKenney

On Wed, Mar 10, 2010 at 07:57:46PM +0000, Mel Gorman wrote:
> On Tue, Mar 09, 2010 at 07:16:03PM -0800, akpm@linux-foundation.org wrote:
> > The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to
> > 
> >    http://userweb.kernel.org/~akpm/mmotm/
> > 
> > and will soon be available at
> > 
> >    git://zen-kernel.org/kernel/mmotm.git
> > 
> > It contains the following patches against 2.6.34-rc1:
> > 
> 
> With preempt and sleeping spinlock debugging on, I'm seeing a lot of warnings
> about scheduling while atomic. Starts off with messages like
> 
> [    0.572278] BUG: scheduling while atomic: swapper/1/0x00000002
> [    0.576004] 1 lock held by swapper/1:
> [    0.580002]  #0:  (rcu_read_lock){.+.+.+}, at: [<ffffffff811b6950>] kobject_uevent_env+0x363/0x4d0
> [    0.600001] Modules linked in:
> [    0.608003] Pid: 1, comm: swapper Not tainted 2.6.34-rc1-mm1-vanilla #1
> [    0.612001] Call Trace:
> [    0.616005]  [<ffffffff810727fe>] ?  __debug_show_held_locks+0x22/0x24
> [    0.620005]  [<ffffffff810395ed>] __schedule_bug+0x77/0x7c
> [    0.624004]  [<ffffffff812f4cc5>] schedule+0xcc/0x723
> [    0.628003]  [<ffffffff812f55b6>] schedule_timeout+0x2d/0x28d
> [    0.632003]  [<ffffffff8107315d>] ? mark_held_locks+0x4d/0x6b
> [    0.636004]  [<ffffffff812f81e9>] ? _raw_spin_unlock_irq+0x30/0x5d
> [    0.640003]  [<ffffffff810733de>] ?  trace_hardirqs_on_caller+0x110/0x134
> [    0.644003]  [<ffffffff812f4a0f>] wait_for_common+0xdc/0x152
> [    0.648003]  [<ffffffff8103a43b>] ? default_wake_function+0x0/0x14
> [    0.652004]  [<ffffffff812f4b28>] wait_for_completion+0x1d/0x1f
> [    0.656004]  [<ffffffff8105cdf0>] call_usermodehelper_exec+0xad/0xfa
> [    0.660004]  [<ffffffff81068429>] ?  prepare_usermodehelper_creds+0x136/0x168
> [    0.664003]  [<ffffffff811b6a37>] kobject_uevent_env+0x44a/0x4d0
> [    0.668003]  [<ffffffff811b6950>] ? kobject_uevent_env+0x363/0x4d0
> [    0.672003]  [<ffffffff811b6ac8>] kobject_uevent+0xb/0xd
> [    0.676002]  [<ffffffff811b5e65>] kset_register+0x37/0x3f
> [    0.680004]  [<ffffffff8123239a>] bus_register+0x11f/0x2b1
> [    0.684005]  [<ffffffff8175973e>] platform_bus_init+0x2c/0x44
> [    0.688003]  [<ffffffff817597b9>] driver_init+0x1d/0x29
> [    0.692004]  [<ffffffff8172c69b>] kernel_init+0x12e/0x1e3
> [    0.696003]  [<ffffffff81003be4>] kernel_thread_helper+0x4/0x10
> [    0.700004]  [<ffffffff812f8794>] ? restore_args+0x0/0x30
> [    0.704003]  [<ffffffff8172c56d>] ? kernel_init+0x0/0x1e3
> [    0.708002]  [<ffffffff81003be0>] ? kernel_thread_helper+0x0/0x10
> 
> There are a lot of warnings along these lines during boot. This system did
> boot *eventually* but it was in obvious trouble. The warnings appear to
> be all around kobject_uevent_env acquiring the RCU lock and then going to
> sleep. Most likely candidate problem patches in mmotm are
> 
> sysctl-fix-up-remaining-references-to-uevent_helper
> sysctl-fix-up-remaining-references-to-uevent_helper-fix
> 
> But there are also a whole host of other sysctl-related changes around RCU in
> there. The changelog implies that these patches are part of some long-lived
> review process so I didn't delve too deeply. The people most likely to be
> involved based on comments in the changelog are cc'd.
> 
> -- 
> Mel Gorman
> Part-time Phd Student                          Linux Technology Center
> University of Limerick                         IBM Dublin Software Lab
> 
Yeah, its probably this chunk:
diff -puN
lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
lib/kobject_uevent.c
---
a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
+++ a/lib/kobject_uevent.c
@@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
 #endif

        /* call uevent_helper, usually only enabled during early boot */
+       rcu_read_lock();
        helper = rcu_dereference(uevent_helper);
        if (helper[0])
                retval = uevent_call_helper(subsystem, env);
-
+       rcu_read_unlock();
 exit:
        kfree(devpath);
        kfree(env);
_

My bad, I'm not sure why I didn't catch that, I tested using lots of module
loads/unloads while changing uevent_helper.  Anywho, should be easy to fix,
Mel, can you modify the code to copy helper to a private variable, then unlock
the rcu read side prior to calling uevent_call_helper?  I imagine that would be
the best fix.


Thanks & Regards
Neil


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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-10 20:21   ` Andrew Morton
@ 2010-03-10 20:34     ` Mel Gorman
  0 siblings, 0 replies; 11+ messages in thread
From: Mel Gorman @ 2010-03-10 20:34 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, Neil Horman, Andi Kleen, Paul E. McKenney

On Wed, Mar 10, 2010 at 12:21:38PM -0800, Andrew Morton wrote:
> On Wed, 10 Mar 2010 19:57:46 +0000
> Mel Gorman <mel@csn.ul.ie> wrote:
> 
> > On Tue, Mar 09, 2010 at 07:16:03PM -0800, akpm@linux-foundation.org wrote:
> > > The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to
> > > 
> > >    http://userweb.kernel.org/~akpm/mmotm/
> > > 
> > > and will soon be available at
> > > 
> > >    git://zen-kernel.org/kernel/mmotm.git
> > > 
> > > It contains the following patches against 2.6.34-rc1:
> > > 
> > 
> > With preempt and sleeping spinlock debugging on, I'm seeing a lot of warnings
> > about scheduling while atomic. Starts off with messages like
> > 
> > [    0.572278] BUG: scheduling while atomic: swapper/1/0x00000002
> > [    0.576004] 1 lock held by swapper/1:
> > [    0.580002]  #0:  (rcu_read_lock){.+.+.+}, at: [<ffffffff811b6950>] kobject_uevent_env+0x363/0x4d0
> > [    0.600001] Modules linked in:
> > [    0.608003] Pid: 1, comm: swapper Not tainted 2.6.34-rc1-mm1-vanilla #1
> > [    0.612001] Call Trace:
> > [    0.616005]  [<ffffffff810727fe>] ?  __debug_show_held_locks+0x22/0x24
> > [    0.620005]  [<ffffffff810395ed>] __schedule_bug+0x77/0x7c
> > [    0.624004]  [<ffffffff812f4cc5>] schedule+0xcc/0x723
> > [    0.628003]  [<ffffffff812f55b6>] schedule_timeout+0x2d/0x28d
> > [    0.632003]  [<ffffffff8107315d>] ? mark_held_locks+0x4d/0x6b
> > [    0.636004]  [<ffffffff812f81e9>] ? _raw_spin_unlock_irq+0x30/0x5d
> > [    0.640003]  [<ffffffff810733de>] ?  trace_hardirqs_on_caller+0x110/0x134
> > [    0.644003]  [<ffffffff812f4a0f>] wait_for_common+0xdc/0x152
> > [    0.648003]  [<ffffffff8103a43b>] ? default_wake_function+0x0/0x14
> > [    0.652004]  [<ffffffff812f4b28>] wait_for_completion+0x1d/0x1f
> > [    0.656004]  [<ffffffff8105cdf0>] call_usermodehelper_exec+0xad/0xfa
> > [    0.660004]  [<ffffffff81068429>] ?  prepare_usermodehelper_creds+0x136/0x168
> > [    0.664003]  [<ffffffff811b6a37>] kobject_uevent_env+0x44a/0x4d0
> > [    0.668003]  [<ffffffff811b6950>] ? kobject_uevent_env+0x363/0x4d0
> > [    0.672003]  [<ffffffff811b6ac8>] kobject_uevent+0xb/0xd
> > [    0.676002]  [<ffffffff811b5e65>] kset_register+0x37/0x3f
> > [    0.680004]  [<ffffffff8123239a>] bus_register+0x11f/0x2b1
> > [    0.684005]  [<ffffffff8175973e>] platform_bus_init+0x2c/0x44
> > [    0.688003]  [<ffffffff817597b9>] driver_init+0x1d/0x29
> > [    0.692004]  [<ffffffff8172c69b>] kernel_init+0x12e/0x1e3
> > [    0.696003]  [<ffffffff81003be4>] kernel_thread_helper+0x4/0x10
> > [    0.700004]  [<ffffffff812f8794>] ? restore_args+0x0/0x30
> > [    0.704003]  [<ffffffff8172c56d>] ? kernel_init+0x0/0x1e3
> > [    0.708002]  [<ffffffff81003be0>] ? kernel_thread_helper+0x0/0x10
> > 
> > There are a lot of warnings along these lines during boot. This system did
> > boot *eventually* but it was in obvious trouble. The warnings appear to
> > be all around kobject_uevent_env acquiring the RCU lock and then going to
> > sleep. Most likely candidate problem patches in mmotm are
> > 
> > sysctl-fix-up-remaining-references-to-uevent_helper
> > sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > 
> > But there are also a whole host of other sysctl-related changes around RCU in
> > there. The changelog implies that these patches are part of some long-lived
> > review process so I didn't delve too deeply. The people most likely to be
> > involved based on comments in the changelog are cc'd.
> > 
> 
> Thanks.  It's Neil's
> sysctl-fix-up-remaining-references-to-uevent_helper-fix.patch which does
> 
> --- a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> +++ a/lib/kobject_uevent.c
> @@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
>  #endif
>  
>  	/* call uevent_helper, usually only enabled during early boot */
> +	rcu_read_lock();
>  	helper = rcu_dereference(uevent_helper);
>  	if (helper[0])
>  		retval = uevent_call_helper(subsystem, env);
> -
> +	rcu_read_unlock();
>  exit:
>  	kfree(devpath);
>  	kfree(env);
> 
> 

Indeed, I spotted that but the large number of dependencies around it made
me wonder was it really that patch or a problem with the whole thing. I
confess I didn't actually look to see what they were doing. Shortly after
I sent the first mail, I removed all these patches from the series just so
it would boot without crapping all over the console.

> Ho hum.  I guess all of
> 
> #rcu-add-rcustring-adt-for-rcu-protected-strings.patch: TBU
> rcu-add-rcustring-adt-for-rcu-protected-strings.patch
> #add-a-kernel_address-that-works-for-data-too.patch: TBU
> add-a-kernel_address-that-works-for-data-too.patch
> sysctl-add-proc_rcu_string-to-manage-sysctls-using-rcu-strings.patch
> sysctl-use-rcu-strings-for-core_pattern-sysctl.patch
> sysctl-add-call_usermodehelper_cleanup.patch
> sysctl-convert-modprobe_path-to-proc_rcu_string.patch
> sysctl-convert-poweroff_command-to-proc_rcu_string.patch
> #sysctl-convert-hotplug-helper-string-to-proc_rcu_string.patch: jirislaby crash
> sysctl-convert-hotplug-helper-string-to-proc_rcu_string.patch
> #sysctl-use-rcu-protected-sysctl-for-ocfs-group-add-helper.patch: Joel nack
> sysctl-use-rcu-protected-sysctl-for-ocfs-group-add-helper.patch
> #
> sysctl-fix-up-remaining-references-to-uevent_helper.patch
> sysctl-fix-up-remaining-references-to-uevent_helper-fix.patch
> #
> sysctl-clean-up-vm-related-variable-declarations.patch
> sysctl-clean-up-vm-related-variable-declarations-fix.patch
> #
> sysctl-remove-references-to-ctl_unnumbered-which-has-been-removed.patch
> #
> #
> sysctl-extern-cleanup-c_a_d.patch
> sysctl-extern-cleanup-signal.patch
> sysctl-extern-cleanup-binfmts.patch
> sysctl-extern-cleanup-pid.patch
> sysctl-extern-cleanup-mm.patch
> sysctl-extern-cleanup-compat.patch
> sysctl-extern-cleanup-latencytop.patch
> sysctl-extern-cleanup-file-nr.patch
> sysctl-extern-cleanup-rcu.patch
> sysctl-extern-cleanup-block-iopoll.patch
> sysctl-extern-cleanup-module.patch
> sysctl-extern-cleanup-sg.patch
> sysctl-extern-cleanup-acct.patch
> sysctl-extern-cleanup-rtmutex.patch
> sysctl-extern-cleanup-lockdep.patch
> sysctl-extern-cleanup-poll.patch
> #
> kmod-add-init-function-to-usermodehelper.patch
> kmod-add-init-function-to-usermodehelper-fix.patch
> kmod-replace-call_usermodehelper_pipe-with-use-of-umh-init-function-and-resolve-limit.patch
> kmod-replace-call_usermodehelper_pipe-with-use-of-umh-init-function-and-resolve-limitcleanup.patch
> 
> are not a prospect for 2.6.34. There are issues in the rcustring
> patches and the others have dependencies.  I suppose I can rebase
> sysctl-extern-cleanup-* though.
> 

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-10 20:32   ` Neil Horman
@ 2010-03-11 22:30     ` Andi Kleen
  2010-03-12  0:09       ` nhorman
  2010-03-12 11:46     ` Mel Gorman
  1 sibling, 1 reply; 11+ messages in thread
From: Andi Kleen @ 2010-03-11 22:30 UTC (permalink / raw)
  To: Neil Horman; +Cc: Mel Gorman, akpm, linux-kernel, Andi Kleen, Paul E. McKenney

> a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> +++ a/lib/kobject_uevent.c
> @@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
>  #endif
> 
>         /* call uevent_helper, usually only enabled during early boot */
> +       rcu_read_lock();
>         helper = rcu_dereference(uevent_helper);
>         if (helper[0])
>                 retval = uevent_call_helper(subsystem, env);
> -
> +       rcu_read_unlock();
>  exit:

The data actually has to be copied, there's a helper for this in rcustring.
I'll try to send a patch later.

> loads/unloads while changing uevent_helper.  Anywho, should be easy to fix,
> Mel, can you modify the code to copy helper to a private variable, then unlock
> the rcu read side prior to calling uevent_call_helper?  I imagine that would be

Yes, except rcustring already has a helper for that :)

-Andi

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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-11 22:30     ` Andi Kleen
@ 2010-03-12  0:09       ` nhorman
  0 siblings, 0 replies; 11+ messages in thread
From: nhorman @ 2010-03-12  0:09 UTC (permalink / raw)
  To: Andi Kleen, Neil Horman
  Cc: Mel Gorman, akpm, linux-kernel, Andi Kleen, Paul E. McKenney


On Thu, 11 Mar 2010 17:30:48 -0500, Andi Kleen wrote:
> > a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > +++ a/lib/kobject_uevent.c
> > @@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
> >  #endif
> > 
> >         /* call uevent_helper, usually only enabled during early boot */
> > +       rcu_read_lock();
> >         helper = rcu_dereference(uevent_helper);
> >         if (helper[0])
> >                 retval = uevent_call_helper(subsystem, env);
> > -
> > +       rcu_read_unlock();
> >  exit:
> 
> The data actually has to be copied, there's a helper for this in rcustring.
> I'll try to send a patch later.
> 
> > loads/unloads while changing uevent_helper.  Anywho, should be easy to fix,
> > Mel, can you modify the code to copy helper to a private variable, then unlock
> > the rcu read side prior to calling uevent_call_helper?  I imagine that would be
> 
> Yes, except rcustring already has a helper for that :)
> 
Yes but the rcustring bits all got reverted, trashing my series :), so its all got to be rediffed anyway

Neil
> -Andi
> 


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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-10 20:32   ` Neil Horman
  2010-03-11 22:30     ` Andi Kleen
@ 2010-03-12 11:46     ` Mel Gorman
  2010-03-12 15:29       ` Neil Horman
  1 sibling, 1 reply; 11+ messages in thread
From: Mel Gorman @ 2010-03-12 11:46 UTC (permalink / raw)
  To: Neil Horman; +Cc: akpm, linux-kernel, Andi Kleen, Paul E. McKenney

On Wed, Mar 10, 2010 at 03:32:42PM -0500, Neil Horman wrote:
> On Wed, Mar 10, 2010 at 07:57:46PM +0000, Mel Gorman wrote:
> > On Tue, Mar 09, 2010 at 07:16:03PM -0800, akpm@linux-foundation.org wrote:
> > > The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to
> > > 
> > >    http://userweb.kernel.org/~akpm/mmotm/
> > > 
> > > and will soon be available at
> > > 
> > >    git://zen-kernel.org/kernel/mmotm.git
> > > 
> > > It contains the following patches against 2.6.34-rc1:
> > > 
> > 
> > With preempt and sleeping spinlock debugging on, I'm seeing a lot of warnings
> > about scheduling while atomic. Starts off with messages like
> > 
> > [    0.572278] BUG: scheduling while atomic: swapper/1/0x00000002
> > [    0.576004] 1 lock held by swapper/1:
> > [    0.580002]  #0:  (rcu_read_lock){.+.+.+}, at: [<ffffffff811b6950>] kobject_uevent_env+0x363/0x4d0
> > [    0.600001] Modules linked in:
> > [    0.608003] Pid: 1, comm: swapper Not tainted 2.6.34-rc1-mm1-vanilla #1
> > [    0.612001] Call Trace:
> > [    0.616005]  [<ffffffff810727fe>] ?  __debug_show_held_locks+0x22/0x24
> > [    0.620005]  [<ffffffff810395ed>] __schedule_bug+0x77/0x7c
> > [    0.624004]  [<ffffffff812f4cc5>] schedule+0xcc/0x723
> > [    0.628003]  [<ffffffff812f55b6>] schedule_timeout+0x2d/0x28d
> > [    0.632003]  [<ffffffff8107315d>] ? mark_held_locks+0x4d/0x6b
> > [    0.636004]  [<ffffffff812f81e9>] ? _raw_spin_unlock_irq+0x30/0x5d
> > [    0.640003]  [<ffffffff810733de>] ?  trace_hardirqs_on_caller+0x110/0x134
> > [    0.644003]  [<ffffffff812f4a0f>] wait_for_common+0xdc/0x152
> > [    0.648003]  [<ffffffff8103a43b>] ? default_wake_function+0x0/0x14
> > [    0.652004]  [<ffffffff812f4b28>] wait_for_completion+0x1d/0x1f
> > [    0.656004]  [<ffffffff8105cdf0>] call_usermodehelper_exec+0xad/0xfa
> > [    0.660004]  [<ffffffff81068429>] ?  prepare_usermodehelper_creds+0x136/0x168
> > [    0.664003]  [<ffffffff811b6a37>] kobject_uevent_env+0x44a/0x4d0
> > [    0.668003]  [<ffffffff811b6950>] ? kobject_uevent_env+0x363/0x4d0
> > [    0.672003]  [<ffffffff811b6ac8>] kobject_uevent+0xb/0xd
> > [    0.676002]  [<ffffffff811b5e65>] kset_register+0x37/0x3f
> > [    0.680004]  [<ffffffff8123239a>] bus_register+0x11f/0x2b1
> > [    0.684005]  [<ffffffff8175973e>] platform_bus_init+0x2c/0x44
> > [    0.688003]  [<ffffffff817597b9>] driver_init+0x1d/0x29
> > [    0.692004]  [<ffffffff8172c69b>] kernel_init+0x12e/0x1e3
> > [    0.696003]  [<ffffffff81003be4>] kernel_thread_helper+0x4/0x10
> > [    0.700004]  [<ffffffff812f8794>] ? restore_args+0x0/0x30
> > [    0.704003]  [<ffffffff8172c56d>] ? kernel_init+0x0/0x1e3
> > [    0.708002]  [<ffffffff81003be0>] ? kernel_thread_helper+0x0/0x10
> > 
> > There are a lot of warnings along these lines during boot. This system did
> > boot *eventually* but it was in obvious trouble. The warnings appear to
> > be all around kobject_uevent_env acquiring the RCU lock and then going to
> > sleep. Most likely candidate problem patches in mmotm are
> > 
> > sysctl-fix-up-remaining-references-to-uevent_helper
> > sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > 
> > But there are also a whole host of other sysctl-related changes around RCU in
> > there. The changelog implies that these patches are part of some long-lived
> > review process so I didn't delve too deeply. The people most likely to be
> > involved based on comments in the changelog are cc'd.
> > 
> > -- 
> > Mel Gorman
> > Part-time Phd Student                          Linux Technology Center
> > University of Limerick                         IBM Dublin Software Lab
> > 
> Yeah, its probably this chunk:
> diff -puN
> lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> lib/kobject_uevent.c
> ---
> a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> +++ a/lib/kobject_uevent.c
> @@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
>  #endif
> 
>         /* call uevent_helper, usually only enabled during early boot */
> +       rcu_read_lock();
>         helper = rcu_dereference(uevent_helper);
>         if (helper[0])
>                 retval = uevent_call_helper(subsystem, env);
> -
> +       rcu_read_unlock();
>  exit:
>         kfree(devpath);
>         kfree(env);
> _
> 
> My bad, I'm not sure why I didn't catch that, I tested using lots of module
> loads/unloads while changing uevent_helper.  Anywho, should be easy to fix,
> Mel, can you modify the code to copy helper to a private variable, then unlock
> the rcu read side prior to calling uevent_call_helper?  I imagine that would be
> the best fix.
> 

I am missing why it is even necessary to dereference this string. helper
is not passed to uevent_call_helper() and it makes a proper copy of the
string. Why not just make the empty-string check on the copy like the
following?

==== CUT HERE ====
kobject: Do not call uevent_helper with RCU lock held

With sleep debugging enabled, the call to uevent_helper spews warnings
all over the console because the RCU lock is held when the process goes to
sleep. The RCU lock is only held so that the system is sure that
uevent_helper is not an empty string.

As uevent_call_helper() already makes a proper copy of the uevent_helper
string, this patch changes when and where the empty-string check is
made so that the check is made against the copy. Assuming the helper
exists, it is then called without the RCU lock held.

Signed-off-by: Mel Gorman <mel@csn.ul.ie>
---
 lib/kobject_uevent.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
index a7520d0..f411457 100644
--- a/lib/kobject_uevent.c
+++ b/lib/kobject_uevent.c
@@ -88,6 +88,11 @@ static int uevent_call_helper(const char *subsystem, struct kobj_uevent_env *env
 	if (!helper)
 		return -ENOMEM;
 
+	if (!helper[0]) {
+		retval = -EINVAL;
+		goto error;
+	}
+
 	retval = -E2BIG;
 	argv[0] = helper;
 	argv[1] = (char *)subsystem;
@@ -126,7 +131,6 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
 	struct kset *kset;
 	const struct kset_uevent_ops *uevent_ops;
 	u64 seq;
-	const char *helper;
 	int i = 0;
 	int retval = 0;
 
@@ -273,11 +277,8 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
 #endif
 
 	/* call uevent_helper, usually only enabled during early boot */
-	rcu_read_lock();
-	helper = rcu_dereference(uevent_helper);
-	if (helper[0])
-		retval = uevent_call_helper(subsystem, env);
-	rcu_read_unlock();
+	retval = uevent_call_helper(subsystem, env);
+
 exit:
 	kfree(devpath);
 	kfree(env);

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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-12 11:46     ` Mel Gorman
@ 2010-03-12 15:29       ` Neil Horman
  2010-03-12 15:41         ` Mel Gorman
  0 siblings, 1 reply; 11+ messages in thread
From: Neil Horman @ 2010-03-12 15:29 UTC (permalink / raw)
  To: Mel Gorman; +Cc: akpm, linux-kernel, Andi Kleen, Paul E. McKenney

On Fri, Mar 12, 2010 at 11:46:00AM +0000, Mel Gorman wrote:
> On Wed, Mar 10, 2010 at 03:32:42PM -0500, Neil Horman wrote:
> > On Wed, Mar 10, 2010 at 07:57:46PM +0000, Mel Gorman wrote:
> > > On Tue, Mar 09, 2010 at 07:16:03PM -0800, akpm@linux-foundation.org wrote:
> > > > The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to
> > > > 
> > > >    http://userweb.kernel.org/~akpm/mmotm/
> > > > 
> > > > and will soon be available at
> > > > 
> > > >    git://zen-kernel.org/kernel/mmotm.git
> > > > 
> > > > It contains the following patches against 2.6.34-rc1:
> > > > 
> > > 
> > > With preempt and sleeping spinlock debugging on, I'm seeing a lot of warnings
> > > about scheduling while atomic. Starts off with messages like
> > > 
> > > [    0.572278] BUG: scheduling while atomic: swapper/1/0x00000002
> > > [    0.576004] 1 lock held by swapper/1:
> > > [    0.580002]  #0:  (rcu_read_lock){.+.+.+}, at: [<ffffffff811b6950>] kobject_uevent_env+0x363/0x4d0
> > > [    0.600001] Modules linked in:
> > > [    0.608003] Pid: 1, comm: swapper Not tainted 2.6.34-rc1-mm1-vanilla #1
> > > [    0.612001] Call Trace:
> > > [    0.616005]  [<ffffffff810727fe>] ?  __debug_show_held_locks+0x22/0x24
> > > [    0.620005]  [<ffffffff810395ed>] __schedule_bug+0x77/0x7c
> > > [    0.624004]  [<ffffffff812f4cc5>] schedule+0xcc/0x723
> > > [    0.628003]  [<ffffffff812f55b6>] schedule_timeout+0x2d/0x28d
> > > [    0.632003]  [<ffffffff8107315d>] ? mark_held_locks+0x4d/0x6b
> > > [    0.636004]  [<ffffffff812f81e9>] ? _raw_spin_unlock_irq+0x30/0x5d
> > > [    0.640003]  [<ffffffff810733de>] ?  trace_hardirqs_on_caller+0x110/0x134
> > > [    0.644003]  [<ffffffff812f4a0f>] wait_for_common+0xdc/0x152
> > > [    0.648003]  [<ffffffff8103a43b>] ? default_wake_function+0x0/0x14
> > > [    0.652004]  [<ffffffff812f4b28>] wait_for_completion+0x1d/0x1f
> > > [    0.656004]  [<ffffffff8105cdf0>] call_usermodehelper_exec+0xad/0xfa
> > > [    0.660004]  [<ffffffff81068429>] ?  prepare_usermodehelper_creds+0x136/0x168
> > > [    0.664003]  [<ffffffff811b6a37>] kobject_uevent_env+0x44a/0x4d0
> > > [    0.668003]  [<ffffffff811b6950>] ? kobject_uevent_env+0x363/0x4d0
> > > [    0.672003]  [<ffffffff811b6ac8>] kobject_uevent+0xb/0xd
> > > [    0.676002]  [<ffffffff811b5e65>] kset_register+0x37/0x3f
> > > [    0.680004]  [<ffffffff8123239a>] bus_register+0x11f/0x2b1
> > > [    0.684005]  [<ffffffff8175973e>] platform_bus_init+0x2c/0x44
> > > [    0.688003]  [<ffffffff817597b9>] driver_init+0x1d/0x29
> > > [    0.692004]  [<ffffffff8172c69b>] kernel_init+0x12e/0x1e3
> > > [    0.696003]  [<ffffffff81003be4>] kernel_thread_helper+0x4/0x10
> > > [    0.700004]  [<ffffffff812f8794>] ? restore_args+0x0/0x30
> > > [    0.704003]  [<ffffffff8172c56d>] ? kernel_init+0x0/0x1e3
> > > [    0.708002]  [<ffffffff81003be0>] ? kernel_thread_helper+0x0/0x10
> > > 
> > > There are a lot of warnings along these lines during boot. This system did
> > > boot *eventually* but it was in obvious trouble. The warnings appear to
> > > be all around kobject_uevent_env acquiring the RCU lock and then going to
> > > sleep. Most likely candidate problem patches in mmotm are
> > > 
> > > sysctl-fix-up-remaining-references-to-uevent_helper
> > > sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > > 
> > > But there are also a whole host of other sysctl-related changes around RCU in
> > > there. The changelog implies that these patches are part of some long-lived
> > > review process so I didn't delve too deeply. The people most likely to be
> > > involved based on comments in the changelog are cc'd.
> > > 
> > > -- 
> > > Mel Gorman
> > > Part-time Phd Student                          Linux Technology Center
> > > University of Limerick                         IBM Dublin Software Lab
> > > 
> > Yeah, its probably this chunk:
> > diff -puN
> > lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > lib/kobject_uevent.c
> > ---
> > a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > +++ a/lib/kobject_uevent.c
> > @@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
> >  #endif
> > 
> >         /* call uevent_helper, usually only enabled during early boot */
> > +       rcu_read_lock();
> >         helper = rcu_dereference(uevent_helper);
> >         if (helper[0])
> >                 retval = uevent_call_helper(subsystem, env);
> > -
> > +       rcu_read_unlock();
> >  exit:
> >         kfree(devpath);
> >         kfree(env);
> > _
> > 
> > My bad, I'm not sure why I didn't catch that, I tested using lots of module
> > loads/unloads while changing uevent_helper.  Anywho, should be easy to fix,
> > Mel, can you modify the code to copy helper to a private variable, then unlock
> > the rcu read side prior to calling uevent_call_helper?  I imagine that would be
> > the best fix.
> > 
> 
> I am missing why it is even necessary to dereference this string. helper
> is not passed to uevent_call_helper() and it makes a proper copy of the
> string. Why not just make the empty-string check on the copy like the
> following?
> 
> ==== CUT HERE ====
> kobject: Do not call uevent_helper with RCU lock held
> 
> With sleep debugging enabled, the call to uevent_helper spews warnings
> all over the console because the RCU lock is held when the process goes to
> sleep. The RCU lock is only held so that the system is sure that
> uevent_helper is not an empty string.
> 
> As uevent_call_helper() already makes a proper copy of the uevent_helper
> string, this patch changes when and where the empty-string check is
> made so that the check is made against the copy. Assuming the helper
> exists, it is then called without the RCU lock held.
> 
> Signed-off-by: Mel Gorman <mel@csn.ul.ie>
> ---
>  lib/kobject_uevent.c |   13 +++++++------
>  1 files changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
> index a7520d0..f411457 100644
> --- a/lib/kobject_uevent.c
> +++ b/lib/kobject_uevent.c
> @@ -88,6 +88,11 @@ static int uevent_call_helper(const char *subsystem, struct kobj_uevent_env *env
>  	if (!helper)
>  		return -ENOMEM;
>  
> +	if (!helper[0]) {
> +		retval = -EINVAL;
> +		goto error;
> +	}
> +
>  	retval = -E2BIG;
>  	argv[0] = helper;
>  	argv[1] = (char *)subsystem;
> @@ -126,7 +131,6 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
>  	struct kset *kset;
>  	const struct kset_uevent_ops *uevent_ops;
>  	u64 seq;
> -	const char *helper;
>  	int i = 0;
>  	int retval = 0;
>  
> @@ -273,11 +277,8 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
>  #endif
>  
>  	/* call uevent_helper, usually only enabled during early boot */
> -	rcu_read_lock();
> -	helper = rcu_dereference(uevent_helper);
> -	if (helper[0])
> -		retval = uevent_call_helper(subsystem, env);
> -	rcu_read_unlock();
> +	retval = uevent_call_helper(subsystem, env);
> +
>  exit:
>  	kfree(devpath);
>  	kfree(env);
> 

We could, but all the rcu string copy stuff got trashed, so we've got to re-diff
this all anyway.  I'll probalby do exactly what you're suggesting as I fix this
all up though.

Neil


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

* Re: mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU
  2010-03-12 15:29       ` Neil Horman
@ 2010-03-12 15:41         ` Mel Gorman
  0 siblings, 0 replies; 11+ messages in thread
From: Mel Gorman @ 2010-03-12 15:41 UTC (permalink / raw)
  To: Neil Horman; +Cc: akpm, linux-kernel, Andi Kleen, Paul E. McKenney

On Fri, Mar 12, 2010 at 10:29:22AM -0500, Neil Horman wrote:
> On Fri, Mar 12, 2010 at 11:46:00AM +0000, Mel Gorman wrote:
> > On Wed, Mar 10, 2010 at 03:32:42PM -0500, Neil Horman wrote:
> > > On Wed, Mar 10, 2010 at 07:57:46PM +0000, Mel Gorman wrote:
> > > > On Tue, Mar 09, 2010 at 07:16:03PM -0800, akpm@linux-foundation.org wrote:
> > > > > The mm-of-the-moment snapshot 2010-03-09-19-15 has been uploaded to
> > > > > 
> > > > >    http://userweb.kernel.org/~akpm/mmotm/
> > > > > 
> > > > > and will soon be available at
> > > > > 
> > > > >    git://zen-kernel.org/kernel/mmotm.git
> > > > > 
> > > > > It contains the following patches against 2.6.34-rc1:
> > > > > 
> > > > 
> > > > With preempt and sleeping spinlock debugging on, I'm seeing a lot of warnings
> > > > about scheduling while atomic. Starts off with messages like
> > > > 
> > > > [    0.572278] BUG: scheduling while atomic: swapper/1/0x00000002
> > > > [    0.576004] 1 lock held by swapper/1:
> > > > [    0.580002]  #0:  (rcu_read_lock){.+.+.+}, at: [<ffffffff811b6950>] kobject_uevent_env+0x363/0x4d0
> > > > [    0.600001] Modules linked in:
> > > > [    0.608003] Pid: 1, comm: swapper Not tainted 2.6.34-rc1-mm1-vanilla #1
> > > > [    0.612001] Call Trace:
> > > > [    0.616005]  [<ffffffff810727fe>] ?  __debug_show_held_locks+0x22/0x24
> > > > [    0.620005]  [<ffffffff810395ed>] __schedule_bug+0x77/0x7c
> > > > [    0.624004]  [<ffffffff812f4cc5>] schedule+0xcc/0x723
> > > > [    0.628003]  [<ffffffff812f55b6>] schedule_timeout+0x2d/0x28d
> > > > [    0.632003]  [<ffffffff8107315d>] ? mark_held_locks+0x4d/0x6b
> > > > [    0.636004]  [<ffffffff812f81e9>] ? _raw_spin_unlock_irq+0x30/0x5d
> > > > [    0.640003]  [<ffffffff810733de>] ?  trace_hardirqs_on_caller+0x110/0x134
> > > > [    0.644003]  [<ffffffff812f4a0f>] wait_for_common+0xdc/0x152
> > > > [    0.648003]  [<ffffffff8103a43b>] ? default_wake_function+0x0/0x14
> > > > [    0.652004]  [<ffffffff812f4b28>] wait_for_completion+0x1d/0x1f
> > > > [    0.656004]  [<ffffffff8105cdf0>] call_usermodehelper_exec+0xad/0xfa
> > > > [    0.660004]  [<ffffffff81068429>] ?  prepare_usermodehelper_creds+0x136/0x168
> > > > [    0.664003]  [<ffffffff811b6a37>] kobject_uevent_env+0x44a/0x4d0
> > > > [    0.668003]  [<ffffffff811b6950>] ? kobject_uevent_env+0x363/0x4d0
> > > > [    0.672003]  [<ffffffff811b6ac8>] kobject_uevent+0xb/0xd
> > > > [    0.676002]  [<ffffffff811b5e65>] kset_register+0x37/0x3f
> > > > [    0.680004]  [<ffffffff8123239a>] bus_register+0x11f/0x2b1
> > > > [    0.684005]  [<ffffffff8175973e>] platform_bus_init+0x2c/0x44
> > > > [    0.688003]  [<ffffffff817597b9>] driver_init+0x1d/0x29
> > > > [    0.692004]  [<ffffffff8172c69b>] kernel_init+0x12e/0x1e3
> > > > [    0.696003]  [<ffffffff81003be4>] kernel_thread_helper+0x4/0x10
> > > > [    0.700004]  [<ffffffff812f8794>] ? restore_args+0x0/0x30
> > > > [    0.704003]  [<ffffffff8172c56d>] ? kernel_init+0x0/0x1e3
> > > > [    0.708002]  [<ffffffff81003be0>] ? kernel_thread_helper+0x0/0x10
> > > > 
> > > > There are a lot of warnings along these lines during boot. This system did
> > > > boot *eventually* but it was in obvious trouble. The warnings appear to
> > > > be all around kobject_uevent_env acquiring the RCU lock and then going to
> > > > sleep. Most likely candidate problem patches in mmotm are
> > > > 
> > > > sysctl-fix-up-remaining-references-to-uevent_helper
> > > > sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > > > 
> > > > But there are also a whole host of other sysctl-related changes around RCU in
> > > > there. The changelog implies that these patches are part of some long-lived
> > > > review process so I didn't delve too deeply. The people most likely to be
> > > > involved based on comments in the changelog are cc'd.
> > > > 
> > > > -- 
> > > > Mel Gorman
> > > > Part-time Phd Student                          Linux Technology Center
> > > > University of Limerick                         IBM Dublin Software Lab
> > > > 
> > > Yeah, its probably this chunk:
> > > diff -puN
> > > lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > > lib/kobject_uevent.c
> > > ---
> > > a/lib/kobject_uevent.c~sysctl-fix-up-remaining-references-to-uevent_helper-fix
> > > +++ a/lib/kobject_uevent.c
> > > @@ -273,10 +273,11 @@ int kobject_uevent_env(struct kobject *k
> > >  #endif
> > > 
> > >         /* call uevent_helper, usually only enabled during early boot */
> > > +       rcu_read_lock();
> > >         helper = rcu_dereference(uevent_helper);
> > >         if (helper[0])
> > >                 retval = uevent_call_helper(subsystem, env);
> > > -
> > > +       rcu_read_unlock();
> > >  exit:
> > >         kfree(devpath);
> > >         kfree(env);
> > > _
> > > 
> > > My bad, I'm not sure why I didn't catch that, I tested using lots of module
> > > loads/unloads while changing uevent_helper.  Anywho, should be easy to fix,
> > > Mel, can you modify the code to copy helper to a private variable, then unlock
> > > the rcu read side prior to calling uevent_call_helper?  I imagine that would be
> > > the best fix.
> > > 
> > 
> > I am missing why it is even necessary to dereference this string. helper
> > is not passed to uevent_call_helper() and it makes a proper copy of the
> > string. Why not just make the empty-string check on the copy like the
> > following?
> > 
> > ==== CUT HERE ====
> > kobject: Do not call uevent_helper with RCU lock held
> > 
> > With sleep debugging enabled, the call to uevent_helper spews warnings
> > all over the console because the RCU lock is held when the process goes to
> > sleep. The RCU lock is only held so that the system is sure that
> > uevent_helper is not an empty string.
> > 
> > As uevent_call_helper() already makes a proper copy of the uevent_helper
> > string, this patch changes when and where the empty-string check is
> > made so that the check is made against the copy. Assuming the helper
> > exists, it is then called without the RCU lock held.
> > 
> > Signed-off-by: Mel Gorman <mel@csn.ul.ie>
> > ---
> >  lib/kobject_uevent.c |   13 +++++++------
> >  1 files changed, 7 insertions(+), 6 deletions(-)
> > 
> > diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
> > index a7520d0..f411457 100644
> > --- a/lib/kobject_uevent.c
> > +++ b/lib/kobject_uevent.c
> > @@ -88,6 +88,11 @@ static int uevent_call_helper(const char *subsystem, struct kobj_uevent_env *env
> >  	if (!helper)
> >  		return -ENOMEM;
> >  
> > +	if (!helper[0]) {
> > +		retval = -EINVAL;
> > +		goto error;
> > +	}
> > +
> >  	retval = -E2BIG;
> >  	argv[0] = helper;
> >  	argv[1] = (char *)subsystem;
> > @@ -126,7 +131,6 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
> >  	struct kset *kset;
> >  	const struct kset_uevent_ops *uevent_ops;
> >  	u64 seq;
> > -	const char *helper;
> >  	int i = 0;
> >  	int retval = 0;
> >  
> > @@ -273,11 +277,8 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
> >  #endif
> >  
> >  	/* call uevent_helper, usually only enabled during early boot */
> > -	rcu_read_lock();
> > -	helper = rcu_dereference(uevent_helper);
> > -	if (helper[0])
> > -		retval = uevent_call_helper(subsystem, env);
> > -	rcu_read_unlock();
> > +	retval = uevent_call_helper(subsystem, env);
> > +
> >  exit:
> >  	kfree(devpath);
> >  	kfree(env);
> > 
> 
> We could, but all the rcu string copy stuff got trashed, so we've got to re-diff
> this all anyway.  I'll probalby do exactly what you're suggesting as I fix this
> all up though.
> 

Grand. I'm going to ignore this for the moment so and will keep an eye
out for it in the future.

Thanks

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

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

end of thread, other threads:[~2010-03-12 15:41 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-10  3:16 mmotm 2010-03-09-19-15 uploaded akpm
2010-03-10 19:43 ` [PATCH -mmotm] leds: fix net5501 kconfig Randy Dunlap
2010-03-10 19:57 ` mmotm 2010-03-09-19-15: Lot of scheduling while atomic warnings related to RCU Mel Gorman
2010-03-10 20:21   ` Andrew Morton
2010-03-10 20:34     ` Mel Gorman
2010-03-10 20:32   ` Neil Horman
2010-03-11 22:30     ` Andi Kleen
2010-03-12  0:09       ` nhorman
2010-03-12 11:46     ` Mel Gorman
2010-03-12 15:29       ` Neil Horman
2010-03-12 15:41         ` Mel Gorman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox