Skip to content

vmstat: skip periodic vmstat update for isolated CPUs

Marcelo Tosatti requested to merge mtosatti/centos-stream-9:vmstat-isol into main

Merge Request Required Information

vmstat: skip periodic vmstat update for isolated CPUs

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2118482

Commit be5e015d107d5336f298b74ea5a4f0b1773bc6f9

Testing: tested by verifying vmstat_update is not queued to isolated CPUs

Problem: The interruption caused by vmstat_update is undesirable for certain applications.

With workloads that are running on isolated cpus with nohz full mode to shield off any kernel interruption. For example, a VM running a time sensitive application with a 50us maximum acceptable interruption (use case: soft PLC).

oslat 1094.456862: sys_mlock(start: 7f7ed0000b60, len: 1000) oslat 1094.456971: workqueue_queue_work: ... function=vmstat_update ... oslat 1094.456974: sched_switch: prev_comm=oslat ... ==> next_comm=kworker/5:1 ... kworker 1094.456978: sched_switch: prev_comm=kworker/5:1 ==> next_comm=oslat ...

The example above shows an additional 7us for the oslat -> kworker -> oslat

switches. In the case of a virtualized CPU, and the vmstat_update interruption in the host (of a qemu-kvm vcpu), the latency penalty observed in the guest is higher than 50us, violating the acceptable latency threshold.

Signed-off-by: Marcelo Tosatti mtosatti@redhat.com

Summary of Changes

5116c27e vmstat: skip periodic vmstat update for isolated CPUs b38fe109 sched/isolation: add cpu_is_isolated() API 6a792697a53af5b3028aa2918b40677effbc349f memcg: do not drain charge pcp caches on remote isolated cpus

Approved Development Ticket

All submissions to CentOS Stream must reference an approved ticket in Red Hat Jira. Please follow the CentOS Stream contribution documentation for how to file this ticket and have it approved.

Edited by Patrick Talbert

Merge request reports