« Return to Thread: kpoll still using select

Re: kpoll still using select

by Joel Reymont :: Rate this Message:

Reply to Author | View in Thread

It goes like this...

Breakpoint 2, erts_poll_init_kp () at sys/common/erl_poll.c:2174
2174    max_fds = sysconf(_SC_OPEN_MAX);

reakpoint 3, erts_poll_init_kp () at sys/common/erl_poll.c:2183
2183 max_fds = FD_SETSIZE;
(gdb) p max_fds
$1 = -1

kernel poll is enabled with kqueue (as per configure), thus the _kp  
suffix.

ERTS_POLL_USE_SELECT is still defined, though, thus the clipping.

I have a strange feeling of deja vu, having had looked into this last  
year.

I remember that ERTS_POLL_USE_SELECT must be defined because kernel  
poll may fall back to select under certain exceptional circumstances.  
I don't understand why I'm forced to 1024 fds under normal kernel poll  
conditions, though.

Any explanation or workarounds?

        Thanks, Joel

---

2171 #if defined(VXWORKS)
2172    max_fds = erts_vxworks_max_files;
2173 #elif !defined(NO_SYSCONF)
2174    max_fds = sysconf(_SC_OPEN_MAX);
2175 #elif ERTS_POLL_USE_SELECT
2176    max_fds = NOFILE;
2177 #else
2178    max_fds = OPEN_MAX;
2179 #endif
2180
2181 #if ERTS_POLL_USE_SELECT && defined(FD_SETSIZE)
2182    if (max_fds > FD_SETSIZE)
2183 max_fds = FD_SETSIZE;
2184 #endif
2185
2186    if (max_fds < 0)
2187 fatal_error("erts_poll_init(): Failed to get max number of  
files: %s\n",
2188    erl_errno_id(errno));

---
Mac hacker with a performance bent
http://www.linkedin.com/in/joelreymont


________________________________________________________________
erlang-questions mailing list. See http://www.erlang.org/faq.html
erlang-questions (at) erlang.org

 « Return to Thread: kpoll still using select