mm: swap: fix swapcache usage for fast swap devices
1) The swap readahead algorithm need not be applied for fast swap devices like zram. 2) Code to set SWP_FAST is placed incorrectly, resulting in the flag not being set. Fix these to reduce the swapcache usage. Change-Id: I23d9af5819f4b25f90f14a12657fa19ed401fb2a Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
This commit is contained in:
parent
6d7af116f2
commit
588411ea51
2 changed files with 5 additions and 6 deletions
|
@ -469,11 +469,10 @@ struct page *swapin_readahead(swp_entry_t entry, gfp_t gfp_mask,
|
|||
unsigned long entry_offset = swp_offset(entry);
|
||||
unsigned long offset = entry_offset;
|
||||
unsigned long start_offset, end_offset;
|
||||
unsigned long mask = is_swap_fast(entry) ? 0 :
|
||||
(1UL << page_cluster) - 1;
|
||||
unsigned long mask;
|
||||
struct blk_plug plug;
|
||||
|
||||
mask = swapin_nr_pages(offset) - 1;
|
||||
mask = is_swap_fast(entry) ? 0 : swapin_nr_pages(offset) - 1;
|
||||
if (!mask)
|
||||
goto skip;
|
||||
|
||||
|
|
|
@ -2554,11 +2554,11 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
|
|||
pr_err("swapon: discard_swap(%p): %d\n",
|
||||
p, err);
|
||||
}
|
||||
|
||||
if (blk_queue_fast(bdev_get_queue(p->bdev)))
|
||||
p->flags |= SWP_FAST;
|
||||
}
|
||||
|
||||
if (p->bdev && blk_queue_fast(bdev_get_queue(p->bdev)))
|
||||
p->flags |= SWP_FAST;
|
||||
|
||||
mutex_lock(&swapon_mutex);
|
||||
prio = -1;
|
||||
if (swap_flags & SWAP_FLAG_PREFER)
|
||||
|
|
Loading…
Add table
Reference in a new issue