Re: Rusty's module talk at the Kernel Summit

Daniel Phillips
2002-07-11T18:53:35Z

On Thursday 11 July 2002 20:01, Thunder from the hill wrote:
> Hi,
>
> On Thu, 11 Jul 2002, Roman Zippel wrote:
> > On Thu, 11 Jul 2002, Daniel Phillips wrote:
> > > Closing the rmmod race with this interface is easy. We can for example just
> > > keep a state variable in the module struct (protected by a lock) to say the
> > > module is in the process of being deregistered.
> >
> > Please check try_inc_mod_count(). It's already done.
>
> Btw, couldn't the module/non-module issue be solved like this:
>
> int module_do_blah(struct blah *blah, didel_t dei)
> #ifdef __MODULE__
> {
> locking_code();
> pure_module_do_blah(blah, dei)
> unlocking_code();
> }
>
> int pure_module_do_blah(struct blah *blah, didel_t dei)
> #endif /* __MODULE__ */
>
> Just an idea...

It's one of the ideas I had as well, except I would have expressed it:

int MODULE_OP(module_do_blah)(args)
{
MODULE_RET(expression);
}

so that MODULE_OP and MODULE_RET would do the job of wrapping the
whole function in inc/dec (since our favorite language/compiler is
too braindamaged to do that in a nice way). Updating all the module
code would be a massive effort, there are still holes open and it
imposes needless execution overhead, compared to the solution Al's
preparing. It would be better to stop wasting energy on such
fragile, clumsy low-level solutions and think about perfecting the
nice one that's on the table, or soon will be.

--
Daniel