mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
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 <surya1@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #2110
This commit is contained in:
parent
94520ca462
commit
77765b540b
@ -2144,8 +2144,7 @@ arc_adjust(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
adjustment = MIN((int64_t)(arc_size - arc_c),
|
adjustment = MIN((int64_t)(arc_size - arc_c),
|
||||||
(int64_t)(arc_anon->arcs_size + arc_mru->arcs_size + arc_meta_used -
|
(int64_t)(arc_anon->arcs_size + arc_mru->arcs_size - arc_p));
|
||||||
arc_p));
|
|
||||||
|
|
||||||
if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_DATA] > 0) {
|
if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_DATA] > 0) {
|
||||||
delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_DATA], adjustment);
|
delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_DATA], adjustment);
|
||||||
|
Loading…
Reference in New Issue
Block a user