Issue Details (XML | Word | Printable)

Key: RVM-263
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Ian Rogers
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
RVM

Compressed references

Created: 20/Sep/07 05:07 PM   Updated: 11/Apr/08 09:29 AM
Component/s: MMTk
Affects Version/s: None
Fix Version/s: 1000

Time Tracking:
Not Specified

File Attachments: 1. File patchCompressedPointers (168 kB)

Issue Links:
dependent
 


 Description  « Hide
This replaces SF RFE tracker #1663440.

Ian:

When pointers become large, for example in 64bit systems, pointer compression can reduce their size and speed performance. BEA show around a
10% speedup:

http://e-docs.bea.com/jrockit/releases/5026x/relnotes/relnotes.html#wp1079760

For PowerPC 64, and hopefully the forthcoming x86-64, it would be good to have compressed reference support.

Dave:

From a pure capability viewpoint, this would be a great feature to have. Running with compressed pointers is a outstanding way to get read/write barrier completeness in a VM.

From a performance standpoint, this is a win for applications that you want to run with approx 2.5gig to 4gig heaps (or 2.5 gig to 32gig with an extra shift of the offset in the access sequence). If the app runs in under 2.5 gig of heap, then you use a 32 bit JVM on the 64 bit OS (AIX definitely supports this, Linux does too as far as I know). If it needs more than 4 (32) gig, then the cheap (base + 32-bit offset) compression scheme doesn't apply.

It happens that the 2.5-4gig heap range appears to have some commercially interesting applications, so BEA productized it. The extent to which this would be practically useful for Jikes RVM really depends on the workloads we want to optimize for.

Kris:

I still have some code from old base for compressing pointers. I'll attach a patch. It might not be complete for all configurations, is only for ppc-aix and probably needs some cleanup (some of the code might be a little hacky, leftovers of other features,...). In this patch we only compress pointers in heap objects, we do not compress Word types(Address, Word, ObjectReference, AddressArray) , because the goal was a bit different. But it gives a good idea of code places that need to be updated to achieve the compressed pointer described here.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
There are no comments yet on this issue.