From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [Bug #11308] tbench regression on each kernel release from 2.6.22 -> 2.6.28 Date: Fri, 21 Nov 2008 09:51:32 +0100 Message-ID: <49267694.1030506@cosmosbay.com> References: <1ScKicKnTUE.A.VxH.DIHIJB@chimera> <20081117090648.GG28786@elte.hu> <20081121083044.GL16242@elte.hu> Mime-Version: 1.0 Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: In-Reply-To: <20081121083044.GL16242-X9Un+BFzKDI@public.gmane.org> Sender: kernel-testers-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="iso-8859-1"; format="flowed" To: Ingo Molnar Cc: Christoph Lameter , "Rafael J. Wysocki" , Linux Kernel Mailing List , Kernel Testers List , Mike Galbraith , Peter Zijlstra , "David S. Miller" Ingo Molnar a =E9crit : > * Christoph Lameter wrote: >=20 >> hmmm... Well we are almost there. >> >> 2.6.22: >> >> Throughput 2526.15 MB/sec 8 procs >> >> 2.6.28-rc5: >> >> Throughput 2486.2 MB/sec 8 procs >> >> 8p Dell 1950 and the number of processors specified on the tbench=20 >> command line. >=20 > And with net-next we might even be able to get past that magic limit?= =20 > net-next is linus-latest plus the latest and greatest networking bits= : >=20 > $ cat .git/config >=20 > [remote "net-next"] > url =3D git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next= -2.6.git > fetch =3D +refs/heads/*:refs/remotes/net-next/* >=20 > ... so might be worth a test. Just to satisfy our curiosity and to=20 > possibly close the entry :-) >=20 Well, bits in net-next are new stuff for 2.6.29, not really regression = fixes, but yes, they should give nice tbench speedups. Now, I wish sockets and pipes not going through dcache, not tbench affa= ir of course but real workloads... running 8 processes on a 8 way machine doing a=20 for (;;) close(socket(AF_INET, SOCK_STREAM, 0)); is slow as hell, we hit so many contended cache lines ... ticket spin locks are slower in this case (dcache_lock for example is taken twice when we allocate a socket(), once in d_alloc(), another = one in d_instantiate())