Re: [patch] Minor PAGG attach/detach semantic change for 2.6.11
Erik Jacobson <[email protected]>
| Newsgroups | gmane.linux.process-aggregates |
|---|---|
| Message-ID | <[email protected]> |
> __pnotify_exit() would need to call the exit callback for all clients > except for the client failing the fork call. To do this wouldn't the > following be needed in __pnotify_fork()? If the fork fails in copy_process, we go to cleanup in copy_process, not exit.c. So, with the revision, if the the pnotify kernel module subscriber returns a failure for the process, that failure is passed along to the copy_process call. There, we go to bad_fork_cleanup_namespace where a pnotify_exit is done on the process that failed to fork. In the old version, the pnotify_exit would have also been run within __pnotify_fork. In the new version, we don't run the pnotify_exit from __pnotify_fork because we know it will be run in the fork failure path of copy_process. That should mean that pnotify_exit will only execute once. I think that means that your suggestion for adding a pnotify_unsubscribe isn't necessary? The unsubscribe is done by __pnotify_exit in this case. Or am I still missing the point here? Sorry if it isn't getting through my head. See the RCU test version of pnotify in the download site under pnotify-test. My attempts at posting that patch to the list seem to be eaten by the list server right now. When that's fixed, I'll start posting stuff here. Erik