mirror of
https://github.com/ukui/kernel.git
synced 2026-03-09 10:07:04 -07:00
mm/swapcache: support to handle the shadow entries
Workingset detection for anonymous page will be implemented in the following patch and it requires to store the shadow entries into the swapcache. This patch implements an infrastructure to store the shadow entry in the swapcache. Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Hugh Dickins <hughd@google.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Michal Hocko <mhocko@kernel.org> Cc: Minchan Kim <minchan@kernel.org> Cc: Vlastimil Babka <vbabka@suse.cz> Link: http://lkml.kernel.org/r/1595490560-15117-5-git-send-email-iamjoonsoo.kim@lge.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
170b04b7ae
commit
3852f6768e
+13
-4
@@ -414,9 +414,13 @@ extern struct address_space *swapper_spaces[];
|
||||
extern unsigned long total_swapcache_pages(void);
|
||||
extern void show_swap_cache_info(void);
|
||||
extern int add_to_swap(struct page *page);
|
||||
extern int add_to_swap_cache(struct page *, swp_entry_t, gfp_t);
|
||||
extern void __delete_from_swap_cache(struct page *, swp_entry_t entry);
|
||||
extern int add_to_swap_cache(struct page *page, swp_entry_t entry,
|
||||
gfp_t gfp, void **shadowp);
|
||||
extern void __delete_from_swap_cache(struct page *page,
|
||||
swp_entry_t entry, void *shadow);
|
||||
extern void delete_from_swap_cache(struct page *);
|
||||
extern void clear_shadow_from_swap_cache(int type, unsigned long begin,
|
||||
unsigned long end);
|
||||
extern void free_page_and_swap_cache(struct page *);
|
||||
extern void free_pages_and_swap_cache(struct page **, int);
|
||||
extern struct page *lookup_swap_cache(swp_entry_t entry,
|
||||
@@ -570,13 +574,13 @@ static inline int add_to_swap(struct page *page)
|
||||
}
|
||||
|
||||
static inline int add_to_swap_cache(struct page *page, swp_entry_t entry,
|
||||
gfp_t gfp_mask)
|
||||
gfp_t gfp_mask, void **shadowp)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline void __delete_from_swap_cache(struct page *page,
|
||||
swp_entry_t entry)
|
||||
swp_entry_t entry, void *shadow)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -584,6 +588,11 @@ static inline void delete_from_swap_cache(struct page *page)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void clear_shadow_from_swap_cache(int type, unsigned long begin,
|
||||
unsigned long end)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int page_swapcount(struct page *page)
|
||||
{
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user