>> There was a report that this results in undesired side effects when >> inflating the balloon to shrink the page cache. [1] >> "When inflating the balloon against page cache (i.e. no free memory >> remains) vmscan.c will both shrink page cache, but also invoke the >> shrinkers -- including the balloon's shrinker. So the balloon >> driver allocates memory which requires reclaim, vmscan gets this >> memory by shrinking the balloon, and then the driver adds the >> memory back to the balloon. Basically a busy no-op." >> >> The name "deflate on OOM" makes it pretty clear when deflation should >> happen - after other approaches to reclaim memory failed, not while >> reclaiming. This allows to minimize the footprint of a guest - memory >> will only be taken out of the balloon when really needed. >> >> Especially, a drop_slab() will result in the whole balloon getting >> deflated - undesired. > > Could you explain why some more? drop_caches shouldn't be really used in > any production workloads and if somebody really wants all the cache to > be dropped then why is balloon any different? > Deflation should happen when the guest is out of memory, not when somebody thinks it's time to reclaim some memory. That's what the feature promised from the beginning: Only give the guest more memory in case it *really* needs more memory. Deflate on oom, not deflate on reclaim/memory pressure. (that's what the report was all about) A priority for shrinkers might be a step into the right direction. -- Thanks, David / dhildenb