Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Jul 2004 10:42:18 -0700 (PDT)
From:      Julian Elischer <julian@elischer.org>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: pthread switch  (was Odd KSE panic)
Message-ID:  <Pine.BSF.4.21.0407061041560.64529-100000@InterJet.elischer.org>
In-Reply-To: <16618.51842.291266.840333@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help


On Tue, 6 Jul 2004, Andrew Gallatin wrote:

> 
> Daniel Eischen writes:
>  > 
>  > With a small number of threads, it probably doesn't make sense
>  > to have more than one KSE (unless they are mostly CPU-bound).
>  > In Drew's example, there are 2 KSEs (HTT enabled) and only 2 threads.
> 
> Actually, there are 2 procs, each with 2 threads. 
> 
> To elaborate, there are two processes, each running one instance of a
> pingpong test for each of 2 NICs in the box.
> 
>  > Each time a thread sleeps, the KSE enters the kernel to sleep
>  > (kse_release()) because there are no other threads to run.
>  > 
>  > Drew, can you try lowering the concurrency?  You can
>  > either try using pthread_setconcurrency(1) or setting
>  > kern.threads.virtual_cpu=1.
> 
> 
> Here is the raw data for a ping-pong between 2 nics on the same box
> with various configurations of cpu_idle_hlt and virtual_cpu.


tried libc_r?

> 
> 
> 
> Polling	        5.0us
> Linux          20.4us
> linulator      82.5us
> thr	       75.1us
> kse	      123.6us
> 
> machdep.cpu_idle_hlt=0
> linulator      74.0us
> thr	       64.6us
> kse	      111.9
> 
> kern.threads.virtual_cpu=1
> machdep.cpu_idle_hlt=0
> kse	      100.8
> 
> kern.threads.virtual_cpu=1
> machdep.cpu_idle_hlt=0
> kse	      93.9
> 
> 
> Key:
> Linux: kernel 2.66, Debian libc6  2.2.5-11.5 (no sysenter, or NPTL)
> linulator: static binary used above, run under COMPAT_LINUX
> thr: libthr (via libmap.conf)
> kse: libpthread
> 
> 
> BTW, there's a little more fat in the interrupt/wakeup path in the
> FreeBSD MD driver code (condvars, MPSAFE intr, rather than an
> INTR_FAST and some homebrew technique).  Based on other measurements, I
> don't think its 54us worth of fat (more like 15 or 20usec).
> 
> Drew
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0407061041560.64529-100000>