]> git.proxmox.com Git - mirror_zfs.git/commit - module/zfs/arc.c
Update arc_memory_throttle() to check pageout
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 28 Jul 2015 18:30:00 +0000 (11:30 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 30 Jul 2015 18:52:12 +0000 (11:52 -0700)
commit7e8bddd01952722b8f8bda773b3c96cb49b2e2bc
tree8cf73340385ce03104af185142788aca3f8e0b56
parent11f552fa9074a94dac3463300e369013ec2f1544
Update arc_memory_throttle() to check pageout

This brings the behavior of arc_memory_throttle() back in sync with
illumos.  The updated memory throttling policy roughly goes like this:

* Never throttle if more than 10% of memory is free.  This threshold
  is configurable with the zfs_arc_lotsfree_percent module option.

* Minimize any throttling of kswapd even when free memory is below
  the set threshold.  Allow it to write out pages as quickly as
  possible to help alleviate the memory pressure.

* Delay all other threads when free memory is below the set threshold
  in order to avoid compounding the memory pressure.  Buffers will be
  evicted from the ARC to reduce the issue.

The Linux specific zfs_arc_memory_throttle_disable module option has
been removed in favor of the existing zfs_arc_lotsfree_percent tuning.
Setting zfs_arc_lotsfree_percent=0 will have the same effect as
zfs_arc_memory_throttle_disable and it was therefore redundant.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #3637
man/man5/zfs-module-parameters.5
module/zfs/arc.c