Messages in this thread Patch in this message | | | From | Tim Chen <> | Subject | [PATCH v3 8/8] mm/swap: Enable swap slots cache usage | Date | Tue, 15 Nov 2016 15:47:41 -0800 |
| |
Initialize swap slots cache and enable it on swap on. Drain all swap slots on swap off.
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com> --- mm/swapfile.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/mm/swapfile.c b/mm/swapfile.c index 0bd105d..9cbdbfc 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -2184,6 +2184,8 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile) spin_unlock(&p->lock); spin_unlock(&swap_lock); + disable_swap_slots_cache_lock(); + set_current_oom_origin(); err = try_to_unuse(p->type, false, 0); /* force unuse all pages */ clear_current_oom_origin(); @@ -2191,9 +2193,12 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile) if (err) { /* re-insert swap space back into swap_list */ reinsert_swap_info(p); + reenable_swap_slots_cache_unlock(); goto out_dput; } + reenable_swap_slots_cache_unlock(); + flush_work(&p->discard_work); destroy_swap_extents(p); @@ -2869,6 +2874,8 @@ out: putname(name); if (inode && S_ISREG(inode->i_mode)) inode_unlock(inode); + if (!error) + enable_swap_slots_cache(); return error; } -- 2.5.5
| |