]> granicus.if.org Git - spl/commitdiff
Linux 3.11 compat: Replace num_physpages with totalram_pages
authorRichard Yao <ryao@gentoo.org>
Wed, 7 Aug 2013 08:50:04 +0000 (04:50 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 8 Aug 2013 16:14:29 +0000 (09:14 -0700)
num_physpages was removed by
torvalds/linux@cfa11e08ed39eb28a9eff9a907b20913020c69b5, so lets replace
it with totalram_pages.

This is a bug fix as much as it is a compatibility fix because
num_physpages did not reflect the number of pages actually available to
the kernel:

http://lkml.indiana.edu/hypermail/linux/kernel/0908.2/01001.html

Also, there are known issues with memory calculations when ZFS is in a
Xen dom0. There is a chance that using totalram_pages could resolve
them. This conjecture is untested at the time of writing.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #273

include/sys/vmsystm.h
module/spl/spl-debug.c

index 34aea2b98f01f283cc381e754f507937042b66b8..909749103bcfc7fabf2a6003ad718b2ca594dba5 100644 (file)
@@ -41,7 +41,7 @@
  */
 #define membar_producer()              smp_wmb()
 
-#define physmem                                num_physpages
+#define physmem                                totalram_pages
 #define freemem                                nr_free_pages()
 #define availrmem                      spl_kmem_availrmem()
 
index 37599acdd3e6a672a96bba6f63119e46c9a763a7..d450368b1038084646e6068a375f2bc9990e9eee 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/spinlock.h>
 #include <linux/proc_compat.h>
 #include <linux/file_compat.h>
+#include <linux/swap.h>
 #include <sys/sysmacros.h>
 #include <spl-debug.h>
 #include <spl-trace.h>
@@ -548,7 +549,7 @@ trace_print_to_console(struct spl_debug_header *hdr, int mask, const char *buf,
 static int
 trace_max_debug_mb(void)
 {
-        return MAX(512, ((num_physpages >> (20 - PAGE_SHIFT)) * 80) / 100);
+        return MAX(512, ((totalram_pages >> (20 - PAGE_SHIFT)) * 80) / 100);
 }
 
 static struct trace_page *
@@ -1188,7 +1189,7 @@ spl_debug_init(void)
 
         /* If spl_debug_mb is set to an invalid value or uninitialized
          * then just make the total buffers smp_num_cpus TCD_MAX_PAGES */
-        if (max > (num_physpages >> (20 - 2 - PAGE_SHIFT)) / 5 ||
+        if (max > (totalram_pages >> (20 - 2 - PAGE_SHIFT)) / 5 ||
             max >= 512 || max < 0) {
                 max = TCD_MAX_PAGES;
         } else {