[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] xen/console: Handle true dom0less case when switching serial input
On 16/03/2023 08:24, Jan Beulich wrote: > > > On 16.03.2023 02:49, Stefano Stabellini wrote: >> On Wed, 15 Mar 2023, Michal Orzel wrote: >>> On 15/03/2023 14:11, Jan Beulich wrote: >>>> On 15.03.2023 13:34, Michal Orzel wrote: >>>>> On 14/03/2023 16:17, Jan Beulich wrote: >>>>>> On 14.03.2023 15:27, Michal Orzel wrote: >>>>>>> --- a/xen/drivers/char/console.c >>>>>>> +++ b/xen/drivers/char/console.c >>>>>>> @@ -491,6 +491,14 @@ static void switch_serial_input(void) >>>>>>> else >>>>>>> { >>>>>>> console_rx++; >>>>>>> + >>>>>>> + /* >>>>>>> + * Skip switching serial input to hardware domain if it does >>>>>>> not exist >>>>>>> + * (i.e. true dom0less mode). >>>>>>> + */ >>>>>>> + if ( !hardware_domain && (console_rx == 1) ) >>>>>>> + console_rx++; >>>>>> >>>>>> The consumers of this variable aren't really serialized with this >>>>>> updating. That's probably okay-ish prior to your change, but now >>>>>> there can be two updates in rapid succession. I think it would be >>>>>> better if the variable was written only once here. >>>>> ok, makes sense. >>>>> >>>>>> >>>>>>> printk("*** Serial input to DOM%d", console_rx - 1); >>>>>> >>>>>> When invoked from console_endboot() this will now switch to Dom1, >>>>>> i.e. that domain becomes kind of "preferred", which I think is >>>>>> wrong. Instead I think in such a case we should direct input to >>>>>> Xen by default. >>>>> Switching serial input to the first usable domain is the major motivation >>>>> behind this patch. >>>>> The number of times I got pinged by users with *apparent* Xen issue on >>>>> true dom0less >>>>> just because input was directed to dom0 which was not there (not everyone >>>>> seems to read the >>>>> boot logs) forced me to create this patch and manifests that this is not >>>>> the behavior user wants. >>>>> Switching to Xen console would not help at all. Also, we already have a >>>>> way to set switch code to 'x' >>>>> to default serial input to Xen. >>>>> So I think what I did (switching to the first existing domain) should be >>>>> the default behavior (just like it was done for dom0). >>>> >>>> Well, I'm not going to stand in the way, but if one of several supposedly >>>> equal domains is to be "preferred" in some way, then I for one would >>>> expect justification for doing so. If that's the route to go, then the >>>> patch snippet you provided looks good to me. >>> Well, the explanation is that we are directing input to the first existing >>> domain >>> which also is the first domain created (this is what users expect at least >>> by default). >>> This for now creates simplest/cleanest solution that matches the current >>> behavior >>> with dom0 and solves the users inconveniences I mentioned earlier. >>> There is no other real preference apart from being first domain created and >>> to help keep the order simple. >> >> My two cents. Given the feedback we are getting from users, I think it >> is important that the input goes to a real valid domain (not Xen, not >> Dom0 that doesn't exist). "Which dom0less domain?" is a valid question, >> and I don't know what would be the best answer. But any of those domains >> would be better than what we have today. > > Could boot time configuration perhaps indicate which domain to "prefer"? > Otherwise I'm pretty inclined to suggest to make it actually random ... Random is not great because in a system with e.g. 20 domUs and directing to e.g. 10th domU user would have to go through a lot of domains executing CTRL-AAA several times. Also, for me it would be difficult to reason about as such approach is definitely not something users expect. May I ask so that we proceed with a patch I proposed to start from the first usable domain to match the current behavior and to help users?. In the meantime I will start working on a support for indicating which domain to prefer. All in all, the new patch would touch console_endboot() and not switch_serial_input(). ~Michal
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |