Messages in this thread | | | Date | Fri, 11 Nov 2011 20:49:50 +0400 | From | Pavel Emelyanov <> | Subject | Re: [PATCH 3/3] pids: Make it possible to clone tasks with given pids |
| |
On 11/11/2011 08:22 PM, Tejun Heo wrote: > On Fri, Nov 11, 2011 at 08:18:19PM +0400, Pavel Emelyanov wrote: >>> To add a bit, it's also one of the more *serialized* path. Doing it in >>> parallel might actually hurt, >> >> Can you elaborate on this, please? > > It goes through a lot of locks - tasklist_lock, mmlist_lock, other > subsys locks depending on CLONE_* options. If you try to do that on > multiple CPUs in parallel, depending on the level of concurrency, > contention and extra cacheline bounces may dominate the overhead.
O_O Here are the times of forks on my box (4cores X 2threads, Xeon, RHEL6)
1 cpu 500k forks - 37s 2 cpus on different cores 500k forks on each in parallel - 39s 4 cpus on different cores 500k forks on each in parallel - 41s
8 cpus 500k forks on each in parallel - 1m5s
So the fork() scaling seems quite good to me.
> Thanks. >
| |