Re: [PATCH] test_rhashtable: remove semaphore usage

From: Arnd Bergmann
Date: Sun Dec 16 2018 - 14:50:29 EST


On Fri, Dec 14, 2018 at 10:25 PM David Miller <davem@xxxxxxxxxxxxx> wrote:
>
> From: Arnd Bergmann <arnd@xxxxxxxx>
> Date: Mon, 10 Dec 2018 22:17:20 +0100
>
> > @@ -635,8 +636,9 @@ static int threadfunc(void *data)
> > int i, step, err = 0, insert_retries = 0;
> > struct thread_data *tdata = data;
> >
> > - up(&prestart_sem);
> > - if (down_interruptible(&startup_sem))
> > + if (atomic_dec_and_test(&startup_count))
> > + wake_up(&startup_wait);
> > + if (wait_event_interruptible(startup_wait, atomic_read(&startup_count) == -1))
> > pr_err(" thread[%d]: down_interruptible failed\n", tdata->id);
>
> Arnd, please adjust this pr_err() text to match the new code as pointed out by
> Phil Sutter.

Done, and resent as v2. I also noticed that the version I sent did not apply
cleanly on current kernels, so I fixed that, and also added a 'goto out' in
the kthread after printing the error message, so an interrupted thread would
exist straight away.

Arnd