aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libspl/include/sys
diff options
context:
space:
mode:
authorChunwei Chen <[email protected]>2016-10-26 00:32:23 -0400
committerBrian Behlendorf <[email protected]>2016-11-29 14:34:33 -0800
commit982957483450d53683681f456d1c84cfeb56afad (patch)
tree6efbe72e9a2b57474e855dae9d74377443bc9f27 /lib/libspl/include/sys
parent4f60152910c6bbc1c7975409f852af7ef11c7007 (diff)
ABD optimized page allocation code
* Convert ABD to use the Linux Kernel scatterlist implementation instead of the hand rolled one from illumos. * Scatter ABDs are preferentially populated with higher order compound pages from a single zone. Allocation size is progressively decreased until it can be satisfied without performing reclaim or compaction. * An alternate page allocator is provided for kernels older than 3.6 and for CONFIG_HIGHMEM systems. This allocator is designed as a fallback for maximum compatibility. * Extended abdstats to provide visibility in the the allocator. * Add cached value for PAGESIZE in userspace. Contributions-by: Chunwei Chen <[email protected]> Gvozden Neskovic <[email protected]> Jinshan Xiong <[email protected]> Isaac Huang <[email protected]> David Quigley <[email protected]> Brian Behlendorf <[email protected]>
Diffstat (limited to 'lib/libspl/include/sys')
-rw-r--r--lib/libspl/include/sys/param.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libspl/include/sys/param.h b/lib/libspl/include/sys/param.h
index 9f362dd8b..c22d508f9 100644
--- a/lib/libspl/include/sys/param.h
+++ b/lib/libspl/include/sys/param.h
@@ -57,8 +57,11 @@
#define MAXUID UINT32_MAX /* max user id */
#define MAXPROJID MAXUID /* max project id */
-#ifndef PAGESIZE
-#define PAGESIZE (sysconf(_SC_PAGESIZE))
+#ifdef PAGESIZE
+#undef PAGESIZE
#endif /* PAGESIZE */
+extern size_t spl_pagesize(void);
+#define PAGESIZE (spl_pagesize())
+
#endif