On Mon, 2016-12-19 at 18:07 -0800, Tom Herbert wrote: > When sockets created SO_REUSEPORT move to TW state they are placed > back on the the tb->owners. fastreuse port is no longer set so we have > to walk potential long list of sockets in tb->owners to open a new > listener socket. I imagine this is happens when we try to open a new > listener SO_REUSEPORT after the system has been running a while and so > we hit the long tb->owners list.
Hmm... __inet_twsk_hashdance() does not change tb->fastreuse So where tb->fastreuse is cleared ? If all your sockets have SO_REUSEPORT set, this should not happen.