From: Peter Oskolkov <[email protected]>

This patchset introduces FUTEX_SWAP operation for fast
task context switching (aided by futexes). Detailed
use cases and reasoning are included in the commit message
of the first patch in the patchset.

v1->v2:
- split two #defines in futex.h into a small first patch
- detailed the use cases and reasoning in the commit message
  of the first patch
- renamed wake_up_process_prefer_current_cpu into wake_up_swap.


Peter Oskolkov (4):
  futex: introduce FUTEX_SWAP operation
  futex: implement FUTEX_SWAP as wake+wait.
  futex/sched: add wake_up_swap, use in FUTEX_SWAP
  selftests/futex: add futex_swap selftest

 include/linux/sched.h                         |   6 +
 include/uapi/linux/futex.h                    |   2 +
 kernel/futex.c                                |  86 +++++--
 kernel/sched/core.c                           |   5 +
 kernel/sched/fair.c                           |   3 +
 kernel/sched/sched.h                          |   1 +
 .../selftests/futex/functional/.gitignore     |   1 +
 .../selftests/futex/functional/Makefile       |   1 +
 .../selftests/futex/functional/futex_swap.c   | 209 ++++++++++++++++++
 .../selftests/futex/include/futextest.h       |  19 ++
 10 files changed, 318 insertions(+), 15 deletions(-)
 create mode 100644 tools/testing/selftests/futex/functional/futex_swap.c

-- 
2.25.1

Reply via email to