freebsd kernel with SKQ
Go to file
Alexander Motin ec0d805c51 9577 remove zfs_dbuf_evict_key tsd
The zfs_dbuf_evict_key TSD (thread-specific data) is not necessary - we can
instead pass a flag down in a few places to prevent recursive dbuf eviction.
Making this change has 3 benefits:

1. The code semantics are easier to understand.
2. On Linux, performance is improved, because creating/removing TSD values
(by setting to NULL vs non-NULL) is expensive, and we do it very often.
3. According to Nexenta, the current semantics can cause a deadlock when
concurrently calling dmu_objset_evict_dbufs() (which is rare today, but they
are working on a "parallel unmount" change that triggers this more easily)

illumos/illumos-gate@c2919acbea

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed by: Andy Stormont <astormont@racktopsystems.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
Author:     Matthew Ahrens <mahrens@delphix.com>
2018-08-02 23:59:52 +00:00
cmd 9523 Large alloc in zdb can cause trouble 2018-08-02 20:37:53 +00:00
common 9330 stack overflow when creating a deeply nested dataset 2018-08-02 21:12:52 +00:00
head 5066 remove support for non-ANSI compilation 2014-08-20 06:29:42 +00:00
lib 9457 libzfs_import.c:add_config() has a memory leak 2018-08-02 21:24:04 +00:00
man 8906 uts: illumos rootfs should support salted cksum 2018-08-02 23:28:47 +00:00
tools/ctf 5589 improper use of NULL in tools/ctf 2015-03-09 20:43:14 +00:00
uts 9577 remove zfs_dbuf_evict_key tsd 2018-08-02 23:59:52 +00:00
OPENSOLARIS.LICENSE