lkml.org 
[lkml]   [2022]   [Jun]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v7 2/2] misc: Add a mechanism to detect stalls on guest vCPUs
    On 2022-06-21 09:27, Greg Kroah-Hartman wrote:
    > On Tue, Jun 21, 2022 at 08:03:09AM +0000, Sebastian Ene wrote:
    >> This driver creates per-cpu hrtimers which are required to do the
    >> periodic 'pet' operation. On a conventional watchdog-core driver, the
    >> userspace is responsible for delivering the 'pet' events by writing to
    >> the particular /dev/watchdogN node. In this case we require a strong
    >> thread affinity to be able to account for lost time on a per vCPU.
    >>
    >> This part of the driver is the 'frontend' which is reponsible for
    >> delivering the periodic 'pet' events, configuring the virtual
    >> peripheral
    >> and listening for cpu hotplug events. The other part of the driver
    >> handles the peripheral emulation and this part accounts for lost time
    >> by
    >> looking at the /proc/{}/task/{}/stat entries and is located here:
    >> https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3548817
    >>
    >> Signed-off-by: Sebastian Ene <sebastianene@google.com>
    >> ---
    >> drivers/misc/Kconfig | 12 ++
    >> drivers/misc/Makefile | 1 +
    >> drivers/misc/vcpu_stall_detector.c | 222
    >> +++++++++++++++++++++++++++++
    >> 3 files changed, 235 insertions(+)
    >> create mode 100644 drivers/misc/vcpu_stall_detector.c
    >>
    >> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
    >> index 41d2bb0ae23a..e15c85d74c4b 100644
    >> --- a/drivers/misc/Kconfig
    >> +++ b/drivers/misc/Kconfig
    >> @@ -483,6 +483,18 @@ config OPEN_DICE
    >>
    >> If unsure, say N.
    >>
    >> +config VCPU_STALL_DETECTOR
    >> + tristate "VCPU stall detector"
    >> + select LOCKUP_DETECTOR
    >> + help
    >> + Detect CPU locks on a kvm virtual machine. This driver relies on
    >> + the hrtimers which are CPU-binded to do the 'pet' operation. When
    >> a
    >> + vCPU has to do a 'pet', it exits the guest through MMIO write and
    >> + the backend driver takes into account the lost ticks for this
    >> + particular CPU.
    >> + To compile this driver as a module, choose M here: the
    >> + module will be called vcpu_stall_detector.
    >
    > Should this depend on KVM_GUEST?

    Not all architectures have KVM_GUEST, and arm64 has no use for it.

    Thanks,

    M.
    --
    Jazz is not dead. It just smells funny...

    \
     
     \ /
      Last update: 2022-06-21 10:45    [W:6.136 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site