Jens Axboe
78076bb64a
io_uring: use hash table for poll command lookups
...
We recently changed this from a single list to an rbtree, but for some
real life workloads, the rbtree slows down the submission/insertion
case enough so that it's the top cycle consumer on the io_uring side.
In testing, using a hash table is a more well rounded compromise. It
is fast for insertion, and as long as it's sized appropriately, it
works well for the cancellation case as well. Running TAO with a lot
of network sockets, this removes io_poll_req_insert() from spending
2% of the CPU cycles.
Reported-by: Dan Melnic <dmm@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-12-04 20:12:58 -07:00
..
2019-09-27 15:10:34 -07:00
2019-07-19 11:33:22 -07:00
2019-11-18 14:26:43 +01:00
2019-11-30 10:57:22 -08:00
2019-10-25 00:03:11 -04:00
2019-08-30 07:27:17 -07:00
2019-08-30 07:27:17 -07:00
2019-12-01 13:46:15 -08:00
2019-05-24 17:27:11 +02:00
2019-12-01 13:46:15 -08:00
2019-11-27 11:31:49 -06:00
2019-09-19 09:42:37 -07:00
2019-11-06 18:36:01 +01:00
2019-11-23 21:44:49 -05:00
2019-11-06 12:34:36 -08:00
2019-11-03 14:03:01 +01:00
2019-09-03 09:30:56 -04:00
2019-07-12 17:37:53 -07:00
2019-12-01 13:46:15 -08:00
2019-07-19 10:42:02 -07:00
2019-08-30 07:27:17 -07:00
2019-11-24 11:02:41 +08:00
2019-11-10 11:56:05 -05:00
2019-11-30 11:16:07 -08:00
2019-12-01 13:46:15 -08:00
2019-12-01 13:46:15 -08:00
2019-10-23 17:23:43 +02:00
2019-08-30 07:27:17 -07:00
2019-07-10 18:43:43 -07:00
2019-12-01 13:46:15 -08:00
2019-12-01 13:46:15 -08:00
2019-05-21 10:50:46 +02:00
2019-07-16 19:23:23 -07:00
2019-05-12 17:52:13 -04:00
2019-10-23 17:23:46 +02:00
2019-07-19 10:42:02 -07:00
2019-11-22 08:36:02 -08:00
2019-09-19 09:42:37 -07:00
2019-11-30 10:53:02 -08:00
2019-09-26 11:33:30 -07:00
2019-09-19 09:42:37 -07:00
2019-11-26 16:02:40 -08:00
2019-07-03 17:52:09 -04:00
2019-08-30 07:27:17 -07:00
2019-11-01 11:03:56 -04:00
2019-05-21 10:50:46 +02:00
2019-09-27 17:00:27 -07:00
2019-10-23 17:23:46 +02:00
2019-05-21 10:50:46 +02:00
2019-12-01 13:46:15 -08:00
2019-09-26 10:10:44 -07:00
2019-12-01 13:46:15 -08:00
2019-08-30 08:11:25 -07:00
2019-07-19 10:42:02 -07:00
2019-09-19 10:21:35 -07:00
2019-09-11 16:11:45 +02:00
2019-11-21 07:33:24 +01:00
2019-08-30 08:11:25 -07:00
2019-08-30 07:27:17 -07:00
2019-08-30 07:27:17 -07:00
2019-11-11 11:06:27 +01:00
2019-09-12 21:05:34 -04:00
2019-11-05 12:25:22 +01:00
2019-09-19 10:06:57 -07:00
2019-09-19 10:06:57 -07:00
2019-07-19 10:42:02 -07:00
2019-08-30 07:27:18 -07:00
2019-10-12 20:49:07 -04:00
2019-09-21 11:10:16 -07:00
2019-09-04 18:19:43 +02:00
2019-09-19 09:42:37 -07:00
2019-09-17 11:48:24 -04:00
2019-08-12 19:33:50 -07:00
2019-11-30 10:44:49 -08:00
2019-12-01 14:00:59 -08:00
2019-07-19 10:42:02 -07:00
2019-08-30 07:27:17 -07:00
2019-05-21 10:50:45 +02:00
2019-11-15 14:38:29 +01:00
2019-11-15 14:38:29 +01:00
2019-05-21 10:50:45 +02:00
2019-07-16 19:23:22 -07:00
2019-07-19 10:42:02 -07:00
2019-05-21 10:50:45 +02:00
2019-12-02 18:49:30 -07:00
2019-11-14 16:40:45 -05:00
2019-05-24 20:50:36 +02:00
2019-11-15 14:38:29 +01:00
2019-10-23 17:23:47 +02:00
2019-06-19 17:09:55 +02:00
2019-08-03 07:02:01 -07:00
2019-08-30 19:31:09 -04:00
2019-11-30 10:44:49 -08:00
2019-10-09 12:46:10 +02:00
2019-05-21 10:50:45 +02:00
2019-10-14 15:04:01 -07:00
2019-05-21 10:50:45 +02:00
2019-08-21 00:20:40 +02:00
2019-11-30 14:12:13 -08:00
2019-10-25 14:28:10 -06:00
2019-08-07 21:51:47 -04:00
2019-08-19 11:00:39 -04:00
2019-11-26 11:34:06 -08:00
2019-02-28 03:29:26 -05:00
2019-09-06 21:28:49 +02:00
2019-09-12 21:06:14 -04:00
2019-07-16 22:52:37 -04:00
2019-05-21 10:50:45 +02:00
2019-11-08 13:37:24 -07:00
2019-07-19 10:42:02 -07:00
2019-09-24 15:54:11 -07:00
2019-07-20 09:15:51 -07:00
2019-12-04 20:12:58 -07:00
2019-12-02 08:50:00 -07:00
2019-12-04 17:26:57 -07:00
2019-10-23 17:15:57 +02:00
2019-10-29 12:43:00 -06:00
2019-06-24 09:16:47 +10:00
2019-10-14 15:04:01 -07:00
2019-09-27 17:00:27 -07:00
2019-10-29 12:43:00 -06:00
2019-05-21 10:50:45 +02:00
2019-07-16 22:52:37 -04:00
2019-07-10 09:00:57 -06:00
2019-10-03 13:59:29 -04:00
2019-10-16 23:15:09 -04:00
2019-05-30 11:26:32 -07:00
2019-05-25 18:00:06 -04:00
2019-11-26 11:34:06 -08:00
2019-11-30 14:12:13 -08:00
2019-06-17 17:36:09 -04:00
2019-05-30 11:29:53 -07:00
2019-05-21 10:50:45 +02:00
2019-09-06 21:28:49 +02:00
2019-08-16 18:43:24 -07:00
2019-10-18 18:41:16 -04:00
2019-11-15 14:38:29 +01:00
2019-08-13 16:06:52 -07:00
2019-04-08 18:21:02 -05:00
2019-11-30 14:12:13 -08:00
2019-05-21 10:50:45 +02:00
2019-10-03 14:21:35 -07:00
2019-10-10 08:16:44 -07:00
2019-05-14 09:47:50 -07:00
2019-11-15 14:38:30 +01:00
2019-10-23 17:23:44 +02:00
2019-11-15 14:38:29 +01:00
2019-05-21 10:50:45 +02:00