HomeFreeBSD

Don't acquire zthr_request_lock in zthr_wakeup

Description

Don't acquire zthr_request_lock in zthr_wakeup

Address a deadlock caused by simultaneous wakeup and cancel on a zthr
by remove the hold of zthr_request_lock from zthr_wakeup. This
allows thr_wakeup to not block a thread that is in the process of
being cancelled.

Reviewed-by: Matt Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Signed-off-by: Sara Hartse <sara.hartse@delphix.com>
Closes #8333

Details

Provenance
Sara Hartse <sara.hartse@gmail.com>Authored on Jan 30 2019, 8:31 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jan 30 2019, 8:31 PM
Parents
rG21e7cf5da89f: zdb -L should skip leak detection altogether
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG2747f599ff32: Don't acquire zthr_request_lock in zthr_wakeup (authored by Sara Hartse <sara.hartse@gmail.com>).Jan 30 2019, 8:31 PM