mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
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: Vinayak Menon <vinmenon@codeaurora.org>
This commit is contained in:
parent
e86137b27a
commit
22d014495f
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user