[gclist] Page grouping trick

John Levon moz@compsoc.man.ac.uk
Wed, 16 May 2001 20:37:29 +0100 (BST)

I had an idle thought about the below, and noticed it was briefly
discussed in the archives (btw, the archives are very informative,
despite the endless finaliser flamewars ;)

It's certainly a nebulous idea at the moment ...

A set of differing virtual pages could be translated into
the same physical page, at different offsets (mentioned in "precise access
barrier with hardware dirty bits" thread and follow-ons).

This would ,for one, allow an object-accurate "card"-marking scheme
for generational collectors etc. as each virtual dirty bit would refer
to each object, but each object needn't have a page all on its own.

The issues raised in the thread were the obvious ones of the overhead of
a large number of virtual pages in terms of page tables, TLB behaviour etc.
Can anyone comment further on this ?

To my naive eyes it seems this technique could be *very* useful for
something else - allowing direct addressing along with a fully moving collector.
Each object could have a permanent address composed of virtual page number
and offset. On translation this will translate to some offset in a physical
page. This means we can copy objects by copying and re-mapping. Any object
lookup will NOT require an object table lookup.

As I see it, the only reason this wouldn't work before is that the normal
translation hardware only works at page-size granularities, ie far too large

It also allows scope for profile-based re-grouping of objects etc.

What do people think ? I would be interested in any relevant citations


"I think there is a world market for maybe five computers."
	- Thomas Watson, IBM Chairman, 1943