Messages in this thread | | | From | "Adam J. Richter" <> | Date | Fri, 26 Jun 1998 00:13:09 -0700 | Subject | Re: pre-patch-2.1.107 breaks kmod |
| |
[...] >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
| |