[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] evtchn: make EVTCHNOP_reset suitable for kexec
On Fri, 2014-07-25 at 18:38 +0200, Vitaly Kuznetsov wrote: > "Jan Beulich" <JBeulich@xxxxxxxx> writes: > > >>>> On 25.07.14 at 17:48, <vkuznets@xxxxxxxxxx> wrote: > >> @@ -954,8 +955,20 @@ static long evtchn_reset(evtchn_reset_t *r) > >> if ( rc ) > >> goto out; > >> > >> - for ( i = 0; port_is_valid(d, i); i++ ) > >> - (void)__evtchn_close(d, i); > >> + for ( i = 1; port_is_valid(d, i); i++ ) > >> + { > >> + /* > >> + * Leave all interdomain connections to Dom0 untouched as we need > >> to > >> + * preserve store/console channels. > >> + */ > >> + chn = evtchn_from_port(d, i); > >> + if ( chn->state != ECS_INTERDOMAIN || > >> + chn->u.interdomain.remote_dom->domain_id != 0 ) > >> + (void)__evtchn_close(d, i); > >> + } > > > > You can't alter the behavior of an existing hypercall like this. Did > > you at all check why it closes all channels, i.e. for what purpose > > it got introduced? > > Originally I though about introducing new hypercall to cleans up all > control blocks when FIFO-based event channel ABI is being used (see > "[PATCH RFC] evtchn: introduce EVTCHNOP_fifo_destroy hypercall" > email). Andrew and Ian convinced me to reuse EVTCHNOP_reset to be > ABI-agnostic here. > > I'm not sure how to check the purpose of introduction but I did check > that EVTCHNOP_reset is not being used neither in Linux kernel nor in > http://xenbits.xensource.com/ext/win-pvdrivers/. The original commit > which introduces it is: > commit 115209d91bcd3734ddaaf58a4a1cdbb4c44cd4fa > Author: kfraser@xxxxxxxxxxxxxxxxxxxxx <kfraser@xxxxxxxxxxxxxxxxxxxxx> > Date: Fri Jan 19 17:20:57 2007 +0000 > > [XEN] New event-channel reset operation. > Plumbed through libxenctrl to python. > > From: Andrei Petrov <andrei.petrov@xxxxxxxxxxxxx> > Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> > > It would be great if you can point out EVTCHNOP_reset usages I'm not > aware of. We can revise the descision of reusing EVTCHNOP_reset in case > we break things. Hrm, it's a long time ago but thinking back I *think* this was added for the use of the toolstack, e.g. on slow/non-cooperative suspend resume xend would use it. This works in that case because the toolstack can then setup a new console etc. I suspect that the in-guest usecase may not have been considered back then. > > And apart from that blindly leaving all interdomain channels intact > > doesn't seem reasonable either. > > I agree here, see my reply to Andrew. We need to preserve console/store > channels only and any suggestion on how to distinguish them from other > interdomain mappings to Dom0 on hypervisor side are welcome. Rather than evtchn_reset perhaps the guest explicitly unbind whichever evtchns it doesn't want to carry over the kexec? Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |