vmstat: skip periodic vmstat update for isolated CPUs
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.