On Dec 25, 2008, at 3:54 AM, Oliver Hunt wrote:


On Dec 25, 2008, at 2:18 AM, Javed Rabbani wrote:

Oliver,

<"That call to VirtualAlloc is inside a PLATFORM(WIN_OS) guard -- you should not be hitting it on a non-windows platform">

You are absolutely right about that. The VirtualAlloc() should never be hit on non-Windows platform. Let me clarify, I am not hitting the VirtualAlloc call on a non-Windows platform. I was just referring to the point that what can be a possible alternative to VirtualAlloc on embedded platforms. Looking through the code, the VirtualAlloc is enabled for WIN_OS only as expected. For other platforms like SYMBIAN for example, the fastMalloc() is enabled with a comment that "VirtualAlloc is not available on Symbian, so hack with fastMalloc".

It's perfectly possible it's broken in symbian -- the last symbian release was from more than two years ago.

A bit of digging showed that Simon Hausmann added the SYMBIAN fastMalloc branch, which implies this was for WebKit/Qt which builds with fastMalloc disabled. So that call to fastMalloc is actually just a call to standard system malloc, which i would guess, just by pure luck allocates adequately aligned memory.

What are specific memory requirements that VirtualAlloc() fulfills and fastMalloc() does not? What can be the workaround for VirtualAlloc() on embedded platforms?

Alignment -- VirtualAlloc, mmap, vm_map all produce page aligned memory (which is at least 4k aligned), and the posix_memalign version appears to actually over align memory (my following of the code makes me thinks it's requesting 64k alignment :-/ )

All of the #if branches allocateBlock will guarantee 64k alignment, which is what is required. That's with the exception of the PLATFORM(SYMBIAN) branch, which appears to be incorrect. I would expect it to lead to crashes as a result of incorrect garbage collection.

Does anyone know if Symbian has an official way to get an aligned chunk of memory?

Regards,
Maciej


_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to