Re: [PATCH] Markers : fix reentrancy

From: Mathieu Desnoyers
Date: Tue Sep 30 2008 - 11:52:59 EST


* Ingo Molnar (mingo@xxxxxxx) wrote:
>
> * Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx> wrote:
>
> > Lai Jiangshan <laijs@xxxxxxxxxxxxxx> wrote :
> > > marker_synchronize_unregister must be called _also_ between unregistration
> > > and destruction the data that unregistration-ed probes need to make sure
> > > there is no caller executing a probe when it's data is destroyed.
> > >
> >
> > Ah, you're right. I looked again through your patch description and I
> > think using a :
> >
> >
> > if (entry->rcu_pending)
> > rcu_barrier_sched();
> >
> > After each time the markers_mutex is taken would keep the fast batch
> > registration/unregistration and fix the reentrancy problem. The
> > following patch should address the problem.
>
> could you please send a delta patch against tip/master? Lai's patch is
> already applied and is tested. Thanks,
>
> Ingo

Hrm,

Most of Lai "simplifications" to use synchronize_sched() instead of
call_rcu_sched() will make batch registration/unregistration much
slower (very noticeable on ~50 markers on a loaded machine). It also
contains two different fixes in one, one of which has been nacked.

The correct list of changes against tip now becomes :

Revert commit d587284c1d26b796bf52a6e3d3f783db4e462119
Apply patch "Markers : marker_synchronize_unregister()"
Apply patch "Markers : probe example fix teardown"
Apply patch "Markers : documentation fix teardown"
Apply patch "sputrace : use marker_synchronize_unregister()"
Apply patch "Markers : fix reentrancy"

Sorry, but rebasing those marker fixes will just make all those changes
really messy. I think the cleanest way is to just revert. :-/

Mathieu
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/