[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAGsJ_4xRcu1P9EV0-9GF00n7Cg0=0=NRQ8dj1EAe4OZotWWfbQ@mail.gmail.com>
Date: Tue, 9 Nov 2021 21:55:45 +1300
From: Barry Song <21cnbao@...il.com>
To: posk@...k.io
Cc: Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Andy Lutomirski <luto@...nel.org>,
Linux-MM <linux-mm@...ck.org>,
LKML <linux-kernel@...r.kernel.org>, linux-api@...r.kernel.org,
Paul Turner <pjt@...gle.com>, Ben Segall <bsegall@...gle.com>,
Peter Oskolkov <posk@...gle.com>,
Andrei Vagin <avagin@...gle.com>, Jann Horn <jannh@...gle.com>,
Thierry Delisle <tdelisle@...terloo.ca>
Subject: Re: [PATCH v0.8 0/6] sched,mm,x86/uaccess: implement User Managed
Concurrency Groups
On Fri, Nov 5, 2021 at 8:58 AM Peter Oskolkov <posk@...k.io> 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@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
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
Powered by blists - more mailing lists