Messages in this thread | | | Date | Fri, 27 Jan 2006 09:53:53 +0100 | From | Eric Dumazet <> | Subject | Re: [patch 3/4] net: Percpufy frequently used variables -- proto.sockets_allocated |
| |
Ravikiran G Thirumalai a écrit : > Change the atomic_t sockets_allocated member of struct proto to a > per-cpu counter. > > Signed-off-by: Pravin B. Shelar <pravins@calsoftinc.com> > Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org> > Signed-off-by: Shai Fultheim <shai@scalex86.org> > Hi Ravikiran
If I correctly read this patch, I think there is a scalability problem.
On a big SMP machine, read_sockets_allocated() is going to be a real killer.
Say we have 128 Opterons CPUS in a box.
You'll need to bring 128 cache lines (plus 8*128 bytes to read the 128 pointers inside percpu structure)
I think a solution 'a la percpu_counter' is preferable, or even better a dedicated per_cpu with a threshold management (see mm/swap.c , function vm_acct_memory() to see how vm_committed_space is updated without too bad SMP scalability)
Thank you
Eric
- 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/
| |