Christopher Faulet
bca5e14235
OPTIM: stconn: Don't pretend mux have more data to deliver on EOI/EOS/ERROR
...
Doing some benchs on the 3.0, we encountered a small loss on requests/sec on
small objects compared to the 2.8 . After bisecting the issue, it appeared
that this was introduced when the mux-to-mux zero-copy data forwarding was
implemented in 2.9-dev8. Extra subscribes on receives at the end of the
message were responsible of the loss.
A basic configuration, sending H2 requests to a H1 server returning
responses without payload is enough to observe the issue. With the following
command, we can observe a huge increase of epoll_ctl calls on 2.9/3.x:
h2load -c 100 -m 10 -n 100000 http://...
On 2.8 we have around 3200 calls to epoll_ctl against more than 20k on 3.1.
The fix seems obvious. After a receive, there is no reason to state a mux
have more data to deliver if EOI/EOS/ERROR flag was set on the
stream-endpoint descriptor. With this change, extra calls to epoll_ctl
disappear. However it is a sensitive part so it is important to keep an eye
on it and to not backport it.
Thanks to Willy and Emeric to have spot the issue.
2024-09-30 16:55:48 +02:00
..
2024-05-06 18:42:54 +02:00
2023-09-28 08:49:22 +02:00
2024-05-28 19:25:08 +02:00
2024-07-12 15:27:04 +02:00
2024-08-30 18:53:49 +02:00
2024-09-16 22:55:40 +02:00
2023-04-27 18:14:57 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2024-09-15 23:44:59 +02:00
2023-04-23 09:46:15 +02:00
2024-08-20 19:16:34 +02:00
2024-09-20 16:35:32 +02:00
2024-08-30 18:53:49 +02:00
2024-06-14 11:36:52 +02:00
2024-04-30 21:40:17 +02:00
2024-09-20 17:15:11 +02:00
2024-09-30 11:36:39 +02:00
2024-08-30 18:53:49 +02:00
2023-09-08 16:25:19 +02:00
2024-09-26 16:53:07 +02:00
2024-09-17 09:08:10 +02:00
2024-05-10 17:18:13 +02:00
2024-07-12 15:27:04 +02:00
2024-04-02 07:27:33 +02:00
2024-09-03 17:49:21 +02:00
2023-10-18 17:01:19 +02:00
2024-07-09 16:46:38 +02:00
2024-08-21 17:36:58 +02:00
2024-08-20 18:12:27 +02:00
2024-05-21 17:55:20 +02:00
2024-09-12 17:47:13 +02:00
2024-09-12 17:47:13 +02:00
2024-09-12 17:47:13 +02:00
2024-05-24 12:07:18 +02:00
2024-05-24 12:07:18 +02:00
2024-07-09 16:46:38 +02:00
2024-07-12 15:27:04 +02:00
2024-08-06 08:21:49 +02:00
2024-07-15 19:19:13 +02:00
2023-11-18 11:16:21 +01:00
2024-09-02 15:50:25 +02:00
2024-05-10 17:18:13 +02:00
2024-09-03 17:49:21 +02:00
2023-04-27 18:22:34 +02:00
2023-11-08 16:38:06 +01:00
2024-09-26 16:53:07 +02:00
2024-04-26 11:29:25 +02:00
2024-09-16 22:55:25 +02:00
2024-09-16 22:55:25 +02:00
2024-09-16 22:55:25 +02:00
2024-05-16 10:31:17 +02:00
2024-09-16 22:55:25 +02:00
2024-09-19 15:36:58 +02:00
2024-07-09 16:46:38 +02:00
2024-08-30 18:53:49 +02:00
2024-08-20 18:12:27 +02:00
2024-04-04 19:10:01 +02:00
2024-09-26 16:53:07 +02:00
2024-08-30 18:53:49 +02:00
2024-06-20 16:38:48 +02:00
2024-03-25 16:24:15 +01:00
2024-04-04 19:10:01 +02:00
2024-05-24 16:17:24 +02:00
2024-04-04 19:10:01 +02:00
2024-01-11 15:10:08 +01:00
2023-11-23 16:23:14 +01:00
2024-07-26 16:59:00 +02:00
2024-04-02 07:00:10 +02:00
2024-03-29 17:08:37 +01:00
2024-07-16 14:04:41 +02:00
2024-06-26 07:38:21 +02:00
2024-09-25 17:12:11 +02:00
2024-09-26 16:53:07 +02:00
2024-04-13 08:43:12 +02:00
2024-09-23 20:16:27 +02:00
2024-03-28 17:28:20 +01:00
2023-05-11 09:22:46 +02:00
2024-08-30 14:58:59 +02:00
2024-07-12 15:27:04 +02:00
2024-09-12 09:21:57 +02:00
2024-09-06 09:16:18 +02:00
2024-09-03 15:25:05 +02:00
2024-09-18 16:11:03 +02:00
2024-09-03 14:39:04 +02:00
2023-04-28 16:08:08 +02:00
2024-06-27 16:08:42 +02:00
2023-06-14 11:27:29 +02:00
2023-05-12 09:45:30 +02:00
2024-09-10 08:55:29 +02:00
2023-07-03 16:32:01 +02:00
2024-09-16 14:06:39 +02:00
2024-07-09 16:46:38 +02:00
2024-08-21 17:37:46 +02:00
2024-08-21 17:37:46 +02:00
2024-08-21 17:37:46 +02:00
2024-08-30 18:53:49 +02:00
2024-08-21 17:37:46 +02:00
2024-08-21 17:37:46 +02:00
2024-08-21 17:37:46 +02:00
2024-08-30 18:53:49 +02:00
2024-09-26 16:53:07 +02:00
2023-12-21 15:42:08 +01:00
2024-08-22 17:48:23 +02:00
2024-05-16 10:31:17 +02:00
2024-01-29 15:40:19 +01:00
2024-09-27 18:54:07 +02:00
2024-02-05 14:31:21 +01:00
2024-08-26 11:21:48 +02:00
2024-07-24 11:07:19 +02:00
2023-11-28 15:37:50 +01:00
2024-09-03 17:49:21 +02:00
2024-08-26 11:21:48 +02:00
2024-08-30 17:04:09 +02:00
2024-01-31 16:28:54 +01:00
2024-08-30 17:04:09 +02:00
2024-08-21 08:02:44 +02:00
2024-01-16 10:17:27 +01:00
2024-09-03 11:47:51 +02:00
2024-08-30 17:04:09 +02:00
2024-07-25 15:39:39 +02:00
2024-08-30 17:04:09 +02:00
2024-08-30 18:53:49 +02:00
2024-09-02 10:01:41 +02:00
2024-04-26 10:20:57 +02:00
2024-08-20 18:12:27 +02:00
2024-09-03 15:23:06 +02:00
2024-08-30 17:04:09 +02:00
2024-04-06 00:07:49 +02:00
2024-09-02 10:01:41 +02:00
2024-08-07 10:57:10 +02:00
2023-10-17 18:51:13 +02:00
2024-09-19 15:38:19 +02:00
2024-07-24 17:59:03 +02:00
2024-09-15 12:43:56 +02:00
2024-07-18 13:29:52 +02:00
2024-09-27 19:01:38 +02:00
2024-08-07 16:02:59 +02:00
2024-05-21 17:55:03 +02:00
2023-11-23 16:23:14 +01:00
2024-09-21 20:08:06 +02:00
2023-06-30 16:12:36 +02:00
2024-08-30 18:53:49 +02:00
2024-08-21 17:37:46 +02:00
2024-08-30 18:53:49 +02:00
2024-09-09 16:54:48 +02:00
2024-07-30 18:53:08 +02:00
2024-05-21 18:30:45 +02:00
2024-03-12 17:37:11 +01:00
2024-08-30 18:53:49 +02:00
2024-08-26 15:17:40 +02:00
2024-08-26 15:17:40 +02:00
2023-05-15 12:07:52 +02:00
2024-05-17 14:53:19 +02:00
2024-09-16 22:55:40 +02:00
2024-04-26 10:20:57 +02:00
2024-09-03 17:49:21 +02:00
2024-05-03 09:01:36 +02:00
2024-09-30 16:55:48 +02:00
2024-09-19 15:38:19 +02:00
2024-09-27 12:15:41 +02:00
2024-04-03 15:53:18 +02:00
2023-11-23 16:23:14 +01:00
2024-05-24 14:36:31 +02:00
2023-11-18 11:16:21 +01:00
2024-07-31 10:29:42 +02:00
2024-08-30 18:53:49 +02:00
2024-05-24 09:46:49 +02:00
2024-09-19 15:36:58 +02:00
2024-08-07 16:02:59 +02:00
2024-04-22 16:25:18 +02:00
2024-07-18 13:29:52 +02:00
2024-09-15 23:51:51 +02:00
2024-08-07 15:40:52 +02:00