Re: [PATCH 2/2] sched/wait: assert the wait_queue_head lock is held in __wake_up_common

From: Ingo Molnar
Date: Wed Dec 06 2017 - 19:50:42 EST



* Christoph Hellwig <hch@xxxxxx> wrote:

> Better ensure we actually hold the lock using lockdep than just commenting
> on it. Due to the various exported _locked interfaces it is far too easy
> to get the locking wrong.
>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> ---
> kernel/sched/wait.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c
> index 98feab7933c7..347c06c8222e 100644
> --- a/kernel/sched/wait.c
> +++ b/kernel/sched/wait.c
> @@ -76,6 +76,8 @@ static int __wake_up_common(struct wait_queue_head *wq_head, unsigned int mode,
> wait_queue_entry_t *curr, *next;
> int cnt = 0;
>
> + lockdep_assert_held(&wq_head->lock);
> +
> if (bookmark && (bookmark->flags & WQ_FLAG_BOOKMARK)) {
> curr = list_next_entry(bookmark, entry);

Makes sense. Would you like to carry this patch together with the epoll patch, to
be able to test them both? If yes then:

Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>

... otherwise I can pick this up into the scheduler tree as well.

Thanks,

Ingo