To recap: after reports from FreeBSD ZFS users, I was able to capture two types of l2arc temporary compressions buffer leaks. One was in arc_release() called from dbuf_dirty(). The other was in arc_hdr_destroy() called from arc_write_done() in the ZIO_FLAG_IO_REWRITE case. In both case the mentioned calls happened concurrently with l2arc writes and the corresponding buffers were in ARC_L2_WRITING state. Perhaps there were more cases...
So, here is my current patch for the issue: https://github.com/avg-I/freebsd/compare/master...wip;hc;l2arc-compression-memory-leak.diff Drop .diff to get a github branch comparison interface for more details, if wanted. An earlier version of this patch has already been successfully tested by the original reporters. The patch also survives HybridCluster testing without any leaks or triggered assertions. Please review and comment. Thank you! -- Andriy Gapon _______________________________________________ developer mailing list [email protected] http://lists.open-zfs.org/mailman/listinfo/developer
