Re: [PATCH v4 6/7] workqueue: Remove unnecessary acquisitions wrt workqueue flush

From: Ingo Molnar
Date: Wed Oct 25 2017 - 02:35:28 EST



* Byungchul Park <byungchul.park@xxxxxxx> wrote:

> The workqueue added manual acquisitions to catch deadlock cases.
> Now crossrelease was introduced, some of those are redundant, since
> wait_for_completion() already includes the acquisition for itself.
> Removed it.
>
> Signed-off-by: Byungchul Park <byungchul.park@xxxxxxx>
> ---
> include/linux/workqueue.h | 4 ++--
> kernel/workqueue.c | 19 +++----------------
> 2 files changed, 5 insertions(+), 18 deletions(-)
>
> diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
> index f3c47a0..1455b5e 100644
> --- a/include/linux/workqueue.h
> +++ b/include/linux/workqueue.h
> @@ -218,7 +218,7 @@ static inline void destroy_delayed_work_on_stack(struct delayed_work *work) { }
> \
> __init_work((_work), _onstack); \
> (_work)->data = (atomic_long_t) WORK_DATA_INIT(); \
> - lockdep_init_map(&(_work)->lockdep_map, #_work, &__key, 0); \
> + lockdep_init_map(&(_work)->lockdep_map, "(complete)"#_work, &__key, 0); \

This has a similar naming problem as the block bits: should be "wq_completion" or
such.

Thanks,

Ingo