On Jun 22, 2004, at 5:30 PM, Andrew Gallatin wrote:
I found that MacOSX 10.3.3's ioctl takes nearly 4x as long as the same
code under linux ppc64 on the same exact G5. And it takes 8x as long
as
the same ioctl on an AMD64.
Mac OS X/Darwin-ppc provides a full 32-bit address space to applications (and a separate full 32-bit address space to the kernel). Each transition from user to kernel (and back) requires an address space change. Linux (and others) take 1GB (or more) away from the application address space so they can map the kernel as part of each address space to avoid this overhead (they just have a privilege-level transition to make instead). Mac OS X can't afford to take that much address space away from some applications. So, we pay a higher transition cost. We also use a single kernel for both SMP and UP systems. The SMP locking in the kernel imposes some additional overhead that isn't always needed (or seen in those other OSes). These issues aside, there are still plenty of things we can (and are) doing to improve those latencies. But there always seem to have been bigger performance fish to fry. --Jim PS: When using an "averaging" benchmark like you describe, don't forget to take those measurements in single-user mode, network disconnected. Background activity plays an important part of the final result in such cases. Mac OS X, in full multi-user mode, tends to have a little bit more of this than the typical OS (because of all the niceties like Rendezvous, etc...) - throwing the numbers off slightly (or sometimes a lot). [demime 0.98b removed an attachment of type application/pkcs7-signature which had a name of smime.p7s] _______________________________________________ darwin-kernel mailing list | darwin-kernel@lists.apple.com Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/darwin-kernel Do not post admin requests to the list. They will be ignored.