Re: workqueue_destroy() can cause hanging up in the some cases

2019-09-06 Thread Kengo NAKAHARA
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().

Re: workqueue_destroy() can cause hanging up in the some cases

2019-09-05 Thread Taylor R Campbell
> 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

workqueue_destroy() can cause hanging up in the some cases

2019-09-05 Thread Kengo NAKAHARA
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)