Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 08 Oct 2004 03:09:35 +0200
From:      Pawel Worach <pawel.worach@telia.com>
To:        Daniel Eischen <deischen@freebsd.org>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: BIND9 and libpthread performance
Message-ID:  <4165E8CF.8090409@telia.com>
In-Reply-To: <Pine.GSO.4.43.0410071946320.3130-100000@sea.ntplx.net>
References:  <Pine.GSO.4.43.0410071946320.3130-100000@sea.ntplx.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Daniel Eischen wrote:
> So that's a true dual CPU system with HTT CPUs (the kernel sees
> 4 CPUs)?  Turn HTT off, set kern.threads.virtual_cpu = 1, and try
> using process scope threads.  Then set kern.threads.virtual_cpu = 2
> and try again using process scope threads.  Then try the same 2
> tests with system scope threads.

Yes, system has two physical cpus with HTT enabled, FreeBSD sees four.
kern.smp.cpus: 4
hw.ncpu: 4

As I don't have access to the datacenter to turn off HTT in the BIOS now
I set machdep.hlt_logical_cpus in loader.conf which should theoretically
do the same thing right?

> 
> You can set LIBPTHREAD_SYSTEM_SCOPE in your environment to force
> system scope threads, and set LIBPTHREAD_PROCESS_SCOPE to force
> process scope threads (you needn't rebuild libpthread or your
> application).  If they are both set, system scope wins out.
> 
The first tests I did where with LIBPTHREAD_SYSTEM_SCOPE set.

Here are new results for all the parameters above.

* kern.threads.virtual_cpu=1, named -n 1 (named still sees four cpus and fires 
up four theads if I don't force it not to)
x process-scope-1-cpu
+ system-scope-1-cpu
+--------------------------------------------------------------------------+
|x            xx   x  x                               + +   +           + +|
|     |_______AM______|                               |_____M__A_________| |
+--------------------------------------------------------------------------+
     N           Min           Max        Median           Avg        Stddev
x   5     9531.2955     10089.776     9895.4739     9876.4389     211.59661
+   5     10925.816     11449.187     11082.488     11168.616     244.15478
Difference at 95.0% confidence
         1292.18 +/- 333.191
         13.0834% +/- 3.37359%
         (Student's t, pooled s = 228.456)

* kern.threads.virtual_cpu=2, named -n 2
x process-scope-2-cpu
+ system-scope-2-cpu
+--------------------------------------------------------------------------+
|x   x x xx                                                         ++  +++|
|  |__AM__|                                                          |_AM_||
+--------------------------------------------------------------------------+
     N           Min           Max        Median           Avg        Stddev
x   5     8319.6891     8558.6617     8476.9996     8463.3126     96.296725
+   5     10159.815     10336.033     10284.944      10260.51     74.904761
Difference at 95.0% confidence
         1797.2 +/- 125.815
         21.2352% +/- 1.48659%
         (Student's t, pooled s = 86.2664)

The two thread test results don't look quite right, I will turn off HTT in the
BIOS and redo this in about 12 hours. HTT seems to suck, not using the logical
cpus gives me about ~11k queries per second which is about 1k better than
libc_r, woho!

Thanks! Keep up the good threading work!

-- 
Pawel



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4165E8CF.8090409>