This repository has been archived by the owner on Sep 9, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Swap optimizations and fixes from mainline kernels v4.10 through v4.12.
- Loading branch information
Showing
8 changed files
with
897 additions
and
144 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#ifndef _LINUX_SWAP_SLOTS_H | ||
#define _LINUX_SWAP_SLOTS_H | ||
|
||
#include <linux/swap.h> | ||
#include <linux/spinlock.h> | ||
#include <linux/mutex.h> | ||
|
||
#define SWAP_SLOTS_CACHE_SIZE SWAP_BATCH | ||
#define THRESHOLD_ACTIVATE_SWAP_SLOTS_CACHE (5*SWAP_SLOTS_CACHE_SIZE) | ||
#define THRESHOLD_DEACTIVATE_SWAP_SLOTS_CACHE (2*SWAP_SLOTS_CACHE_SIZE) | ||
|
||
struct swap_slots_cache { | ||
bool lock_initialized; | ||
struct mutex alloc_lock; /* protects slots, nr, cur */ | ||
swp_entry_t *slots; | ||
int nr; | ||
int cur; | ||
spinlock_t free_lock; /* protects slots_ret, n_ret */ | ||
swp_entry_t *slots_ret; | ||
int n_ret; | ||
}; | ||
|
||
void disable_swap_slots_cache_lock(void); | ||
void reenable_swap_slots_cache_unlock(void); | ||
int enable_swap_slots_cache(void); | ||
int free_swap_slot(swp_entry_t entry); | ||
|
||
extern bool swap_slot_cache_enabled; | ||
|
||
#endif /* _LINUX_SWAP_SLOTS_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.