[MLton] Card/cross map alignment broken?

Wesley W. Terpstra wesley at terpstra.ca
Tue Oct 13 17:10:13 PDT 2009


On Tue, Oct 13, 2009 at 9:14 PM, Matthew Fluet <mtf at cs.rit.edu> wrote:

> All of heap.size, cardMapSize, and crossMapSize are aligned according to
> the system page size (s->sysvals.pagesize).


Ok, but it is definitely updateCrossMap that is doing the unaligned
accesses. The moment the GC switches to generational behaviour, the
performance of the system dies. I'm trying to narrow the problem down
further, but it's painful... 30 minutes per binary search step. :p

gdb says the address of the trap is...
(gdb) break *(void*)0x0000000120d843ac
Breakpoint 1 at 0x120d843ac: file gc/generational.c, line 373.
=> s->generationalMaps.crossMap[cardIndex] = (GC_crossMapElem)offset;
... but we all know how reliable gcc is in this regard.. o.O
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mlton.org/pipermail/mlton/attachments/20091014/b425fe26/attachment.htm


More information about the MLton mailing list