Searched hist:c35ecb95c448cde15cbde8fde93350d50bcc8be7 (Results 1 – 4 of 4) sorted by relevance
/linux/tools/testing/selftests/net/ |
H A D | bind_bhash.c | c35ecb95c448cde15cbde8fde93350d50bcc8be7 Mon Aug 22 20:10:22 CEST 2022 Joanne Koong <joannelkoong@gmail.com> selftests/net: Add test for timing a bind request to a port with a populated bhash entry
This test populates the bhash table for a given port with MAX_THREADS * MAX_CONNECTIONS sockets, and then times how long a bind request on the port takes.
When populating the bhash table, we create the sockets and then bind the sockets to the same address and port (SO_REUSEADDR and SO_REUSEPORT are set). When timing how long a bind on the port takes, we bind on a different address without SO_REUSEPORT set. We do not set SO_REUSEPORT because we are interested in the case where the bind request does not go through the tb->fastreuseport path, which is fragile (eg tb->fastreuseport path does not work if binding with a different uid).
To run the script: Usage: ./bind_bhash.sh [-6 | -4] [-p port] [-a address] 6: use ipv6 4: use ipv4 port: Port number address: ip address
Without any arguments, ./bind_bhash.sh defaults to ipv6 using ip address "2001:0db8:0:f101::1" on port 443.
On my local machine, I see: ipv4: before - 0.002317 seconds with bhash2 - 0.000020 seconds
ipv6: before - 0.002431 seconds with bhash2 - 0.000021 seconds
Signed-off-by: Joanne Koong <joannelkoong@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
H A D | bind_bhash.sh | c35ecb95c448cde15cbde8fde93350d50bcc8be7 Mon Aug 22 20:10:22 CEST 2022 Joanne Koong <joannelkoong@gmail.com> selftests/net: Add test for timing a bind request to a port with a populated bhash entry
This test populates the bhash table for a given port with MAX_THREADS * MAX_CONNECTIONS sockets, and then times how long a bind request on the port takes.
When populating the bhash table, we create the sockets and then bind the sockets to the same address and port (SO_REUSEADDR and SO_REUSEPORT are set). When timing how long a bind on the port takes, we bind on a different address without SO_REUSEPORT set. We do not set SO_REUSEPORT because we are interested in the case where the bind request does not go through the tb->fastreuseport path, which is fragile (eg tb->fastreuseport path does not work if binding with a different uid).
To run the script: Usage: ./bind_bhash.sh [-6 | -4] [-p port] [-a address] 6: use ipv6 4: use ipv4 port: Port number address: ip address
Without any arguments, ./bind_bhash.sh defaults to ipv6 using ip address "2001:0db8:0:f101::1" on port 443.
On my local machine, I see: ipv4: before - 0.002317 seconds with bhash2 - 0.000020 seconds
ipv6: before - 0.002431 seconds with bhash2 - 0.000021 seconds
Signed-off-by: Joanne Koong <joannelkoong@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
H A D | .gitignore | diff c35ecb95c448cde15cbde8fde93350d50bcc8be7 Mon Aug 22 20:10:22 CEST 2022 Joanne Koong <joannelkoong@gmail.com> selftests/net: Add test for timing a bind request to a port with a populated bhash entry
This test populates the bhash table for a given port with MAX_THREADS * MAX_CONNECTIONS sockets, and then times how long a bind request on the port takes.
When populating the bhash table, we create the sockets and then bind the sockets to the same address and port (SO_REUSEADDR and SO_REUSEPORT are set). When timing how long a bind on the port takes, we bind on a different address without SO_REUSEPORT set. We do not set SO_REUSEPORT because we are interested in the case where the bind request does not go through the tb->fastreuseport path, which is fragile (eg tb->fastreuseport path does not work if binding with a different uid).
To run the script: Usage: ./bind_bhash.sh [-6 | -4] [-p port] [-a address] 6: use ipv6 4: use ipv4 port: Port number address: ip address
Without any arguments, ./bind_bhash.sh defaults to ipv6 using ip address "2001:0db8:0:f101::1" on port 443.
On my local machine, I see: ipv4: before - 0.002317 seconds with bhash2 - 0.000020 seconds
ipv6: before - 0.002431 seconds with bhash2 - 0.000021 seconds
Signed-off-by: Joanne Koong <joannelkoong@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
H A D | Makefile | diff c35ecb95c448cde15cbde8fde93350d50bcc8be7 Mon Aug 22 20:10:22 CEST 2022 Joanne Koong <joannelkoong@gmail.com> selftests/net: Add test for timing a bind request to a port with a populated bhash entry
This test populates the bhash table for a given port with MAX_THREADS * MAX_CONNECTIONS sockets, and then times how long a bind request on the port takes.
When populating the bhash table, we create the sockets and then bind the sockets to the same address and port (SO_REUSEADDR and SO_REUSEPORT are set). When timing how long a bind on the port takes, we bind on a different address without SO_REUSEPORT set. We do not set SO_REUSEPORT because we are interested in the case where the bind request does not go through the tb->fastreuseport path, which is fragile (eg tb->fastreuseport path does not work if binding with a different uid).
To run the script: Usage: ./bind_bhash.sh [-6 | -4] [-p port] [-a address] 6: use ipv6 4: use ipv4 port: Port number address: ip address
Without any arguments, ./bind_bhash.sh defaults to ipv6 using ip address "2001:0db8:0:f101::1" on port 443.
On my local machine, I see: ipv4: before - 0.002317 seconds with bhash2 - 0.000020 seconds
ipv6: before - 0.002431 seconds with bhash2 - 0.000021 seconds
Signed-off-by: Joanne Koong <joannelkoong@gmail.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|