Re: kern/131597: [kernel] c++ exceptions very slow on FreeBSD
The following reply was made to PR kern/131597; it has been noted by GNATS.
From: John Baldwin <jhb@freebsd.org>
To: bug-followup@freebsd.org,
guillaume@morinfr.org
Cc: kib@freebsd.org
Subject: Re: kern/131597: [kernel] c++ exceptions very slow on FreeBSD 7.1/amd64
Date: Thu, 22 Apr 2010 16:09:34 -0400
I tracked the sigprocmask() system calls down to the operations to acquire a
write lock in the runtime linker. The lock was added to fix an earlier bug
with throwing exceptions in multithreaded C++ apps. The relevant commit that
added the lock is this:
http://svn.freebsd.org/viewvc/base?view=revision&revision=178807
Are exceptions permitted during a signal handler? If not, then in theory we
would not need to invoke sigprocmask() for this particular lock perhaps? I'm
not sure how easy that would be to achieve given the hooks to allow the thread
library to overload the locking routines. Also, this doesn't explain the lack
of sigprocmask() calls under i386. FreeBSD/i386 should be using the same
locking code and thus invoking sigprocmask() for each exception as well.
--
John Baldwin
_______________________________________________
freebsd-bugs@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscribe@freebsd.org"
討論串 (同標題文章)
完整討論串 (本文為第 1 之 24 篇):