All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Beulich <jbeulich@suse.com>
To: Jason Andryuk <jason.andryuk@amd.com>
Cc: "Daniel P. Smith" <dpsmith@apertussolutions.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [PATCH 2/4] xsm/silo: Support hwdom/control domains
Date: Wed, 11 Jun 2025 15:17:50 +0200	[thread overview]
Message-ID: <0f47268e-0674-46e7-bfd4-8a395ee1ddf6@suse.com> (raw)
In-Reply-To: <20250610225737.469690-3-jason.andryuk@amd.com>

On 11.06.2025 00:57, Jason Andryuk wrote:
> In a disaggregated environment, dom0 is split into Control, Hardware,
> and Xenstore domains, along with domUs.  The is_control_domain() check
> is not sufficient to handle all these cases.  Add is_priv_domain() to
> support allowing for the various domains.
> 
> The purpose of SILO mode is to prevent domUs from interacting with each
> other.  But dom0 was allowed to communicate with domUs to provide
> services.  As the disaggregation of dom0, Control, Hardware and Xenstore
> are all service domains that need to communicate with other domains.
> 
> To provide xenstore connections, the Xenstore domain must be allowed to
> connect via grants and event channels.  Xenstore domain must also be
> allowed to connect to Control and Hardware to provide xenstore to them.

Are you suggesting that SILO at present is incompatible with a Xenstore
domain? silo_mode_dom_check() in its original form has no special
precautions, after all.

> Hardware domain will provide PV devices to domains, so it must be
> allowed to connect to domains.

As a built-in policy, isn't this already going too far? There could
conceivably be configurations with only pass-through devices in use, in
which case neither grants nor the event channels operations intercepted
by SILO would be required.

> That leaves Control.  Xenstore and Hardware would already allow access
> to Control, so it can obtain services that way.  Control should be
> "privileged", which would mean it can make the connections.  But with
> Xenstore and Hardware providing their services to domUs, there may not
> be a reason to allow Control to use grants or event channels with domUs.
> Still, Control is privileged, so it should be allowed to do something if
> it chooses.  Establishing a grant, or event channel requires action on
> both sides, so allow for the possibility.  This does open up an argo
> wildcard ring from domUs, FWIW.

Along the lines of my reply to patch 1, I think Hardware and Control
need to have a pretty strong boundary between them. It's hard to see,
for example, whether grant map/copy/transfer would indeed make sense
between the two.

Similarly I'm not convinced a strong boundary isn't also needed
between Xenstore and Hardware.

> --- a/xen/xsm/silo.c
> +++ b/xen/xsm/silo.c
> @@ -20,6 +20,12 @@
>  #define XSM_NO_WRAPPERS
>  #include <xsm/dummy.h>
>  
> +static bool is_priv_domain(const struct domain *d)
> +{
> +    return is_xenstore_domain(d) || is_hardware_domain(d) ||
> +           is_control_domain(d);
> +}

This construct expands to two evaluate_nospec(), which likely isn't
wanted. Some open-coding may be pretty much unavoidable here. (I'm
surprised it's not three, i.e. I find it odd that is_xenstore_domain()
doesn't also use that guard.)

Jan


  reply	other threads:[~2025-06-11 13:18 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 [this message]
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
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=0f47268e-0674-46e7-bfd4-8a395ee1ddf6@suse.com \
    --to=jbeulich@suse.com \
    --cc=dpsmith@apertussolutions.com \
    --cc=jason.andryuk@amd.com \
    --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.