On Thu, May 20, 2021 at 11:36 AM Peter Oskolkov <posk@xxxxxxxxxx> wrote: > > Implement version 1 of core UMCG API (wait/wake/swap). > > As has been outlined in > https://lore.kernel.org/lkml/20200722234538.166697-1-posk@xxxxxxx/, > efficient and synchronous on-CPU context switching is key > to enabling two broad use cases: in-process M:N userspace scheduling > and fast X-process RPCs for security wrappers. > > High-level design considerations/approaches used: > - wait & wake can race with each other; > - offload as much work as possible to libumcg in tools/lib/umcg, > specifically: > - most state changes, e.g. RUNNABLE <=> RUNNING, are done in > the userspace (libumcg); > - retries are offloaded to the userspace. Do you have some perf numbers as to how long a UMCG context switch takes compared to a normal one? --Andy