Re: [PATCH 3/7] wait.[ch]: Introduce the simple waitqueue (swait) implementation

From: Steven Rostedt
Date: Mon Oct 20 2014 - 12:47:25 EST


On Mon, 20 Oct 2014 12:05:42 -0400
Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> wrote:

> > No. You move the items off the main list head and add it to the local
> > list and they never go back. Just start processing that local list.
> > Anything added to the main list after that will not get woken up by
> > that current wake_all call. It will need to be woken by another wake_up.
>
> OK. But we may not run all of the wakeups, because of:
>
> + if (++woken == nr_exclusive)
> + break;
>
> >
> > >
> > > What would need to be done as an unwind at the end of processing the
> > > local list head before it disappears from existence? Anything?
> >
> > Not sure what you mean here.
>
> Per above -- can't there be "orphaned" entries that only exist on the
> local list head that didn't get processed? What happens to those?
>

Why not just take off nr_exclusive tasks off the main list and add
those to the local list, and then wake up all on the local list?

-- Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/