2010-01-06 22:59:32

by Andrew Morton

[permalink] [raw]
Subject: mmotm 2010-01-06-14-34 uploaded

The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:

origin.patch
mm-make-totalhigh_pages-unsigned-long.patch
docs-large-update-to-ioctl-numbertxt.patch
kmemcheck-make-bitfield-annotations-truly-no-ops-when-disabled.patch
dma-debug-allow-dma_bidirectional-mappings-to-be-synced-with-dma_from_device-and.patch
kmod-fix-resource-leak-in-call_usermodehelper_pipe.patch
percpu-avoid-calling-__pcpu_ptr_to_addrnull.patch
lib-rationalc-needs-moduleh.patch
scripts-get_maintainerpl-fix-file-exclusion-x-logic.patch
cgroups-fix-2632-regression-causing-bug_on-in-cgroup_diput.patch
hwmon-coretemp-fix-tjmax-for-atom-n450-d410-d510-cpus.patch
kernel-signalc-fix-kernel-information-leak-with-print-fatal-signals=1.patch
kfifo-use-void-pointers-for-user-buffers.patch
kfifo-make-kfifo_in-atomic.patch
kfifo-sanitize-_user-error-handling.patch
kfifo-add-kfifo_out_peek.patch
kfifo-add-kfifo_initialized.patch
kfifo-document-everywhere-that-size-has-to-be-power-of-two.patch
linux-next.patch
linux-next-fixup.patch
next-remove-localversion.patch
i-need-old-gcc.patch
hardware-latency-detector-remove-default-m.patch
revert-input-wistron_btns-switch-to-using-sparse-keymap-library.patch
drivers-media-video-cx23885-needs-kfifo-conversion.patch
mmc_block-add-dev_t-initialization-check.patch
mmc_block-fix-probe-error-cleanup-bug.patch
mmc_block-fix-queue-cleanup.patch
mmc-allow-for-mmc-v44.patch
vsnprintf-fix-reference-for-compressed-ipv6-addresses.patch
gpiolib-fix-poll2-support-reconfigure-on-sysfs-polarity-change.patch
hwmon-driver-for-texas-instruments-amc6821-chip.patch
mm-hugetlb-fix-clear_huge_page.patch
mmc-remove-const-from-tmio-mmc-platform-data-v2.patch
mmc-balance-tmio-mmc-cell-enable-disable-calls.patch
documentation-update-ring-buffer-designtxt.patch
drivers-cpuidle-governors-menuc-fix-undefined-reference-to-__udivdi3.patch
gpio-adp5588-gpio-new-driver-for-adp5588-gpio-expanders.patch
documentation-update-kernel-doc-nano-howto-information.patch
smaps-fix-wrong-rss-count.patch
rtc_cmos-convert-shutdown-to-new-pnp_driver-shutdown.patch
drivers-gpu-drm-i915-i915_dmac-fix-unused-var.patch
drivers-gpu-vga-vgaarbc-fix-userspace-pointer-dereference.patch
m68knommu-fix-invalid-flags-on-coldfire-pit-clocksource.patch
sched-f83f9ac-causes-tasks-running-at-max_prio.patch
hpsa-fix-scsi-status-reporting-yet-again.patch
drivers-scsi-sesc-eliminate-double-free.patch
kernel-credc-use-kmem_cache_free.patch
tpm_infineon-fix-suspend-resume-handler-for-pnp_driver.patch
dell_laptop-when-the-hardware-switch-is-disabled-dont-actually-allow-changing-the-softblock-status.patch
arm-convert-proc-cpu-aligment-to-seq_file.patch
arch-arm-plat-pxa-dmac-correct-null-test.patch
powerpc-sky-cpu-redundant-or-incorrect-tests-on-unsigned.patch
kbuild-move-fno-dwarf2-cfi-asm-to-powerpc-only.patch
drivers-gpu-drm-radeon-radeon_combiosc-fix-warning.patch
drivers-gpu-drm-nouveau-nouveau_grctxc-correct-null-test.patch
drivers-media-video-move-dereference-after-null-test.patch
proc_fops-convert-av7110.patch
drivers-media-video-pmsc-needs-versionh.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
clocksource-add-argument-to-resume-callback.patch
clocksource-start-cmt-at-clocksource-resume.patch
clocksource-add-suspend-callback.patch
input-bcm5974-retract-efi-broken-suspend_resume.patch
input-bcm5974-report-abs_mt-events.patch
usbtouchscreen-convert-from-usb_device-to-usb_interface.patch
usbtouchscreen-find-input-endpoint-automatically.patch
usbtouchscreen-add-nexio-or-inexio-support.patch
usbtouchscreen-fix-nexio-ack-and-usb-disconnect.patch
usbtouchscreen-dont-send-interrupt-urbs-to-bulk-endpoints.patch
usbtouchscreen-fix-leaks-and-check-return-value-of-usb_submit_urb.patch
arch-mips-alchemy-correct-code-taking-the-size-of-a-pointer.patch
mtd-nand-davinci-correct-4-bit-error-correction.patch
jffs2-fix-memory-corruption-in-jffs2_read_inode_range.patch
ntfs-use-bitmap_weight.patch
hisax-timeout-off-by-one-in-waitrecmsg.patch
3x59x-fix-pci-resource-management.patch
net-netfilter-ipvs-ip_vs_wrrc-use-lib-gcdc.patch
net-ipv4-correct-the-size-argument-to-kzalloc.patch
sunrpc-use-formatting-of-module-name-in-sunrpc.patch
kernel-irq-procc-expose-the-irq_desc-node-in-proc-irq.patch
scsi-add-__init-__exit-macros-to-ibmvstgtc.patch
drivers-scsi-fnic-fnic_scsic-clean-up.patch
ibmmca-buffer-overflow.patch
scsi-eata-fix-buffer-overflow.patch
drivers-scsi-gdthc-fix-buffer-overflow.patch
drivers-scsi-u14-34fc-fix-uffer-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
zfcp-test-kmalloc-failure-in-scsi_get_vpd_page.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
scsi-remove-unnecessary-null-test.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
paride-fix-off-by-one-test.patch
convert-sparc-to-arch_gettimeoffset.patch
drivers-staging-tm6000-tm6000-videoc-correct-null-test.patch
drivers-usb-correct-the-size-argument-to-kzalloc.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
fs-improve-remountro-vs-buffercache-coherency.patch
xtensa-convert-to-asm-generic-hardirqh.patch
xtensa-includecheck-fix-vectorss.patch
mm.patch
mm-clean-up-mm_counter.patch
mm-avoid-false-sharing-of-mm_counter.patch
mm-avoid-false-sharing-of-mm_counter-checkpatch-fixes.patch
mm-count-swap-usage.patch
mm-count-swap-usage-checkpatch-fixes.patch
mm-add-lowmem-detection-logic.patch
mm-add-lowmem-detection-logic-fix.patch
mm-count-lowmem-rss.patch
mm-count-lowmem-rss-checkpatch-fixes.patch
mm-introduce-dump_page-and-print-symbolic-flag-names.patch
mlock_vma_pages_range-never-return-negative-value.patch
mlock_vma_pages_range-only-return-success-or-failure.patch
frv-duplicate-output_buffer-of-e03.patch
frv-duplicate-output_buffer-of-e03-checkpatch-fixes.patch
cris-convert-to-use-arch_gettimeoffset.patch
cryptocop-fix-assertion-in-create_output_descriptors.patch
mfgpt-move-clocksource-menu.patch
prctl-add-pr_set_proctitle_area-option-for-prctl.patch
kernel-cpuc-delete-deprecated-definition-in-cpu_up.patch
init-mainc-improve-usability-in-case-of-init-binary-failure.patch
init-initramfsc-fix-symbol-shadows-an-earlier-one-noise.patch
ricoh_mmc-port-from-driver-to-pci-quirk.patch
ricoh_mmc-port-from-driver-to-pci-quirk-update.patch
davinci-mmc-add-support-for-8bit-mmc-cards.patch
sdio-recognize-io-card-without-powercycle.patch
scripts-checkpatchpl-add-warn-on-sizeof.patch
checkpatch-trivial-fix-for-trailing-statements-check.patch
checkpatchpl-allow-80-char-lines-for-logging-functions-not-just-printk.patch
checkpatch-fix-false-positive-on-__initconst.patch
mm-pass-mm-flags-as-a-coredump-parameter-for-consistency.patch
spi-mpc8xxx-dont-check-platform_get_irqs-return-value-against-zero.patch
console-limit-the-range-of-vgacon_soft_scrollback_size.patch
xen-add-kconfig-menu.patch
gpio-add-driver-for-max7300-i2c-gpio-extender.patch
asiliantfb-fix-test-of-unsigned-in-asiliant_calc_dclk2.patch
viafb-deprecate-private-ioctls.patch
viafb-remove-dead-code.patch
viafb-split-global-index-up.patch
viafb-remove-the-remaining-via_res_-uses.patch
viafb-some-dvi-cleanup.patch
fbdev-bf54x-lq043fb-bfin-t350mcqb-fb-drop-custom-mmap-handler.patch
broadsheetfb-add-multiple-panel-type-support.patch
hfsplus-identify-journal-info-block-in-volume-header.patch
hfsplus-fix-journal-detection.patch
cgroup-introduce-cancel_attach.patch
cgroup-introduce-coalesce-css_get-and-css_put.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-improve-performance-in-moving-swap-charge.patch
cgroup-implement-eventfd-based-generic-api-for-notifications.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
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
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
ipmi-add-parameter-to-limit-cpu-usage-in-kipmid.patch
drivers-edac-introduce-missing-kfree.patch
w1-fix-test-in-ds2482_wait_1wire_idle.patch
vfs-take-2add-set_page_dirty_notag.patch
reiser4-vfs-add-super_operationssync_inodes-2.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-adjust-to-the-new-aops.patch
reiser4-adjust-to-the-new-aops-fixup.patch
reiser4-remove-simple_prepare_write-usage.patch
reiser4-remove-simple_prepare_write-usage-checkpatch-fixes.patch
fs-symlink-write_begin-allocation-context-fix-reiser4-fix.patch
reiser4-handling-error-returned-by-d_obtain_alias-fixup.patch
reiser4-update-names-of-quota-methods.patch
reiser4-use-set_page_dirty_notag.patch
fs-reiser4-add-parenths-around-x-y.patch
fs-reiser4-contextc-current_is_pdflush-got-removed.patch
reiser4-fix.patch
reiser4-rename-psched-to-dispatch.patch
reiser4-drop-journal-info.patch
reiser4-fix-compile-warnings.patch
reiser4-reduce-frame-size-of-reiser4_init_super_data.patch
reiser4-reduce-frame-size-of-reiser4_init_super_data-fixup.patch
reiser4-some-changes-from-reiser4-2631-patch.patch
reiser4-some-comments-were-still-mentioning-pdflush.patch
reiser4-generic_sync_sb_inodes-doesnt-exist-anymore.patch
reiser4-fixed-null-pointer-dereference.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
undeprecate-pci_find_device.patch
notify_change-callers-must-hold-i_mutex.patch


2010-01-07 01:08:51

by Daisuke Nishimura

[permalink] [raw]
Subject: [PATCH -mmotm] memcg: implement memory thresholds document fixes

Each memcg-implement-memory-thresholds.patch and
memcg-add-interface-to-move-charge-at-task-migration.patch try to add a new
section to Documentation/cgroup/memory.txt, so the document has been a bit
mangled when these patches are merged at the same time.

This patch fixes it.

Signed-off-by: Daisuke Nishimura <[email protected]>
Cc: Kirill A. Shutemov <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Cc: Balbir Singh <[email protected]>
---
This patch can be applied after memcg-implement-memory-thresholds-checkpatch-fixes.patch.

Documentation/cgroups/memory.txt | 21 ++++++++++-----------
1 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
index 226a955..aad7d05 100644
--- a/Documentation/cgroups/memory.txt
+++ b/Documentation/cgroups/memory.txt
@@ -458,7 +458,15 @@ Note: Those pages and swaps must be charged to the old cgroup.
Note: More type of pages(e.g. file cache, shmem,) will be supported by other
bits in future.

-8.3 Memory thresholds
+8.3 TODO
+
+- Add support for other types of pages(e.g. file cache, shmem, etc.).
+- Implement madvise(2) to let users decide the vma to be moved or not to be
+ moved.
+- All of moving charge operations are done under cgroup_mutex. It's not good
+ behavior to hold the mutex too long, so we may need some trick.
+
+9. Memory thresholds

Memory controler implements memory thresholds using cgroups notification
API (see cgroups.txt). It allows to register multiple memory and memsw
@@ -475,16 +483,7 @@ threshold in any direction.

It's applicable for root and non-root cgroup.

-
-8.4 TODO
-
-- Add support for other types of pages(e.g. file cache, shmem, etc.).
-- Implement madvise(2) to let users decide the vma to be moved or not to be
- moved.
-- All of moving charge operations are done under cgroup_mutex. It's not good
- behavior to hold the mutex too long, so we may need some trick.
-
-9. TODO
+10. TODO

1. Add support for accounting huge pages (as a separate controller)
2. Make per-cgroup scanner reclaim not-shared pages first
--
1.5.6.1

2010-01-07 01:09:52

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (kernel/cgroup)

On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:

> The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:


kernel/cgroup.c: In function 'cgroup_write_event_control':
kernel/cgroup.c:2949: error: implicit declaration of function 'eventfd_fget'
kernel/cgroup.c:2949: warning: assignment makes pointer from integer without a cast
kernel/cgroup.c:2955: error: implicit declaration of function 'eventfd_ctx_fileget'
kernel/cgroup.c:2955: warning: assignment makes pointer from integer without a cast
make[2]: *** [kernel/cgroup.o] Error 1


config attached.

---
~Randy


Attachments:
config-r5933 (50.63 kB)

2010-01-07 01:11:47

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (mm/memcontrol)

On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:

> The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:


mm/memcontrol.c: In function 'is_target_pte_for_mc':
mm/memcontrol.c:3985: error: implicit declaration of function 'mem_cgroup_count_swap_user'
mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'


config attached.



---
~Randy


Attachments:
config-r5922 (57.83 kB)

2010-01-07 01:21:23

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH -mmotm] memcg: implement memory thresholds document fixes

On Thu, 7 Jan 2010 09:57:14 +0900
Daisuke Nishimura <[email protected]> wrote:

> Each memcg-implement-memory-thresholds.patch and
> memcg-add-interface-to-move-charge-at-task-migration.patch try to add a new
> section to Documentation/cgroup/memory.txt, so the document has been a bit
> mangled when these patches are merged at the same time.
>
> This patch fixes it.
>

Acked-by: KAMEZAWA Hiroyuki <[email protected]>

BTW, I'll prepare total update for memcg (especially around percpu counter).
Do you have something may conflict in plan ?

Thanks,
-Kame

> Signed-off-by: Daisuke Nishimura <[email protected]>
> Cc: Kirill A. Shutemov <[email protected]>
> Cc: KAMEZAWA Hiroyuki <[email protected]>
> Cc: Balbir Singh <[email protected]>
> ---
> This patch can be applied after memcg-implement-memory-thresholds-checkpatch-fixes.patch.
>
> Documentation/cgroups/memory.txt | 21 ++++++++++-----------
> 1 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/Documentation/cgroups/memory.txt b/Documentation/cgroups/memory.txt
> index 226a955..aad7d05 100644
> --- a/Documentation/cgroups/memory.txt
> +++ b/Documentation/cgroups/memory.txt
> @@ -458,7 +458,15 @@ Note: Those pages and swaps must be charged to the old cgroup.
> Note: More type of pages(e.g. file cache, shmem,) will be supported by other
> bits in future.
>
> -8.3 Memory thresholds
> +8.3 TODO
> +
> +- Add support for other types of pages(e.g. file cache, shmem, etc.).
> +- Implement madvise(2) to let users decide the vma to be moved or not to be
> + moved.
> +- All of moving charge operations are done under cgroup_mutex. It's not good
> + behavior to hold the mutex too long, so we may need some trick.
> +
> +9. Memory thresholds
>
> Memory controler implements memory thresholds using cgroups notification
> API (see cgroups.txt). It allows to register multiple memory and memsw
> @@ -475,16 +483,7 @@ threshold in any direction.
>
> It's applicable for root and non-root cgroup.
>
> -
> -8.4 TODO
> -
> -- Add support for other types of pages(e.g. file cache, shmem, etc.).
> -- Implement madvise(2) to let users decide the vma to be moved or not to be
> - moved.
> -- All of moving charge operations are done under cgroup_mutex. It's not good
> - behavior to hold the mutex too long, so we may need some trick.
> -
> -9. TODO
> +10. TODO
>
> 1. Add support for accounting huge pages (as a separate controller)
> 2. Make per-cgroup scanner reclaim not-shared pages first
> --
> 1.5.6.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2010-01-07 01:40:37

by Daisuke Nishimura

[permalink] [raw]
Subject: Re: [PATCH -mmotm] memcg: implement memory thresholds document fixes

On Thu, 7 Jan 2010 10:18:05 +0900, KAMEZAWA Hiroyuki <[email protected]> wrote:
> On Thu, 7 Jan 2010 09:57:14 +0900
> Daisuke Nishimura <[email protected]> wrote:
>
> > Each memcg-implement-memory-thresholds.patch and
> > memcg-add-interface-to-move-charge-at-task-migration.patch try to add a new
> > section to Documentation/cgroup/memory.txt, so the document has been a bit
> > mangled when these patches are merged at the same time.
> >
> > This patch fixes it.
> >
>
> Acked-by: KAMEZAWA Hiroyuki <[email protected]>
>
> BTW, I'll prepare total update for memcg (especially around percpu counter).
> Do you have something may conflict in plan ?
>
Not for now.
Of course, I have a plan that I will add a file/shmem page support to move-charge feature,
but I think we should stabilize and clean up current memcg in mmotm first.
(My biggest concern now is the influence of transparent hugepage to vm and memcg.)


Thanks,
Daisuke Nishimura.

2010-01-07 01:43:45

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH -mmotm] memcg: implement memory thresholds document fixes

On Thu, 7 Jan 2010 10:34:17 +0900
Daisuke Nishimura <[email protected]> wrote:

> On Thu, 7 Jan 2010 10:18:05 +0900, KAMEZAWA Hiroyuki <[email protected]> wrote:
> > On Thu, 7 Jan 2010 09:57:14 +0900
> > Daisuke Nishimura <[email protected]> wrote:
> >
> > > Each memcg-implement-memory-thresholds.patch and
> > > memcg-add-interface-to-move-charge-at-task-migration.patch try to add a new
> > > section to Documentation/cgroup/memory.txt, so the document has been a bit
> > > mangled when these patches are merged at the same time.
> > >
> > > This patch fixes it.
> > >
> >
> > Acked-by: KAMEZAWA Hiroyuki <[email protected]>
> >
> > BTW, I'll prepare total update for memcg (especially around percpu counter).
> > Do you have something may conflict in plan ?
> >
> Not for now.

Okay, thank you. I'll prepare some.

> Of course, I have a plan that I will add a file/shmem page support to move-charge feature,
> but I think we should stabilize and clean up current memcg in mmotm first.
agreed.

> (My biggest concern now is the influence of transparent hugepage to vm and memcg.)
>
Yes, it's interesting challenge but has concerns for us ;)

Thanks,
-Kame

2010-01-07 02:18:56

by Daisuke Nishimura

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (mm/memcontrol)

Thank you for your report.

On Wed, 6 Jan 2010 17:10:58 -0800, Randy Dunlap <[email protected]> wrote:
> On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:
>
> > The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:
>
>
> mm/memcontrol.c: In function 'is_target_pte_for_mc':
> mm/memcontrol.c:3985: error: implicit declaration of function 'mem_cgroup_count_swap_user'
> mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
>
>
> config attached.
>
I'm sorry I missed the !CONFIG_SWAP or !CONFIG_CGROUP_MEM_RES_CTLR_SWAP case.

I'll prepare fixes.


Thanks,
Daisuke Nishimura.

2010-01-07 02:25:32

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (mm/memcontrol)

On Thu, 7 Jan 2010 11:13:19 +0900
Daisuke Nishimura <[email protected]> wrote:

> Thank you for your report.

> > config attached.
> >
> I'm sorry I missed the !CONFIG_SWAP or !CONFIG_CGROUP_MEM_RES_CTLR_SWAP case.
>
> I'll prepare fixes.
>
Nishimura-san, could you double check this ?

Andrew, this is a fix onto Nishimura-san's memcg move account patch series.
Maybe this -> patches/memcg-move-charges-of-anonymous-swap.patch

Thanks,
-Kame
==

Build fix to following build error when CONFIG_CGROUP_MEM_RES_CTLR_SWAP is off.

mm/memcontrol.c: In function 'is_target_pte_for_mc':
mm/memcontrol.c:3985: error: implicit declaration of function 'mem_cgroup_count_swap_user'
mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'

CC: Daisuke Nishimura <[email protected]>
Reported-by: Randy Dunlap <[email protected]>
Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>
---
mm/memcontrol.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: ref-mmotm/mm/memcontrol.c
===================================================================
--- ref-mmotm.orig/mm/memcontrol.c
+++ ref-mmotm/mm/memcontrol.c
@@ -2369,7 +2369,7 @@ static int mem_cgroup_move_swap_account(
}
#else
static inline int mem_cgroup_move_swap_account(swp_entry_t entry,
- struct mem_cgroup *from, struct mem_cgroup *to)
+ struct mem_cgroup *from, struct mem_cgroup *to, bool need_fixup)
{
return -EINVAL;
}
@@ -3976,7 +3976,7 @@ static int is_target_pte_for_mc(struct v

if (!pte_present(ptent)) {
/* TODO: handle swap of shmes/tmpfs */
- if (pte_none(ptent) || pte_file(ptent))
+ if (pte_none(ptent) || pte_file(ptent) || !do_swap_account)
return 0;
else if (is_swap_pte(ptent)) {
ent = pte_to_swp_entry(ptent);

2010-01-07 02:35:17

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (kernel/cgroup)

On Wed, 6 Jan 2010 17:08:49 -0800
Randy Dunlap <[email protected]> wrote:

> On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:
>
> > The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:
>
>
> kernel/cgroup.c: In function 'cgroup_write_event_control':
> kernel/cgroup.c:2949: error: implicit declaration of function 'eventfd_fget'
> kernel/cgroup.c:2949: warning: assignment makes pointer from integer without a cast
> kernel/cgroup.c:2955: error: implicit declaration of function 'eventfd_ctx_fileget'
> kernel/cgroup.c:2955: warning: assignment makes pointer from integer without a cast
> make[2]: *** [kernel/cgroup.o] Error 1
>

Hmm, how about this rather than adding #ifdefs..
Paul, Li, how do you think ?
==
Cgroup's eventdf feature has depenedecy to EVENTFD

This is a patch onto
cgroup-implement-eventfd-based-generic-api-for-notifications.patch

CC: Li Zefan <[email protected]>
CC: Kirill A. Shutemov <[email protected]>
CC: Paul Menage <[email protected]>
Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>

---
init/Kconfig | 1 +
1 file changed, 1 insertion(+)

Index: ref-mmotm/init/Kconfig
===================================================================
--- ref-mmotm.orig/init/Kconfig
+++ ref-mmotm/init/Kconfig
@@ -509,6 +509,7 @@ endchoice

menuconfig CGROUPS
boolean "Control Group support"
+ depends on EVENTFD
help
This option adds support for grouping sets of processes together, for
use with process control subsystems such as Cpusets, CFS, memory

2010-01-07 02:41:19

by Li Zefan

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (kernel/cgroup)

KAMEZAWA Hiroyuki wrote:
> On Wed, 6 Jan 2010 17:08:49 -0800
> Randy Dunlap <[email protected]> wrote:
>
>> On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:
>>
>>> The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:
>>
>> kernel/cgroup.c: In function 'cgroup_write_event_control':
>> kernel/cgroup.c:2949: error: implicit declaration of function 'eventfd_fget'
>> kernel/cgroup.c:2949: warning: assignment makes pointer from integer without a cast
>> kernel/cgroup.c:2955: error: implicit declaration of function 'eventfd_ctx_fileget'
>> kernel/cgroup.c:2955: warning: assignment makes pointer from integer without a cast
>> make[2]: *** [kernel/cgroup.o] Error 1
>>
>
> Hmm, how about this rather than adding #ifdefs..
> Paul, Li, how do you think ?

I think make CONFIG_CGROUPS select EVENTFD would be better.

> ==
> Cgroup's eventdf feature has depenedecy to EVENTFD
>
> This is a patch onto
> cgroup-implement-eventfd-based-generic-api-for-notifications.patch
>
> CC: Li Zefan <[email protected]>
> CC: Kirill A. Shutemov <[email protected]>
> CC: Paul Menage <[email protected]>
> Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>
>
> ---
> init/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> Index: ref-mmotm/init/Kconfig
> ===================================================================
> --- ref-mmotm.orig/init/Kconfig
> +++ ref-mmotm/init/Kconfig
> @@ -509,6 +509,7 @@ endchoice
>
> menuconfig CGROUPS
> boolean "Control Group support"
> + depends on EVENTFD
> help
> This option adds support for grouping sets of processes together, for
> use with process control subsystems such as Cpusets, CFS, memory
>
>
>

2010-01-07 02:50:44

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (kernel/cgroup)

On Thu, 07 Jan 2010 10:41:15 +0800
Li Zefan <[email protected]> wrote:

> KAMEZAWA Hiroyuki wrote:
> > On Wed, 6 Jan 2010 17:08:49 -0800
> > Randy Dunlap <[email protected]> wrote:
> >
> >> On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:
> >>
> >>> The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:
> >>
> >> kernel/cgroup.c: In function 'cgroup_write_event_control':
> >> kernel/cgroup.c:2949: error: implicit declaration of function 'eventfd_fget'
> >> kernel/cgroup.c:2949: warning: assignment makes pointer from integer without a cast
> >> kernel/cgroup.c:2955: error: implicit declaration of function 'eventfd_ctx_fileget'
> >> kernel/cgroup.c:2955: warning: assignment makes pointer from integer without a cast
> >> make[2]: *** [kernel/cgroup.o] Error 1
> >>
> >
> > Hmm, how about this rather than adding #ifdefs..
> > Paul, Li, how do you think ?
>
> I think make CONFIG_CGROUPS select EVENTFD would be better.
>
Hm, as far as I know, SELECT is not recommended. But yes, it seems side-effect
of select is small here. But I avoid it as much as possible, usually.

Moreover, in this case,
- EVENTFD is a feature which is enabled by default.
- cgroup is "Say N if unsure" config.

In this case, "depends on" is good.

Thanks,
-Kame

2010-01-07 03:03:56

by Daisuke Nishimura

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (mm/memcontrol)

Thank you for your fix.

On Thu, 7 Jan 2010 11:21:50 +0900, KAMEZAWA Hiroyuki <[email protected]> wrote:
> On Thu, 7 Jan 2010 11:13:19 +0900
> Daisuke Nishimura <[email protected]> wrote:
>
> > Thank you for your report.
>
> > > config attached.
> > >
> > I'm sorry I missed the !CONFIG_SWAP or !CONFIG_CGROUP_MEM_RES_CTLR_SWAP case.
> >
> > I'll prepare fixes.
> >
> Nishimura-san, could you double check this ?
>
It seems that this cannot fix the !CONFIG_SWAP case in my environment.

> Andrew, this is a fix onto Nishimura-san's memcg move account patch series.
> Maybe this -> patches/memcg-move-charges-of-anonymous-swap.patch
>
I think both memcg-move-charges-of-anonymous-swap.patch and
memcg-improve-performance-in-moving-swap-charge.patch need to be fixed.

> mm/memcontrol.c: In function 'is_target_pte_for_mc':
> mm/memcontrol.c:3985: error: implicit declaration of function 'mem_cgroup_count_swap_user'
This derives from a bug of memcg-move-charges-of-anonymous-swap.patch,

and

> mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
this derives from that of memcg-improve-performance-in-moving-swap-charge.patch.


I'm now testing my patch in some configs, and will post later.


Thanks,
Daisuke Nishimura.

> Thanks,
> -Kame
> ==
>
> Build fix to following build error when CONFIG_CGROUP_MEM_RES_CTLR_SWAP is off.
>
> mm/memcontrol.c: In function 'is_target_pte_for_mc':
> mm/memcontrol.c:3985: error: implicit declaration of function 'mem_cgroup_count_swap_user'
> mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
>
> CC: Daisuke Nishimura <[email protected]>
> Reported-by: Randy Dunlap <[email protected]>
> Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>
> ---
> mm/memcontrol.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: ref-mmotm/mm/memcontrol.c
> ===================================================================
> --- ref-mmotm.orig/mm/memcontrol.c
> +++ ref-mmotm/mm/memcontrol.c
> @@ -2369,7 +2369,7 @@ static int mem_cgroup_move_swap_account(
> }
> #else
> static inline int mem_cgroup_move_swap_account(swp_entry_t entry,
> - struct mem_cgroup *from, struct mem_cgroup *to)
> + struct mem_cgroup *from, struct mem_cgroup *to, bool need_fixup)
> {
> return -EINVAL;
> }
> @@ -3976,7 +3976,7 @@ static int is_target_pte_for_mc(struct v
>
> if (!pte_present(ptent)) {
> /* TODO: handle swap of shmes/tmpfs */
> - if (pte_none(ptent) || pte_file(ptent))
> + if (pte_none(ptent) || pte_file(ptent) || !do_swap_account)
> return 0;
> else if (is_swap_pte(ptent)) {
> ent = pte_to_swp_entry(ptent);
>

2010-01-07 03:05:05

by Li Zefan

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (kernel/cgroup)

>>>>> It contains the following patches against 2.6.33-rc3:
>>>> kernel/cgroup.c: In function 'cgroup_write_event_control':
>>>> kernel/cgroup.c:2949: error: implicit declaration of function 'eventfd_fget'
>>>> kernel/cgroup.c:2949: warning: assignment makes pointer from integer without a cast
>>>> kernel/cgroup.c:2955: error: implicit declaration of function 'eventfd_ctx_fileget'
>>>> kernel/cgroup.c:2955: warning: assignment makes pointer from integer without a cast
>>>> make[2]: *** [kernel/cgroup.o] Error 1
>>>>
>>> Hmm, how about this rather than adding #ifdefs..
>>> Paul, Li, how do you think ?
>> I think make CONFIG_CGROUPS select EVENTFD would be better.
>>
> Hm, as far as I know, SELECT is not recommended. But yes, it seems side-effect
> of select is small here. But I avoid it as much as possible, usually.
>
> Moreover, in this case,
> - EVENTFD is a feature which is enabled by default.
> - cgroup is "Say N if unsure" config.
>
> In this case, "depends on" is good.
>

I thought we use "depends on" if it's obvious by the config name
that a config depends on another config, and use "select" otherwise.

Referring to Documentation/Kbuild/kconfig-language.txt:

select should be used with care.
...
In general use select only for non-visible symbols
(no prompts anywhere) and for symbols with no dependencies.

It does suggest "depends on" is better. :)

2010-01-07 03:05:48

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (mm/memcontrol)

On Thu, 7 Jan 2010 11:59:01 +0900
Daisuke Nishimura <[email protected]> wrote:

> Thank you for your fix.
>
> On Thu, 7 Jan 2010 11:21:50 +0900, KAMEZAWA Hiroyuki <[email protected]> wrote:
> > On Thu, 7 Jan 2010 11:13:19 +0900
> > Daisuke Nishimura <[email protected]> wrote:
> >
> > > Thank you for your report.
> >
> > > > config attached.
> > > >
> > > I'm sorry I missed the !CONFIG_SWAP or !CONFIG_CGROUP_MEM_RES_CTLR_SWAP case.
> > >
> > > I'll prepare fixes.
> > >
> > Nishimura-san, could you double check this ?
> >
> It seems that this cannot fix the !CONFIG_SWAP case in my environment.
>
> > Andrew, this is a fix onto Nishimura-san's memcg move account patch series.
> > Maybe this -> patches/memcg-move-charges-of-anonymous-swap.patch
> >
> I think both memcg-move-charges-of-anonymous-swap.patch and
> memcg-improve-performance-in-moving-swap-charge.patch need to be fixed.
>
> > mm/memcontrol.c: In function 'is_target_pte_for_mc':
> > mm/memcontrol.c:3985: error: implicit declaration of function 'mem_cgroup_count_swap_user'
> This derives from a bug of memcg-move-charges-of-anonymous-swap.patch,
>
> and
>
> > mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
> > mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> > mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> > mm/memcontrol.c:4220: error: too many arguments to function 'mem_cgroup_move_swap_account'
> this derives from that of memcg-improve-performance-in-moving-swap-charge.patch.
>
>
> I'm now testing my patch in some configs, and will post later.
>
Okay, plz.

Thanks,
-Kame


2010-01-07 03:48:30

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded

On Wed, 06 Jan 2010 14:34:36 PST, [email protected] said:
> The mm-of-the-moment snapshot 2010-01-06-14-34 has been uploaded to
>
> http://userweb.kernel.org/~akpm/mmotm/

Building with CONFIG_SQUASHFS=m, CONFIG_SQUASHFS_LZMA=y ,
and CONFIG_DECOMPRESS_LZMA=n fails:

Kernel: arch/x86/boot/bzImage is ready (#1)
Building modules, stage 2.
MODPOST 219 modules
ERROR: "unlzma" [fs/squashfs/squashfs.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

Looks like a missing select/depends for DECOMPRESS_LZMA. Somebody else can
decide which it should be...




Attachments:
(No filename) (227.00 B)

2010-01-07 04:02:14

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded

On Wed, 06 Jan 2010 22:48:16 EST, [email protected] said:

> Building with CONFIG_SQUASHFS=m, CONFIG_SQUASHFS_LZMA=y ,
> and CONFIG_DECOMPRESS_LZMA=n fails:

> Looks like a missing select/depends for DECOMPRESS_LZMA. Somebody else can
> decide which it should be...

Digging further:

x Symbol: DECOMPRESS_LZMA [=n] x
x Selected by: RD_LZMA [=n] && BLK_DEV_INITRD [=y] || SQUASHFS_LZMA [=y x

How the heck did this happen? Looks like a SELECT *is* there but it's
not firing??!?


Attachments:
(No filename) (227.00 B)

2010-01-07 04:09:41

by Daisuke Nishimura

[permalink] [raw]
Subject: [PATCH -mmotm] build fix for memcg-move-charges-of-anonymous-swap.patch

build fix in !CONFIG_SWAP case.

CC mm/memcontrol.o
mm/memcontrol.c: In function 'is_target_pte_for_mc':
mm/memcontrol.c:3648: error: implicit declaration of function 'mem_cgroup_count_swap_user'
make[1]: *** [mm/memcontrol.o] Error 1
make: *** [mm] Error 2

Reported-by: Randy Dunlap <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Signed-off-by: Daisuke Nishimura <[email protected]>
---
This can be applied after memcg-move-charges-of-anonymous-swap.patch.

include/linux/swap.h | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/include/linux/swap.h b/include/linux/swap.h
index d9b06f7..2e1d5c9 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -287,6 +287,10 @@ extern int shmem_unuse(swp_entry_t entry, struct page *page);

extern void swap_unplug_io_fn(struct backing_dev_info *, struct page *);

+#ifdef CONFIG_CGROUP_MEM_RES_CTLR
+extern int mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep);
+#endif
+
#ifdef CONFIG_SWAP
/* linux/mm/page_io.c */
extern int swap_readpage(struct page *);
@@ -356,7 +360,6 @@ static inline void disable_swap_token(void)
#ifdef CONFIG_CGROUP_MEM_RES_CTLR
extern void
mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout);
-extern int mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep);
#else
static inline void
mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout)
--
1.5.6.1

2010-01-07 04:10:36

by Daisuke Nishimura

[permalink] [raw]
Subject: [PATCH -mmotm] build fix for memcg-improve-performance-in-moving-swap-charge.patch

build fix in !CONFIG_CGROUP_MEM_RES_CTLR_SWAP case.

CC mm/memcontrol.o
mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
mm/memcontrol.c:3899: error: too many arguments to function 'mem_cgroup_move_swap_account'
mm/memcontrol.c:3899: error: too many arguments to function 'mem_cgroup_move_swap_account'
mm/memcontrol.c:3899: error: too many arguments to function 'mem_cgroup_move_swap_account'
make[1]: *** [mm/memcontrol.o] Error 1
make: *** [mm] Error 2

Reported-by: Randy Dunlap <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Signed-off-by: Daisuke Nishimura <[email protected]>
---
This can be applied after memcg-improve-performance-in-moving-swap-charge.patch.

mm/memcontrol.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 5360d48..65df8d2 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -2326,7 +2326,7 @@ static int mem_cgroup_move_swap_account(swp_entry_t entry,
}
#else
static inline int mem_cgroup_move_swap_account(swp_entry_t entry,
- struct mem_cgroup *from, struct mem_cgroup *to)
+ struct mem_cgroup *from, struct mem_cgroup *to, bool need_fixup)
{
return -EINVAL;
}
--
1.5.6.1

2010-01-07 04:33:50

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH -mmotm] build fix for memcg-move-charges-of-anonymous-swap.patch

On Thu, 7 Jan 2010 13:06:09 +0900
Daisuke Nishimura <[email protected]> wrote:

> build fix in !CONFIG_SWAP case.
>
> CC mm/memcontrol.o
> mm/memcontrol.c: In function 'is_target_pte_for_mc':
> mm/memcontrol.c:3648: error: implicit declaration of function 'mem_cgroup_count_swap_user'
> make[1]: *** [mm/memcontrol.o] Error 1
> make: *** [mm] Error 2
>
> Reported-by: Randy Dunlap <[email protected]>
> Cc: KAMEZAWA Hiroyuki <[email protected]>
> Signed-off-by: Daisuke Nishimura <[email protected]>

Hmm, this doesn't seem include fix for CONFIG_CGROUP_MEM_RES_CTLR_SWAP=n
==
static int is_target_pte_for_mc(struct vm_area_struct *vma,
unsigned long addr, pte_t ptent, union mc_target *target)
{
....
else if (is_swap_pte(ptent)) {
ent = pte_to_swp_entry(ptent);
if (!move_anon || non_swap_entry(ent))
return 0;
usage_count = mem_cgroup_count_swap_user(ent, &page);
}
==
At least, !do_swap_account check is necessary, I think.
I'm sorry if I miss something...

-Kame



> ---
> This can be applied after memcg-move-charges-of-anonymous-swap.patch.
>
> include/linux/swap.h | 5 ++++-
> 1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/include/linux/swap.h b/include/linux/swap.h
> index d9b06f7..2e1d5c9 100644
> --- a/include/linux/swap.h
> +++ b/include/linux/swap.h
> @@ -287,6 +287,10 @@ extern int shmem_unuse(swp_entry_t entry, struct page *page);
>
> extern void swap_unplug_io_fn(struct backing_dev_info *, struct page *);
>
> +#ifdef CONFIG_CGROUP_MEM_RES_CTLR
> +extern int mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep);
> +#endif
> +
> #ifdef CONFIG_SWAP
> /* linux/mm/page_io.c */
> extern int swap_readpage(struct page *);
> @@ -356,7 +360,6 @@ static inline void disable_swap_token(void)
> #ifdef CONFIG_CGROUP_MEM_RES_CTLR
> extern void
> mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout);
> -extern int mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep);
> #else
> static inline void
> mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout)
> --
> 1.5.6.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2010-01-07 04:34:26

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH -mmotm] build fix for memcg-improve-performance-in-moving-swap-charge.patch

On Thu, 7 Jan 2010 13:06:31 +0900
Daisuke Nishimura <[email protected]> wrote:

> build fix in !CONFIG_CGROUP_MEM_RES_CTLR_SWAP case.
>
> CC mm/memcontrol.o
> mm/memcontrol.c: In function 'mem_cgroup_move_charge_pte_range':
> mm/memcontrol.c:3899: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:3899: error: too many arguments to function 'mem_cgroup_move_swap_account'
> mm/memcontrol.c:3899: error: too many arguments to function 'mem_cgroup_move_swap_account'
> make[1]: *** [mm/memcontrol.o] Error 1
> make: *** [mm] Error 2
>
> Reported-by: Randy Dunlap <[email protected]>
> Cc: KAMEZAWA Hiroyuki <[email protected]>
> Signed-off-by: Daisuke Nishimura <[email protected]>
Acked-by: KAMEZAWA Hiroyuki <[email protected]>

2010-01-07 05:11:17

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH -mmotm] build fix for memcg-move-charges-of-anonymous-swap.patch

On Thu, 7 Jan 2010 13:30:26 +0900
KAMEZAWA Hiroyuki <[email protected]> wrote:

> On Thu, 7 Jan 2010 13:06:09 +0900
> Daisuke Nishimura <[email protected]> wrote:
>
> > build fix in !CONFIG_SWAP case.
> >
> > CC mm/memcontrol.o
> > mm/memcontrol.c: In function 'is_target_pte_for_mc':
> > mm/memcontrol.c:3648: error: implicit declaration of function 'mem_cgroup_count_swap_user'
> > make[1]: *** [mm/memcontrol.o] Error 1
> > make: *** [mm] Error 2
> >
> > Reported-by: Randy Dunlap <[email protected]>
> > Cc: KAMEZAWA Hiroyuki <[email protected]>
> > Signed-off-by: Daisuke Nishimura <[email protected]>
>
> Hmm, this doesn't seem include fix for CONFIG_CGROUP_MEM_RES_CTLR_SWAP=n
> ==
> static int is_target_pte_for_mc(struct vm_area_struct *vma,
> unsigned long addr, pte_t ptent, union mc_target *target)
> {
> ....
> else if (is_swap_pte(ptent)) {
> ent = pte_to_swp_entry(ptent);
> if (!move_anon || non_swap_entry(ent))
> return 0;
> usage_count = mem_cgroup_count_swap_user(ent, &page);
> }
> ==
> At least, !do_swap_account check is necessary, I think.
> I'm sorry if I miss something...
>

Get follwoing after this patch with !CONFIG_SWAP case.
==
mm/built-in.o: In function `is_target_pte_for_mc':
/home/kamezawa/Kernel/ref-mmotm/mm/memcontrol.c:3985: undefined reference to `mem_cgroup_count_swap_user'


I think !do_swap_count check in is_target_pte_for_mc() should be added.

Thanks,
-Kame

2010-01-07 05:33:33

by Daisuke Nishimura

[permalink] [raw]
Subject: Re: [PATCH -mmotm] build fix for memcg-move-charges-of-anonymous-swap.patch

On Thu, 7 Jan 2010 13:30:26 +0900, KAMEZAWA Hiroyuki <[email protected]> wrote:
> On Thu, 7 Jan 2010 13:06:09 +0900
> Daisuke Nishimura <[email protected]> wrote:
>
> > build fix in !CONFIG_SWAP case.
> >
> > CC mm/memcontrol.o
> > mm/memcontrol.c: In function 'is_target_pte_for_mc':
> > mm/memcontrol.c:3648: error: implicit declaration of function 'mem_cgroup_count_swap_user'
> > make[1]: *** [mm/memcontrol.o] Error 1
> > make: *** [mm] Error 2
> >
> > Reported-by: Randy Dunlap <[email protected]>
> > Cc: KAMEZAWA Hiroyuki <[email protected]>
> > Signed-off-by: Daisuke Nishimura <[email protected]>
>
> Hmm, this doesn't seem include fix for CONFIG_CGROUP_MEM_RES_CTLR_SWAP=n
> ==
> static int is_target_pte_for_mc(struct vm_area_struct *vma,
> unsigned long addr, pte_t ptent, union mc_target *target)
> {
> ....
> else if (is_swap_pte(ptent)) {
> ent = pte_to_swp_entry(ptent);
> if (!move_anon || non_swap_entry(ent))
> return 0;
> usage_count = mem_cgroup_count_swap_user(ent, &page);
> }
> ==
> At least, !do_swap_account check is necessary, I think.
> I'm sorry if I miss something...
>
mem_cgroup_count_swap_user() is defined in CONFIG_CGROUP_MEM_RES_CTLR case,
so the build error has nothing to do with CONFIG_CGROUP_MEM_RES_CTLR_SWAP(i.e. do_swap_account).
And I think adding !do_swap_account would ignore unmaped-but-not-uncharged-yet
swapcache in CONFIG_SWAP && !CONFIG_CGROUP_MEM_RES_CTLR_SWAP case.
(it would not be a big problem though).

Anyway, I'm sorry that the first patch was wrong...
This is the correct one.

===
From: Daisuke Nishimura <[email protected]>

build fix in !CONFIG_SWAP case.

CC mm/memcontrol.o
mm/memcontrol.c: In function 'is_target_pte_for_mc':
mm/memcontrol.c:3648: error: implicit declaration of function 'mem_cgroup_count_swap_user'
make[1]: *** [mm/memcontrol.o] Error 1
make: *** [mm] Error 2

Reported-by: Randy Dunlap <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Signed-off-by: Daisuke Nishimura <[email protected]>
---
This can be applied after memcg-move-charges-of-anonymous-swap.patch.

include/linux/swap.h | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/include/linux/swap.h b/include/linux/swap.h
index d9b06f7..c2a4295 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -488,6 +488,14 @@ mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent)
{
}

+#ifdef CONFIG_CGROUP_MEM_RES_CTLR
+static inline int
+mem_cgroup_count_swap_user(swp_entry_t ent, struct page **pagep)
+{
+ return 0;
+}
+#endif
+
#endif /* CONFIG_SWAP */
#endif /* __KERNEL__*/
#endif /* _LINUX_SWAP_H */
--
1.5.6.1

2010-01-07 05:55:46

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH -mmotm] build fix for memcg-move-charges-of-anonymous-swap.patch

On Thu, 7 Jan 2010 14:14:01 +0900
Daisuke Nishimura <[email protected]> wrote:

> Anyway, I'm sorry that the first patch was wrong...
> This is the correct one.
>
> ===
> From: Daisuke Nishimura <[email protected]>
>
> build fix in !CONFIG_SWAP case.
>
> CC mm/memcontrol.o
> mm/memcontrol.c: In function 'is_target_pte_for_mc':
> mm/memcontrol.c:3648: error: implicit declaration of function 'mem_cgroup_count_swap_user'
> make[1]: *** [mm/memcontrol.o] Error 1
> make: *** [mm] Error 2
>
> Reported-by: Randy Dunlap <[email protected]>
> Cc: KAMEZAWA Hiroyuki <[email protected]>
> Signed-off-by: Daisuke Nishimura <[email protected]>

Thank you.

Acked-by: KAMEZAWA Hiroyuki <[email protected]>

BTW, maybe it's time to
- remove EXPERIMENTAL from CONFIG_CGROUP_MEM_RES_CTRL_SWAP
and more,
- remove CONFIG_CGROUP_MEM_RES_CTRL_SWAP
(to reduce complicated #ifdefs and replace them with CONFIG_SWAP.)

It's very stable as far as I test.

Thanks,
-Kame

2010-01-07 06:29:17

by Kirill A. Shutemov

[permalink] [raw]
Subject: Re: [PATCH -mmotm] memcg: implement memory thresholds document fixes

On Thu, Jan 7, 2010 at 2:57 AM, Daisuke Nishimura
<[email protected]> wrote:
> Each memcg-implement-memory-thresholds.patch and
> memcg-add-interface-to-move-charge-at-task-migration.patch try to add a new
> section to Documentation/cgroup/memory.txt, so the document has been a bit
> mangled when these patches are merged at the same time.
>
> This patch fixes it.

Acked-by: Kirill A. Shutemov <[email protected]>

2010-01-07 08:53:05

by Balbir Singh

[permalink] [raw]
Subject: Re: [PATCH -mmotm] memcg: implement memory thresholds document fixes

* KAMEZAWA Hiroyuki <[email protected]> [2010-01-07 10:18:05]:

> On Thu, 7 Jan 2010 09:57:14 +0900
> Daisuke Nishimura <[email protected]> wrote:
>
> > Each memcg-implement-memory-thresholds.patch and
> > memcg-add-interface-to-move-charge-at-task-migration.patch try to add a new
> > section to Documentation/cgroup/memory.txt, so the document has been a bit
> > mangled when these patches are merged at the same time.
> >
> > This patch fixes it.
> >
>
> Acked-by: KAMEZAWA Hiroyuki <[email protected]>
>
> BTW, I'll prepare total update for memcg (especially around percpu counter).
> Do you have something may conflict in plan ?

Kame, could you clarify percpu counter? Is this on for resource
counter scalability patches I had?

--
Balbir

2010-01-07 08:54:27

by Balbir Singh

[permalink] [raw]
Subject: Re: [PATCH -mmotm] memcg: implement memory thresholds document fixes

* KAMEZAWA Hiroyuki <[email protected]> [2010-01-07 10:40:18]:

> > (My biggest concern now is the influence of transparent hugepage to vm and memcg.)
> >
> Yes, it's interesting challenge but has concerns for us ;)
>

Yes, I agree. I spoke to Andrea and he said that transparent pages
should not affect us much directly. He also added support for memcg,
but this is definitely something we should watch for.

--
Balbir

2010-01-07 09:07:19

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH -mmotm] memcg: implement memory thresholds document fixes

On Thu, 7 Jan 2010 14:22:56 +0530
Balbir Singh <[email protected]> wrote:

> * KAMEZAWA Hiroyuki <[email protected]> [2010-01-07 10:18:05]:
>
> > On Thu, 7 Jan 2010 09:57:14 +0900
> > Daisuke Nishimura <[email protected]> wrote:
> >
> > > Each memcg-implement-memory-thresholds.patch and
> > > memcg-add-interface-to-move-charge-at-task-migration.patch try to add a new
> > > section to Documentation/cgroup/memory.txt, so the document has been a bit
> > > mangled when these patches are merged at the same time.
> > >
> > > This patch fixes it.
> > >
> >
> > Acked-by: KAMEZAWA Hiroyuki <[email protected]>
> >
> > BTW, I'll prepare total update for memcg (especially around percpu counter).
> > Do you have something may conflict in plan ?
>
> Kame, could you clarify percpu counter? Is this on for resource
> counter scalability patches I had?
>
No.

Now. memcg's percpu counter uses following code.
==
static inline void
__mem_cgroup_stat_set_safe(struct mem_cgroup_stat_cpu *stat,
enum mem_cgroup_stat_index idx, s64 val)
{
stat->count[idx] = val;
}
static int mem_cgroup_size(void)
{
int cpustat_size = nr_cpu_ids * sizeof(struct mem_cgroup_stat_cpu);
return sizeof(struct mem_cgroup) + cpustat_size;
}

static struct mem_cgroup *mem_cgroup_alloc(void)
{
struct mem_cgroup *mem;
int size = mem_cgroup_size();

if (size < PAGE_SIZE)
mem = kmalloc(size, GFP_KERNEL);
else
mem = vmalloc(size);

==

But this is not NUMA-aware and slow. i.e. BAD.

Now, we have good codes for percpu_alloc(). we should use it.

like this => http://patchwork.kernel.org/patch/58662/

Things will be simplified.
I need to rewrite all to catch up recent changes _AND_ we have to
detect why 2 seconds of overhead is added by threshold patches.
And hopefuly, reduce it. I think softlimit/threshold event counter
can be rewritten in unified clean way.

Thanks,
-Kame




2010-01-07 11:23:21

by Daisuke Nishimura

[permalink] [raw]
Subject: How should we handle CONFIG_CGROUP_MEM_RES_CTRL_SWAP (Re: [PATCH -mmotm] build fix for memcg-move-charges-of-anonymous-swap.patch)

(Changed the subject and Cc list)

On Thu, 7 Jan 2010 14:52:23 +0900
KAMEZAWA Hiroyuki <[email protected]> wrote:

> BTW, maybe it's time to
> - remove EXPERIMENTAL from CONFIG_CGROUP_MEM_RES_CTRL_SWAP
> and more,
> - remove CONFIG_CGROUP_MEM_RES_CTRL_SWAP
> (to reduce complicated #ifdefs and replace them with CONFIG_SWAP.)
>
> It's very stable as far as I test.
>
I agree on both.

Balbir-san, What do you think ?

2010-01-07 12:38:49

by Balbir Singh

[permalink] [raw]
Subject: Re: How should we handle CONFIG_CGROUP_MEM_RES_CTRL_SWAP (Re: [PATCH -mmotm] build fix for memcg-move-charges-of-anonymous-swap.patch)

* Daisuke Nishimura <[email protected]> [2010-01-07 20:23:35]:

> (Changed the subject and Cc list)
>
> On Thu, 7 Jan 2010 14:52:23 +0900
> KAMEZAWA Hiroyuki <[email protected]> wrote:
>
> > BTW, maybe it's time to
> > - remove EXPERIMENTAL from CONFIG_CGROUP_MEM_RES_CTRL_SWAP
> > and more,
> > - remove CONFIG_CGROUP_MEM_RES_CTRL_SWAP
> > (to reduce complicated #ifdefs and replace them with CONFIG_SWAP.)
> >
> > It's very stable as far as I test.
> >
> I agree on both.
>
> Balbir-san, What do you think ?
>

I agree, the experimental marking can go and CONFIG_SWAP can replace
the current config option.

--
Balbir

2010-01-07 16:05:07

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (squashfs+lib/decomp)

On Wed, 06 Jan 2010 23:01:47 -0500 [email protected] wrote:

> On Wed, 06 Jan 2010 22:48:16 EST, [email protected] said:
>
> > Building with CONFIG_SQUASHFS=m, CONFIG_SQUASHFS_LZMA=y ,
> > and CONFIG_DECOMPRESS_LZMA=n fails:
>
> > Looks like a missing select/depends for DECOMPRESS_LZMA. Somebody else can
> > decide which it should be...
>
> Digging further:
>
> x Symbol: DECOMPRESS_LZMA [=n] x
> x Selected by: RD_LZMA [=n] && BLK_DEV_INITRD [=y] || SQUASHFS_LZMA [=y x
>
> How the heck did this happen? Looks like a SELECT *is* there but it's
> not firing??!?

I saw this build error in linux-next and sent a patch for it -- it's below.
However, it doesn't appear to be exactly the same config as yours.


---
From: Randy Dunlap <[email protected]>

When CONFIG_SQUASHFS=m and CONFIG_DECOMPRESS_LZMA=m, decompress_lzma
is built but then discarded from the library because no built-in code
uses it, so change it from a lib- to an obj- to force it to be kept
in the library.

ERROR: "unlzma" [fs/squashfs/squashfs.ko] undefined!

Signed-off-by: Randy Dunlap <[email protected]>
Cc: Phillip Lougher <[email protected]>
Cc: Michal Marek <[email protected]>
---
lib/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-next-20100101.orig/lib/Makefile
+++ linux-next-20100101/lib/Makefile
@@ -69,7 +69,7 @@ obj-$(CONFIG_LZO_DECOMPRESS) += lzo/

lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o
lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o
-lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o
+obj-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o

obj-$(CONFIG_TEXTSEARCH) += textsearch.o
obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o

2010-01-07 16:49:53

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (kernel/cgroup)

On Thu, 7 Jan 2010 11:31:54 +0900 KAMEZAWA Hiroyuki wrote:

> On Wed, 6 Jan 2010 17:08:49 -0800
> Randy Dunlap <[email protected]> wrote:
>
> > On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:
> >
> > > The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:
> >
> >
> > kernel/cgroup.c: In function 'cgroup_write_event_control':
> > kernel/cgroup.c:2949: error: implicit declaration of function 'eventfd_fget'
> > kernel/cgroup.c:2949: warning: assignment makes pointer from integer without a cast
> > kernel/cgroup.c:2955: error: implicit declaration of function 'eventfd_ctx_fileget'
> > kernel/cgroup.c:2955: warning: assignment makes pointer from integer without a cast
> > make[2]: *** [kernel/cgroup.o] Error 1
> >
>
> Hmm, how about this rather than adding #ifdefs..
> Paul, Li, how do you think ?
> ==
> Cgroup's eventdf feature has depenedecy to EVENTFD
>
> This is a patch onto
> cgroup-implement-eventfd-based-generic-api-for-notifications.patch
>
> CC: Li Zefan <[email protected]>
> CC: Kirill A. Shutemov <[email protected]>
> CC: Paul Menage <[email protected]>
> Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>

Acked-by: Randy Dunlap <[email protected]>

Thanks.

> ---
> init/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> Index: ref-mmotm/init/Kconfig
> ===================================================================
> --- ref-mmotm.orig/init/Kconfig
> +++ ref-mmotm/init/Kconfig
> @@ -509,6 +509,7 @@ endchoice
>
> menuconfig CGROUPS
> boolean "Control Group support"
> + depends on EVENTFD
> help
> This option adds support for grouping sets of processes together, for
> use with process control subsystems such as Cpusets, CFS, memory
>


---
~Randy

2010-01-07 17:14:14

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded

On Wed, 06 Jan 2010 23:01:47 -0500 [email protected] wrote:

> On Wed, 06 Jan 2010 22:48:16 EST, [email protected] said:
>
> > Building with CONFIG_SQUASHFS=m, CONFIG_SQUASHFS_LZMA=y ,
> > and CONFIG_DECOMPRESS_LZMA=n fails:
>
> > Looks like a missing select/depends for DECOMPRESS_LZMA. Somebody else can
> > decide which it should be...
>
> Digging further:
>
> x Symbol: DECOMPRESS_LZMA [=n] x
> x Selected by: RD_LZMA [=n] && BLK_DEV_INITRD [=y] || SQUASHFS_LZMA [=y x
>
> How the heck did this happen? Looks like a SELECT *is* there but it's
> not firing??!?

I was able to reproduce this error but I have DECOMPRESS_LZMA=m
instead of =n, so my patch fixes the build error for the =m case.

Please send me your .config file.

---
~Randy

2010-01-07 17:29:44

by Kirill A. Shutemov

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (kernel/cgroup)

On Thu, Jan 7, 2010 at 4:31 AM, KAMEZAWA Hiroyuki
<[email protected]> wrote:
> On Wed, 6 Jan 2010 17:08:49 -0800
> Randy Dunlap <[email protected]> wrote:
>
>> On Wed, 06 Jan 2010 14:34:36 -0800 [email protected] wrote:
>>
>> > The mm-of-the-moment snapshot 2010-01-06-14-34 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.33-rc3:
>>
>>
>> kernel/cgroup.c: In function 'cgroup_write_event_control':
>> kernel/cgroup.c:2949: error: implicit declaration of function 'eventfd_fget'
>> kernel/cgroup.c:2949: warning: assignment makes pointer from integer without a cast
>> kernel/cgroup.c:2955: error: implicit declaration of function 'eventfd_ctx_fileget'
>> kernel/cgroup.c:2955: warning: assignment makes pointer from integer without a cast
>> make[2]: *** [kernel/cgroup.o] Error 1
>>
>
> Hmm, how about this rather than adding #ifdefs..
> Paul, Li, how do you think ?
> ==
> Cgroup's eventdf feature has depenedecy to EVENTFD
>
> This is a patch onto
> cgroup-implement-eventfd-based-generic-api-for-notifications.patch
>
> CC: Li Zefan <[email protected]>
> CC: Kirill A. Shutemov <[email protected]>
> CC: Paul Menage <[email protected]>
> Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>
>
> ---
>  init/Kconfig |    1 +
>  1 file changed, 1 insertion(+)
>
> Index: ref-mmotm/init/Kconfig
> ===================================================================
> --- ref-mmotm.orig/init/Kconfig
> +++ ref-mmotm/init/Kconfig
> @@ -509,6 +509,7 @@ endchoice
>
>  menuconfig CGROUPS
>        boolean "Control Group support"
> +       depends on EVENTFD
>        help
>          This option adds support for grouping sets of processes together, for
>          use with process control subsystems such as Cpusets, CFS, memory
>
>

Acked-by: Kirill A. Shutemov <[email protected]>

2010-01-08 06:55:45

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (squashfs+lib/decomp)

On Thu, 07 Jan 2010 08:04:02 PST, Randy Dunlap said:
> On Wed, 06 Jan 2010 23:01:47 -0500 [email protected] wrote:
>
> > On Wed, 06 Jan 2010 22:48:16 EST, [email protected] said:
> >
> > > Building with CONFIG_SQUASHFS=m, CONFIG_SQUASHFS_LZMA=y ,
> > > and CONFIG_DECOMPRESS_LZMA=n fails:
> >
> > > Looks like a missing select/depends for DECOMPRESS_LZMA. Somebody else can
> > > decide which it should be...
> >
> > Digging further:
> >
> > x Symbol: DECOMPRESS_LZMA [=n] x
> > x Selected by: RD_LZMA [=n] && BLK_DEV_INITRD [=y] || SQUASHFS_LZMA [=y x
> >
> > How the heck did this happen? Looks like a SELECT *is* there but it's
> > not firing??!?
>
> I saw this build error in linux-next and sent a patch for it -- it's below.
> However, it doesn't appear to be exactly the same config as yours.

Yeah, that patch is how you ended up cc'ed - it was already in the linux-next
patch in Andrew's -mmotm tarball. It looked like you addressed one corner case
of the problem, and I tripped over another. But now I'm trying to get my
brain wrapped around how I was able to get SQUASHFS_LZMA=y, and it had a
select for DECOMPRESS_LZMA, but that *still* was 'n' anyhow? How did we end
up with both && and || in that 'Selected by:' line? Is that saying that
RD_LZMA needs to be on too?

Adding some plausible-sounding kbuild-related entries from MAINTAINERS to
the cc: list, maybe they can explain it...


Attachments:
(No filename) (227.00 B)

2010-01-08 16:38:52

by Randy Dunlap

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 uploaded (squashfs+lib/decomp)

On Fri, 08 Jan 2010 01:54:54 -0500 [email protected] wrote:

> On Thu, 07 Jan 2010 08:04:02 PST, Randy Dunlap said:
> > On Wed, 06 Jan 2010 23:01:47 -0500 [email protected] wrote:
> >
> > > On Wed, 06 Jan 2010 22:48:16 EST, [email protected] said:
> > >
> > > > Building with CONFIG_SQUASHFS=m, CONFIG_SQUASHFS_LZMA=y ,
> > > > and CONFIG_DECOMPRESS_LZMA=n fails:
> > >
> > > > Looks like a missing select/depends for DECOMPRESS_LZMA. Somebody else can
> > > > decide which it should be...
> > >
> > > Digging further:
> > >
> > > x Symbol: DECOMPRESS_LZMA [=n] x
> > > x Selected by: RD_LZMA [=n] && BLK_DEV_INITRD [=y] || SQUASHFS_LZMA [=y x
> > >
> > > How the heck did this happen? Looks like a SELECT *is* there but it's
> > > not firing??!?
> >
> > I saw this build error in linux-next and sent a patch for it -- it's below.
> > However, it doesn't appear to be exactly the same config as yours.
>
> Yeah, that patch is how you ended up cc'ed - it was already in the linux-next
> patch in Andrew's -mmotm tarball. It looked like you addressed one corner case
> of the problem, and I tripped over another. But now I'm trying to get my
> brain wrapped around how I was able to get SQUASHFS_LZMA=y, and it had a
> select for DECOMPRESS_LZMA, but that *still* was 'n' anyhow? How did we end
> up with both && and || in that 'Selected by:' line? Is that saying that
> RD_LZMA needs to be on too?

The menuconfig display is truncated (use left/right arrow keys to pan it).
The xconfig display shows this:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DECOMPRESS_LZMA

type: tristate
reverse dep: RD_LZMA && BLK_DEV_INITRD || SQUASHFS_LZMA && MISC_FILESYSTEMS && SQUASHFS

defined at lib/Kconfig:117

There is no help available for this kernel option.
Symbol: DECOMPRESS_LZMA [=n]
Selected by: RD_LZMA [=n] && BLK_DEV_INITRD [=n] || SQUASHFS_LZMA [=n] && MISC_FILESYSTEMS [=n] && SQUASHFS [=n]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In the "reverse dep:" line, && has higher precedence that || does, so it's:

reverse dep: (RD_LZMA && BLK_DEV_INITRD) || (SQUASHFS_LZMA && MISC_FILESYSTEMS && SQUASHFS)

So RD_LZMA and BLK_DEV_INITRD don't matter.


> Adding some plausible-sounding kbuild-related entries from MAINTAINERS to
> the cc: list, maybe they can explain it...


---
~Randy

2010-01-08 22:22:14

by Valdis Klētnieks

[permalink] [raw]
Subject: mmotm 2010-01-06-14-34 - crash in CPUfreq

On Wed, 06 Jan 2010 14:34:36 PST, [email protected] said:
> The mm-of-the-moment snapshot 2010-01-06-14-34 has been uploaded to
>
> http://userweb.kernel.org/~akpm/mmotm/

Seeing a 100% reproducible crash, bisected down to this commit:
(Saw crash in -mmotm1210, but haven't had time/etc to bisect till now)

46aeb7430f79cb4d03e17fedd6399884ab3aa697 is the first bad commit
commit 46aeb7430f79cb4d03e17fedd6399884ab3aa697
Author: Thomas Renninger <[email protected]>
Date: Mon Dec 14 11:44:11 2009 +0100

[CPUFREQ] Fix race in cpufreq_update_policy()

An update can come in asynchronous, e.g. through an acpi notify event/irq.
If the policy is assigned before the locking and lock_policy_rwsem_write is
held by onlining/offlining CPU code, the info may be stale
(and the policy freed) when the locked code gets entered.

Fix that by assigning the policy inside the lock.
Michal added some cleanups to properly exit on failure cases -> thanks.

Signed-off-by: Thomas Renninger <[email protected]>
CC: Michal Schmidt <[email protected]>
Signed-off-by: Dave Jones <[email protected]>

Here's the crash:

[ 4.840569] iTCO_wdt: Found a ICH9M-E TCO device (Version=2, TCOBASE=0x1060)
[ 4.840832] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[ 4.840963] iTCO_vendor_support: vendor-support=0
[ 4.841404] device-mapper: ioctl: 4.16.0-ioctl (2009-11-05) initialised: [email protected]
[ 4.841551] EDAC MC: Ver: 2.1.0 Jan 8 2010
[ 4.842049] ------------[ cut here ]------------
[ 4.842160] kernel BUG at drivers/cpufreq/cpufreq.c:88!
[ 4.842271] invalid opcode: 0000 [#1] PREEMPT SMP
[ 4.842643] last sysfs file:
[ 4.842750] CPU 1
[ 4.842941] Pid: 1, comm: swapper Not tainted 2.6.32-08667-g46aeb74 #15 0X564R/Latitude E6500
[ 4.843031] RIP: 0010:[<ffffffff813942f4>] [<ffffffff813942f4>] lock_policy_rwsem_write+0x43/0xad
[ 4.843126] RSP: 0000:ffff88011f87fd40 EFLAGS: 00010202
[ 4.843126] RAX: 00000000000104b0 RBX: 0000000000000001 RCX: 000000000000003e
[ 4.843126] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffffffff81ae1f88
[ 4.843126] RBP: ffff88011f87fd60 R08: 0000000000000000 R09: ffffffff81b04810
[ 4.843126] R10: ffffffff8103b7fa R11: ffffffff8184f00d R12: 00000000ffffffff
[ 4.843126] R13: 0000000000000000 R14: 0000000000000002 R15: 0000000000000000
[ 4.843126] FS: 0000000000000000(0000) GS:ffff880028300000(0000) knlGS:0000000000000000
[ 4.843126] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 4.843126] CR2: 00000034478a8440 CR3: 0000000001a1c000 CR4: 00000000000406e0
[ 4.843126] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 4.843126] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 4.843126] Process swapper (pid: 1, threadinfo ffff88011f87e000, task ffff88011f87c040)
[ 4.843126] Stack:
[ 4.843126] ffff88011f87c040 0000000000000000 0000000000000000 00000000ffffffea
[ 4.843126] <0> ffff88011f87feb0 ffffffff8139558c ffff88011f87fd90 ffffffff810641a8
[ 4.843126] <0> 0000000000000000 0000000000000000 ffff88011f87fe50 ffffffff81527c4c
[ 4.843126] Call Trace:
[ 4.843126] [<ffffffff8139558c>] cpufreq_update_policy+0x20/0xfc
[ 4.843126] [<ffffffff810641a8>] ? debug_mutex_free_waiter+0x2e/0x6a
[ 4.843126] [<ffffffff81527c4c>] ? __mutex_lock_common+0x58b/0x5aa
[ 4.843126] [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
[ 4.843126] [<ffffffff815291b0>] ? _raw_spin_unlock_irqrestore+0x72/0x80
[ 4.843126] [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
[ 4.843126] [<ffffffff81527478>] ? __mutex_unlock_slowpath+0x136/0x17b
[ 4.843126] [<ffffffff81066494>] ? trace_hardirqs_on_caller+0x118/0x13c
[ 4.843126] [<ffffffff810664c5>] ? trace_hardirqs_on+0xd/0xf
[ 4.843126] [<ffffffff815274ac>] ? __mutex_unlock_slowpath+0x16a/0x17b
[ 4.843126] [<ffffffff815274c6>] ? mutex_unlock+0x9/0xb
[ 4.843126] [<ffffffff8103b80c>] ? cpu_maps_update_done+0x10/0x12
[ 4.843126] [<ffffffff815113c7>] ? register_cpu_notifier+0x28/0x32
[ 4.843126] [<ffffffff81b48568>] cpufreq_stats_init+0x85/0xad
[ 4.843126] [<ffffffff81b484e3>] ? cpufreq_stats_init+0x0/0xad
[ 4.843126] [<ffffffff810001ef>] do_one_initcall+0x59/0x14e
[ 4.843126] [<ffffffff81b21667>] kernel_init+0x15f/0x1b5
[ 4.843126] [<ffffffff810031d4>] kernel_thread_helper+0x4/0x10
[ 4.843126] [<ffffffff81529ac0>] ? restore_args+0x0/0x30
[ 4.843126] [<ffffffff81b21508>] ? kernel_init+0x0/0x1b5
[ 4.843126] [<ffffffff810031d0>] ? kernel_thread_helper+0x0/0x10
[ 4.843126] Code: 88 1f ae 81 53 31 db 48 83 ec 08 48 8b 14 d5 60 46 b0 81 44 8b 24 10 41 83 fc ff 0f 94 c3 31 d2 89 de e8 f4 42 d0 ff 85 db 74 04 <0f> 0b eb fe 4d 63 e4 48 c7 c3 c0 04 01 00 48 89 df 4a 03 3c e5
[ 4.843126] RIP [<ffffffff813942f4>] lock_policy_rwsem_write+0x43/0xad
[ 4.843126] RSP <ffff88011f87fd40>
[ 4.862279] ---[ end trace b837c2c8cb05be90 ]---
[ 4.862402] Kernel panic - not syncing: Attempted to kill init!
[ 4.862523] Pid: 1, comm: swapper Tainted: G D 2.6.32-08667-g46aeb74 #15
[ 4.862669] Call Trace:
[ 4.862792] [<ffffffff81526031>] panic+0x7f/0x13a
[ 4.862919] [<ffffffff81066392>] ? trace_hardirqs_on_caller+0x16/0x13c
[ 4.863049] [<ffffffff8103db1a>] do_exit+0xd7/0x8d6
[ 4.863161] [<ffffffff8103a328>] ? spin_unlock_irqrestore+0x9/0xb
[ 4.863288] [<ffffffff8103af22>] ? kmsg_dump+0x136/0x150
[ 4.863402] [<ffffffff8152a904>] oops_end+0x89/0x8e
[ 4.863520] [<ffffffff81005dd1>] die+0x55/0x5e
[ 4.863631] [<ffffffff8152a324>] do_trap+0x11c/0x12b
[ 4.863752] [<ffffffff81003ac9>] do_invalid_op+0x8f/0x98
[ 4.863865] [<ffffffff813942f4>] ? lock_policy_rwsem_write+0x43/0xad
[ 4.863980] [<ffffffff8152899f>] ? trace_hardirqs_off_thunk+0x3a/0x3c
[ 4.864104] [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
[ 4.864218] [<ffffffff81529af0>] ? irq_return+0x0/0x2
[ 4.864365] [<ffffffff81003055>] invalid_op+0x15/0x20
[ 4.864478] [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
[ 4.864597] [<ffffffff813942f4>] ? lock_policy_rwsem_write+0x43/0xad
[ 4.864711] [<ffffffff8139558c>] cpufreq_update_policy+0x20/0xfc
[ 4.864825] [<ffffffff810641a8>] ? debug_mutex_free_waiter+0x2e/0x6a
[ 4.864944] [<ffffffff81527c4c>] ? __mutex_lock_common+0x58b/0x5aa
[ 4.865066] [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
[ 4.865185] [<ffffffff815291b0>] ? _raw_spin_unlock_irqrestore+0x72/0x80
[ 4.865311] [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
[ 4.865434] [<ffffffff81527478>] ? __mutex_unlock_slowpath+0x136/0x17b
[ 4.865548] [<ffffffff81066494>] ? trace_hardirqs_on_caller+0x118/0x13c
[ 4.865662] [<ffffffff810664c5>] ? trace_hardirqs_on+0xd/0xf
[ 4.865782] [<ffffffff815274ac>] ? __mutex_unlock_slowpath+0x16a/0x17b
[ 4.865897] [<ffffffff815274c6>] ? mutex_unlock+0x9/0xb
[ 4.866037] [<ffffffff8103b80c>] ? cpu_maps_update_done+0x10/0x12
[ 4.866153] [<ffffffff815113c7>] ? register_cpu_notifier+0x28/0x32
[ 4.866278] [<ffffffff81b48568>] cpufreq_stats_init+0x85/0xad
[ 4.866391] [<ffffffff81b484e3>] ? cpufreq_stats_init+0x0/0xad
[ 4.866505] [<ffffffff810001ef>] do_one_initcall+0x59/0x14e
[ 4.866624] [<ffffffff81b21667>] kernel_init+0x15f/0x1b5
[ 4.866737] [<ffffffff810031d4>] kernel_thread_helper+0x4/0x10
[ 4.866860] [<ffffffff81529ac0>] ? restore_args+0x0/0x30
[ 4.866971] [<ffffffff81b21508>] ? kernel_init+0x0/0x1b5
[ 4.867099] [<ffffffff810031d0>] ? kernel_thread_helper+0x0/0x10


Attachments:
(No filename) (227.00 B)

2010-01-11 15:39:53

by Minchan Kim

[permalink] [raw]
Subject: Re: mmotm 2010-01-06-14-34 - crash in CPUfreq

I have experienced same problem in 2.6.33-rc3-mm1.
My machine can't boot.

I try to find this patch but failed.
So I try to understand this problem from below changelog.

I guess it was from assigning the policy inside the lock.
lock_policy_rwsem_write uses policy_cpu but it was not initialized
at that time.

so we meet BUG_ON(policy_cpu == -1);
Quick fix is that return -1 if we meet (policy_cpu == -1) in
lock_policy_rwsem_##mode but it's very ugly.

Totally I don't understand cpufreq's code.
I hope cpufreq guys solve this problem perfectly.

I attach my config

barrios@barrios-desktop:~/mmotm$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU 6300 @ 1.86GHz
stepping : 6
cpu MHz : 1600.000
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor
ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
bogomips : 3732.84
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:

....

On Sat, Jan 9, 2010 at 7:21 AM, <[email protected]> wrote:
> On Wed, 06 Jan 2010 14:34:36 PST, [email protected] said:
>> The mm-of-the-moment snapshot 2010-01-06-14-34 has been uploaded to
>>
>>    http://userweb.kernel.org/~akpm/mmotm/
>
> Seeing a 100% reproducible crash, bisected down to this commit:
> (Saw crash in -mmotm1210, but haven't had time/etc to bisect till now)
>
> 46aeb7430f79cb4d03e17fedd6399884ab3aa697 is the first bad commit
> commit 46aeb7430f79cb4d03e17fedd6399884ab3aa697
> Author: Thomas Renninger <[email protected]>
> Date:   Mon Dec 14 11:44:11 2009 +0100
>
>    [CPUFREQ] Fix race in cpufreq_update_policy()
>
>    An update can come in asynchronous, e.g. through an acpi notify event/irq.
>    If the policy is assigned before the locking and lock_policy_rwsem_write is
>    held by onlining/offlining CPU code, the info may be stale
>    (and the policy freed) when the locked code gets entered.
>
>    Fix that by assigning the policy inside the lock.
>    Michal added some cleanups to properly exit on failure cases -> thanks.
>
>    Signed-off-by: Thomas Renninger <[email protected]>
>    CC: Michal Schmidt <[email protected]>
>    Signed-off-by: Dave Jones <[email protected]>
>
> Here's the crash:
>
> [    4.840569] iTCO_wdt: Found a ICH9M-E TCO device (Version=2, TCOBASE=0x1060)
> [    4.840832] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
> [    4.840963] iTCO_vendor_support: vendor-support=0
> [    4.841404] device-mapper: ioctl: 4.16.0-ioctl (2009-11-05) initialised: [email protected]
> [    4.841551] EDAC MC: Ver: 2.1.0 Jan  8 2010
> [    4.842049] ------------[ cut here ]------------
> [    4.842160] kernel BUG at drivers/cpufreq/cpufreq.c:88!
> [    4.842271] invalid opcode: 0000 [#1] PREEMPT SMP
> [    4.842643] last sysfs file:
> [    4.842750] CPU 1
> [    4.842941] Pid: 1, comm: swapper Not tainted 2.6.32-08667-g46aeb74 #15 0X564R/Latitude E6500
> [    4.843031] RIP: 0010:[<ffffffff813942f4>]  [<ffffffff813942f4>] lock_policy_rwsem_write+0x43/0xad
> [    4.843126] RSP: 0000:ffff88011f87fd40  EFLAGS: 00010202
> [    4.843126] RAX: 00000000000104b0 RBX: 0000000000000001 RCX: 000000000000003e
> [    4.843126] RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffffffff81ae1f88
> [    4.843126] RBP: ffff88011f87fd60 R08: 0000000000000000 R09: ffffffff81b04810
> [    4.843126] R10: ffffffff8103b7fa R11: ffffffff8184f00d R12: 00000000ffffffff
> [    4.843126] R13: 0000000000000000 R14: 0000000000000002 R15: 0000000000000000
> [    4.843126] FS:  0000000000000000(0000) GS:ffff880028300000(0000) knlGS:0000000000000000
> [    4.843126] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [    4.843126] CR2: 00000034478a8440 CR3: 0000000001a1c000 CR4: 00000000000406e0
> [    4.843126] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [    4.843126] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> [    4.843126] Process swapper (pid: 1, threadinfo ffff88011f87e000, task ffff88011f87c040)
> [    4.843126] Stack:
> [    4.843126]  ffff88011f87c040 0000000000000000 0000000000000000 00000000ffffffea
> [    4.843126] <0> ffff88011f87feb0 ffffffff8139558c ffff88011f87fd90 ffffffff810641a8
> [    4.843126] <0> 0000000000000000 0000000000000000 ffff88011f87fe50 ffffffff81527c4c
> [    4.843126] Call Trace:
> [    4.843126]  [<ffffffff8139558c>] cpufreq_update_policy+0x20/0xfc
> [    4.843126]  [<ffffffff810641a8>] ? debug_mutex_free_waiter+0x2e/0x6a
> [    4.843126]  [<ffffffff81527c4c>] ? __mutex_lock_common+0x58b/0x5aa
> [    4.843126]  [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
> [    4.843126]  [<ffffffff815291b0>] ? _raw_spin_unlock_irqrestore+0x72/0x80
> [    4.843126]  [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
> [    4.843126]  [<ffffffff81527478>] ? __mutex_unlock_slowpath+0x136/0x17b
> [    4.843126]  [<ffffffff81066494>] ? trace_hardirqs_on_caller+0x118/0x13c
> [    4.843126]  [<ffffffff810664c5>] ? trace_hardirqs_on+0xd/0xf
> [    4.843126]  [<ffffffff815274ac>] ? __mutex_unlock_slowpath+0x16a/0x17b
> [    4.843126]  [<ffffffff815274c6>] ? mutex_unlock+0x9/0xb
> [    4.843126]  [<ffffffff8103b80c>] ? cpu_maps_update_done+0x10/0x12
> [    4.843126]  [<ffffffff815113c7>] ? register_cpu_notifier+0x28/0x32
> [    4.843126]  [<ffffffff81b48568>] cpufreq_stats_init+0x85/0xad
> [    4.843126]  [<ffffffff81b484e3>] ? cpufreq_stats_init+0x0/0xad
> [    4.843126]  [<ffffffff810001ef>] do_one_initcall+0x59/0x14e
> [    4.843126]  [<ffffffff81b21667>] kernel_init+0x15f/0x1b5
> [    4.843126]  [<ffffffff810031d4>] kernel_thread_helper+0x4/0x10
> [    4.843126]  [<ffffffff81529ac0>] ? restore_args+0x0/0x30
> [    4.843126]  [<ffffffff81b21508>] ? kernel_init+0x0/0x1b5
> [    4.843126]  [<ffffffff810031d0>] ? kernel_thread_helper+0x0/0x10
> [    4.843126] Code: 88 1f ae 81 53 31 db 48 83 ec 08 48 8b 14 d5 60 46 b0 81 44 8b 24 10 41 83 fc ff 0f 94 c3 31 d2 89 de e8 f4 42 d0 ff 85 db 74 04 <0f> 0b eb fe 4d 63 e4 48 c7 c3 c0 04 01 00 48 89 df 4a 03 3c e5
> [    4.843126] RIP  [<ffffffff813942f4>] lock_policy_rwsem_write+0x43/0xad
> [    4.843126]  RSP <ffff88011f87fd40>
> [    4.862279] ---[ end trace b837c2c8cb05be90 ]---
> [    4.862402] Kernel panic - not syncing: Attempted to kill init!
> [    4.862523] Pid: 1, comm: swapper Tainted: G      D    2.6.32-08667-g46aeb74 #15
> [    4.862669] Call Trace:
> [    4.862792]  [<ffffffff81526031>] panic+0x7f/0x13a
> [    4.862919]  [<ffffffff81066392>] ? trace_hardirqs_on_caller+0x16/0x13c
> [    4.863049]  [<ffffffff8103db1a>] do_exit+0xd7/0x8d6
> [    4.863161]  [<ffffffff8103a328>] ? spin_unlock_irqrestore+0x9/0xb
> [    4.863288]  [<ffffffff8103af22>] ? kmsg_dump+0x136/0x150
> [    4.863402]  [<ffffffff8152a904>] oops_end+0x89/0x8e
> [    4.863520]  [<ffffffff81005dd1>] die+0x55/0x5e
> [    4.863631]  [<ffffffff8152a324>] do_trap+0x11c/0x12b
> [    4.863752]  [<ffffffff81003ac9>] do_invalid_op+0x8f/0x98
> [    4.863865]  [<ffffffff813942f4>] ? lock_policy_rwsem_write+0x43/0xad
> [    4.863980]  [<ffffffff8152899f>] ? trace_hardirqs_off_thunk+0x3a/0x3c
> [    4.864104]  [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
> [    4.864218]  [<ffffffff81529af0>] ? irq_return+0x0/0x2
> [    4.864365]  [<ffffffff81003055>] invalid_op+0x15/0x20
> [    4.864478]  [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
> [    4.864597]  [<ffffffff813942f4>] ? lock_policy_rwsem_write+0x43/0xad
> [    4.864711]  [<ffffffff8139558c>] cpufreq_update_policy+0x20/0xfc
> [    4.864825]  [<ffffffff810641a8>] ? debug_mutex_free_waiter+0x2e/0x6a
> [    4.864944]  [<ffffffff81527c4c>] ? __mutex_lock_common+0x58b/0x5aa
> [    4.865066]  [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
> [    4.865185]  [<ffffffff815291b0>] ? _raw_spin_unlock_irqrestore+0x72/0x80
> [    4.865311]  [<ffffffff8103b7fa>] ? cpu_maps_update_begin+0x12/0x14
> [    4.865434]  [<ffffffff81527478>] ? __mutex_unlock_slowpath+0x136/0x17b
> [    4.865548]  [<ffffffff81066494>] ? trace_hardirqs_on_caller+0x118/0x13c
> [    4.865662]  [<ffffffff810664c5>] ? trace_hardirqs_on+0xd/0xf
> [    4.865782]  [<ffffffff815274ac>] ? __mutex_unlock_slowpath+0x16a/0x17b
> [    4.865897]  [<ffffffff815274c6>] ? mutex_unlock+0x9/0xb
> [    4.866037]  [<ffffffff8103b80c>] ? cpu_maps_update_done+0x10/0x12
> [    4.866153]  [<ffffffff815113c7>] ? register_cpu_notifier+0x28/0x32
> [    4.866278]  [<ffffffff81b48568>] cpufreq_stats_init+0x85/0xad
> [    4.866391]  [<ffffffff81b484e3>] ? cpufreq_stats_init+0x0/0xad
> [    4.866505]  [<ffffffff810001ef>] do_one_initcall+0x59/0x14e
> [    4.866624]  [<ffffffff81b21667>] kernel_init+0x15f/0x1b5
> [    4.866737]  [<ffffffff810031d4>] kernel_thread_helper+0x4/0x10
> [    4.866860]  [<ffffffff81529ac0>] ? restore_args+0x0/0x30
> [    4.866971]  [<ffffffff81b21508>] ? kernel_init+0x0/0x1b5
> [    4.867099]  [<ffffffff810031d0>] ? kernel_thread_helper+0x0/0x10
>
>



--
Kind regards,
Minchan Kim


Attachments:
config.barrios (79.16 kB)