From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Elliot Berman <quic_eberman@quicinc.com>, Marc Zyngier <maz@kernel.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>,
Murali Nalajala <quic_mnalajal@quicinc.com>,
Trilok Soni <quic_tsoni@quicinc.com>,
Srivatsa Vaddagiri <quic_svaddagi@quicinc.com>,
Carl van Schaik <quic_cvanscha@quicinc.com>,
Andy Gross <agross@kernel.org>,
linux-arm-kernel@lists.infradead.org,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Sudeep Holla <sudeep.holla@arm.com>,
Rob Herring <robh+dt@kernel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
Jonathan Corbet <corbet@lwn.net>, Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
devicetree@vger.kernel.org, linux-doc@vger.kernel.org,
linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH v2 07/11] gunyah: msgq: Add Gunyah message queues
Date: Tue, 23 Aug 2022 10:57:30 +0300 [thread overview]
Message-ID: <b8213d5f-b1ba-6576-e9f5-3511c57b2def@linaro.org> (raw)
In-Reply-To: <68e241fd-16f0-96b4-eab8-369628292e03@quicinc.com>
On 09/08/2022 19:50, Elliot Berman wrote:
>
>
> On 8/9/2022 4:29 AM, Marc Zyngier wrote:
>> On Mon, 08 Aug 2022 23:22:48 +0100,
>> Elliot Berman <quic_eberman@quicinc.com> wrote:
>>>
>>> In a future series, I'll add the support to load other virtual
>>> machines. When running other virtual machines, additional gunyah
>>> devices are needed for doorbells (e.g. to emulate interrupts for
>>> paravirtualized devices) and to represent the vCPUs of that other
>>> VM. Other gunyah devices are also possible, but those are the
>>> immediate devices coming over the horizon.
>>
>> Can you elaborate on this "doorbell" aspect? If you signal interrupts
>> to guests, they should be signalled as actual interrupts, not as some
>> hypervisor-specific events, as we rely on the interrupt semantics for
>> most things.
>>
>> Or are you talking about injecting an interrupt from a guest into
>> another, the doorbell representing an interrupt source?
>>
>
> Doorbells can operate either of these modes:
> 1. As simple interrupt sources. The doorbell sender makes a hypercall
> and an interrupt is raised on the receiver. The hypervisor can be
> configured to raise a specific SPI on the receiver VM and simply
> acknowledging the SPI is enough to clear the interrupt assert. No
> hypervisor-specific code is needed on the receiver to handle these
> interrupts. This is the mode one would expect to use for
> paravirtualized devices.
This sounds good.
> 2. As hypervisor-specific events which must be acknowledged using
> hypercalls. We aren't currently using this advanced use-case and no
> plans currently to post these. However, I can try to briefly
> explain: These doorbells can operate on a bitfield and the sender
> can assert flags on the bitmask; the receiver can decide which bits
> should trigger the interrupt and which SPI the doorbell "runs" on.
> The "user story" for this doorbell is to support multiple sender
> using the same doorbell object. Each sender has a few designated
> bits they should set. The receiver can choose which events it wants
> an interrupt to be raised for and then can process all the pending
> events. To re-iterate, we don't have an interesting use-case for
> this yet, so don't plan on post patches for this second mode of
> doorbell.
Well. For me this sounds like 'we have such capability, no real usecase,
but we want to support it anyway' kind of story. As history has shown
multiple times, the order should be the opposite one. First you have the
use case, then you create the API for it. Otherwise it is very easy to
end up with the abstraction that looks good on the API side, but is very
hard to fit into the actual user code.
I would suggest to drop the second bullet for now and focus on getting
the simple doorbells done and accepted into mainline.
--
With best wishes
Dmitry
next prev parent reply other threads:[~2022-08-23 7:57 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-01 21:12 [PATCH v2 00/11] Drivers for gunyah hypervisor Elliot Berman
2022-08-01 21:12 ` [PATCH v2 01/11] docs: gunyah: Introduce Gunyah Hypervisor Elliot Berman
2022-08-01 21:29 ` Jeffrey Hugo
2022-08-05 3:18 ` Bagas Sanjaya
2022-08-05 15:48 ` Elliot Berman
2022-08-06 15:31 ` kernel test robot
2022-08-01 21:12 ` [PATCH v2 02/11] dt-bindings: Add binding for gunyah hypervisor Elliot Berman
2022-08-02 7:28 ` Dmitry Baryshkov
2022-08-02 10:54 ` Krzysztof Kozlowski
2022-08-01 21:12 ` [PATCH v2 03/11] arm64: gunyah: Add Gunyah hypercalls ABI Elliot Berman
2022-08-02 13:34 ` Dmitry Baryshkov
2022-08-03 21:15 ` Elliot Berman
2022-08-04 7:04 ` Dmitry Baryshkov
2022-08-01 21:12 ` [PATCH v2 04/11] gunyah: Common types and error codes for Gunyah hypercalls Elliot Berman
2022-08-02 7:33 ` Dmitry Baryshkov
2022-08-03 21:16 ` Elliot Berman
2022-08-02 7:51 ` Dmitry Baryshkov
2022-08-03 21:16 ` Elliot Berman
2022-08-01 21:12 ` [PATCH v2 05/11] virt: gunyah: Add sysfs nodes Elliot Berman
2022-08-02 7:42 ` Dmitry Baryshkov
2022-08-01 21:12 ` [PATCH v2 06/11] virt: gunyah: Add capabilities bus and devices Elliot Berman
2022-08-02 8:20 ` Dmitry Baryshkov
2022-08-01 21:12 ` [PATCH v2 07/11] gunyah: msgq: Add Gunyah message queues Elliot Berman
2022-08-02 8:14 ` Dmitry Baryshkov
2022-08-08 22:22 ` Elliot Berman
[not found] ` <87zggdven5.wl-maz@kernel.org>
2022-08-09 16:50 ` Elliot Berman
2022-08-23 7:57 ` Dmitry Baryshkov [this message]
2022-08-01 21:12 ` [PATCH v2 08/11] gunyah: rsc_mgr: Add resource manager RPC core Elliot Berman
2022-08-01 21:12 ` [PATCH v2 09/11] gunyah: rsc_mgr: Add auxiliary devices for console Elliot Berman
2022-08-02 8:38 ` Dmitry Baryshkov
2022-08-03 21:19 ` Elliot Berman
2022-08-01 21:12 ` [PATCH v2 10/11] gunyah: rsc_mgr: Add RPC for console services Elliot Berman
2022-08-01 21:12 ` [PATCH v2 11/11] gunyah: Add tty console driver for RM Console Serivces Elliot Berman
2022-08-02 8:31 ` Dmitry Baryshkov
2022-08-03 21:15 ` Elliot Berman
2022-08-01 21:27 ` [PATCH v2 00/11] Drivers for gunyah hypervisor Jeffrey Hugo
2022-08-01 21:31 ` Elliot Berman
2022-08-02 9:24 ` Dmitry Baryshkov
2022-08-08 23:38 ` Elliot Berman
2022-08-09 13:13 ` Robin Murphy
2022-08-10 0:07 ` Elliot Berman
2022-08-10 4:12 ` Jassi Brar
2022-08-18 18:10 ` Elliot Berman
2022-08-23 8:01 ` Dmitry Baryshkov
2022-08-04 8:26 ` Bagas Sanjaya
2022-08-04 21:48 ` Elliot Berman
2022-08-05 2:15 ` Bagas Sanjaya
2022-08-05 7:45 ` Marc Zyngier
[not found] <20220223233729.1571114-1-quic_eberman@quicinc.com>
2022-07-14 21:29 ` [PATCH v2 00/11] Gunyah Hypervisor drivers Elliot Berman
2022-07-14 21:29 ` [PATCH v2 07/11] gunyah: msgq: Add Gunyah message queues Elliot Berman
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=b8213d5f-b1ba-6576-e9f5-3511c57b2def@linaro.org \
--to=dmitry.baryshkov@linaro.org \
--cc=agross@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=maz@kernel.org \
--cc=quic_cvanscha@quicinc.com \
--cc=quic_eberman@quicinc.com \
--cc=quic_mnalajal@quicinc.com \
--cc=quic_svaddagi@quicinc.com \
--cc=quic_tsoni@quicinc.com \
--cc=robh+dt@kernel.org \
--cc=sudeep.holla@arm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).