The patch titled zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename has been added to the -mm tree. Its filename is zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename From: Andrew Morton <akpm@xxxxxxxx> Cc: Christoph Lameter <clameter@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- Documentation/sysctl/vm.txt | 11 +++++++---- include/linux/mmzone.h | 4 ++-- include/linux/swap.h | 2 +- kernel/sysctl.c | 8 ++++---- mm/page_alloc.c | 8 ++++---- mm/vmscan.c | 10 +++++----- 6 files changed, 23 insertions(+), 20 deletions(-) diff -puN Documentation/sysctl/vm.txt~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename Documentation/sysctl/vm.txt --- a/Documentation/sysctl/vm.txt~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename +++ a/Documentation/sysctl/vm.txt @@ -28,7 +28,7 @@ Currently, these files are in /proc/sys/ - block_dump - drop-caches - zone_reclaim_mode -- min_unmapped +- min_unmapped_ratio - panic_on_oom ============================================================== @@ -169,12 +169,14 @@ in all nodes of the system. ============================================================= -min_unmapped: +min_unmapped_ratio: -A percentage of the file backed pages in each zone. Zone reclaim will only +This is available only on NUMA kernels. + +A percentage of the file backed pages in each zone. Zone reclaim will only occur if more than this percentage of pages are file backed and unmapped. -This is to insure that a minimal amount of local pages is still available -for file I/O even if the node is overallocated. +This is to insure that a minimal amount of local pages is still available for +file I/O even if the node is overallocated. The default is 1 percent. diff -puN include/linux/mmzone.h~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename include/linux/mmzone.h --- a/include/linux/mmzone.h~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename +++ a/include/linux/mmzone.h @@ -153,7 +153,7 @@ struct zone { /* * zone reclaim becomes active if more unmapped pages exist. */ - unsigned long min_unmapped; + unsigned long min_unmapped_ratio; struct per_cpu_pageset *pageset[NR_CPUS]; #else struct per_cpu_pageset pageset[NR_CPUS]; @@ -418,7 +418,7 @@ int lowmem_reserve_ratio_sysctl_handler( void __user *, size_t *, loff_t *); int percpu_pagelist_fraction_sysctl_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); -int sysctl_min_unmapped_sysctl_handler(struct ctl_table *, int, +int sysctl_min_unmapped_ratio_sysctl_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); #include <linux/topology.h> diff -puN include/linux/swap.h~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename include/linux/swap.h --- a/include/linux/swap.h~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename +++ a/include/linux/swap.h @@ -189,7 +189,7 @@ extern long vm_total_pages; #ifdef CONFIG_NUMA extern int zone_reclaim_mode; -extern int sysctl_min_unmapped; +extern int sysctl_min_unmapped_ratio; extern int zone_reclaim(struct zone *, gfp_t, unsigned int); #else #define zone_reclaim_mode 0 diff -puN kernel/sysctl.c~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename kernel/sysctl.c --- a/kernel/sysctl.c~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename +++ a/kernel/sysctl.c @@ -935,11 +935,11 @@ static ctl_table vm_table[] = { }, { .ctl_name = VM_MIN_UNMAPPED, - .procname = "min_unmapped", - .data = &sysctl_min_unmapped, - .maxlen = sizeof(sysctl_min_unmapped), + .procname = "min_unmapped_ratio", + .data = &sysctl_min_unmapped_ratio, + .maxlen = sizeof(sysctl_min_unmapped_ratio), .mode = 0644, - .proc_handler = &sysctl_min_unmapped_sysctl_handler, + .proc_handler = &sysctl_min_unmapped_ratio_sysctl_handler, .strategy = &sysctl_intvec, .extra1 = &zero, .extra2 = &one_hundred, diff -puN mm/page_alloc.c~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename mm/page_alloc.c --- a/mm/page_alloc.c~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename +++ a/mm/page_alloc.c @@ -2007,7 +2007,7 @@ static void __meminit free_area_init_cor zone->spanned_pages = size; zone->present_pages = realsize; #ifdef CONFIG_NUMA - zone->min_unmapped = (realsize * sysctl_min_unmapped) + zone->min_unmapped_ratio = (realsize*sysctl_min_unmapped_ratio) / 100; #endif zone->name = zone_names[j]; @@ -2304,7 +2304,7 @@ int min_free_kbytes_sysctl_handler(ctl_t } #ifdef CONFIG_NUMA -int sysctl_min_unmapped_sysctl_handler(ctl_table *table, int write, +int sysctl_min_unmapped_ratio_sysctl_handler(ctl_table *table, int write, struct file *file, void __user *buffer, size_t *length, loff_t *ppos) { struct zone *zone; @@ -2315,8 +2315,8 @@ int sysctl_min_unmapped_sysctl_handler(c return rc; for_each_zone(zone) - zone->min_unmapped = (zone->present_pages * - sysctl_min_unmapped) / 100; + zone->min_unmapped_ratio = (zone->present_pages * + sysctl_min_unmapped_ratio) / 100; return 0; } #endif diff -puN mm/vmscan.c~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename mm/vmscan.c --- a/mm/vmscan.c~zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename +++ a/mm/vmscan.c @@ -1520,10 +1520,10 @@ int zone_reclaim_mode __read_mostly; #define ZONE_RECLAIM_PRIORITY 4 /* - * Percentile of pages in a zone that must be unmapped - * for zone_reclaim to occur. + * Percentage of pages in a zone that must be unmapped for zone_reclaim to + * occur. */ -int sysctl_min_unmapped = 1; +int sysctl_min_unmapped_ratio = 1; /* * Try to free up some pages from this zone through reclaim. @@ -1601,8 +1601,8 @@ int zone_reclaim(struct zone *zone, gfp_ * unmapped file backed pages. */ if (zone_page_state(zone, NR_FILE_PAGES) - - zone_page_state(zone, NR_FILE_MAPPED) <= zone->min_unmapped) - return 0; + zone_page_state(zone, NR_FILE_MAPPED) <= zone->min_unmapped_ratio) + return 0; /* * Avoid concurrent zone reclaims, do not reclaim in a zone that does _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch msrc-use-register_hotcpu_notifier.patch zoned-vm-counters-create-vmstatc-h-from-page_allocc-h.patch zoned-vm-counters-basic-zvc-zoned-vm-counter-implementation.patch zoned-vm-counters-convert-nr_mapped-to-per-zone-counter.patch zoned-vm-counters-remove-nr_file_mapped-from-scan-control-structure.patch zoned-vm-counters-conversion-of-nr_slab-to-per-zone-counter.patch zoned-vm-counters-conversion-of-nr_pagetables-to-per-zone-counter.patch zoned-vm-counters-conversion-of-nr_dirty-to-per-zone-counter.patch zoned-vm-counters-conversion-of-nr_writeback-to-per-zone-counter.patch zoned-vm-counters-conversion-of-nr_unstable-to-per-zone-counter.patch zoned-vm-counters-conversion-of-nr_bounce-to-per-zone-counter.patch zoned-vm-counters-remove-read_page_state.patch slab-consolidate-code-to-free-slabs-from-freelist.patch add-smp_setup_processor_id.patch cond_resched-fix.patch infiniband-devfs-fix.patch i2c-801-64bit-resource-fix.patch disable-debugging-version-of-write_lock.patch git-acpi.patch acpi-printk-fix.patch acpi_srat-needs-acpi.patch acpi-asus-s3-resume-fix-fix.patch sony_apci-resume.patch kauditd_thread-warning-fix.patch git-dvb.patch git-geode-fixup.patch git-gfs2.patch git-gfs2-fixup.patch gfs2-get_sb_dev-fix.patch git-ia64.patch revert-ignore-makes-built-in-rules-variables.patch revert-sparc-build-breakage.patch git-klibc.patch git-klibc-fixup.patch git-hdrcleanup-vs-git-klibc-on-ia64.patch git-hdrcleanup-vs-git-klibc-on-ia64-2.patch git-libata-all.patch sata-is-bust-on-s390.patch git-netdev-all-fixup.patch forcedeth-typecast-cleanup.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch af_unix-datagram-getpeersec-fix.patch git-pcmcia-fixup.patch git-sas.patch serial-8250-sysrq-deadlock-fix.patch serial-fix-uart_bug_txen-test.patch revert-gregkh-pci-pci-test-that-drivers-properly-call-pci_set_master.patch clear-abnormal-poweroff-flag-on-via-southbridges-fix-resume.patch revert-VIA-quirk-fixup-additional-PCI-IDs.patch revert-PCI-quirk-VIA-IRQ-fixup-should-only-run-for-VIA-southbridges.patch git-scsi-misc.patch areca-raid-linux-scsi-driver.patch git-scsi-target-fixup.patch pm-usb-hcds-use-pm_event_prethaw-fix.patch git-supertrak-fixup.patch bcm43xx-opencoded-locking.patch zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o-tunable-rename.patch adix-tree-rcu-lockless-readside-update-tidy.patch mm-tracking-shared-dirty-pages-checks.patch mm-tracking-shared-dirty-pages-wimp.patch acx1xx-wireless-driver.patch tiacx-pci-build-fix.patch tiacx-ia64-fix.patch deprecate-smbfs-in-favour-of-cifs.patch rtc-class-driver-for-samsung-s3c-series-soc-tidy.patch hotcpu_notifier-fixes.patch add-___rodata-sections-to-asm-generic-sectionsh-fix.patch reiserfs-on-demand-bitmap-loading-fix.patch per-task-delay-accounting-proc-export-of-aggregated-block-i-o-delays-warning-fix.patch delay-accounting-taskstats-interface-send-tgid-once-fixes.patch sched-clean-up-fallout-of-recent-changes-fix.patch sched-clean-up-fallout-of-recent-changes-fix-fix-fix.patch swap_prefetch-vs-zoned-counters.patch mark-address_space_operations-const-vs-ecryptfs-mmap-operations.patch ecryptfs-alpha-build-fix.patch ecryptfs-more-elegant-aes-key-size-manipulation-tidy.patch ecryptfs-get_sb_dev-fix.patch namespaces-add-nsproxy-dont-include-compileh.patch namespaces-utsname-switch-to-using-uts-namespaces-alpha-fix.patch namespaces-utsname-use-init_utsname-when-appropriate-cifs-update.patch namespaces-utsname-implement-utsname-namespaces-export.patch namespaces-utsname-implement-utsname-namespaces-dont-include-compileh.patch namespaces-utsname-sysctl-hack-cleanup-2-fix.patch ipc-namespace-core-fix.patch task-watchers-task-watchers-tidy.patch task-watchers-add-support-for-per-task-watchers-warning-fix.patch readahead-sysctl-parameters-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch hpt3xx-rework-rate-filtering-tidy.patch lockdep-add-disable-enable_irq_lockdep-api.patch lockdep-irqtrace-subsystem-x86_64-support.patch genirq-convert-the-i386-architecture-to-irq-chips-fix-2.patch genirq-msi-simplify-msi-enable-and-disable-fix.patch genirq-i386-irq-remove-the-msi-assumption-that-irq-==-vector-fix-tidies.patch srcu-rcu-variant-permitting-read-side-blocking-fixes.patch srcu-add-srcu-operations-to-rcutorture-fix.patch srcu-2-add-srcu-operations-to-rcutorture-fix.patch make-more-file_operation-structs-static-fix.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch revert-tty-buffering-comment-out-debug-code.patch slab-leaks3-default-y.patch x86-kmap_atomic-debugging.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html