* 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 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 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: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