* Nick Piggin <nickpiggin@xxxxxxxxxxxx> wrote:
I said exactly the same thing last time this came up. I would love to remove code if its functionality can be adequately replaced by existing code, but I think your reasons for removing SLOB aren't that good, and just handwaving away the significant memory savings doesn't work.
yeah. Also, the decision here is pretty easy: the behavior of the allocator is not really visible to applications. So this isnt like having a parallel IO scheduler or a parallel process scheduler (which cause problems to us by fragmenting the application space) - so the long-term cost to us kernel maintainers should be relatively low.
A year ago the -rt kernel defaulted to the SLOB for a few releases, and barring some initial scalability issues (which were solved in -rt) it worked pretty well on generic PCs, so i dont buy the 'it doesnt work' argument either.
It's actually recently been made to work on SMP, it is much more scalable to large memories, and some initial NUMA work is happening that some embedded guys are interested in, all without increasing static footprint too much, and it has actually decreased dynamic footprint too.
cool. I was referring to something else: people were running -rt on their beefy desktop boxes with several gigs of RAM they complained about the slowdown that is caused by SLOB's linear list walking.
Steve Rostedt did two nice changes to fix those scalability problems. I've attached Steve's two patches. With these in place SLOB was very usable for large systems as well, with no measurable overhead. (obviously the lack of per-cpu caching can still be measured, but it's a lot less of a problem in practice than the linear list walking was.)