Re: [PATCH] cpuset semaphore depth check optimize

Simon Derr
2005-09-20T13:10:23Z

On Tue, 20 Sep 2005, Robin Holt wrote:

> Paul,
>
> Can you give a _short_ explanation of why notify_on_release is
> essential? Could the intent be accomplished with something
> like destroy on exit which then goes through and does the
> remove of shildren and finally removes the cpuset?
>
> If we can agree on that, then the exit path becomes
> if (atomic_dec_and_lock(&current->cpuset.refcount)) {
> /* Code to remove children. */
> }
> which no longer needs to call a usermode helper and is _FAR_
> better in my personal biased opinion.
>
>

The original cpuset patch did not have a notify_on_release feature, it had
an 'autoclean' feature, that did exactly what you describe.

But the locking was not clean, mostly at the filesystem level. Paul and I
tried together to fix it, but at some point Paul proposed this solution,
to use a usermode helper, and it seemed to be the easiest way to get out
of this locking issue, so we agreed to drop the old 'autoclean' scheme.

(Even if Paul had a hard time convincing me, as I did not like the idea of
this usermode helper too much).

Simon.