|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 3/4] xen/console: remove max_init_domid dependency
On Thu, Jun 05, 2025 at 11:20:32PM +0100, Julien Grall wrote:
> Hi Jan,
>
> On 04/06/2025 13:55, Jan Beulich wrote:
> > On 31.05.2025 01:19, dmkhn@xxxxxxxxx wrote:
> >> --- a/xen/common/domain.c
> >> +++ b/xen/common/domain.c
> >> @@ -2461,6 +2461,39 @@ void domid_free(domid_t domid)
> >> spin_unlock(&domid_lock);
> >> }
> >>
> >> +/*
> >> + * Find the ID of the next possible console owner domain.
> >> + *
> >> + * @return Domain ID: DOMID_XEN or non-system domain IDs within
> >> + * the range of [0..DOMID_FIRST_RESERVED-1].
> >> + */
> >> +domid_t domid_find_with_input_allowed(domid_t hint)
> >> +{
> >> + domid_t domid = DOMID_XEN;
> >> +
> >> + if ( hint < DOMID_FIRST_RESERVED )
> >> + {
> >> + struct domain *d;
> >> +
> >> + rcu_read_lock(&domlist_read_lock);
> >> +
> >> + for ( d = domid_to_domain(hint);
> >
> > If the domain with ID "hint" went away, what is being switched to changes
> > compared to behavior prior to this patch, if I'm not mistaken. While this
> > _may_ be acceptable, not saying so in the description is imo a no-go.
> >
> >> + d && get_domain(d) && d->domain_id < DOMID_FIRST_RESERVED;
> >
> > What's the DOMID_FIRST_RESERVED check for? And where's the put_domain()
> > for the get_domain() here?
> >
> >> + d = rcu_dereference(d->next_in_list) )
> >> + {
> >> + if ( d->console.input_allowed )
> >> + {
> >> + domid = d->domain_id;
> >> + break;
> >> + }
> >> + }
> >> +
> >> + rcu_read_unlock(&domlist_read_lock);
> >> + }
> >> +
> >> + return domid;
> >> +}
> >
> > My concern remains: With many domains, the loop here may take quite a few
> > iterations. That's even more concerning because it regresses right away in
> > environments where along with boot-time created domains (eligible for
> > console focus) later further domains are created (non of which are eligible
> > for console focus). That is, the step from last boot-time created back to
> > DOMID_XEN may now take excessively long.
>
> +1. I vaguely recall making the same concern earlier in the review. One
> possibility would be to have a list of domains where the console is
> supported. I don't think it would be necessary to have the list sorted
> as I view the console switching a debug facility.
Jan, Julien,
Thanks for the feedback!
Will rework.
>
> Cheers,
>
> --
> Julien Grall
>
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |