Thread (29 messages) 29 messages, 8 authors, 2025-09-12

Re: [PATCH 0/2] Add support for Gunyah Watchdog

From: Rob Herring <robh@kernel.org>
Date: 2025-09-04 22:51:37
Also in: linux-arm-msm, linux-watchdog, lkml

On Thu, Sep 4, 2025 at 6:31 AM Konrad Dybcio
[off-list ref] wrote:
On 9/4/25 2:10 AM, Rob Herring wrote:
quoted
On Wed, Sep 03, 2025 at 07:33:58PM +0000, Hrishabh Rajput wrote:
quoted
Gunyah is a Type-I hypervisor which was introduced in the patch series
[1]. It is an open source hypervisor. The source repo is available at
[2].

The Gunyah Hypervisor doesn't allow its Virtual Machines to directly
access the MMIO watchdog. It either provides the fully emulated MMIO
based watchdog interface or the SMC-based watchdog interface depending
on the hypervisor configuration.
EFI provides a standard watchdog interface. Why can't you use that?
The use of UEFI at Qualcomm is not exactly what you would expect..
quoted
quoted
The SMC-based watchdog follows ARM's SMC Calling Convention (SMCCC)
version 1.1 and uses Vendor Specific Hypervisor Service Calls space.
Is a watchdog really a hypervisor service? Couldn't a non-virtualized
OS want to call a watchdog (in secure mode) as well? But I don't know
how the SMCCC call space is divided up...
Gunyah traps SMC calls and acts on a subset of them, passing others
to TZ
My question was just whether it's the right call space to use. I would
think hypervisor calls would be things like "vm start" or "vm stop",
not something which in theory could be implemented without a
hypervisor in the middle.
quoted
quoted
This patch series adds support for the SMC-based watchdog interface
provided by the Gunyah Hypervisor. The driver supports start/stop
operations, timeout and pretimeout configuration, pretimeout interrupt
handling and system restart via watchdog.
Shouldn't system restart be handled by PSCI?
I believe the author is trying to say that the watchdog is not
configurable from Linux at present, and if the platform hangs, there
are some indeterminate default settings in place
quoted
Why can't you probe by trying to see if watchdog smc call succeeds to
see if there is a watchdog? Then you don't need DT for it.
There apparently isn't a good way to tell from a running system whether
Gunyah is present, unless you make a smc call (which could in theory be
parsed by something else, say a different hypervisor..), but then this
patch only introduces the watchdog interface, without all the cruft that
would actually let us identify the hypervisor, get its version ID and
perform sanity checks..
IIRC, last time we got just a gunyah node. Now it's that plus a
watchdog. What's next? I'm not really a fan of $soc_vendor hypervisor
interfaces. I doubt anyone else is either. We have all sorts of
standard interfaces already between virtio, vfio, EFI, SCMI, PSCI,
etc. Can we please not abuse DT with $soc_vendor hypervisor devices.

Rob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help