Re: [patch 3/4] net: Percpufy frequently used variables --proto.sockets_allocated

From: Andrew Morton
Date: Fri Jan 27 2006 - 15:15:03 EST


Ravikiran G Thirumalai <kiran@xxxxxxxxxxxx> wrote:
>
> On Fri, Jan 27, 2006 at 09:53:53AM +0100, Eric Dumazet wrote:
> > 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@xxxxxxxxxxxxxx>
> > >Signed-off-by: Ravikiran Thirumalai <kiran@xxxxxxxxxxxx>
> > >Signed-off-by: Shai Fultheim <shai@xxxxxxxxxxxx>
> > >
> > 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.
>
> read_sockets_allocated is being invoked when when /proc/net/protocols is read,
> which can be assumed as not frequent.
> At sk_stream_mem_schedule(), read_sockets_allocated() is invoked only
> certain conditions, under memory pressure -- on a large CPU count machine,
> you'd have large memory, and I don't think read_sockets_allocated would get
> called often. It did not atleast on our 8cpu/16G box. So this should be OK
> I think.

That being said, the percpu_counters aren't a terribly successful concept
and probably do need a revisit due to the high inaccuracy at high CPU
counts. It might be better to do some generic version of vm_acct_memory()
instead.

If the benchmarks say that we need to. If we cannot observe any problems
in testing of existing code and if we can't demonstrate any benefit from
the patched code then one option is to go off and do something else ;)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/