Jakub Kicinski
301f227fc8
net: piggy back on the memory barrier in bql when waking queues
...
Drivers call netdev_tx_completed_queue() right before
netif_txq_maybe_wake(). If BQL is enabled netdev_tx_completed_queue()
should issue a memory barrier, so we can depend on that separating
the stop check from the consumer index update, instead of adding
another barrier in netif_txq_maybe_wake().
This matters more than the barriers on the xmit path, because
the wake condition is almost always true. So we issue the
consumer side barrier often.
Wrap netdev_tx_completed_queue() in a local helper to issue
the barrier even if BQL is disabled. Keep the same semantics
as netdev_tx_completed_queue() (barrier only if bytes != 0)
to make it clear that the barrier is conditional.
Plus since macro gets pkt/byte counts as arguments now -
we can skip waking if there were no packets completed.
Signed-off-by: Jakub Kicinski <kuba@kernel.org >
2023-04-10 17:56:18 -07:00
..
2023-03-28 10:39:29 +02:00
2023-02-08 21:53:24 +01:00
2023-02-02 13:40:23 +01:00
2023-02-10 10:16:42 +01:00
2023-02-24 17:18:54 -08:00
2023-02-27 10:04:49 -08:00
2023-02-22 11:05:56 -08:00
2023-02-16 13:42:22 +01:00
2023-03-14 14:00:55 -04:00
2023-02-26 18:31:37 +00:00
2023-02-25 15:16:23 -08:00
2023-02-24 15:11:03 -08:00
2023-03-28 23:52:12 -07:00
2023-02-27 09:47:26 -08:00
2023-03-01 09:06:51 -08:00
2023-03-20 19:48:26 -07:00
2023-02-25 11:30:21 -08:00
2023-02-03 10:52:49 +05:30
2023-02-24 17:12:23 -08:00
2023-03-16 17:43:14 +00:00
2023-02-14 08:19:38 -08:00
2023-02-23 17:09:35 -08:00
2023-04-07 08:23:08 +01:00
2023-02-24 17:29:52 -08:00
2023-02-24 12:58:55 -08:00
2023-01-27 13:45:52 +01:00
2023-02-20 09:20:55 -05:00
2023-02-24 12:58:55 -08:00
2023-02-24 12:07:00 -08:00
2023-03-19 10:48:35 +00:00
2023-02-24 12:58:55 -08:00
2023-02-03 21:59:41 +01:00
2023-02-07 12:53:53 +01:00
2023-02-09 23:01:49 +01:00
2023-02-15 19:38:50 +01:00
2023-01-31 14:42:10 +01:00
2023-03-14 09:25:50 -06:00
2023-03-15 09:25:04 -06:00
2023-02-22 08:27:49 +09:00
2023-03-07 09:33:43 -08:00
2023-02-22 12:59:32 -08:00
2023-03-03 17:42:20 +01:00
2023-03-07 09:33:43 -08:00
2023-03-07 07:49:28 -08:00
2023-03-03 17:42:20 +01:00
2023-02-03 08:20:55 -07:00
2023-01-31 16:02:02 +01:00
2023-03-01 10:01:22 -08:00
2023-03-09 15:40:49 -08:00
2023-03-05 10:49:37 -08:00
2023-03-05 10:49:37 -08:00
2023-02-24 12:17:14 -08:00
2023-01-31 12:44:20 +01:00
2023-03-21 11:53:16 +01:00
2023-03-21 11:53:16 +01:00
2023-03-24 16:04:21 -07:00
2023-02-09 20:19:18 +01:00
2023-03-31 10:06:16 +02:00
2023-03-25 12:57:34 -07:00
2023-02-13 18:35:15 +08:00
2023-02-02 22:33:25 -08:00
2023-02-10 17:33:34 -08:00
2023-03-18 12:23:33 +00:00
2023-01-30 07:37:40 -08:00
2023-02-14 14:23:06 -05:00
2023-02-08 13:37:54 +01:00
2023-02-14 14:23:06 -05:00
2023-02-14 14:23:06 -05:00
2023-02-14 14:23:06 -05:00
2023-02-14 14:23:06 -05:00
2023-02-14 14:23:06 -05:00
2023-02-15 12:35:20 +01:00
2023-02-24 17:18:54 -08:00
2023-02-03 11:06:03 +01:00
2023-01-29 15:18:33 -07:00
2023-01-29 15:18:33 -07:00
2023-01-29 15:18:33 -07:00
2023-01-29 15:18:33 -07:00
2023-03-13 23:28:43 +01:00
2023-02-02 22:50:00 -08:00
2023-02-06 19:06:58 +01:00
2023-03-27 19:49:58 -07:00
2023-02-25 12:53:42 -08:00
2023-01-31 10:47:45 -08:00
2023-02-07 12:53:53 +01:00
2023-03-13 10:14:05 +01:00
2023-03-01 09:55:24 -08:00
2023-03-19 10:02:04 -07:00
2023-02-24 12:58:55 -08:00
2023-02-23 17:09:35 -08:00
2023-02-20 12:33:41 -08:00
2023-01-27 14:46:31 -08:00
2023-04-03 11:52:04 -04:00
2023-02-08 13:37:54 +01:00
2023-02-02 22:33:13 -08:00
2023-01-30 15:55:29 +01:00
2023-02-23 11:51:56 +01:00
2023-02-13 14:16:35 +01:00
2023-03-07 01:50:53 -05:00
2023-02-24 12:47:33 -08:00
2023-01-26 15:55:38 +01:00
2023-02-02 22:33:00 -08:00
2023-02-13 15:54:27 -08:00
2023-02-23 17:09:35 -08:00
2023-04-07 08:45:17 -07:00
2023-02-24 12:58:55 -08:00
2023-03-09 21:59:11 +01:00
2023-02-02 21:08:32 +01:00
2023-02-16 09:33:25 +01:00
2023-03-17 08:56:37 +00:00
2023-02-22 12:36:25 -08:00
2023-02-06 13:47:40 +01:00
2023-03-07 22:19:05 +02:00
2023-02-22 09:57:23 -07:00
2023-03-20 20:01:25 -06:00
2023-02-22 13:50:13 -08:00
2023-02-24 14:34:12 -08:00
2023-02-03 15:45:23 -04:00
2023-02-01 20:54:27 -08:00
2023-03-18 12:23:33 +00:00
2023-02-05 10:57:55 +00:00
2023-02-24 14:34:12 -08:00
2023-03-12 08:55:55 -07:00
2023-02-18 14:34:09 -05:00
2023-02-02 22:50:05 -08:00
2023-02-13 10:11:20 +02:00
2023-01-27 13:45:53 +01:00
2023-02-21 08:49:16 +09:00
2023-03-27 10:13:28 -04:00
2023-03-27 10:13:28 -04:00
2023-01-30 08:03:35 +00:00
2023-02-13 17:01:05 -08:00
2023-02-06 15:31:05 +01:00
2023-02-09 16:51:30 -08:00
2023-01-31 15:01:47 +01:00
2023-01-27 13:45:49 +01:00
2023-02-13 11:12:31 +00:00
2023-02-23 17:09:35 -08:00
2023-02-10 17:33:29 -08:00
2023-01-27 12:31:41 +05:30
2023-02-08 09:16:07 +00:00
2023-02-20 12:46:18 -08:00
2023-02-02 22:33:27 -08:00
2023-02-23 17:09:35 -08:00
2023-02-23 17:09:35 -08:00
2023-02-02 22:33:24 -08:00
2023-02-02 22:32:54 -08:00
2023-02-02 22:33:28 -08:00
2023-02-23 14:05:08 -08:00
2023-02-23 14:00:10 -08:00
2023-02-24 19:20:07 -08:00
2023-03-05 11:19:16 -08:00
2023-02-22 14:21:40 -08:00
2023-04-03 10:04:27 +01:00
2023-04-10 17:56:18 -07:00
2023-03-08 14:25:40 +01:00
2023-02-22 21:25:23 -08:00
2023-02-20 17:25:43 -06:00
2023-03-27 19:49:58 -07:00
2023-02-22 14:47:20 -08:00
2023-02-14 14:22:33 -05:00
2023-02-20 09:20:21 -05:00
2023-02-21 14:45:22 -08:00
2023-03-22 09:19:56 +01:00
2023-03-15 14:58:52 +01:00
2023-02-06 19:06:59 +01:00
2023-02-06 19:06:59 +01:00
2023-02-11 12:37:51 +01:00
2023-01-27 13:45:28 +01:00
2023-01-30 15:55:31 +01:00
2023-03-19 10:48:35 +00:00
2023-02-24 13:31:53 -08:00
2023-02-02 22:33:22 -08:00
2023-02-02 22:33:34 -08:00
2023-02-23 17:09:35 -08:00
2023-02-02 22:33:18 -08:00
2023-01-31 09:34:41 +09:00
2023-02-25 11:48:02 -08:00
2023-02-14 07:27:32 +09:00
2023-02-14 07:27:32 +09:00
2023-03-13 09:15:11 +01:00
2023-03-19 10:02:04 -07:00
2023-02-09 16:51:40 -08:00
2023-03-30 14:43:03 -07:00
2023-04-06 12:01:20 -07:00
2023-02-20 17:25:43 -06:00
2023-02-13 19:17:34 +01:00
2023-02-21 18:24:12 -08:00
2023-03-17 21:57:52 -07:00
2023-02-22 10:55:22 +00:00
2023-01-30 16:42:45 +01:00
2023-02-10 17:32:37 -08:00
2023-02-02 16:33:43 -08:00
2023-03-28 10:39:29 +02:00
2023-02-17 00:08:44 +00:00
2023-02-27 17:00:14 -08:00
2023-03-21 21:32:18 -07:00
2023-02-20 17:41:08 -08:00
2023-03-27 08:12:01 +01:00
2023-02-27 10:49:43 +01:00
2023-02-09 16:51:42 -08:00
2023-02-09 15:56:51 -08:00
2023-03-27 19:29:22 -07:00
2023-04-03 10:08:43 +01:00
2023-01-31 20:37:18 +01:00
2023-02-16 20:43:52 -08:00
2023-04-05 19:01:22 -07:00
2023-02-09 22:30:24 -08:00
2023-01-31 17:25:17 -08:00
2023-02-16 18:10:18 +01:00
2023-03-18 11:44:57 +01:00
2023-03-18 12:23:34 +00:00
2023-03-22 15:20:38 +01:00
2023-02-07 18:20:00 -08:00
2023-02-13 10:11:20 +02:00
2023-02-12 10:23:39 -05:00
2023-01-31 15:01:46 +01:00
2023-02-07 12:42:54 -05:00
2023-02-07 12:49:56 -05:00
2023-03-14 17:07:54 -07:00
2023-03-28 10:39:29 +02:00
2023-02-08 15:26:58 -08:00
2023-02-08 15:26:58 -08:00
2023-03-18 12:23:33 +00:00
2023-02-22 17:12:44 -08:00
2023-02-23 17:55:40 -08:00
2023-02-03 07:23:03 +01:00
2023-02-20 19:26:58 -05:00
2023-02-09 11:43:39 -07:00
2023-02-15 06:46:22 -05:00
2023-02-20 19:26:58 -05:00
2023-03-29 08:19:38 +01:00
2023-01-27 13:45:46 +01:00
2023-02-09 16:51:42 -08:00
2023-02-20 19:26:59 -05:00
2023-02-02 22:33:34 -08:00
2023-03-17 22:38:31 -07:00
2023-02-02 22:33:24 -08:00