On Tue, Apr 13, 2010 at 12:36 AM, Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk wrote:
Hi all,
Thanks to some great work by Igor, the reason for my random debugger crashes has been found. It appears that the default dictionary size is too small on SPARC64 and repeatedly updating the translations property is enough to cause the forth dictionary to overflow the memory allocated for it.
I'd like to propose the attached patch which doubles the dictionary memory from 256k to 512k as currently used by PPC. My concern about applying the patch directly is that I'm not sure whether or not any corresponding changes to entry.S also need to be made. AFAICT the initialisation code handles 19 x 512k pages when setting up the MMU (which should be more than enough) but thought I should get a second opinion first.
Your changes increase .bss of elf image, and that is handled by entry.S automatically so no changes are needed.
BTW do we need 512K for forth heap? It may be enough to modify openbios.c setting MEMORY_SIZE to 256K and DICTIONARY_SIZE to 512k there. Change to ofmem_sparc64.c does not seem to be helpful.