Andrew Gallatin 02bc3865aa Optionally bind ktls threads to NUMA domains
When ktls_bind_thread is 2, we pick a ktls worker thread that is
bound to the same domain as the TCP connection associated with
the socket. We use roughly the same code as netinet/tcp_hpts.c to
do this. This allows crypto to run on the same domain as the TCP
connection is associated with. Assuming TCP_REUSPORT_LB_NUMA
(D21636) is in place & in use, this ensures that the crypto source
and destination buffers are local to the same NUMA domain as we're
running crypto on.

This change (when TCP_REUSPORT_LB_NUMA, D21636, is used) reduces
cross-domain traffic from over 37% down to about 13% as measured
by pcm.x on a dual-socket Xeon using nginx and a Netflix workload.

Reviewed by:	jhb
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D21648
2020-12-19 21:46:09 +00:00
..
2020-02-26 16:22:28 +00:00
2020-09-25 10:05:38 +00:00
2020-10-05 15:54:19 +00:00
2020-11-19 02:50:48 +00:00
2020-12-04 18:56:44 +00:00
2020-11-19 04:28:39 +00:00
2020-10-19 16:57:59 +00:00
2020-11-05 15:08:56 +00:00
2020-11-09 00:34:23 +00:00
2020-05-09 15:56:02 +00:00
2020-08-13 20:48:14 +00:00
2020-12-01 16:06:31 +00:00
2020-01-12 23:52:16 +00:00
2020-11-25 22:53:21 +00:00
2020-10-22 09:28:11 +00:00
2020-08-27 05:11:15 +00:00
2020-12-13 21:29:39 +00:00
2020-12-05 05:56:23 +00:00