Re: Please don't beat me up (was Re: Bugs and wishes in memory management area)

Ingo Molnar (
Thu, 28 Nov 1996 13:26:11 +0100 (MET)

On Thu, 28 Nov 1996, Mike Jagdis wrote:

> On Wed, 27 Nov 1996, Ingo Molnar wrote:
> > with double indirection pointers we could implement some kind of garbage
> > collector kernel thread(s). Kernel code has to 'get' and 'put' such
> > resources, to avoid reentrancy problems.
> This means mutexing each access through the pointer so it can't
> change while we are using the object at the other end. It might
> help the worst case but at the expense of extra overhead on every
> usage of an allocated object - expensive.

yup ... but note that this is basically a software-implemented paging/TLB
mechanizm. With all the advantages of byte granularity and arbitrary size
buffers. The 'mutex' is just for the garbage collector thread, not
for normal usage. It could be signalled with a high bit in the address or
something like that, and could be macroed heavily.

once you have got() a buffer, you can code along as if it were a normal
buffer, no speed penalty. The garbage collector thread then would
clusterise buffers that arent in use. [they are allocated, but no pointer
is out somewhere in a context]

but anyways, this was just a gedankenexperiment to avoid TLB invalidation.

-- mingo