1 /* SPDX-License-Identifier: GPL-2.0 */
5 #include <linux/types.h>
6 #include <linux/mm_types.h>
10 extern atomic_long_t zswap_stored_pages
;
14 struct zswap_lruvec_state
{
16 * Number of swapped in pages from disk, i.e not found in the zswap pool.
18 * This is consumed and subtracted from the lru size in
19 * zswap_shrinker_count() to penalize past overshrinking that led to disk
20 * swapins. The idea is that had we considered this many more pages in the
21 * LRU active/protected and not written them back, we would not have had to
24 atomic_long_t nr_disk_swapins
;
27 unsigned long zswap_total_pages(void);
28 bool zswap_store(struct folio
*folio
);
29 bool zswap_load(struct folio
*folio
);
30 void zswap_invalidate(swp_entry_t swp
);
31 int zswap_swapon(int type
, unsigned long nr_pages
);
32 void zswap_swapoff(int type
);
33 void zswap_memcg_offline_cleanup(struct mem_cgroup
*memcg
);
34 void zswap_lruvec_state_init(struct lruvec
*lruvec
);
35 void zswap_folio_swapin(struct folio
*folio
);
36 bool zswap_is_enabled(void);
37 bool zswap_never_enabled(void);
40 struct zswap_lruvec_state
{};
42 static inline bool zswap_store(struct folio
*folio
)
47 static inline bool zswap_load(struct folio
*folio
)
52 static inline void zswap_invalidate(swp_entry_t swp
) {}
53 static inline int zswap_swapon(int type
, unsigned long nr_pages
)
57 static inline void zswap_swapoff(int type
) {}
58 static inline void zswap_memcg_offline_cleanup(struct mem_cgroup
*memcg
) {}
59 static inline void zswap_lruvec_state_init(struct lruvec
*lruvec
) {}
60 static inline void zswap_folio_swapin(struct folio
*folio
) {}
62 static inline bool zswap_is_enabled(void)
67 static inline bool zswap_never_enabled(void)
74 #endif /* _LINUX_ZSWAP_H */