From owner-freebsd-hackers@FreeBSD.ORG Thu May 22 09:25:37 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9E3AE37B401 for ; Thu, 22 May 2003 09:25:37 -0700 (PDT) Received: from heron.mail.pas.earthlink.net (heron.mail.pas.earthlink.net [207.217.120.189]) by mx1.FreeBSD.org (Postfix) with ESMTP id 01A6E43F75 for ; Thu, 22 May 2003 09:25:37 -0700 (PDT) (envelope-from tlambert2@mindspring.com) Received: from user-38ldva3.dialup.mindspring.com ([209.86.253.67] helo=mindspring.com) by heron.mail.pas.earthlink.net with asmtp (SSLv3:RC4-MD5:128) (Exim 3.33 #1) id 19Isse-0006B5-00; Thu, 22 May 2003 09:25:25 -0700 Message-ID: <3ECCF9AD.362453A8@mindspring.com> Date: Thu, 22 May 2003 09:24:13 -0700 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Daniel Eischen References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ELNK-Trace: b1a02af9316fbb217a47c185c03b154d40683398e744b8a4645a37d7fa0594f897ad7e1a2c911032a8438e0f32a48e08350badd9bab72f9c350badd9bab72f9c cc: freebsd-hackers@freebsd.org cc: Dan Nelson cc: Julian Elischer Subject: Re: libkse and SMP (was Re: USB bulk read & pthreads) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 May 2003 16:25:37 -0000 Daniel Eischen wrote: > All of the ACE tests have been tested with libkse on both > SMP and UP systems. KDE and even mozilla work fine with > libkse (although libkse needs a patch to work around rtld-elf > not being thread-safe for mozilla to work). Note that you should probably always apply this patch, since the dl*() calls are not the only place that programs make invalid assumptions about threads rescheduling following an involuntary context switch: that's just where Mozilla has its main problems in its invalid assumptions about the threads implementation. I've been able to construct two other assumption example cases that cause lockup, even when the program is not dynamic linking anything. Of course, I'm not going to publish these, because if I did, someone would go in and put training wheels in that code, too, instead of fixing the offending threaded program's source code like they should. I'm trying to come up with an example that breaks, even if you spew locking code all over libc; when/if I do that (I'm not spending gobs of time on it), THEN I'll publish the example to prove that spewing the locks won't fix all the logic problems in the programs that use the threaded libraries. -- Terry