[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel][PV-ops][PATCH] Netback: Fix PV network issue for netback multiple threads patchset



On Thu, 2010-07-01 at 17:07 +0100, Jeremy Fitzhardinge wrote:
> On 07/01/2010 05:47 PM, Ian Campbell wrote:
> >> Hm, I hadn't meant to commit that properly.  I had it locally and
> >> accidentally pushed it out.
> >>
> >> I only did that patch as an RFC in response to an issue alluded to by
> >> Dongxiao (or was it you?) about things not being fully initialized by
> >> the time the async code starts.  Is this a real issue, and if so, what's
> >> the correct fix?
> >>     
> > I don't think there is an actual current issue, just a potential one
> > since we are relying on data structures being zeroed rather than
> > properly initialised to keep the async code from running off into the
> > weeds, it just seemed a little fragile this way.
> >
> > Originally I said:
> >   
> >>> The crash is in one of the calls to list_move_tail and I think it is
> >>> because netbk->pending_inuse_head not being initialised until after
> >>> the 
> >>> threads and/or tasklets are created (I was running in threaded mode).
> >>> Perhaps even though we are now zeroing the netbk struct those fields
> >>> should still be initialised before kicking off any potentially
> >>> asynchronous tasks?
> >>>       
> > this specific issue was fixed by zeroing the netbk array as it is
> > allocated, I just thought we could make things more robust by not
> > triggering the async code until everything was fully setup.
> >   
> 
> It would only affect system startup time, not domain creation?

I think so, it's a race during netback_init.

netbk_action_thread can reference &netbk->net_schedule_list (via
tx_work_todo) before it is initialised. It is now zeroed which is
probably safe but not exactly robust.

> I was looking at it because Stefano was having fairly consistent crashes
> on domain creation, and it looked like sort-of-racy sy

I think this particular race would be long gone by the time you started
a domain. Although I suppose having the thread spinning doing
potentially arbitrary things for a small window during netback_init
could leave things in a fragile enough state that it might fall apart
when you started a domain. I'm not convinced though.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.