Re: [Tcl9-cloverfield] [TCLCORE] ANNOUNCE: Colibri version 0.12
Status: Alpha
Brought to you by:
fbonnet
From: Larry M. <lm...@bi...> - 2011-11-30 15:00:07
|
On Wed, Nov 30, 2011 at 02:34:45PM +0100, Fr?d?ric Bonnet wrote: > 1. Implemented page write protection-based parent tracking > > This is a major internal change in the generational GC. In previous > versions, parents (i.e. cells having children in younger generations) had > to be tracked explicitly by client code calls to Col_WordSetModified each > time a mutable cell was modified. This caused a significant performance > penalty and added complexity in client code. Now parents are automatically > tracked thanks to memory page write protection: pages of older generations > are write-protected, and write attempts are caught (using exceptions on > Windows and SIGSEGV signal handling on Unix). When such a page write is > detected, the write protection is removed and the page marked as modified, > and the client code resumes. All this happens transparently, so that client > code no longer have to track modifications. Upon GC, cells belonging to > modified pages are followed as potential parents so that younger reachable > cells are marked as well. Strangely enough, we're playing similar games with write protection. Can you tell me - which platforms have you tested this on? [ ] linux/x86 [ ] linux/x86_64 [ ] macos/x86 [ ] windows/x86 2000? XP? 2003server? 2008server? Win7? [ ] HPUX/ia64 [ ] AIX [ ] NET/Free/OpenBSD - Is there a regression suite that tests the protection stuff? If so, a readme on how to run it and we'll see if we can test it on our cluster (all of the above and more) - did you see any perf gain or loss? Cool stuff! |