4 ms·
The Slab Allocator for Linux keeps an object tag for each slab, which can be of different sizes. Then we get the ZFS extent allocator, written mostly by the sa
by watersb 4y ago
The Slab Allocator for Linux keeps an object tag for each slab, which can be of different sizes.
Then we get the ZFS extent allocator, written mostly by the same programmer (Jeff Bonwick).
https://en.m.wikipedia.org/wiki/Slab_allocation https://en.m.wikipedia.org/wiki/Slab_allocation
Doing tagged slab allocation seems like a reasonable thing for a hardware microarchitecture to consider.
The article starts by complaining about modern CPU complexity, five-level page tables to maintain the illusion of a linear, uniform memory space.
Then goes on to juxtapose that complexity with the an architecture that would use that complexity to support tagged memory objects more directly, part of the system ABI.
If we're going to spend all of our time manipulating memory objects anyway, why mess around?
Was the Intel iAPX so much of a disaster, compared to a modern x86_64 architecture, that we are forever forbidden to even consider such hardware?
https://en.m.wikipedia.org/wiki/Intel_iAPX_432 https://en.m.wikipedia.org/wiki/Intel_iAPX_432