Re: [PATCH 0/2] wait: introduce WQ_FLAG_EXCLUSIVE_HEAD

From: Oleg Nesterov
Date: Fri Mar 21 2014 - 14:50:35 EST


On 03/21, Dilger, Andreas wrote:
>
> On 2014/03/20, 11:51 AM, "Oleg Nesterov" <oleg@xxxxxxxxxx> wrote:
>
> >On 03/19, Oleg Nesterov wrote:
> >>
> >> OK, I'll try to test/cleanup/resend tomorrow.
> >
> >Cough. Still un-tested, sorry. I will test it somehow and report,
> >but I'd like to send this for review right now.
> >
> >Because I simply can't decide what the new flag should actually
> >do, so please ack/nack the semantics/naming at least.
> >
> >Changes:
> >
> > 1. I decided it would be better to change __wait_event()
> > to accept wait.flags right now. This looks better in
> > any case to me, and otherwise we need to introduce the
> > __wait_exclusive_enum.
> >
> > The change looks trivial (both actually), please tell
> > me if you think it doesn't deserve a separate patch.
> >
> > 2. I won't insist, but WQ_FLAG_EXCLUSIVE_HEAD can be used
> > without WQ_FLAG_EXCLUSIVE.
> >
> > Unlikely this can be useful, but it looks more natural
> > this way. Otherwise we need to add another check to
> > ensure that WQ_FLAG_EXCLUSIVE_HEAD can't come alone.
> >
> > However, perhaps this means the new flag needs another
> > name. I agree in advance with any.
>
> What about:
>
> #define WQ_FLAG_HEAD 0x02

I am fine either way ;)

But _HEAD looks a bit confusing too. This flag doesn't add at the head,
it inserts the new entry before other exclusive tasks.

> #define WQ_FLAG_EXCLUSIVE_HEAD (WQ_FLAG_HEAD | WQ_FLAG_EXCLUSIVE)
>
> That avoids having WQ_FLAG_EXCLUSIVE_HEAD not actually meaning "exclusive"?
>
> Patches look reasonable at first glance. The second patch would need
> to be changed to handle that WQ_FLAG_EXCLUSIVE_HEAD has both bits set
> (probably just replace uses of WQ_FLAG_EXCLUSIVE_HEAD with WQ_FLAG_HEAD).

Yes, s/WQ_FLAG_EXCLUSIVE_HEAD/WQ_FLAG_HEAD/ is the only change we
need in this case.

Other than define(WQ_FLAG_EXCLUSIVE_HEAD) of course, but this flags should
only be used by ___wait_event() callers.

Peter, what do you think?

Oleg.

--
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/