Re: pre-patch-2.1.107 breaks kmod

Adam J. Richter (adam@yggdrasil.com)
Fri, 26 Jun 1998 00:13:09 -0700


[...]
>The problem is that if you have two threads that want to load the same
>module with kmod, _both_ of them have to succeed, and _both_ of them have
>to wait not until after create_module(), but until after init_module() has
>successfully returned.
[...]
> Linus

OK. I understand now. I guess Peter's suggestion of
having insmod use flock to achieve this would be a servicible
approach. However, there seem to be a lot of "activated states"
in the process of loading a module (the module is registered but not
loaded, the lock on the module file has been acquired, what if
there are two copies of the same module .o file?, etc.). Is there
some reason why create_module() is a separate system call from
init_module? It seems to me that you could avoid creating these
locking conventions that everyone would have to think about by making
create_module() a no-op and making init_module() atomically do the
job of create_module+init_module.

Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 205
adam@yggdrasil.com \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu