Hi David, On Fri, Dec 22, 2023 at 10:11 PM David Rientjes <rientjes@xxxxxxxxxx> wrote: > > How do you quantify the impact of the delayed swap_entry_free()? > > Since the free and memcg uncharge are now delayed, is there not the > possibility that we stay under memory pressure for longer? (Assuming at > least some users are swapping because of memory pressure.) > > I would assume that since the free and uncharge itself is delayed that in > the pathological case we'd actually be swapping *more* until the async > worker can run. Thanks for raising this interesting question. First of all, the swap_entry_free() does not impact "memory.current". It reduces "memory.swap.current". Technically it is the swap pressure not memory pressure that suffers the extra delay. Secondly, we are talking about delaying up to 64 swap entries for a few microseconds. Where the swap slot cache itself delays the freeing of the entries for an arbitrary amount of time. It is not freed until the cache is full of 64 entries. This delay can be seconds or even minutes. Adding a few microseconds of extra delay to existing seconds delay really makes no difference from the swap pressure point of view. Chris