This is the mail archive of the mailing list for the Java project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Hash synchronization (PR 16662) patch

> 1) I don't know how to do it without adding an indirect call to
> every allocation, even in the non-debug case.  I think I'm not willing
> to pay that price.  (Its cost is highly micro-architecture specific,
> largely depending on whether you have a sufficiently large
> branch target buffer.  The details depend on what, if anything,
> we do about calling the GC allocation routines directly  If an
> indirection ends up being part of that solution, perhaps this
> problem will disappear.)
> 2) The generic GC source uses different calling conventions for
> debug and regular allocation, so that it can pass the call location
> to the debug version for platforms without proper stack unwind
> support.  This probably isn't a big issue for gcj, and I'm debating
> whether to make it disappear in GC 7.0, so that
> you could at least just replace GC libraries.  (There are
> already debug allocation calls that fake the extra arguments.)
I forgot:

3) The collector inner mark loop needs to work differently to install
back pointers in objects.  Doing this efficiently at runtime would involve
somehow cloning the code and calling the right version.  (There's probably
another reason to do this on X86, since prefetch instructions aren't
portable between different X86 processors.)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]