Google Makes New Attempt At "UMCG" As Part Of Their Open-Sourcing Effort Around Fibers
Since 2013 Google has been working on Fibers as a promising user-space scheduling framework. Fibers has been in use at Google and delivering great results while recently they began work on open-sourcing this framework for Linux and as part of that working on the new "UMCG" code.
As part of their recent effort towards open-sourcing the Fibers user-space scheduling framework, they have been working on a new underlying component called UMCG, or User-Managed Concurrency Groups, for providing new primitives and the foundation for supporting Fibers.
UMCG was previously explained as "a fast context switching and in-process userspace scheduling framework. Two main use cases are security sandboxes and userspace scheduling. Security sandboxes: fast X-process context switching will open up a bunch of light-weight security tools, e.g. gVisor, or Tor Project's Shadow simulator, to more use cases. In-process userspace scheduling is used extensively at Google to provide latency control and isolation guarantees for diverse workloads while maintaining high CPU utilization...User Managed Concurrency Groups (UMCG) is an M:N threading subsystem/toolkit that lets user space application developers implement in-process user space schedulers."
Today's UMCG "RFC v0.2" patches is their latest attempt on the kernel side code stemming from the early code review since the original version was posted at the end of May. The patches were just recently posted so it remains to be seen at this stage how upstream maintainers are interested in it and possibly how quickly its looking to mature for inclusion in the mainline kernel.
More details on the new patches can be found via the kernel mailing list. More background information on UMCG can be found here.
As part of their recent effort towards open-sourcing the Fibers user-space scheduling framework, they have been working on a new underlying component called UMCG, or User-Managed Concurrency Groups, for providing new primitives and the foundation for supporting Fibers.
UMCG was previously explained as "a fast context switching and in-process userspace scheduling framework. Two main use cases are security sandboxes and userspace scheduling. Security sandboxes: fast X-process context switching will open up a bunch of light-weight security tools, e.g. gVisor, or Tor Project's Shadow simulator, to more use cases. In-process userspace scheduling is used extensively at Google to provide latency control and isolation guarantees for diverse workloads while maintaining high CPU utilization...User Managed Concurrency Groups (UMCG) is an M:N threading subsystem/toolkit that lets user space application developers implement in-process user space schedulers."
Today's UMCG "RFC v0.2" patches is their latest attempt on the kernel side code stemming from the early code review since the original version was posted at the end of May. The patches were just recently posted so it remains to be seen at this stage how upstream maintainers are interested in it and possibly how quickly its looking to mature for inclusion in the mainline kernel.
More details on the new patches can be found via the kernel mailing list. More background information on UMCG can be found here.
6 Comments