[gclist] Page grouping trick
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