SVNews r332523

NOTE: This service is experimental and subject to change! Use at your own risk!

2018-04-16 00:54:58 - r332523 by mav (Alexander Motin)

Complete list of files affected by revision r332523:

(Note: At the moment, these links point to ViewVC on They are probably slow. Do not overuse.)

  History   Contents   Diff   MODIFY   /head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c  
  History   Contents   Diff   MODIFY   /head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c  
  History   Contents   Diff   MODIFY   /head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h  

Commit message:

9433 Fix ARC hit rate

When the compressed ARC feature was added in commit d3c2ae1
the method of reference counting in the ARC was modified. As
part of this accounting change the arc_buf_add_ref() function
was removed entirely.

This would have be fine but the arc_buf_add_ref() function
served a second undocumented purpose of updating the ARC access
information when taking a hold on a dbuf. Without this logic
in place a cached dbuf would not migrate its associated
arc_buf_hdr_t to the MFU list. This would negatively impact
the ARC hit rate, particularly on systems with a small ARC.

This change reinstates the missing call to arc_access() from
dbuf_hold() by implementing a new arc_buf_access() function.

Reviewed-by: Giuseppe Di Natale <>
Reviewed-by: Tony Hutter <>
Reviewed-by: Tim Chase <>
Reviewed by: George Wilson <>
Reviewed-by: George Melikov <>
Signed-off-by: Brian Behlendorf <>


Powered by Python FreeBSD support by secnetix GmbH & Co. KG

Page generated in 15 ms, 3 files printed. Current time is 2018-04-23 15:15:14. All times are in UTC/GMT.