lkml.org 
[lkml]   [2021]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v0.8 0/6] sched,mm,x86/uaccess: implement User Managed Concurrency Groups
    Date
    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@google.com/:

    - 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

    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

    \
     
     \ /
      Last update: 2021-11-04 20:58    [W:4.040 / U:1.828 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site