Re: [PATCH 1/1] eventfd: implementation of EFD_MASK flag

From: Martin Sustrik
Date: Fri Feb 08 2013 - 01:55:23 EST


On 08/02/13 07:36, Andy Lutomirski wrote:

On 08/02/13 02:03, Andy Lutomirski wrote:

There may be some
advantage to adding (later on, if needed) an option to change the
flags set in:

+ if (waitqueue_active(&ctx->wqh))
+ wake_up_locked_poll(&ctx->wqh,
+ (unsigned long)ctx->mask.events);

(i.e. to allow the second parameter to omit some bits that were
already signaled.) Allowing write to write a bigger struct in the
future won't break anything.


I think I don't follow. Either the second parameter is supposed to be
*newly* signaled events, in which case the events that were already signaled
in the past should be ommitted, or it is meant to be *all* signaled events,
in which case the current implementation is OK.

I defer to the experts here. But I suspect that if you want to
perfectly emulate sockets, you may need to vary what you specify.
(IIRC tcp sockets report an EPOLLIN edge every time data is received
even if the receive buffer wasn't empty.)

Hm. That sounds like leaking protocol implementation details to the user. That's a bad design IMO and should not be encouraged.

Anyway, I have implemented your other suggestions.

Btw, one thing I am not sure about is how to submit improved patches to the ML. Should I use the same patch name? Doesn't that cause confusion?

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