Devconf.US

Linux Kernel Dynamic CPU Isolation
08-15, 11:20–11:55 (US/Eastern), Terrace Lounge (capacity 48)

The traditional way to run a latency sensitive and CPU intensive
user space workload is to use the "nohz_full", "isolcpus" and "rcu_nocbs"
boot kernel parameters to statically isolate a set of CPUs at boot
time from kernel disturbance. This workload will run continuously on the
isolated CPUs until the system is shut down. The remaining housekeeping
CPUs will have a greater burden to run the necessary kernel background
activities on behalf of the isolated CPUs.

In the new world of containerized computing environment, workloads come
and go dynamically. These latency sensitive and CPU intensive workloads
will not work well as we can't pre-reserve at boot time a set of isolated
CPUs which can be a waste of resource as they may not be usable for other
types of workloads. Dynamic CPU isolation is a new way to create a set
of isolated CPUs dynamically on demand when they are needed and release
them back to the housekeeping CPU pool once they are no longer needed.

A number of kernel background activities can be offloaded from the
statically isolated CPUs. The latest Linux kernel is able to dynamically
offload a subset of these kernel background activities. More work
still need to be done to enable offloading of the remaining background
activities to make dynamic CPU isolation as close to static CPU isolation
as possible.

This session will talk about CPU isolation in general and the current
progress in closing the gap between dynamic and static CPU isolation.

See also: Slide (161.7 KB)

Waiman Long is an experienced kernel software engineer at Red Hat, Inc.
His major focus areas are kernel synchronization primitives, performance
and scalability, and cgroup in the upstream Linux kernel as well as
the Red Hat Enterprise Linux kernel.

He has multiple years of working experience on Linux, HP-UX and Tru64
UNIX in both the kernel and the C runtime library.