httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yann Ylavic <>
Subject Listeners buckets and duplication w/ and w/o SO_REUSEPORT on trunk
Date Tue, 07 Oct 2014 23:18:49 GMT

some notes about the current implementation of this (trunk only).

First, whether or not SO_REUSEPORT is available, we do duplicate the listeners.
This, I think, is not the intention of Yingqi Lu's original proposal,
and probably my fault since I asked for the patch to be splitted in
two for a better understanding (finally the SO_REUSEPORT patch only
has been commited).
The fact is that without SO_REUSEPORT, this serves nothing, and we'd
better use one listener per bucket (as originally proposed), or a
single bucket with no duplication (as before) if the performance gains
do not worth it.

Also, there is no opt-in/out for this functionalities, nor a way to
configure number of buckets ratio wrt number of CPUs (cores).
For example, SO_REUSEPORT also exists on *BSD, but I doubt it would
work as expected since IFAICT this not the same thing as in Linux
(DragonFly's implementation seems to be closed to Linux' one though).
Yet, the dynamic setsockopt() check will also succeed on BSD, and the
functionality be enabled.
So opt in (my preference) or out?

Finally, some global variables (not even ap_ prefixed) are used to
communicate between listen.c and the MPM. This helps not breaking the
API, but this is trunk...
I guess we can fix it, this is just a (self or anyone's) reminder :)


View raw message