All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Sebastian Ene <sebastianene@google.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org,
	Derek Kiernan <derek.kiernan@xilinx.com>,
	Dragan Cvetic <dragan.cvetic@xilinx.com>,
	Arnd Bergmann <arnd@arndb.de>,
	devicetree@vger.kernel.org, qperret@google.com, will@kernel.org,
	Rob Herring <robh+dt@kernel.org>
Subject: Re: [PATCH v4 2/2] misc: Add a mechanism to detect stalls on guest vCPUs
Date: Fri, 29 Apr 2022 10:02:24 -0700	[thread overview]
Message-ID: <dbbe0db1-9a0d-4f14-f8e9-81fae4422d31@roeck-us.net> (raw)
In-Reply-To: <YmuvQvuPF/mn5S4C@google.com>

On 4/29/22 02:26, Sebastian Ene wrote:
> On Fri, Apr 29, 2022 at 10:51:14AM +0200, Greg Kroah-Hartman wrote:
>> On Fri, Apr 29, 2022 at 08:30:33AM +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/vm-watchdog.c | 206 +++++++++++++++++++++++++++++++++++++
>>>   3 files changed, 219 insertions(+)
>>>   create mode 100644 drivers/misc/vm-watchdog.c
>>>
>>> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
>>> index 2b9572a6d114..26c3a99e269c 100644
>>> --- a/drivers/misc/Kconfig
>>> +++ b/drivers/misc/Kconfig
>>> @@ -493,6 +493,18 @@ config OPEN_DICE
>>>   
>>>   	  If unsure, say N.
>>>   
>>> +config VM_WATCHDOG
>>> +	tristate "Virtual Machine Watchdog"
>>> +	select LOCKUP_DETECTOR
>>> +	help
>>> +	  Detect CPU locks on the 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.
> 
> Hi,
> 
>>
>> There's nothing to keep this tied to a virtual machine at all, right?
>> You are just relying on some iomem address to be updated, so it should
>> be a "generic_iomem_watchdog" driver as there's nothing specific to vms
>> at all from what I can tell.
>>
>> thanks,
>>
>> greg k-h
> 
> That's right although I might think of using the term "generic lockup detector"

Agreed, that would be a much better name.

Guenter


> instead of watchdog. The only reason why I would keep "virtual machine"
> word in, is that there is no actual hardware for this.
> 
> Thanks,
> Seb


  parent reply	other threads:[~2022-04-29 17:03 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-29  8:30 [PATCH v4 0/2] Detect stalls on guest vCPUS Sebastian Ene
2022-04-29  8:30 ` [PATCH v4 1/2] dt-bindings: vm-wdt: Add qemu,vm-watchdog compatible Sebastian Ene
2022-04-29 15:53   ` Rob Herring
2022-05-07  8:16   ` Sebastian Ene
2022-04-29  8:30 ` [PATCH v4 2/2] misc: Add a mechanism to detect stalls on guest vCPUs Sebastian Ene
2022-04-29  8:48   ` Greg Kroah-Hartman
2022-04-29 16:51     ` Guenter Roeck
2022-04-30  6:18       ` Greg Kroah-Hartman
2022-04-30 12:36         ` Guenter Roeck
2022-05-02  5:58           ` Sebastian Ene
2022-04-29  8:51   ` Greg Kroah-Hartman
2022-04-29  9:26     ` Sebastian Ene
2022-04-29  9:38       ` Greg Kroah-Hartman
2022-04-29 21:03         ` Rob Herring
2022-05-04  7:29           ` Sebastian Ene
2022-04-29 17:02       ` Guenter Roeck [this message]
2022-04-29 20:25 ` [PATCH v4 0/2] Detect stalls on guest vCPUS Rob Herring
2022-05-02  6:03   ` Sebastian Ene

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dbbe0db1-9a0d-4f14-f8e9-81fae4422d31@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=arnd@arndb.de \
    --cc=derek.kiernan@xilinx.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dragan.cvetic@xilinx.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=qperret@google.com \
    --cc=robh+dt@kernel.org \
    --cc=sebastianene@google.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.