summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrakash Surya <[email protected]>2014-01-03 10:11:14 -0800
committerBrian Behlendorf <[email protected]>2014-02-21 16:10:49 -0800
commit77765b540b79bdc42d4f25f174004bbbd06b0a32 (patch)
tree006b52e32b183d7bac182a62ddf4edcece497984
parent94520ca4626c7b01340473bccdaa3ed038a85a8f (diff)
Remove "arc_meta_used" from arc_adjust calculation
Using "arc_meta_used" to determine if the arc's mru list is over it's target value of "arc_p" doesn't seem correct. The size of the mru list and the value of "arc_meta_used", although related, are completely independent. Buffers contained in "arc_meta_used" may not even be contained in the arc's mru list. As such, this patch removes "arc_meta_used" from the calculation in arc_adjust. Signed-off-by: Prakash Surya <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #2110
-rw-r--r--module/zfs/arc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/module/zfs/arc.c b/module/zfs/arc.c
index 9c2d0eaab..f28748423 100644
--- a/module/zfs/arc.c
+++ b/module/zfs/arc.c
@@ -2144,8 +2144,7 @@ arc_adjust(void)
*/
adjustment = MIN((int64_t)(arc_size - arc_c),
- (int64_t)(arc_anon->arcs_size + arc_mru->arcs_size + arc_meta_used -
- arc_p));
+ (int64_t)(arc_anon->arcs_size + arc_mru->arcs_size - arc_p));
if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_DATA] > 0) {
delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_DATA], adjustment);