From: Cesar De Hoyos Date: 2015-08-04T11:08:58-04:00 Subject: [ruby-core:70241] Force ruby to allocate a new heap page --f46d043894cf8e259c051c7dabf1 Content-Type: text/plain; charset=UTF-8 Hello! I was redirected here from the IRC #ruby while discussing an implementation issue I'm having in gc.c (Ruby 2.2.2) A group of students including me are working on a process-based support for parallelization in Ruby. We require that our processes have different virtual addresses for allocations that occur during a parallel task. The cleanest solution we could think of so far is to force ruby to allocate a new heap page. We believe this can be done by temporarily hiding the free_pages reference in eden_heap, hiding the freelist head reference for each of its heap pages (by saving old value and setting to NULL in both cases), and preventing a resurrect call in heap_page_create to force a heap_page_allocate. If anyone here is familiar with the gc code, we would appreciate any feedback on the proposed solution. You probably know better than us if the method will not work for sure or if it is possibly viable. Thanks in advance! -Cesar De Hoyos --f46d043894cf8e259c051c7dabf1 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello! I was redirected here from the = IRC #ruby while discussing an implementation issue I'm having in gc.c (= Ruby 2.2.2)

A group of students including me are working on a = process-based support for parallelization in Ruby.

We require that = our processes have different virtual addresses for allocations that occur d= uring a parallel task. The cleanest solution we could think of so far is to= force ruby to allocate a new heap page.

We believe this can b= e done by temporarily hiding the free_pages reference in eden_heap, hiding = the freelist head reference for each of its heap pages (by saving old value= and setting to NULL in both cases), and preventing a resurrect call in hea= p_page_create to force a heap_page_allocate.

If anyone here is= familiar with the gc code, we would appreciate any feedback on the propose= d solution. You probably know better than us if the method will not work fo= r sure or if it is possibly viable.

Thanks in advance!


-Cesar De Hoyos
<= /div>
--f46d043894cf8e259c051c7dabf1--