mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-28 11:59:34 +03:00
9829574834
* 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 <david.chen@osnexus.com> Gvozden Neskovic <neskovic@gmail.com> Jinshan Xiong <jinshan.xiong@intel.com> Isaac Huang <he.huang@intel.com> David Quigley <david.quigley@intel.com> Brian Behlendorf <behlendorf1@llnl.gov>
68 lines
2.0 KiB
C
68 lines
2.0 KiB
C
/*
|
|
* CDDL HEADER START
|
|
*
|
|
* The contents of this file are subject to the terms of the
|
|
* Common Development and Distribution License, Version 1.0 only
|
|
* (the "License"). You may not use this file except in compliance
|
|
* with the License.
|
|
*
|
|
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
|
* or http://www.opensolaris.org/os/licensing.
|
|
* See the License for the specific language governing permissions
|
|
* and limitations under the License.
|
|
*
|
|
* When distributing Covered Code, include this CDDL HEADER in each
|
|
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
|
* If applicable, add the following below this CDDL HEADER, with the
|
|
* fields enclosed by brackets "[]" replaced with your own identifying
|
|
* information: Portions Copyright [yyyy] [name of copyright owner]
|
|
*
|
|
* CDDL HEADER END
|
|
*/
|
|
/*
|
|
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
|
|
* Use is subject to license terms.
|
|
*/
|
|
|
|
#ifndef _LIBSPL_SYS_PARAM_H
|
|
#define _LIBSPL_SYS_PARAM_H
|
|
|
|
#include_next <sys/param.h>
|
|
#include <unistd.h>
|
|
|
|
/*
|
|
* File system parameters and macros.
|
|
*
|
|
* The file system is made out of blocks of at most MAXBSIZE units,
|
|
* with smaller units (fragments) only in the last direct block.
|
|
* MAXBSIZE primarily determines the size of buffers in the buffer
|
|
* pool. It may be made larger without any effect on existing
|
|
* file systems; however making it smaller make make some file
|
|
* systems unmountable.
|
|
*
|
|
* Note that the blocked devices are assumed to have DEV_BSIZE
|
|
* "sectors" and that fragments must be some multiple of this size.
|
|
*/
|
|
#define MAXBSIZE 8192
|
|
#define DEV_BSIZE 512
|
|
#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */
|
|
|
|
#define MAXNAMELEN 256
|
|
#define MAXOFFSET_T LLONG_MAX
|
|
|
|
#define UID_NOBODY 60001 /* user ID no body */
|
|
#define GID_NOBODY UID_NOBODY
|
|
#define UID_NOACCESS 60002 /* user ID no access */
|
|
|
|
#define MAXUID UINT32_MAX /* max user id */
|
|
#define MAXPROJID MAXUID /* max project id */
|
|
|
|
#ifdef PAGESIZE
|
|
#undef PAGESIZE
|
|
#endif /* PAGESIZE */
|
|
|
|
extern size_t spl_pagesize(void);
|
|
#define PAGESIZE (spl_pagesize())
|
|
|
|
#endif
|