Messages in this thread | | | Date | Thu, 28 Nov 1996 13:26:11 +0100 (MET) | From | Ingo Molnar <> | Subject | Re: Please don't beat me up (was Re: Bugs and wishes in memory management area) |
| |
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
| |