Re: SO_REUSEPORT and Unix domain sockets

From: Tobias Oberstein
Date: Sun Sep 21 2014 - 09:50:53 EST


Am 20.09.2014 03:44, schrieb Eduardo Silva:

How can this be used for sockets of type AF_UNIX?

I can only get it working with TCP sockets, not Unix domain sockets.

When using TCP, the incoming clients will get nicely balanced to all
processes listening. With Unix domain sockets, the incoming clients all get
connected only to the last started process.

The test code (Python) I was trying is here:

http://stackoverflow.com/questions/23742368/can-so-reuseport-be-used-on-unix-domain-sockets

Any hints appreciated,
/Tobias


Looking at the original patch looks like the implementation is only
done for TCP and UDP:

http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c617f398edd4db2b8567a28e899a88f8f574798d


Ok, I see. Unfortunate.

UNIX domain sockets use the file system as the address name space, so
SO_REUSEPORT would not be applicable.


Yes, in case of Unix domain sockets, it's about "reusing paths", not ports.

Such an option for in-kernel load-balancing of Unix domain sockets would be useful ..

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