Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-19 Thread David Vrabel
On 19/06/15 14:04, Jan Beulich wrote: On 19.06.15 at 14:23, wrote: >> On 19/06/15 11:55, Jan Beulich wrote: >> On 19.06.15 at 11:52, wrote: On 19/06/15 10:29, Jan Beulich wrote: On 18.06.15 at 12:40, wrote: >> On 18/06/15 11:36, Jan Beulich wrote: >> On 17.06.1

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-19 Thread Jan Beulich
>>> On 19.06.15 at 14:23, wrote: > On 19/06/15 11:55, Jan Beulich wrote: > On 19.06.15 at 11:52, wrote: >>> On 19/06/15 10:29, Jan Beulich wrote: >>> On 18.06.15 at 12:40, wrote: > On 18/06/15 11:36, Jan Beulich wrote: > On 17.06.15 at 14:02, wrote: >>> --- a/xen/common/

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-19 Thread David Vrabel
On 19/06/15 11:55, Jan Beulich wrote: On 19.06.15 at 11:52, wrote: >> On 19/06/15 10:29, Jan Beulich wrote: >> On 18.06.15 at 12:40, wrote: On 18/06/15 11:36, Jan Beulich wrote: On 17.06.15 at 14:02, wrote: >> --- a/xen/common/event_channel.c >> +++ b/xen/common/ev

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-19 Thread Jan Beulich
>>> On 19.06.15 at 11:52, wrote: > On 19/06/15 10:29, Jan Beulich wrote: > On 18.06.15 at 12:40, wrote: >>> On 18/06/15 11:36, Jan Beulich wrote: >>> On 17.06.15 at 14:02, wrote: > --- a/xen/common/event_channel.c > +++ b/xen/common/event_channel.c > @@ -1175,22 +1175,6 @@ in

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-19 Thread David Vrabel
On 19/06/15 10:29, Jan Beulich wrote: On 18.06.15 at 12:40, wrote: >> On 18/06/15 11:36, Jan Beulich wrote: >> On 17.06.15 at 14:02, wrote: --- a/xen/common/event_channel.c +++ b/xen/common/event_channel.c @@ -1175,22 +1175,6 @@ int alloc_unbound_xen_event_channel(

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-19 Thread Jan Beulich
>>> On 18.06.15 at 12:40, wrote: > On 18/06/15 11:36, Jan Beulich wrote: > On 17.06.15 at 14:02, wrote: >>> --- a/xen/common/event_channel.c >>> +++ b/xen/common/event_channel.c >>> @@ -1175,22 +1175,6 @@ int alloc_unbound_xen_event_channel( >>> >>> void free_xen_event_channel(struct domai

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-18 Thread Jan Beulich
>>> On 18.06.15 at 12:40, wrote: > On 18/06/15 11:36, Jan Beulich wrote: > On 17.06.15 at 14:02, wrote: >>> --- a/xen/common/event_channel.c >>> +++ b/xen/common/event_channel.c >>> @@ -1175,22 +1175,6 @@ int alloc_unbound_xen_event_channel( >>> >>> void free_xen_event_channel(struct domai

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-18 Thread David Vrabel
On 18/06/15 11:36, Jan Beulich wrote: On 17.06.15 at 14:02, wrote: >> --- a/xen/common/event_channel.c >> +++ b/xen/common/event_channel.c >> @@ -1175,22 +1175,6 @@ int alloc_unbound_xen_event_channel( >> >> void free_xen_event_channel(struct domain *d, int port) >> { >> -struct evtch

Re: [Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-18 Thread Jan Beulich
>>> On 17.06.15 at 14:02, wrote: > --- a/xen/common/event_channel.c > +++ b/xen/common/event_channel.c > @@ -1175,22 +1175,6 @@ int alloc_unbound_xen_event_channel( > > void free_xen_event_channel(struct domain *d, int port) > { > -struct evtchn *chn; > - > -spin_lock(&d->event_lock);

[Xen-devel] [PATCHv3 2/6] evtchn: defer freeing struct evtchn's until evtchn_destroy_final()

2015-06-17 Thread David Vrabel
notify_via_xen_event_channel() and free_xen_event_channel() had to check if the domain was dying because they may be called while the domain is being destroyed and the struct evtchn's are being freed. By deferring the freeing of the struct evtchn's until all references to the domain are dropped, t