> On Tue, Jul 02, 2002 at 11:40:45AM -0700, H. J. Lu wrote: > > > The ll/sc emulation is implemented in 2.4.0 and above. This patch makes > > glibc always use ll/sc. > > Which means the overhead of two syscalls instead of one sysmips() call > for something that is assumed to be dirt cheap. R3000, R5900 etc. > users won't this patch you, which'll have significant impact on their > glibc performance. The R5900 kernel for the Playstation 2 does not use system calls. It uses a memory-mapped pseudo-device hack that the guys at Sony came up with, which is much faster. We at MIPS came up with an even faster hack which uses the destruction of a "k" register value, but which requires the branch-likely instruction and thus only workson MIPS II CPUs and above (R39xxx, R4xxx, R5xxx, but not the classic R3K). See my message "Re: patches for test-and-set without ll/sc" of January 22. I consider it to be very important for MIPS/Linux that the embedded/workstation kernel and libraries merge with the Playstation 2 "consumer" Linux, and I don't think that will happen if we try to push the PS2 people to use something far less efficient than what they already have. "Entia non sunt multiplicanda praeter necessitatem", as a wise old guy once said, but could we not consider a MIPS/Linux universe where R3000 binaries use system calls, non-LL/SC MIPSII+ binaries use k-register destruction, real, manly, MIPS binaries use LL/SC instructions, and where the MIPS/Linux kernel (a) supports an appropriate system call, (b) makes a contract with userland to destroy k-regs predictably, and (c) contains the emulation logic for LL/SC? That should give us full cross-platform binary compatibility, with optimal performance on each platform when an appropriately configured set of libraries and tools is installed. Regards, Kevin K.