Files
linux-cryptodev-2.6/include/uapi/linux
Elizabeth Figura cdbb997822 ntsync: Introduce NTSYNC_IOC_WAIT_ALL.
This is similar to NTSYNC_IOC_WAIT_ANY, but waits until all of the objects are
simultaneously signaled, and then acquires all of them as a single atomic
operation.

Because acquisition of multiple objects is atomic, some complex locking is
required. We cannot simply spin-lock multiple objects simultaneously, as that
may disable preëmption for a problematically long time.

Instead, modifying any object which may be involved in a wait-all operation takes
a device-wide sleeping mutex, "wait_all_lock", instead of the normal object
spinlock.

Because wait-for-all is a rare operation, in order to optimize wait-for-any,
this lock is only taken when necessary. "all_hint" is used to mark objects which
are involved in a wait-for-all operation, and if an object is not, only its
spinlock is taken.

The locking scheme used here was written by Peter Zijlstra.

Signed-off-by: Elizabeth Figura <zfigura@codeweavers.com>
Link: https://lore.kernel.org/r/20241213193511.457338-5-zfigura@codeweavers.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-01-08 13:18:10 +01:00
..
2024-07-31 13:56:00 +02:00
2024-04-15 13:42:38 +02:00
2024-11-03 20:33:43 +00:00
2024-08-20 14:02:22 -04:00
2024-08-28 06:53:58 -07:00
2024-08-28 06:53:58 -07:00
2024-04-08 14:10:45 +01:00
2024-06-11 12:57:49 -05:00
2024-11-01 01:19:00 +00:00
2024-09-04 16:51:11 +02:00
2023-09-21 19:22:05 +02:00
2024-05-07 01:35:57 +02:00
2024-08-29 10:39:37 +02:00
2024-04-01 10:49:28 +01:00
2024-08-26 09:37:23 -07:00
2024-08-26 09:37:23 -07:00
2024-06-01 07:28:21 +02:00
2024-09-01 20:26:05 -07:00
2024-09-16 23:50:52 +02:00
2024-08-19 22:36:26 -04:00
2023-12-15 17:01:30 +01:00
2024-09-06 08:31:40 -06:00
2024-08-12 17:50:34 -07:00
2023-11-28 19:05:16 +00:00
2024-11-25 13:40:55 -06:00
2024-10-24 13:54:51 +02:00
2023-12-20 19:26:31 -05:00
2024-10-09 19:55:40 -07:00
2023-12-29 11:58:24 -08:00
2024-11-05 10:24:16 +00:00
2024-11-06 12:59:44 -05:00