On Mon, 16 Apr 2018, Mikulas Patocka wrote: > This patch introduces a flag SLAB_MINIMIZE_WASTE for slab and slub. This > flag causes allocation of larger slab caches in order to minimize wasted > space. > > This is needed because we want to use dm-bufio for deduplication index and > there are existing installations with non-power-of-two block sizes (such > as 640KB). The performance of the whole solution depends on efficient > memory use, so we must waste as little memory as possible. Hmmm. Can we come up with a generic solution instead? This may mean relaxing the enforcement of the allocation max order a bit so that we can get dense allocation through higher order allocs. But then higher order allocs are generally seen as problematic. Note that SLUB will fall back to smallest order already if a failure occurs so increasing slub_max_order may not be that much of an issue. Maybe drop the max order limit completely and use MAX_ORDER instead? That means that callers need to be able to tolerate failures.