[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v16 1/4] xen/domain: unify domain ID allocation
- To: dmkhn@xxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxxx
- From: Julien Grall <julien@xxxxxxx>
- Date: Wed, 20 Aug 2025 22:33:16 +0100
- Cc: andrew.cooper3@xxxxxxxxxx, anthony.perard@xxxxxxxxxx, jbeulich@xxxxxxxx, michal.orzel@xxxxxxx, roger.pau@xxxxxxxxxx, sstabellini@xxxxxxxxxx, dmukhin@xxxxxxxx, Julien Grall <jgrall@xxxxxxxxxx>, Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
- Delivery-date: Wed, 20 Aug 2025 21:33:28 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
Hi Denis,
On 12/08/2025 23:30, dmkhn@xxxxxxxxx wrote:
From: Denis Mukhin <dmukhin@xxxxxxxx>
Currently, there are two different domain ID allocation implementations:
1) Sequential IDs allocation in dom0less Arm code based on max_init_domid;
2) Sequential IDs allocation in XEN_DOMCTL_createdomain; does not use
max_init_domid (both Arm and x86).
The domain ID allocation covers dom0 or late hwdom, predefined domains,
post-boot domains, excluding Xen system domains (domid >=
DOMID_FIRST_RESERVED).
It makes sense to have a common helper code for such task across architectures
(Arm and x86) and between dom0less / toolstack domU allocation.
Note, fixing dependency on max_init_domid is out of scope of this patch.
Wrap the domain ID allocation as an arch-independent function domid_alloc() in
new common/domid.c based on the bitmap.
Allocation algorithm:
- If an explicit domain ID is provided, verify its availability and use it if
ID is not used;
- If DOMID_INVALID is provided, search the range [1..DOMID_FIRST_RESERVED-1],
starting from the last used ID.
Implementation guarantees that two consecutive calls will never return the
same ID. ID#0 is reserved for the first boot domain (currently, dom0) and
excluded from the allocation range.
Remove is_free_domid() helper as it is not needed now.
No functional change intended.
Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx>
> Reviewed-by: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
> ---> Changes since v15:
- fixup for check after the first pass in the bitarray in domid_alloc()
This was a good catch from Jan. Has a unit-test been added for this issue?
Anyway, my reviewed-by holds.
Cheers,
--
Julien Grall
|