<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>O(1) scheduling is not a new idea. Just look at NT and probably Solaris and probably all the other non-free systems (AIX, Irix, HP-UX, Tru64, VMS, etc.)<br><br>Getting thread locals should not require a kernel call. It doesn't on NT. We can optimize this somewhat on most systems with __thread. I had that in briefly.<br><br>Entering an uncontended pthread mutex should not be expensive -- at least no kernel call, but granted a call and atomic op. Two calls because of the C layer.<br>But user threads pay for a call too of course.<br><br>Maybe I should profile some of this..<br><br> - Jay<br><br>> From: dragisha@m3w.org<br>> To: mika@async.async.caltech.edu<br>> Date: Sun, 28 Mar 2010 21:14:57 +0200<br>> CC: m3devel@elegosoft.com<br>> Subject: Re: [M3devel] userthreads vs. pthreads performance?<br>> <br>> I remember reading (long time ago) about how these (FUTEXes) are<br>> efficient in LINUX... Can I have your test code to try?<br>> <br>> On Sun, 2010-03-28 at 12:11 -0700, Mika Nystrom wrote:<br>> > Well I have run programs on PPC_DARWIN and FreeBSD<X> and seen these sorts of things...<br>> > <br>> > =?UTF-8?Q?Dragi=C5=A1a_Duri=C4=87?= writes:<br>> > >Which platform?<br>> > ><br>> > >On Sun, 2010-03-28 at 11:57 -0700, Mika Nystrom wrote:<br>> > >> Yep, sounds right.  <br>> > >> <br>> > >> I was profiling some other thread-using code that slowed down<br>> > >> enormously<br>> > >> because of pthreads and it turned out the program was spending ~95%<br>> > >> of its time in accessing the thread locals via one of the pthread_<br>> > >> functions.<br>> > >> (The overhead of entering the kernel.)<br>> > >-- <br>> > >Dragiša Durić <dragisha@m3w.org><br>> -- <br>> Dragiša Durić <dragisha@m3w.org><br>> <br>                                        </body>
</html>