William Lee Irwin III wrote: >> That's a painful-sounding state of affairs, though not entirely >> unexpected. It would be interesting to hear of "BKL breakup" efforts >> for Haskell runtime systems, though anymore I'm totally ignorant of >> what the devil is going on in userspace except database-only syscalls.
On Mon, Oct 13, 2003 at 11:13:56AM +0200, Wolfgang Thaller wrote: > I'm not sure I understand you. I found out that "BKL" refers to the > "Big Kernel Lock" (in the Linux kernel), but I have no idea what > "database-only syscalls" are. remap_file_pages() (lightweight mmap() for doing, say, 65536 mappings of distinct 32KB chunks of a file without kernel memory usage exploding) and async io syscalls are examples of database-only syscalls, that I'm aware userspace is doing largely from various kernel mailing list controversies. On Mon, Oct 13, 2003 at 11:13:56AM +0200, Wolfgang Thaller wrote: > The reason why we currently do not take advantage of SMP is that the > Haskell Heap is a shared data structure which is modified whenever a > thunk (an unevaluated expression) is evaluated. Using synchronisation > primitives like pthread_mutex_lock for every evaluation of a thunk > would be deadly for performance. > There is some old (1999) code in the GHC RTS that attempts this (using > intel cmpxchg instructions for synchronisation), but it's currently > "bitrotted" and I don't know how successful it was. cmpxchg and then taking a blocking lock sounds like the 2-tier locking supported with Linux' new futex system calls. I wonder how they chose to block in the older GHC RTS. -- wli _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell