Go to file
Brian Behlendorf 70f02287f8 Fix ARC behavior on 32-bit systems
With the addition of the ABD changes consumption of the virtual
address space has been greatly reduced.  This exposed an issue on
CONFIG_HIGHMEM systems where free memory was being calculated
incorrectly.  Functionally this didn't cause any major problems
prior to ABD because a lack of available virtual address space
was used as an indicator of low memory.

This patch makes the following changes to address the issue and
in the process realigns the code further with OpenZFS.  There
are no substantive changes in behavior for 64-bit systems.

* Added CONFIG_HIGHMEM case to the arc_all_memory() and
  arc_free_memory() functions to only consider low memory pages
  on CONFIG_HIGHMEM systems.

* The arc_free_memory() function was updated to return bytes
  instead of pages to be consistent with the other helper
  functions.  In user space we make up some reasonable values
  since currently only testing is performed in this context.

* Adds three new values to the arcstats kstat to provide visibility
  in to the ARC's assessment of the memory situation:
  memory_all_bytes, memory_free_bytes, and memory_available_bytes.

* Added kmem_reap() call to arc_available_memory() for 32-bit
  builds to realign code with OpenZFS.

* Reduced size of test file in /async_destroy_001_pos.ksh to
  speed up test case.  Multiple txgs are still required.

* Move vdevs used by zpool_clear_001_pos and zpool_upgrade_002_pos
  to TEST_BASE_DIR location to speed up test cases.

Reviewed-by: David Quigley <david.quigley@intel.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #5352
Closes #6734
2017-10-10 15:19:19 -07:00
.github Update codecov.yml 2017-09-22 18:54:34 -07:00
cmd Use bitwise '&' instead of logical '&&' 2017-10-05 19:38:55 -07:00
config Fix "--enable-code-coverage" debug build 2017-09-22 22:16:18 -07:00
contrib Fix inclusion of libgcc_s.so on Void 2017-10-09 14:34:26 -07:00
etc vdev_id: extension for new scsi topology 2017-09-27 10:39:47 -07:00
include Remove dead code from AVL tree 2017-10-05 19:28:00 -07:00
lib Fix some ZFS Test Suite issues 2017-09-25 10:32:34 -07:00
man Update the default for zfs_txg_history 2017-09-29 15:58:52 -07:00
module Fix ARC behavior on 32-bit systems 2017-10-10 15:19:19 -07:00
rpm Retire legacy test infrastructure 2017-08-15 17:26:38 -07:00
scripts Fix some ZFS Test Suite issues 2017-09-25 10:32:34 -07:00
tests Fix ARC behavior on 32-bit systems 2017-10-10 15:19:19 -07:00
udev Fix spelling 2017-01-03 11:31:18 -06:00
.gitignore Add configure option to enable gcov analysis 2017-09-15 10:24:13 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Add 'zfs diff' coverage to the ZFS Test Suite 2017-09-28 13:04:14 -07:00
copy-builtin Allow c99 when building ZFS in the kernel tree 2017-03-27 12:31:15 -07:00
COPYRIGHT Retire legacy test infrastructure 2017-08-15 17:26:38 -07:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
Makefile.am Add support for "--enable-code-coverage" option 2017-09-22 18:49:57 -07:00
META Tag zfs-0.7.0 2017-07-26 10:13:25 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Update codecov.yml 2017-09-22 18:54:34 -07:00
TEST Run ztest for longer on "Coverage" builders 2017-09-26 12:29:32 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

img

ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community.

codecov

Official Resources

Installation

Full documentation for installing ZoL on your favorite Linux distribution can be found at our site.

Contribute & Develop

We have a separate document with contribution guidelines.