On 24.01.2023 17:29, Jan Beulich wrote: > On 23.01.2023 16:47, Carlo Nonato wrote: >> @@ -92,6 +92,10 @@ struct xen_domctl_createdomain { >> /* CPU pool to use; specify 0 or a specific existing pool */ >> uint32_t cpupool_id; >> >> + /* IN LLC coloring parameters */ >> + uint32_t num_llc_colors; >> + XEN_GUEST_HANDLE(uint32) llc_colors; > > Despite your earlier replies I continue to be unconvinced that this > is information which needs to be available right at domain_create. > Without that you'd also get away without the sufficiently odd > domain_create_llc_colored(). (Odd because: Think of two or three > more extended features appearing, all of which want a special cased > domain_create().)
And perhaps the real question is: Why do the two items need passing to a special variant of domain_create() in the first place? The necessary information already is passed to the normal function via struct xen_domctl_createdomain. All it would take is to read the array from guest space later, when struct domain was already allocated and is hence available for storing the pointer. (Passing the count separately is redundant in any event.) Jan