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

Reply via email to