There is a FreeBSD mailing list report that seems to point to a potential issue
with buffers used for L2ARC compression.

This message in the thread should explain my suspicions:
http://thread.gmane.org/gmane.os.freebsd.current/155757/focus=155781

As I mentioned in that thread, the data buffers allocated for L2ARC compression
are not accounted in ARC consumption stats nor via any other counter, so it is
not easy to monitor how much memory is used by them.
>From a quick look at the code I can not see how the buffers could be leaked or
kept in prolonged usage.  On the other hand, the buffers are tied to l2arc
header objects and arc header objects, which are placed on a special list of an
l2arc device, so I do not preclude a possibility of some complex behavior
arising there.  I do not understand the code well enough, so I can only vague
suspicions about possible interaction with ARC buffer eviction / release.

In any case, it would be nice to help the user having the problem to diagnose
it.  I am quite unfamiliar with the code, so it's hard for me to come up with
any suggestions.

Thanks!

P.S. As I was finishing writing this I noticed that l2arc_do_free_on_write()
does not seem to handle the temporary compression buffers.  Not sure if this
could be a problem.
-- 
Andriy Gapon
_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to