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

Re: [Xen-devel] Re: [PATCH 3/4] [Net] Support Xen accelerated network plugin modules



On Tue, 22 May 2007 13:44:28 +0100
Kieran Mansley <kmansley@xxxxxxxxxxxxxx> wrote:

> On Tue, 2007-05-22 at 08:48 +0100, Keir Fraser wrote:
> > 
> > 
> > On 22/5/07 08:28, "Kieran Mansley" <kmansley@xxxxxxxxxxxxxx> wrote:
> > 
> > > On Tue, 2007-05-22 at 08:15 +0100, Kieran Mansley wrote:
> > >> RCU on its own wouldn't
> > >> prevent the accelerated plugin being unloaded while netfront was using
> > >> one of the hooks.
> > > 
> > > Hmm, actually I think it could be used to do that.  I'll take a look.
> > 
> > Eagerly zap the function pointers, then wait one RCU period so every CPU
> > goes through a quiescent point before unloading the module?
> > 
> >  -- Keir
> 
> Am I right in thinking that if one of the functions that was protected
> by RCU was to block, that would be a bad thing?  Clearly the data path
> hooks can't/don't block, but I'm not sure it's so obvious for things
> like probing a new device. 
> 
> Kieran
> 

The same thing is already done to handle network protocols already.
RCU is used for the object handle (including function pointers).
You need to use:
  * put rcu structure in accelerator list member
    and initialize it to the callback
  * on addition increase refcount
on deletion
  * call list_del_rcu() on removal
  * in rcu callback you do last step
        like drop module refcount and free.

-- 
Stephen Hemminger <shemminger@xxxxxxxxxxxxxxxxxxxx>

_______________________________________________
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®.