SOL_SOCKET/SO_CPUINT socket option
    Sepherosa Ziehau 
    sepherosa at gmail.com
       
    Sat Dec 27 00:43:15 PST 2014
    
    
  
Hi all,
SOL_SOCKET/SO_CPUHINT socket option (currently read-only).  This
option gives you the hint about to which CPU the userland process
could be bound to (-1 means no hint).  It's mainly for TCP/UDP server
userland application.  For TCP listen socket, it only makes sense for
TCP listen socket w/ SO_REUSEPORT.
- TCP listen socket w/ SO_REUSEPORT, this socket option should be
extracted after listen(2).
- TCP socket for connect(2), this socket option should be extracted
after connect(2) is successful.
- UDP socket for bind(2), this socket option should be extracted after bind(2).
- UDP socket for connect(2), this socket option should be called after
connect(2).
For TCP listen socket w/ SO_REUSEPORT, binding process to the hinted
cpu avoids >1/3 IPIs between CPUs (24000ipis/s -> 15000ipis/s) during
a accept(2) heavy test (well, I am still hunting the source of the
rest of the IPIs).
For UDP bind socket w/ SO_REUSEPORT, binding process to the hinted cpu
completely avoids IPIs between CPUs.
Hope it will be useful for you.
Best Regards,
sephe
-- 
Tomorrow Will Never Die
    
    
More information about the Users
mailing list