Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix most zfs_arc_* mod params not actually being modifiable at runtime #8463

Merged

Commits on Feb 27, 2019

  1. Fix most zfs_arc_* mod params not actually being modifiable at runtime

    Most of the zfs_arc_* module parameters do not have their values used by
    the ARC code directly. Instead, there is a function, arc_tuning_update,
    which is called during module initialization and periodically
    thereafter, whose job is to fetch the module parameter values, clamp/
    limit them appropriately, and then assign those values to a separate set
    of internal variables that are actually referenced by the ARC code.
    
    Commit 3ec34e5 featured an overhaul of arc_reclaim_thread, which is the
    former location where the post-init-time calls to arc_tuning_update
    would occur. The rework split the work previously done by the
    arc_reclaim_thread into a pair of replacement threads; and
    unfortunately, the call to arc_tuning_update fell through the cracks and
    was lost in the reorganization.
    
    This meant that changing almost any ARC-related zfs module parameter via
    /sys/module/zfs/parameters/ would result in the module parameter value
    itself appearing to change; however the modification would not actually
    propagate to the ARC code and have any real effect.
    
    This commit reinstates the post-init-time call to arc_tuning_update. It
    is now called during arc_adjust_cb_check; this should be equivalent to
    its former call location in arc_reclaim_thread.
    
    Signed-off-by: Justin Gottula <justin@jgottula.com>
    jgottula committed Feb 27, 2019
    Configuration menu
    Copy the full SHA
    38e7c18 View commit details
    Browse the repository at this point in the history