Re: VM in v2.4.0test9

From: Andrea Arcangeli (
Date: Sun Oct 08 2000 - 17:30:32 EST

On Sun, Oct 08, 2000 at 08:27:24AM -0700, Linus Torvalds wrote:
> Why? Think NUMA. The global freepages number is NOT USABLE. Never will be.
> Because it's fundamentally a non-valid number to use - it has nothing to
> do with any reality, and never will.
> This is exactly my argument and beef with Andreas zone patches. They
> simply cannot work in the end because they use global information that
> should not be used.

I never used the global freepages number for anything in 2.4.x. Furthmore I had
per-NUMA-node informations that currently are global in 2.4.0-test9.

If you can see any usage of freepages.* in the below grep let me know and I'll
fix it as time permits.

andrea@athlon:~/devel/kernel/2.4.0-test1-ac22-class > gid freepages
include/linux/swapctl.h:23:extern freepages_t freepages;
kernel/sysctl.c:229: {VM_FREEPG, "freepages",
kernel/sysctl.c:230: &freepages, sizeof(freepages_t), 0644, NULL, &proc_dointvec},
mm/page_alloc.c:390: freepages.min,
mm/page_alloc.c:391: freepages.low,
mm/page_alloc.c:392: freepages.high);
mm/page_alloc.c:547: freepages.min += i;
mm/page_alloc.c:548: freepages.low += i * 2;
mm/page_alloc.c:549: freepages.high += i * 3;
mm/swap.c:29: * fall below the freepages.min except for atomic allocations. We
mm/swap.c:30: * start background swapping if we fall below freepages.high free
mm/swap.c:31: * pages, and we begin intensive swapping below freepages.low.
mm/swap.c:36:freepages_t freepages = {
mm/swap.c:37: 0, /* freepages.min */
mm/swap.c:38: 0, /* freepages.low */
mm/swap.c:39: 0 /* freepages.high */
arch/sparc/kernel/sys_sunos.c:146: int freepages, retval = -ENOMEM;
arch/sparc/kernel/sys_sunos.c:197: freepages = atomic_read(&buffermem_pages) >> PAGE_SHIFT;
arch/sparc/kernel/sys_sunos.c:198: freepages += atomic_read(&page_cache_size);
arch/sparc/kernel/sys_sunos.c:199: freepages >>= 1;
arch/sparc/kernel/sys_sunos.c:200: freepages += nr_free_pages();
arch/sparc/kernel/sys_sunos.c:201: freepages += nr_swap_pages;
arch/sparc/kernel/sys_sunos.c:202: freepages -= num_physpages >> 4;
arch/sparc/kernel/sys_sunos.c:203: freepages -= (newbrk-oldbrk) >> PAGE_SHIFT;
arch/sparc/kernel/sys_sunos.c:204: if (freepages < 0)
arch/sparc/mm/init.c:454: freepages.min = i;
arch/sparc/mm/init.c:455: freepages.low = i << 1;
arch/sparc/mm/init.c:456: freepages.high = freepages.low + i;
arch/sparc64/kernel/sys_sunos32.c:127: int freepages, retval = -ENOMEM;
arch/sparc64/kernel/sys_sunos32.c:161: freepages = atomic_read(&buffermem_pages) >> PAGE_SHIFT;
arch/sparc64/kernel/sys_sunos32.c:162: freepages += atomic_read(&page_cache_size);
arch/sparc64/kernel/sys_sunos32.c:163: freepages >>= 1;
arch/sparc64/kernel/sys_sunos32.c:164: freepages += nr_free_pages();
arch/sparc64/kernel/sys_sunos32.c:165: freepages += nr_swap_pages;
arch/sparc64/kernel/sys_sunos32.c:166: freepages -= num_physpages >> 4;
arch/sparc64/kernel/sys_sunos32.c:167: freepages -= (newbrk-oldbrk) >> PAGE_SHIFT;
arch/sparc64/kernel/sys_sunos32.c:168: if (freepages < 0)
Documentation/sysctl/vm.txt:22:- freepages
Documentation/sysctl/vm.txt:112:This file contains the values in the struct freepages. That
Documentation/sysctl/vm.txt:117:freepages.min When the number of free pages in the system
Documentation/sysctl/vm.txt:120:freepages.low If the number of free pages gets below this
Documentation/sysctl/vm.txt:122:freepages.high The kernel tries to keep up to this amount of
andrea@athlon:~/devel/kernel/2.4.0-test1-ac22-class >

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:10 EST