Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Nov 2003 09:10:10 -0500
From:      "Christopher M. Sedore" <cmsedore@maxwell.syr.edu>
To:        <deischen@freebsd.org>
Cc:        threads@freebsd.org
Subject:   RE: KSE system scope vs non system scope threads
Message-ID:  <32A8B2CB12BFC84D8D11D872C787AA9A515DB1@EXCHANGE.forest.maxwell.syr.edu>

next in thread | raw e-mail | index | archive | help
=20

________________________________

From: Daniel Eischen [mailto:eischen@vigrid.com]
On Sat, 29 Nov 2003, Christopher M. Sedore wrote:

[...]
>>  I ask this because I'm observing some behavior that I don't expect.  =
When
>> running a threaded program with KSE and non-system-scope threads, I =
see
>> performance degradation in my network traffic when I'm attempting to =
connect
>> to remote hosts that are down.  Libthr doesn't see this degradation, =
and KSE
>> with system-scope threads doesn't perform as well as libthr, but is =
much
>> closer.
>
>Define what you think is degradation.  Process scope threads run in the
>same KSEG.  They are all kept in the same priority-based run-queue.
>If you have other threads that have equal or higher priority than
>the network threads in question, they will/may run before those
>threads.  All it takes is one thread that doesn't block (CPU-bound)
>to eat away at the time allotment for your other threads.
>
>If a remote host is down and a thread can't connect to it, that thread
>should block allowing other threads to run.  Are you using blocking
>or non-blocking connects?

I'm using blocking connects.  Degradation is I should be moving =
~5-7MB/sec (and I do if I don't try to connect to any hosts that are =
down).  Once I do, I see fluctuations from ~15-20KB/sec (note: KB) to =
3-5MB/sec, somewhat associated with when the connects happen.  Running =
libthr, I move 6-7MB/sec consistently (until everything hangs up showing =
sigwait as the status in top, anyway).  System scope threads turn in =
numbers from 5-6MB/sec.  (Note I don't have any hang problems under KSE, =
only libthr.)
=20
On Monday I'm going to try David Xu's suggestion of trying v1.18 of =
thr_spinlock.c to see if that helps.

-Chris



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