Hi,
On 2019/09/06 12:45, Taylor R Campbell wrote:
Date: Fri, 6 Sep 2019 12:17:32 +0900 From: Kengo NAKAHARA
I found workqueue_destroy() for WQ_PERCPU workqueue can cause
hanging up while preempt disabled. The caller of
workqueue_destroy() requires for q_worker kthread to call
kthread_exit().
> Date: Fri, 6 Sep 2019 12:17:32 +0900
> From: Kengo NAKAHARA
>
> I found workqueue_destroy() for WQ_PERCPU workqueue can cause hanging up
> while preempt disabled. The caller of workqueue_destroy() requires
> for q_worker kthread to call kthread_exit(). In the implementation,
> the caller do
Hi,
I found workqueue_destroy() for WQ_PERCPU workqueue can cause hanging up
while preempt disabled. The caller of workqueue_destroy() requires
for q_worker kthread to call kthread_exit(). In the implementation,
the caller do cv_wait()(*1) until q_worker sets NULL to q->q_worker(*2).
- (*1)