views:

35

answers:

1

http://managedruntime.org/ is pretty sparse on what exactly are in the tarballs and why users would want them. http://lwn.net/Articles/392307/ has some more details, but the author also isn't sure what the memory management modules actually do. Apparently the high-level goal is to reduce GC pauses, but I'd be interested in (pointers to) a summary of what the module does, and why/how that improves things. Especially awesome would be a pointer to something on how much impact these patches have (an evaluation).

+1  A: 

Azul's Pauseless GC relies on the underlying OS's memory management system. on Azul hardware, this was carried out by Azul's custom kernel (Aztec). On Linux, the memory management system needs to be able to support sufficient number of memory management operations per second in order to keep up with the amount of garbage created per second. When the Azul people ported the Azul JVM to Linux, they determined that its memory management APIs were relatively slow compared to Aztec's, if only because Linux's MM APIs were never intended to support something like PGC. the MRT patches improve the number of operations per second the linux kernel can handle, and thus support PGC.

An analogy would be the addition of poll/select to Berkeley Sockets, and in later, in 2001, when epoll was added to the linux kernel (http://www.xmailserver.org/linux-patches/nio-improve.html).

[disclaimer: even though I am a former technology executive and current technical advisor to Azul, I don't speak for them]

rbp