Messages in this thread |  | | From | pmenage@ensim ... | | Subject | Re: simple handling of module removals Re: [OKS] Module removal | | Date | Wed, 03 Jul 2002 17:29:39 -0700 |
| |
In article <0C01A29FBAE24448A792F5C68F5EA47D2B0A8A@nasdaq.ms.ensim.com>, you write: > >Is it just the mod_dec_use_count; return/unload race we're worried about? >>I'm not clear on why this is hard. I'd think it would be sufficient just >to >walk all runnable processes to ensure none has an execution address inside >the >module. For smp, an ipi would pick up the current process on each cpu. > >At this point the use count must be zero and the module deregistered, so >all >we're interested in is that every process that dec'ed the module's use >count >has succeeded in executing its way out of the module. If not, we try >again >later, or if we're impatient, also bump any processes still inside the >module >to the front of the run queue. > >I'm sure I must have missed something. >
Identifying the valid execution address in a stack traceback isn't possible on many architectures (in particular, i386 without debugging support enabled) so this wouldn't work if one of the functions had called into a function outside the module.
On the other hand, if it was made a rule that any code in a module that might theoretically be running without reference counts wasn't allowed to call out of the module (or maybe was allowed to call out to a very specific small set of library functions that were known to the module system), then something like this might work.
Paul - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |