[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [OT] Re: FreeBSD and threads was Re: compile 0.24.2 errors

From: Bruce A. Mah <bmah_at_freebsd.org>
Date: 2003-06-23 18:02:18 CEST

If memory serves me right, Justin Erenkrantz wrote:
> --On Sunday, June 22, 2003 12:17 PM -0400 Greg Hudson <ghudson@MIT.EDU>
> wrote:

> The pthread_cond_signal calls appear to be delayed in this wakeup. A
> request can not be serviced until *another* request comes in. This is the
> core problem, but we were also able to trivially kernel panic FreeBSD by
> placing a load on a threaded MPM. (I personally haven't tried 5.x/-CURRENT
> in a while, but we know 4.8 still doesn't work. I have lost access to
> boxes that can run -CURRENT.)
>
> We'll note that the worker code works correctly, at least, on Linux,
> Solaris, Darwin, and I believe, AIX. So, we don't believe we're doing
> anything massively wrong. From a conversation with Alfred (one of the core
> FreeBSD kernel guys), libc_r never really was tested with network code (why
> a rewrite was thought to be necessary). sendfile() and threads were broken
> until we came along and were able to talk with Alfred to get it fixed.
>
> One reason to keep this on dev@svn is that I'm aware that more FreeBSD
> developers read this than dev@httpd. ;-) -- justin

Heh. I'm "a" FreeBSD developer, but probably not the one you want.
I'm one of the release engineers (the poor sod who writes most of the
release notes) and the new maintainer of the subversion port in the
ports collection. I'm doing the latter mostly because I have a vested
interest in having an up-to-date subversion, and I was committing most
of the changes for the old maintainer anyways.

IIRC, Alfred (Perlstein, right?) is not really a libc_r person, but
more of a sendfile person. Dan Eischen is probably the guy you want
to ask about thread-related issues. I can point you to him if you are
interested.

Someone mentioned a new libc_r in FreeBSD 5.X. Beginning with 5.1,
there are three threading libraries in various stages of development.
There's: 1) libc_r (which is similar if not identical to 4.X). This
is the default threading library that's in use when you first install
a system. 2) libkse. This is the M:N threading package that uses the
work-in-progress Kernel Scheduled Entities support in kernel (similar
to scheduler activations). Dan Eischen (mentioned above) is probably
the best contact for this. 3) libthr. This is a 1:1 threading
package. Mike Makonnen is the main person working on this now.

It's my personal opinion that eventually libkse will become the
default threads package, but at least for 5.1-RELEASE we (the RE team)
still consider libkse and libthr to be experimental. (The main
concerns from the RE perspective are stability and cross-platform
portability.) That having been said I've seen some fairly encouraging
reports with users running libkse on recent 5.1-HEAD snapshots
(post-release).

Although this isn't quite my area, I'd be happy to try to work with
you (or any other concerned parties) and the appropriate FreeBSD
developers to make this situation (whatever it is!) better.

Bruce.

  • application/pgp-signature attachment: stored
Received on Mon Jun 23 18:03:44 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.