From owner-freebsd-threads@FreeBSD.ORG Sun Nov 30 06:45:04 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A604716A4CE for ; Sun, 30 Nov 2003 06:45:04 -0800 (PST) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id 92B3843FD7 for ; Sun, 30 Nov 2003 06:45:03 -0800 (PST) (envelope-from eischen@vigrid.com) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mail.pcnet.com (8.12.10/8.12.1) with ESMTP id hAUEj21G007496; Sun, 30 Nov 2003 09:45:02 -0500 (EST) Date: Sun, 30 Nov 2003 09:45:02 -0500 (EST) From: Daniel Eischen X-Sender: eischen@pcnet5.pcnet.com To: "Christopher M. Sedore" In-Reply-To: <32A8B2CB12BFC84D8D11D872C787AA9A515DB1@EXCHANGE.forest.maxwell.syr.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: threads@freebsd.org Subject: RE: KSE system scope vs non system scope threads X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Nov 2003 14:45:04 -0000 On Sun, 30 Nov 2003, Christopher M. Sedore wrote: > > From: Daniel Eischen [mailto:eischen@vigrid.com] > > > >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.) > > On Monday I'm going to try David Xu's suggestion of trying v1.18 of > thr_spinlock.c to see if that helps. You should configure your mailer to wrap lines on outgoing mail... Are you using cancellation at all? I just noticed that libkse doesn't seem to have a cancellation point for connect(). Are you doing anything in signal handlers that you shouldn't be doing? Other than that, it sounds like a locking problem in the kernel. A thread blocked in connect() in the kernel shouldn't prevent upcalls allowing other threads to run. It sounds like the upcalls aren't happening... -- Dan Eischen