User Managed Concurrency Groups
From: | Peter Oskolkov <posk-AT-google.com> | |
To: | Peter Zijlstra <peterz-AT-infradead.org>, mingo-AT-redhat.com, tglx-AT-linutronix.de, juri.lelli-AT-redhat.com, vincent.guittot-AT-linaro.org, dietmar.eggemann-AT-arm.com, rostedt-AT-goodmis.org, bsegall-AT-google.com, mgorman-AT-suse.de, bristot-AT-redhat.com | |
Subject: | [RFC PATCH v2 0/5] User Managed Concurrency Groups | |
Date: | Thu, 13 Jan 2022 15:39:35 -0800 | |
Message-ID: | <20220113233940.3608440-1-posk@google.com> | |
Cc: | linux-kernel-AT-vger.kernel.org, linux-mm-AT-kvack.org, linux-api-AT-vger.kernel.org, x86-AT-kernel.org, pjt-AT-google.com, posk-AT-google.com, avagin-AT-google.com, jannh-AT-google.com, tdelisle-AT-uwaterloo.ca, posk-AT-posk.io | |
Archive-link: | Article |
This adds two small patches on top of peterz@'s RFC from https://lore.kernel.org/lkml/20211214204445.665580974@inf... The new patches are not fully tested - I'm still working on it. I'll post another patch shortly that adds worker timeouts in sys_umcg_wait(). Sending this out just to break the silence and to assess if the approach I'm taking here is not strongly NACKed. Peter Oskolkov (3): sched/umcg: add WF_CURRENT_CPU and externise ttwu sched: UMCG: add a blocked worker list sched: UMCG: allow to sys_umcg_kick UMCG servers Peter Zijlstra (2): x86/uaccess: Implement unsafe_try_cmpxchg_user() sched: User Mode Concurency Groups arch/x86/Kconfig | 1 + arch/x86/entry/syscalls/syscall_64.tbl | 3 + arch/x86/include/asm/thread_info.h | 2 + arch/x86/include/asm/uaccess.h | 57 ++ fs/exec.c | 1 + include/linux/entry-common.h | 6 + include/linux/sched.h | 86 +++ include/linux/syscalls.h | 4 + include/linux/thread_info.h | 2 + include/uapi/asm-generic/unistd.h | 9 +- include/uapi/linux/umcg.h | 161 +++++ init/Kconfig | 15 + kernel/entry/common.c | 18 +- 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 | 913 +++++++++++++++++++++++++ kernel/sys_ni.c | 5 + 20 files changed, 1305 insertions(+), 15 deletions(-) create mode 100644 include/uapi/linux/umcg.h create mode 100644 kernel/sched/umcg.c base-commit: 85538cc07d6b6dcffc1df64a22308fcb05ecddf4 -- 2.34.1.703.g22d0c6ccf7-goog