[systemd-devel] [PATCH] core/socket: we only want one event on standard sockets

Lennart Poettering lennart at poettering.net
Tue Nov 26 08:32:19 PST 2013


On Tue, 26.11.13 14:44, David Timothy Strauss (david at davidstrauss.net) wrote:

> 
> On Tue, Nov 26, 2013 at 2:35 PM, Lennart Poettering
> <lennart at poettering.net> wrote:
> > Not following here. What precisely does this fix, can you elaborate?
> >
> > We currently turn off the poll for the socket fds as soon as we queued
> > the service socket, so that we don't get woken up anymore. What would
> > EPOLLET do good here?
> 
> I think he's been working on having the "distribute" pool scale up
> on-demand, which would involve systemd getting events on new
> connections coming into the listener socket. More specifically, I
> think he intends to, as each new connection comes in, check if we've
> maxed out the number of processes. If not, spin another one up.
> Presumably, we'd drop the listener once the max-size pool is running.

Well, but EPOLLET only works correctly if each time an event is
triggered we dispatch *all* possibly queued events on the fd, until
EAGAIN is read again. But we don't do that, heck, if Listen=no is used
we don''t even read a single incoming connection of the scket, we leave
that to the daemon we spawn, but we cannot trust that. So, I don't get
what EPOLLET is supposed to do good here?

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list