Re: epoll behaviour after running out of descriptors

From: Olaf van der Spek
Date: Mon Nov 03 2008 - 03:07:51 EST


On Sun, Nov 2, 2008 at 11:49 PM, Davide Libenzi <davidel@xxxxxxxxxxxxxxx> wrote:
> At the time of the first EMFILE, you've filled up the fd space, but not
> the kernel listen backlog. Additions to the backlog, triggers new events,

Shouldn't ET only fire again *after* you drained the queue? When
accept returns EMFILE, you did not drain the queue.

> that you see after the first EMFILE. At a given point, the backlog is
> full, so no new half connections are dropped in there, so no new events
> are generated.

The backlog is 128 entries though, I don't see that many EMFILEs.

> Again, sleeping on (EMFILE && ET) is bad mojo,

It's not always best to free up descriptors right away.

> and nowhere is written that
> events should be generated in the EMFILE->no-EMFILE transitions.

That's true, but I'm saying that this might be handy to have.
--
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/