<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  
</head>
<body text="#000000" bgcolor="#ffffff">
My current favorite item of brain damage in Linux:<br>
<br>
<a href="http://opsmonkey.blogspot.com/2007/01/linux-memory-overcommit.html" class="moz-txt-link-freetext">http://opsmonkey.blogspot.com/2007/01/linux-memory-overcommit.html</a><br>
<br>
You ask Linux for memory.  It says, sure, here's your memory.<br>
Then you make the mistake of actually trying to USE it,<br>
and you get an error from Linux.<br>
<br>
CCL does not like this, as we have discovered in practice.<br>
<br>
In theory, you can turn off this feature.  But it turns out<br>
that a lot of Linux programs *depend* on it; they allocate<br>
a lot more than they need.  So if you turned it off, enough<br>
other Linux programs would fail that it's out of the question.<br>
<br>
There's no cure for this disease.<br>
<br>
-- Dan<br>
<br>
Shannon Spires wrote:
<blockquote type="cite" cite="mid:900F56DB-9799-4FFD-AA9A-C21E5F5798FF@sandia.gov">
  <pre wrap="">Wow. This little exchange was a mind-blower. My jaw is hanging open. My naive, childish illusions of software competence have been dashed.

If bridges were built with this level of professionalism, people would die and engineers would be jailed.

I've heard that "the difference between a Porsche and a Ferrari is that the Porsche was designed by people who went to college." All this time, I had sort of assumed
Porsche:Ferrari :: Apple:Microsoft.

Guess not. 

It's time somebody wrote an operating system with the same degree of engineering rigor that Germans use to design cars. Are we yet tired enough of this kind of crap to do something about it?


[Gary wrote:]

  </pre>
  <blockquote type="cite">
    <pre wrap="">Apple's documentation for mach_thread_self() (see

<a href="http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/osfmk/man/mach_thread_self.html?txt" class="moz-txt-link-rfc2396E"><http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/osfmk/man/mach_thread_self.html?txt></a>)

doesn't seem to explicitly state that that function increments the
port's send reference count (though it certainly seems to.)  The GNU
Hurd documentation does state this, but warns the user that
mach_thread_self() allows the reference count to silently wrap around
(wrap around 2^32 ?  what ?) without error and that the reference count
shouldn't be decremented if this overrun might have happened.

This stuff escaped from a lab somewhere; the fact that it's been
lurching around the countryside frightening villagers as long as it
has is pretty sad.

I don't care what a thread's Mach port's send right's reference count
is.  I do care that thread creation doesn't leak kernel resources, and
because if this nonsense it does.

    </pre>
  </blockquote>
  <pre wrap=""><!---->
[then mikel evins wrote:]

  </pre>
  <blockquote type="cite">
    <pre wrap="">However, during the investigation, we ended up talking over the issues with Avie Tevanian, who was the boss of that stuff at NeXT at that time, and who was before that involved in the design and construction of Mach at CMU. What struck me about the conversations was that Avie said Mach was designed to leak certain resources because allowing them to leak avoided some costly houskeeping, and in "normal use" the leaks would not be a problem. Mach's designers simply assumed that systems would be rebooted often enough to prevent any issues arising.

I remember that he seemed slightly put out that NeXT customers would use system calls in a way that violated that assumption.
    </pre>
  </blockquote>
  <pre wrap=""><!---->

_______________________________________________
Openmcl-devel mailing list
<a href="mailto:Openmcl-devel@clozure.com" class="moz-txt-link-abbreviated">Openmcl-devel@clozure.com</a>
<a href="http://clozure.com/mailman/listinfo/openmcl-devel" class="moz-txt-link-freetext">http://clozure.com/mailman/listinfo/openmcl-devel</a>
  </pre>
</blockquote>
</body>
</html>