![]() | |||||||||||
Messages in this thread |
On 10/30/06, Paul Jackson <pj@sgi.com> wrote: > I get away with this in the cpuset code because: > 1) I have the cpuset pointer directly in 'task_struct', so don't > have to chase down anything, for each task, while scanning the > task list. I just have to ask, for each task, if its cpuset > pointer points to the cpuset of interest. That's the same when it's transferred to containers - each task_struct now has a container pointer, and you can just see whether the container pointer matches the container that you're interested in. > 2) I don't care if I get an inconsistent answer, so I don't have > to lock each task, nor do I even lockout the rest of the cpuset > code. All I know, at the end of the scan, is that each task that > I claim is attached to the cpuset in question was attached to it at > some point during my scan, not necessarilly all at the same time. Well, anything that can be accomplished from within the tasklist_lock can get a consistent result without any additional lists or synchronization - it seems that it would be good to come up with a real-world example of something that *can't* make do with this before adding extra book-keeping. 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/ | ||||||||||
| Last update: 2006-10-30 13:09 [from the cache] ©2003-2008 | |||||||||||