|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Re: [PATCH 3/4] [Net] Support Xen accelerated network pl
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
|
|
|
|
|