Pawel Jakub Dawidek
2010-May-06 18:38 UTC
[zfs-code] Possible lock order reversal between arc_eviction_mtx and b_evict_lock.
Hi. Our WITNESS mechanism for LORs discovery reports LOR between the arc_eviction_mtx and b_evict_lock locks. For example in functions arc_do_user_evicts() and arc_hdr_destroy() the order is arc_eviction_mtx, b_evict_lock. In function arc_evict() the order is b_evict_lock, arc_eviction_mtx. I propose to change the order in arc_hdr_destroy() and change arc_do_user_evict() to not acquire both locks at the same time. The arc_do_user_evict() in FreeBSD was rewritten by Kip Macy and also allows for more parallelism. The patch is here: http://people.freebsd.org/~pjd/patches/arc.c.7.patch Does it look correct? -- Pawel Jakub Dawidek http://www.wheelsystems.com pjd at FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 196 bytes Desc: not available URL: <http://mail.opensolaris.org/pipermail/zfs-code/attachments/20100506/46c0b6a3/attachment.bin>