mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 19:19:32 +03:00
Revert "Evict meta data from ghost lists + l2arc headers"
This reverts commit fadd0c4da1
which
introduced a regression in honoring the meta limit.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Close #1660
This commit is contained in:
parent
bff32e0972
commit
c273d60d80
@ -2104,9 +2104,8 @@ arc_do_user_evicts(void)
|
|||||||
void
|
void
|
||||||
arc_adjust_meta(int64_t adjustment, boolean_t may_prune)
|
arc_adjust_meta(int64_t adjustment, boolean_t may_prune)
|
||||||
{
|
{
|
||||||
int64_t delta, tmp = adjustment;
|
int64_t delta;
|
||||||
|
|
||||||
/* Evict MRU+MFU meta data to ghost lists */
|
|
||||||
if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_METADATA] > 0) {
|
if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_METADATA] > 0) {
|
||||||
delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_METADATA], adjustment);
|
delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_METADATA], adjustment);
|
||||||
arc_evict(arc_mru, 0, delta, FALSE, ARC_BUFC_METADATA);
|
arc_evict(arc_mru, 0, delta, FALSE, ARC_BUFC_METADATA);
|
||||||
@ -2116,24 +2115,9 @@ arc_adjust_meta(int64_t adjustment, boolean_t may_prune)
|
|||||||
if (adjustment > 0 && arc_mfu->arcs_lsize[ARC_BUFC_METADATA] > 0) {
|
if (adjustment > 0 && arc_mfu->arcs_lsize[ARC_BUFC_METADATA] > 0) {
|
||||||
delta = MIN(arc_mfu->arcs_lsize[ARC_BUFC_METADATA], adjustment);
|
delta = MIN(arc_mfu->arcs_lsize[ARC_BUFC_METADATA], adjustment);
|
||||||
arc_evict(arc_mfu, 0, delta, FALSE, ARC_BUFC_METADATA);
|
arc_evict(arc_mfu, 0, delta, FALSE, ARC_BUFC_METADATA);
|
||||||
}
|
|
||||||
|
|
||||||
/* Evict ghost MRU+MFU meta data */
|
|
||||||
adjustment = tmp;
|
|
||||||
|
|
||||||
if (adjustment > 0 && arc_mru_ghost->arcs_size > 0) {
|
|
||||||
delta = MIN(arc_mru_ghost->arcs_size, adjustment);
|
|
||||||
arc_evict_ghost(arc_mru_ghost, 0, delta, ARC_BUFC_METADATA);
|
|
||||||
adjustment -= delta;
|
adjustment -= delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (adjustment > 0 && arc_mfu_ghost->arcs_size > 0) {
|
|
||||||
delta = MIN(arc_mfu_ghost->arcs_size, adjustment);
|
|
||||||
arc_evict_ghost(arc_mfu_ghost, 0, delta, ARC_BUFC_METADATA);
|
|
||||||
adjustment -= delta;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Request the VFS release some meta data */
|
|
||||||
if (may_prune && (adjustment > 0) && (arc_meta_used > arc_meta_limit))
|
if (may_prune && (adjustment > 0) && (arc_meta_used > arc_meta_limit))
|
||||||
arc_do_user_prune(zfs_arc_meta_prune);
|
arc_do_user_prune(zfs_arc_meta_prune);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user