HomeFreeBSD

Adjust arc_p based on "bytes" in arc_shrink

Description

Adjust arc_p based on "bytes" in arc_shrink

In an attempt to prevent arc_c from collapsing "too fast", the
arc_shrink() function was updated to take a "bytes" parameter by this
change:

commit 302f753f1657c05a4287226eeda1f53ae431b8a7
Author: Brian Behlendorf <behlendorf1@llnl.gov>
Date:   Tue Mar 13 14:29:16 2012 -0700

    Integrate ARC more tightly with Linux

Unfortunately, that change failed to make a similar change to the way
that arc_p was updated. So, there still exists the possibility for arc_p
to collapse to near 0 when the kernel start calling the arc's shrinkers.

This change attempts to fix this, by decrementing arc_p by the "bytes"
parameter in the same way that arc_c is updated.

In addition, a minimum value of arc_p is attempted to be maintained,
similar to the way a minimum arc_p value is maintained in arc_adapt().

Signed-off-by: Prakash Surya <surya1@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #2110

Details

Provenance
Prakash Surya <surya1@llnl.gov>Authored on Dec 11 2013, 8:25 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Feb 21 2014, 10:53 PM
Parents
rG914158259225: Set zfs_arc_min to 4MB
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG39e055c44b30: Adjust arc_p based on "bytes" in arc_shrink (authored by Prakash Surya <surya1@llnl.gov>).Feb 21 2014, 10:53 PM