]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] architecture-independand si_meminfo
authorChristoph Hellwig <hch@infradead.org>
Sun, 5 May 2002 09:56:32 +0000 (02:56 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sun, 5 May 2002 09:56:32 +0000 (02:56 -0700)
Si_meminfo() is basically the same for all architectures (mips is a little
different by providing a value for the shared field that is different from
the originial intent, I will come back to this later), so it makes to have just
one instance of it:

25 files changed:
arch/alpha/mm/init.c
arch/alpha/mm/numa.c
arch/arm/mm/init.c
arch/cris/mm/init.c
arch/i386/mm/init.c
arch/ia64/mm/init.c
arch/m68k/mm/init.c
arch/m68k/mm/motorola.c
arch/mips/mm/init.c
arch/mips64/mm/init.c
arch/mips64/sgi-ip27/ip27-memory.c
arch/parisc/mm/init.c
arch/ppc/mm/init.c
arch/ppc64/mm/init.c
arch/s390/mm/init.c
arch/s390x/mm/init.c
arch/sh/mm/init.c
arch/sparc/kernel/sun4d_smp.c
arch/sparc/kernel/sun4m_smp.c
arch/sparc/mm/init.c
arch/sparc/mm/srmmu.c
arch/sparc64/mm/init.c
arch/x86_64/mm/init.c
include/linux/swap.h
mm/page_alloc.c

index 0f5e0bcd6b9141a0bbd64654cdfe21ebd2870dbf..48056eca067b063cc56cf16211281a9bdd8e9490 100644 (file)
@@ -36,8 +36,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 
-unsigned long totalram_pages;
-
 extern void die_if_kernel(char *,struct pt_regs *,long);
 
 static struct pcb_struct original_pcb;
@@ -390,15 +388,3 @@ free_initrd_mem(unsigned long start, unsigned long end)
        printk ("Freeing initrd memory: %ldk freed\n", (end - __start) >> 10);
 }
 #endif
-
-void
-si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = 0;
-       val->mem_unit = PAGE_SIZE;
-}
index 0f75fd2bc66605a57ef98d576fbd781aecb701f8..fbc56352ed46fdc6ad2a5a91fc4bde754aef4a9d 100644 (file)
@@ -358,7 +358,6 @@ void __init mem_init(void)
        extern int page_is_ram(unsigned long) __init;
        extern char _text, _etext, _data, _edata;
        extern char __init_begin, __init_end;
-       extern unsigned long totalram_pages;
        unsigned long nid, i;
        mem_map_t * lmem_map;
 
index 1fb1c8fa7ccc06787077b7aa955b13fb4394485e..2a36b155a8136a00d5e9d68a76f9ac034317ea13 100644 (file)
@@ -48,7 +48,6 @@
 
 #define TABLE_SIZE     ((TABLE_OFFSET + PTRS_PER_PTE) * sizeof(pte_t))
 
-static unsigned long totalram_pages;
 extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
 extern char _stext, _text, _etext, _end, __init_begin, __init_end;
 
@@ -631,14 +630,3 @@ static int __init keepinitrd_setup(char *__unused)
 
 __setup("keepinitrd", keepinitrd_setup);
 #endif
-
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram  = totalram_pages;
-       val->sharedram = 0;
-       val->freeram   = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh  = 0;
-       val->mem_unit  = PAGE_SIZE;
-}
index 0fc2c2135c4aa41c1c5524b58c110c8a159392d6..dd049a293a7e4cf5cc94519a16e4d4c4f7fc3638 100644 (file)
 #include <asm/io.h>
 #include <asm/mmu_context.h>
 
-static unsigned long totalram_pages;
-
 struct pgtable_cache_struct quicklists;  /* see asm/pgalloc.h */
 
 const char bad_pmd_string[] = "Bad pmd in pte_alloc: %08lx\n";
@@ -471,15 +469,3 @@ free_initmem(void)
         printk ("Freeing unused kernel memory: %luk freed\n", 
                (&__init_end - &__init_begin) >> 10);
 }
-
-void 
-si_meminfo(struct sysinfo *val)
-{
-        val->totalram = totalram_pages;
-        val->sharedram = 0;
-        val->freeram = nr_free_pages();
-        val->bufferram = atomic_read(&buffermem_pages);
-        val->totalhigh = 0;
-        val->freehigh = 0;
-        val->mem_unit = PAGE_SIZE;
-}
index b9eb3adfbd391e0a3ea2f1a0c8012fdad3a51c4b..8e565c1f4c81ec92d89a377baff9afdcc95ee4a7 100644 (file)
@@ -41,8 +41,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 unsigned long highstart_pfn, highend_pfn;
-static unsigned long totalram_pages;
-static unsigned long totalhigh_pages;
 
 /*
  * NOTE: pagetable_init alloc all the fixmap pagetables contiguous on the
@@ -561,18 +559,6 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 }
 #endif
 
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = totalhigh_pages;
-       val->freehigh = nr_free_highpages();
-       val->mem_unit = PAGE_SIZE;
-       return;
-}
-
 #if defined(CONFIG_X86_PAE)
 static struct kmem_cache_s *pae_pgd_cachep;
 
index 666e9749f3b2427c1b457391b543ed6bc84b646d..de8b287d756f7d732161ecba87d6d7bee266b78a 100644 (file)
@@ -36,8 +36,6 @@ extern void ia64_tlb_init (void);
 
 unsigned long MAX_DMA_ADDRESS = PAGE_OFFSET + 0x100000000UL;
 
-static unsigned long totalram_pages;
-
 static int pgt_cache_water[2] = { 25, 50 };
 
 void
@@ -158,19 +156,6 @@ free_initrd_mem (unsigned long start, unsigned long end)
        }
 }
 
-void
-si_meminfo (struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = 0;
-       val->mem_unit = PAGE_SIZE;
-       return;
-}
-
 void
 show_mem(void)
 {
index 7d7024822bacfa2dd903459715870023424cc279..f6747f5a65daebcc85bbc150825b884486d871a7 100644 (file)
@@ -35,8 +35,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 
-unsigned long totalram_pages = 0;
-
 int do_check_pgt_cache(int low, int high)
 {
        int freed = 0;
@@ -202,18 +200,3 @@ void free_initrd_mem(unsigned long start, unsigned long end)
        printk ("Freeing initrd memory: %dk freed\n", pages);
 }
 #endif
-
-void si_meminfo(struct sysinfo *val)
-{
-    unsigned long i;
-
-    i = max_mapnr;
-    val->totalram = totalram_pages;
-    val->sharedram = 0;
-    val->freeram = nr_free_pages();
-    val->bufferram = atomic_read(&buffermem_pages);
-    val->totalhigh = 0;
-    val->freehigh = 0;
-    val->mem_unit = PAGE_SIZE;
-    return;
-}
index 059e97e1a0f73661dae425bca78288298c713130..349b563164423b46e536f465136f24b3b3417523 100644 (file)
@@ -286,7 +286,6 @@ void __init paging_init(void)
 }
 
 extern char __init_begin, __init_end;
-extern unsigned long totalram_pages;
 
 void free_initmem(void)
 {
index b1a77827f57115c4773c6b15df83c208a9f3f75b..3eb08906fad68df2c4b804e992c7c345c84af980 100644 (file)
@@ -45,8 +45,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 
-static unsigned long totalram_pages;
-
 extern void prom_free_prom_memory(void);
 
 
@@ -265,16 +263,3 @@ void free_initmem(void)
        printk("Freeing unused kernel memory: %dk freed\n",
               (&__init_end - &__init_begin) >> 10);
 }
-
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = atomic_read(&shmem_nrpages);
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = nr_free_highpages();
-       val->mem_unit = PAGE_SIZE;
-
-       return;
-}
index 9906571b3bd560d7b8af66adf180d30420263c4b..58c75949f178cae6b15644c29982a318290aca7a 100644 (file)
@@ -40,8 +40,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 
-unsigned long totalram_pages;
-
 void pgd_init(unsigned long page)
 {
        unsigned long *p, *end;
@@ -458,17 +456,3 @@ free_initmem(void)
        printk("Freeing unused kernel memory: %ldk freed\n",
               (&__init_end - &__init_begin) >> 10);
 }
-
-void
-si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = atomic_read(&shmem_nrpages);
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = nr_free_highpages();
-       val->mem_unit = PAGE_SIZE;
-
-       return;
-}
index 04aed83b7b1c93c5fc0dead15d4bd54f84e10265..41f13c3b63dccc5b32f0e2bacb85815ac6a619be 100644 (file)
@@ -265,7 +265,6 @@ void __init mem_init(void)
 {
        extern char _stext, _etext, _fdata, _edata;
        extern char __init_begin, __init_end;
-       extern unsigned long totalram_pages;
        extern unsigned long setup_zero_pages(void);
        cnodeid_t nid;
        unsigned long tmp;
index 6ff2a0852ca4d045f6e2d1bba78f634807fede64..d93c70cdb9b80b13c4ad67d70db788c6cc11ef75 100644 (file)
@@ -20,7 +20,6 @@
 
 #include <asm/pgalloc.h>
 
-static unsigned long totalram_pages;
 extern unsigned long max_pfn, mem_max;
 
 void free_initmem(void)  {
@@ -451,29 +450,3 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 #endif
 }
 #endif
-
-void si_meminfo(struct sysinfo *val)
-{
-       int i;
-
-       i = max_mapnr;
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-#if 0
-       while (i-- > 0)  {
-               if (PageReserved(mem_map+i))
-                       continue;
-               val->totalram++;
-               if (!atomic_read(&mem_map[i].count))
-                       continue;
-               val->sharedram += atomic_read(&mem_map[i].count) - 1;
-       }
-       val->totalram <<= PAGE_SHIFT;
-       val->sharedram <<= PAGE_SHIFT;
-#endif
-       val->totalhigh = 0;
-       val->freehigh = 0;
-       return;
-}
index fc773216c693125c98c690c342e68f501e556abf..761f59c8281fb97bde809ee5783a3e06ce828afe 100644 (file)
@@ -70,8 +70,6 @@ unsigned long ppc_memoffset = PAGE_OFFSET;
 int mem_init_done;
 int init_bootmem_done;
 int boot_mapsize;
-unsigned long totalram_pages;
-unsigned long totalhigh_pages;
 #ifdef CONFIG_ALL_PPC
 unsigned long agp_special_page;
 #endif
@@ -145,17 +143,6 @@ void show_mem(void)
        printk("%ld buffermem pages\n", nr_buffermem_pages());
 }
 
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = totalhigh_pages;
-       val->freehigh = nr_free_highpages();
-       val->mem_unit = PAGE_SIZE;
-}
-
 /* Free up now-unused memory */
 static void free_sec(unsigned long start, unsigned long end, const char *name)
 {
index 5660b7d4bf1b6e6d5bebc5be54b3cf4fb9ddc5b4..44e609973868bdf5426c50298204da8123800e4a 100644 (file)
@@ -73,7 +73,6 @@ int mem_init_done;
 unsigned long ioremap_bot = IMALLOC_BASE;
 
 static int boot_mapsize;
-static unsigned long totalram_pages;
 
 extern pgd_t swapper_pg_dir[];
 extern char __init_begin, __init_end;
@@ -138,17 +137,6 @@ void show_mem(void)
        printk("%ld buffermem pages\n", nr_buffermem_pages());
 }
 
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = 0;
-       val->mem_unit = PAGE_SIZE;
-}
-
 void *
 ioremap(unsigned long addr, unsigned long size)
 {
index e7c3b741a5e108d366d9742865ae7840dcd5e15c..3e4a7503db5ee61e171f127574463925508acbfe 100644 (file)
@@ -39,8 +39,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 
-static unsigned long totalram_pages;
-
 pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((__aligned__(PAGE_SIZE)));
 char  empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE)));
 
@@ -230,14 +228,3 @@ void free_initrd_mem(unsigned long start, unsigned long end)
         }
 }
 #endif
-
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = 0;
-       val->mem_unit = PAGE_SIZE;
-}
index db71cc9a6f57d2671ba655ff014d1f1908b7ea5b..dd4deb0a266131ceb43983ed6ef559ea34217812 100644 (file)
@@ -39,8 +39,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 
-static unsigned long totalram_pages;
-
 pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((__aligned__(PAGE_SIZE)));
 char  empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE)));
 
@@ -243,17 +241,6 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 }
 #endif
 
-void si_meminfo(struct sysinfo *val)
-{
-        val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = 0;
-       val->mem_unit = PAGE_SIZE;
-}
-
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
  * Emacs will notice this stuff at the end of the file and automatically
index 61002329c5cb49a32eb9a5ab64f832a3276850c1..3fa77a3d543b188ef3ee8f14a3b4dc12ec0e1131 100644 (file)
@@ -48,9 +48,6 @@ pg_data_t discontig_page_data[NR_NODES];
 bootmem_data_t discontig_node_bdata[NR_NODES];
 #endif
 
-static unsigned long totalram_pages;
-static unsigned long totalhigh_pages;
-
 void show_mem(void)
 {
        int i, total = 0, reserved = 0;
@@ -203,15 +200,3 @@ void free_initrd_mem(unsigned long start, unsigned long end)
        printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10);
 }
 #endif
-
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = totalhigh_pages;
-       val->freehigh = nr_free_highpages();
-       val->mem_unit = PAGE_SIZE;
-       return;
-}
index 4c2dd850c8256189dc8e0f5b3c6b7aacf5b93516..248cc71c982164e71fe6fb997c8e7c70db5824e9 100644 (file)
@@ -63,8 +63,6 @@ extern volatile int smp_process_available;
 extern volatile int smp_commenced;
 extern int __smp4d_processor_id(void);
 
-extern unsigned long totalram_pages;
-
 /* #define SMP_DEBUG */
 
 #ifdef SMP_DEBUG
index e3a730ab55c0ca0c20269aca814285d683a821e0..7641b2699b3ad05fe1d2e885ad9aeee79c63c69e 100644 (file)
@@ -59,8 +59,6 @@ extern volatile int smp_process_available;
 extern volatile int smp_commenced;
 extern int __smp4m_processor_id(void);
 
-extern unsigned long totalram_pages;
-
 /*#define SMP_DEBUG*/
 
 #ifdef SMP_DEBUG
index ddd1f7879cdd0fb18181775dceff1534aa3cfceb..4c0fb5ecba54cf6b300a794bd76d0571e78cec7a 100644 (file)
@@ -55,8 +55,6 @@ extern unsigned int sparc_ramdisk_image;
 extern unsigned int sparc_ramdisk_size;
 
 unsigned long highstart_pfn, highend_pfn;
-unsigned long totalram_pages;
-unsigned long totalhigh_pages;
 
 pte_t *kmap_pte;
 pgprot_t kmap_prot;
@@ -505,18 +503,6 @@ void free_initrd_mem(unsigned long start, unsigned long end)
 }
 #endif
 
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = totalhigh_pages;
-       val->freehigh = nr_free_highpages();
-
-       val->mem_unit = PAGE_SIZE;
-}
-
 void flush_page_to_ram(struct page *page)
 {
        unsigned long vaddr = (unsigned long)page_address(page);
index b0fa11a65401c7229d54df60fb80143aa062be0b..f3549769085977f275e2d1146c8061cbed6e0157 100644 (file)
@@ -1105,7 +1105,6 @@ static inline void map_kernel(void)
 extern void sparc_context_init(int);
 
 extern int linux_num_cpus;
-extern unsigned long totalhigh_pages;
 
 void (*poke_srmmu)(void) __initdata = NULL;
 
index d6a092dc0f1c028b8e5aee52de663cc9dcf9da4b..1f042f06ba45a5b6e5141d3deb26242f34329ea7 100644 (file)
@@ -1790,17 +1790,3 @@ void free_initrd_mem(unsigned long start, unsigned long end)
        }
 }
 #endif
-
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = num_physpages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-
-       /* These are always zero on Sparc64. */
-       val->totalhigh = 0;
-       val->freehigh = 0;
-
-       val->mem_unit = PAGE_SIZE;
-}
index b31f138a00ecb26c142a2fe6297cf34365208127..069697f3dc150b8ddbdb06788fe43878c3ce2978 100644 (file)
@@ -39,8 +39,6 @@
 
 mmu_gather_t mmu_gathers[NR_CPUS];
 
-static unsigned long totalram_pages;
-
 /*
  * NOTE: pagetable_init alloc all the fixmap pagetables contiguous on the
  * physical space so we can cache the place of the first one and move
@@ -385,15 +383,3 @@ void free_initrd_mem(unsigned long start, unsigned long end)
        }
 }
 #endif
-
-void si_meminfo(struct sysinfo *val)
-{
-       val->totalram = totalram_pages;
-       val->sharedram = 0;
-       val->freeram = nr_free_pages();
-       val->bufferram = atomic_read(&buffermem_pages);
-       val->totalhigh = 0;
-       val->freehigh = nr_free_highpages();
-       val->mem_unit = PAGE_SIZE;
-       return;
-}
index c234a654e12594cce832a81652f65a4d1293860c..1674b5acd6f701dc81530156cfbbf9c806a5d92f 100644 (file)
@@ -96,6 +96,8 @@ extern int nr_swap_pages;
 /* Swap 50% full? Release swapcache more aggressively.. */
 #define vm_swap_full() (nr_swap_pages*2 < total_swap_pages)
 
+extern unsigned long totalram_pages;
+extern unsigned long totalhigh_pages;
 extern unsigned int nr_free_pages(void);
 extern unsigned int nr_free_buffer_pages(void);
 extern unsigned int nr_free_pagecache_pages(void);
index b896e28f0dda518a14217306984065164afbaf72..17ced9e5f903442e169ee3072f1e501e73bffbc5 100644 (file)
@@ -23,6 +23,8 @@
 #include <linux/compiler.h>
 #include <linux/module.h>
 
+unsigned long totalram_pages;
+unsigned long totalhigh_pages;
 int nr_swap_pages;
 int nr_active_pages;
 int nr_inactive_pages;
@@ -606,6 +608,22 @@ unsigned long get_page_cache_size(void)
        return ps.nr_pagecache;
 }
 
+void si_meminfo(struct sysinfo *val)
+{
+       val->totalram = totalram_pages;
+       val->sharedram = 0;
+       val->freeram = nr_free_pages();
+       val->bufferram = atomic_read(&buffermem_pages);
+#ifdef CONFIG_HIGHMEM
+       val->totalhigh = totalhigh_pages;
+       val->freehigh = nr_free_highpages();
+#else
+       val->totalhigh = 0;
+       val->freehigh = 0;
+#endif
+       val->mem_unit = PAGE_SIZE;
+}
+
 #define K(x) ((x) << (PAGE_SHIFT-10))
 
 /*