[pypy-dev] Problem with large allocation in test
pypy at pocketnix.org
pypy at pocketnix.org
Thu Apr 21 12:33:58 CEST 2011
On Thu, Apr 21, 2011 at 12:21:48PM +0200, Armin Rigo wrote:
> Hi Vincent,
>
> On Tue, Apr 19, 2011 at 2:02 PM, Vincent Legoll
> <vincent.legoll at gmail.com> wrote:
> > Wouldn't a big read only mmap from /dev/zero before the to be jumped
> > adress allow for not really trying to allocate the big chunk of RAM ?
> >
> > That may be a good fix, still allowing the test for far jumps...
>
> It's not needed; mmap() can optionally take a position argument,
> allowing us to choose the position of the small pieces of requested
> memory.
i have been working on a patch based around this behavior of mmap,
currently mmap as called in this test does not allow you to specify
the base_addr hint however there is an alloc function as used by the
jit that allows you to specify this address indirectly (by setting
hint.pos in the same class).
it appears only the jit is calling this function and as such i have
been working on a patch that i hope to have ready in the next couple
of days. i wouldn't mind some feedback on how i am trying to do it
i am cloning the alloc function and adding a new parameter to specify
a base addr, then ripping out the hint object as i have been unable to
find anything that references it directly (with a quick grep, will test
to be sure)
after there is done i will migrate the test from mmap to the new alloc
function and provide hints that satisfy the spacing requirements
one this is all working i had intended to dump the Alic function and
replace it with the new alloc function and update the callers, from my
grepping of the source it appears like it is called once or twice in
the jit and should be easy to update
i am assuming this is the correct course of action, if i should
instead not be replacing the original alloc function and just create
a new alloc_with_hint function and keep/use both let me know
this has been an intresting way to get fammilar with pypy
More information about the Pypy-dev
mailing list