From owner-freebsd-threads@FreeBSD.ORG Sun Dec 7 19:12:17 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 B93C216A4CE for ; Sun, 7 Dec 2003 19:12:17 -0800 (PST) Received: from qwerty.maxwell.syr.edu (qwerty.maxwell.syr.edu [128.230.129.248]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5F91643FCB for ; Sun, 7 Dec 2003 19:12:14 -0800 (PST) (envelope-from cmsedore@maxwell.syr.edu) Received: from qwerty.maxwell.syr.edu (qwerty.maxwell.syr.edu [128.230.129.248])hB83CDb1017729; Sun, 7 Dec 2003 22:12:13 -0500 (EST) (envelope-from cmsedore@maxwell.syr.edu) Date: Sun, 7 Dec 2003 22:12:13 -0500 (EST) From: Christopher Sedore To: Daniel Eischen In-Reply-To: Message-ID: <20031207220608.P17628-100000@qwerty.maxwell.syr.edu> 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: Mon, 08 Dec 2003 03:12:17 -0000 On Sun, 30 Nov 2003, Daniel Eischen wrote: > On Sun, 30 Nov 2003, Christopher M. Sedore wrote: > > [...] > > > > 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... Sorry. This should be better. > > Are you using cancellation at all? I just noticed that libkse doesn't > seem to have a cancellation point for connect(). No cancellation. > Are you doing anything in signal handlers that you shouldn't be > doing? I only use them to catch sigterm, so this shouldn't be an issue. > 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... v1.18 of the thr_spinlock.c seemed to help. I'm going to try to do more testing this week. As I noted in my other message, 5.2Beta won't run this code on SMP machines (all my code is userland code, too), so it took a while to actually get set up to try it out. Now I need to set up kernel debugging to see what's going on. Of course, 5.2Beta won't run under VMWare either...sigh. -Chris