On Fri, Nov 5, 2021 at 8:58 AM Peter Oskolkov <posk@xxxxxxx> wrote: > > User Managed Concurrency Groups (UMCG) is an M:N threading > subsystem/toolkit that lets user space application developers implement > in-process user space schedulers. > > Key changes from the previous patchset > https://lore.kernel.org/all/20211012232522.714898-1-posk@xxxxxxxxxx/: > > - added libumcg tools/lib/umcg; > - worker "wakeup" is reworked so that it is now purely a userspace op, > instead of waking the thread in order for it to block on return > to the userspace immediately; > - a couple of minor fixes and refactorings. > > These big things remain to be addressed (in no particular order): > - support tracing/debugging > - make context switches faster (see umcg_do_context_switch in umcg.c) > - support other architectures > - cleanup and post selftests in tools/testing/selftests/umcg/ > - allow cross-mm wakeups (securely) > > > Peter Oskolkov (6): > sched/umcg: add WF_CURRENT_CPU and externise ttwu > mm, x86/uaccess: add userspace atomic helpers > sched/umcg: implement UMCG syscalls > sched/umcg, lib/umcg: implement libumcg > sched/umcg: add Documentation/userspace-api/umcg.txt > sched/umcg, lib/umcg: add tools/lib/umcg/libumcg.txt Hi Peter, Do you have a real workload or an example application using UMCG? > > Documentation/userspace-api/umcg.txt | 598 ++++++++++++ > arch/x86/entry/syscalls/syscall_64.tbl | 2 + > arch/x86/include/asm/uaccess_64.h | 93 ++ > fs/exec.c | 1 + > include/linux/sched.h | 71 ++ > include/linux/syscalls.h | 3 + > include/linux/uaccess.h | 46 + > include/uapi/asm-generic/unistd.h | 6 +- > include/uapi/linux/umcg.h | 137 +++ > init/Kconfig | 10 + > kernel/entry/common.c | 4 +- > kernel/exit.c | 5 + > kernel/sched/Makefile | 1 + > kernel/sched/core.c | 12 +- > kernel/sched/fair.c | 4 + > kernel/sched/sched.h | 15 +- > kernel/sched/umcg.c | 949 +++++++++++++++++++ > kernel/sys_ni.c | 4 + > mm/maccess.c | 264 ++++++ > tools/lib/umcg/.gitignore | 4 + > tools/lib/umcg/Makefile | 11 + > tools/lib/umcg/libumcg.c | 1201 ++++++++++++++++++++++++ > tools/lib/umcg/libumcg.h | 299 ++++++ > tools/lib/umcg/libumcg.txt | 438 +++++++++ > 24 files changed, 4166 insertions(+), 12 deletions(-) > create mode 100644 Documentation/userspace-api/umcg.txt > create mode 100644 include/uapi/linux/umcg.h > create mode 100644 kernel/sched/umcg.c > create mode 100644 tools/lib/umcg/.gitignore > create mode 100644 tools/lib/umcg/Makefile > create mode 100644 tools/lib/umcg/libumcg.c > create mode 100644 tools/lib/umcg/libumcg.h > create mode 100644 tools/lib/umcg/libumcg.txt > > > base-commit: 8ea9183db4ad8afbcb7089a77c23eaf965b0cacd > -- > 2.25.1 > Thanks Barry