From: Jan Beulich <jbeulich@suse.com>
To: Stefano Stabellini <sstabellini@kernel.org>
Cc: "Jason Andryuk" <jason.andryuk@amd.com>,
"Christian Lindig" <christian.lindig@citrix.com>,
"David Scott" <dave@recoil.org>,
"Anthony PERARD" <anthony.perard@vates.tech>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"Michal Orzel" <michal.orzel@amd.com>,
"Julien Grall" <julien@xen.org>,
"Roger Pau Monné" <roger.pau@citrix.com>,
"Bertrand Marquis" <bertrand.marquis@arm.com>,
"Volodymyr Babchuk" <Volodymyr_Babchuk@epam.com>,
"Daniel P. Smith" <dpsmith@apertussolutions.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH 3/4] xen: Add DOMAIN_CAPS_DEVICE_MODEL & XEN_DOMCTL_CDF_device_model
Date: Mon, 16 Jun 2025 07:58:56 +0200 [thread overview]
Message-ID: <3ef3ed9d-d6af-4621-ab4c-eb2ea88081b3@suse.com> (raw)
In-Reply-To: <alpine.DEB.2.22.394.2506131536510.8480@ubuntu-linux-20-04-desktop>
On 14.06.2025 00:47, Stefano Stabellini wrote:
> On Wed, 11 Jun 2025, Jan Beulich wrote:
>> On 11.06.2025 00:57, Jason Andryuk wrote:
>>> To add more flexibility in system configuration add the new
>>> DOMAIN_CAPS_DEVICE_MODEL flag and XEN_DOMCTL_CDF_device_model.
>>>
>>> Thie new flag corresponds to allowing XSM_DM_PRIV for the domain. This
>>> will enable running device model emulators (QEMU) from the assigne
>>> domain for multiple target domains.
>>>
>>> Stubdoms assign target allowing the stubdom to serve as the device
>>> model for a single domain. This new flag allows the single domain to
>>> provide emulators for multiple guests.
>>>
>>> The specific scenario is a disaggregated system with the hardware domain
>>> providing device models for muitple guest domains.
>>
>> Why the hardware domain? Unless a DM also needs access to some of the
>> physical hardware, it ought to run in a separate domain. Conceivably
>> such a domain could service multiply guests, so maybe the "single
>> target" concept presently used for stubdom simply needed extending?
>
> Not necessarily. While it is possible to have driver domains, it is not
> the default configuration.
>
> In a default configuration, the hardware domain gets all the hardware by
> default and therefore will also run the PV backends and Virtio backends.
> The Virtio backends require DM hypercalls. Let me elaborate further.
>
> In the datacenter, we have Dom0 typically with all the hardware, the
> backends (PV and Virtio), and also the toolstack. Then all other domains
> are created dynamically by the toolstack. Driver domains are possible
> but not very common.
>
> In automotive/embedded, the total number of domains is static, so we can
> create them using dom0less. We don't need the toolstack to create VMs.
> Also, we have safety concerns, so we want to take away as much
> privileges as possible from Dom0.
At least purely by the wording, this ...
> This is easy because thanks to
> dom0less, we don't need the toolstack and we don't need to create VMs
> dynamically.
>
> So the model is that Dom0 becomes the hardware domain: it has all the
> drivers and backends but it is not privileged in the sense of
> creating/destroying other VMs. If a user wants to have Dom0 "super
> powers", they can create an optional Control Domain. The Control Domain
> is expected to be tiny, such as XTF or Zephyr. It will have the ability
> that Dom0 used to have but without the drivers. From a privilege
> perspective, the Control Domain could create additional VMs, but in
> automotive/embedded it is not expected to be a use-case because the
> total number of VMs is still static.
>
> So your point about driver domains. Yes, one can have driver domains the
> same way that one can have driver domains in the datacenter but it is
> not the default.
... kind of contradicts this: Running e.g. qemu in Dom0 gives Dom0 quite
a bit of extra privilege. (And no, the term "driver domain" does not
describe a domain running DMs, imo.)
Jan
> The new default for embedded is what I described above
> and I think it is a very widely applicable concept across industries:
> automotive, industrial, robotics, etc. and also across vendors: AMD,
> Xilinx, Renesas, EPAM, ARM, etc.
next prev parent reply other threads:[~2025-06-16 5:59 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-10 22:57 [PATCH 0/4] XSM changes for split hardware / control domain Jason Andryuk
2025-06-10 22:57 ` [PATCH 1/4] xen/xsm: Add XSM_HW_PRIV Jason Andryuk
2025-06-11 13:02 ` Jan Beulich
2025-06-11 3:13 ` Jason Andryuk
2025-06-12 7:36 ` Jan Beulich
2025-06-12 17:31 ` Jason Andryuk
2025-06-10 22:57 ` [PATCH 2/4] xsm/silo: Support hwdom/control domains Jason Andryuk
2025-06-11 13:17 ` Jan Beulich
2025-06-11 4:20 ` Jason Andryuk
2025-06-12 7:52 ` Jan Beulich
2025-06-12 16:56 ` Jason Andryuk
2025-06-12 20:30 ` Jason Andryuk
2025-06-13 6:20 ` Jan Beulich
2025-06-10 22:57 ` [PATCH 3/4] xen: Add DOMAIN_CAPS_DEVICE_MODEL & XEN_DOMCTL_CDF_device_model Jason Andryuk
2025-06-11 8:25 ` Christian Lindig
2025-06-11 13:24 ` Jan Beulich
2025-06-11 4:35 ` Jason Andryuk
2025-06-13 22:47 ` Stefano Stabellini
2025-06-13 23:44 ` Demi Marie Obenour
2025-06-14 0:15 ` Stefano Stabellini
2025-06-16 5:58 ` Jan Beulich [this message]
2025-06-17 0:21 ` Stefano Stabellini
2025-06-10 22:57 ` [PATCH 4/4] xsm/dummy: Allow hwdom SYSCTL_readconsole/physinfo Jason Andryuk
2025-06-11 13:27 ` Jan Beulich
2025-06-11 4:48 ` Jason Andryuk
2025-06-13 22:51 ` Stefano Stabellini
2025-06-16 6:36 ` Jan Beulich
2025-06-17 0:10 ` Stefano Stabellini
2025-06-17 5:23 ` Jan Beulich
2025-06-19 0:36 ` Stefano Stabellini
2025-06-20 6:05 ` Jan Beulich
2025-07-07 21:52 ` Stefano Stabellini
2025-06-11 13:28 ` [PATCH 0/4] XSM changes for split hardware / control domain Jan Beulich
2025-06-11 5:08 ` Jason Andryuk
2025-06-12 7:33 ` Jan Beulich
2025-06-13 22:59 ` Stefano Stabellini
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=3ef3ed9d-d6af-4621-ab4c-eb2ea88081b3@suse.com \
--to=jbeulich@suse.com \
--cc=Volodymyr_Babchuk@epam.com \
--cc=andrew.cooper3@citrix.com \
--cc=anthony.perard@vates.tech \
--cc=bertrand.marquis@arm.com \
--cc=christian.lindig@citrix.com \
--cc=dave@recoil.org \
--cc=dpsmith@apertussolutions.com \
--cc=jason.andryuk@amd.com \
--cc=julien@xen.org \
--cc=michal.orzel@amd.com \
--cc=roger.pau@citrix.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.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.