From: Alejandro Vallejo <alejandro.garciavallejo@amd.com>
To: Demi Marie Obenour <demiobenour@gmail.com>, <dmukhin@xen.org>,
<xen-devel@lists.xenproject.org>
Cc: andrew.cooper3@citrix.com, anthony.perard@vates.tech,
jbeulich@suse.com, julien@xen.org, michal.orzel@amd.com,
roger.pau@citrix.com, sstabellini@kernel.org, dmukhin@ford.com,
"Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>,
"Simon Gaiser" <simon@invisiblethingslab.com>,
Xen-devel <xen-devel-bounces@lists.xenproject.org>
Subject: Re: [PATCH v17 0/4] xen/domain: domain ID allocation
Date: Fri, 5 Sep 2025 16:23:12 +0200 [thread overview]
Message-ID: <DCKXNJQ1AVB9.1PE1JBUJXW93Y@amd.com> (raw)
In-Reply-To: <4bfee720-f117-4ac5-8cf8-8d9e718f6694@gmail.com>
On Thu Sep 4, 2025 at 10:15 PM CEST, Demi Marie Obenour wrote:
> On 8/29/25 19:21, dmukhin@xen.org wrote:
>> Patch 1 introduces new domid_{alloc,free} calls.
>> Patch 2 is a prep change for domain ID allocator test.
>> Patch 3 introduces some basic testing for domain ID allocator.
>> Patch 4 adjusts create_dom0() messages (use %pd).
>>
>> Link to v16: https://lore.kernel.org/xen-devel/20250812223024.2364749-1-dmukhin@ford.com/
>> Link to CI: https://gitlab.com/xen-project/people/dmukhin/xen/-/pipelines/2012378054
>>
>> Denis Mukhin (4):
>> xen/domain: unify domain ID allocation
>> tools/include: move xc_bitops.h to xen-tools/bitops.h
>> tools/tests: introduce unit tests for domain ID allocator
>> xen/domain: update create_dom0() messages
>>
>> .../xen-tools/bitops.h} | 16 +++-
>> tools/libs/ctrl/xc_misc.c | 13 +--
>> tools/libs/guest/xg_dom_elfloader.c | 1 -
>> tools/libs/guest/xg_dom_hvmloader.c | 1 -
>> tools/libs/guest/xg_private.h | 2 +-
>> tools/libs/guest/xg_sr_common.h | 2 -
>> tools/tests/Makefile | 1 +
>> tools/tests/domid/.gitignore | 2 +
>> tools/tests/domid/Makefile | 88 +++++++++++++++++
>> tools/tests/domid/harness.h | 54 +++++++++++
>> tools/tests/domid/test-domid.c | 95 +++++++++++++++++++
>> xen/arch/arm/domain_build.c | 13 ++-
>> xen/arch/x86/setup.c | 11 ++-
>> xen/common/Makefile | 1 +
>> xen/common/device-tree/dom0less-build.c | 15 +--
>> xen/common/domain.c | 2 +
>> xen/common/domctl.c | 43 ++-------
>> xen/common/domid.c | 95 +++++++++++++++++++
>> xen/include/xen/domain.h | 3 +
>> xen/lib/find-next-bit.c | 5 +
>> 20 files changed, 397 insertions(+), 66 deletions(-)
>> rename tools/{libs/ctrl/xc_bitops.h => include/xen-tools/bitops.h} (84%)
>> create mode 100644 tools/tests/domid/.gitignore
>> create mode 100644 tools/tests/domid/Makefile
>> create mode 100644 tools/tests/domid/harness.h
>> create mode 100644 tools/tests/domid/test-domid.c
>> create mode 100644 xen/common/domid.c
>
> Would it make sense to support virtualizing the domain ID space?
> That would allow the toolstack to only allow a domain to communicate
> with other domains of its choosing, rather than with any domain XSM
> permits. This would also allow avoiding domain ID reuse problems,
> because a virtual domain ID would stay valid even after the domain
> it refers to no longer exists. It would need to be explicitly released
> by the guest kernel before it could refer to a different domain.
I'd be all-in for something like that. For context, this is something we
briefly touched on over lunch on the last Xen Summit (it was Juergen, Marek you
and I, I think?). Regardless, this series is only tangentially related. Even if
you do have several domclusters, you'd still need a per-cluster allocator of
domids. For something like domcluster-namespaces to work, we'd need to extend
createdomain to also take a domcluster-id, then the unique domain identifier
comes from a domcluster-id+domid.
I tried shortly after we discussed it to sketch out a credible plan to getting
there, but there were more wrinkles than I expected. You'd definitely want some
domains to be in several namespaces at the same time (The hwdom, at least),
which involves some refcounting I was unsure how to do. Not a major show-stopper
but I hate refcounts with the intensity of a power plant.
grants also become more complicated when you have a domain in several
namespaces, because now you need several grant tables per domain (one per
namespace). The ultimate consequence of this means that if dom0 wants to create
a new domcluster and bind itself to it, now it needs to create a NEW grant table
for itself. Xen is also unaware of this multi-grant table shenanigans so that
needs accounting for too.
Then there's adjustments to be done on the maptrack.
So. I'd really like for this to become a reality, but it requires someone with
time to do it to sit down and walk down the rabbit hole. It was definitely
far deeper than I expected it to be. It doesn't seem to be untractably deep,
but deep enough that I don't want to do it in my spare time. It'd require
coordinated changes at least in Linux, Xen and the toolstack.
Cheers,
Alejandro
prev parent reply other threads:[~2025-09-05 14:23 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-29 23:21 [PATCH v17 0/4] xen/domain: domain ID allocation dmukhin
2025-08-29 23:21 ` [PATCH v17 1/4] xen/domain: unify " dmukhin
2025-08-29 23:21 ` [PATCH v17 2/4] tools/include: move xc_bitops.h to xen-tools/bitops.h dmukhin
2025-08-29 23:21 ` [PATCH v17 3/4] tools/tests: introduce unit tests for domain ID allocator dmukhin
2025-09-04 13:50 ` Anthony PERARD
2025-09-05 23:19 ` dmukhin
2025-08-29 23:21 ` [PATCH v17 4/4] xen/domain: update create_dom0() messages dmukhin
2025-09-03 21:28 ` [PATCH v17 0/4] xen/domain: domain ID allocation Stefano Stabellini
2025-09-04 20:15 ` Demi Marie Obenour
2025-09-05 14:23 ` Alejandro Vallejo [this message]
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=DCKXNJQ1AVB9.1PE1JBUJXW93Y@amd.com \
--to=alejandro.garciavallejo@amd.com \
--cc=andrew.cooper3@citrix.com \
--cc=anthony.perard@vates.tech \
--cc=demiobenour@gmail.com \
--cc=dmukhin@ford.com \
--cc=dmukhin@xen.org \
--cc=jbeulich@suse.com \
--cc=julien@xen.org \
--cc=marmarek@invisiblethingslab.com \
--cc=michal.orzel@amd.com \
--cc=roger.pau@citrix.com \
--cc=simon@invisiblethingslab.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel-bounces@lists.xenproject.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.