Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22d01449 authored by Vinayak Menon's avatar Vinayak Menon
Browse files

mm: swap: free up swap on mm reap



With the swap slots feature, the freeing up of swap space
during the mm reap (kill or oom reap for e.g.) is delayed
till a threshold is reached. This is done mainly to reduce
the fragmentation of swap space. The caching is done per
cpu. But with zram, this causes zram space consumed not
being free up immediately on task kill or oom reap. Since
we don't use THP swap, fragmentation is not a concern. So
free up the slots without caching when the swap device is
a synchronous one. Note that this does not disable the swap
slots feature which can take into effect during swap slots
allocation.

Change-Id: I9985edfdd88723d38ae905496556e07fb8bf09af
Signed-off-by: default avatarVinayak Menon <vinmenon@codeaurora.org>
parent e86137b2
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -273,9 +273,12 @@ static int refill_swap_slots_cache(struct swap_slots_cache *cache)
int free_swap_slot(swp_entry_t entry)
{
	struct swap_slots_cache *cache;
	struct swap_info_struct *si;

	si = swp_swap_info(entry);
	cache = raw_cpu_ptr(&swp_slots);
	if (use_swap_slot_cache && cache->slots_ret) {
	if (!(si->flags & SWP_SYNCHRONOUS_IO) &&
				use_swap_slot_cache && cache->slots_ret) {
		spin_lock_irq(&cache->free_lock);
		/* Swap slots cache may be deactivated before acquiring lock */
		if (!use_swap_slot_cache || !cache->slots_ret) {