Date: Mon, 10 Jul 2006 02:04:30 -0700 From: "Kip Macy" <kip.macy@gmail.com> To: "Robert Watson" <rwatson@freebsd.org> Cc: freebsd-threads@freebsd.org, Daniel Eischen <deischen@freebsd.org>, David Xu <davidxu@freebsd.org>, threads@freebsd.org, Julian Elischer <julian@elischer.org> Subject: Re: Strawman proposal: making libthr default thread implementation? Message-ID: <b1fa29170607100204q43a38aa7jfebe97eb18ca9e44@mail.gmail.com> In-Reply-To: <20060705095450.O64340@fledge.watson.org> References: <20060703101554.Q26325@fledge.watson.org> <200607042204.52572.davidxu@freebsd.org> <44AAC47F.2040508@elischer.org> <200607041819.05510.peter@wemm.org> <b1fa29170607042101q4a1204c7o942d83edcec71eb7@mail.gmail.com> <44AB4C22.3030109@elischer.org> <20060705095450.O64340@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Apart from real time scheduling functionality I have yet to see any real-world technical deficiencies with libthr. I have, however, seen major stability issues with KSE. Network Appliance abandoned FreeBSD as a platform for running their simulator due to frequent hangs caused by signals. More recently, on sun4v, when single stepping csup (or any multi-threaded app for that matter) the debuggee would often get the SIGTRAP and not GDB. When re-starting mysqld for the second or third time the process would become unkillable. These problems are not entirely surprising, KSE makes signal handling *very* complicated. I am disappointed that threads are currently unusable on sun4v with KSE. I would be delighted if sometime in the very near future, one of the following happened: 1. a) Somebody steps up to work on KSE and fixes the signal issues that have long plagued it. John Birrell or Paul Saab can make a T2000 available to any motivated developer. 2. a) David Xu fixes static linking with libthr b) David Xu exports support for real-time scheduling via libthr c) Peter Wemm checks in bike_sched The second seems much more logical, given our desire to become performance competitive with Linux. However, sched_lock is not currently FreeBSD's biggest bottleneck, and thus the first would be acceptable. I would still be pleased at the possibility of sun4v someday being checked into CVS. -Kip On 7/5/06, Robert Watson <rwatson@freebsd.org> wrote: > > On Tue, 4 Jul 2006, Julian Elischer wrote: > > > If it come to pass that M:N threads are judged to be "unsuitable" then that > > is a decision that I can live with, but never be let it be said that I > > walled FreeBSD in to only having the option of 1:1 threads. > > Given that I have serious hindsight accuracy problems, I won't even talk about > my foresight issues. :-) I think we shouldn't nail the KSE coffin closed just > yet -- as Peter has already said, it's one thing to do a skunkworks hack of > what might eventually be used, but it's quite another to show that the > perceived benefit maps into real world benefit. I'd like to see that clearly > shown before we do anything drastic. In particular, we need to show that the > benefit is there for more than just a few poorly written benchmarks, but also > for a range of real-world workloads, and that the scheduler simplifications > pay off in terms of both code complexity and our ability to optimize. I also > want to make sure we understand some of the artifacts better: the benefit of > reducing per-process lock contention is significant, and I'm interested in > understanding where on the workload spectrum the benefits of 1:1 outweight the > benefits of M:N a bit better. Is my interpretation that this is M:N providing > better kernel workload management correct, or is it an artifact of scheduler > behavior? And, where future hardware and application trends will push > workload behavior with respect to the optimizations we already have, not to > mention the ones we are considering. > > Robert N M Watson > Computer Laboratory > University of Cambridge >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b1fa29170607100204q43a38aa7jfebe97eb18ca9e44>