| Subject | Re: [PATCH v4 3.0-rc2-tip 4/22] 4: Uprobes: register/unregister probes. | From | Peter Zijlstra <> | Date | Wed, 15 Jun 2011 19:41:59 +0200 |
| |
On Tue, 2011-06-07 at 18:29 +0530, Srikar Dronamraju wrote: > 1. Use mm->owner and walk thro the thread_group of mm->owner, siblings > of mm->owner, siblings of parent of mm->owner. This should be > good list to traverse. Not sure if this is an exhaustive > enough list that all tasks that have a mm set to this mm_struct are > walked through.
As per copy_process():
/* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. */ if ((clone_flags & CLONE_THREAD) && !(clone_flags & CLONE_SIGHAND)) return ERR_PTR(-EINVAL);
/* * Shared signal handlers imply shared VM. By way of the above, * thread groups also imply shared VM. Blocking this case allows * for various simplifications in other code. */ if ((clone_flags & CLONE_SIGHAND) && !(clone_flags & CLONE_VM)) return ERR_PTR(-EINVAL);
CLONE_THREAD implies CLONE_VM, but not the other way around, we therefore would be able to CLONE_VM and not be part of the primary owner's thread group.
This is of course all terribly sad..
|