#include <linux/swap_slots.h>
#include <linux/cpu.h>
#include <linux/cpumask.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/mutex.h>
#include <linux/mm.h>
static DEFINE_PER_CPU(struct swap_slots_cache, swp_slots);
static bool swap_slot_cache_active;
bool swap_slot_cache_enabled;
static bool swap_slot_cache_initialized;
static DEFINE_MUTEX(swap_slots_cache_mutex);
static DEFINE_MUTEX(swap_slots_cache_enable_mutex);
static void __drain_swap_slots_cache(unsigned int type);
#define use_swap_slot_cache …
#define SLOTS_CACHE …
#define SLOTS_CACHE_RET …
static void deactivate_swap_slots_cache(void)
{ … }
static void reactivate_swap_slots_cache(void)
{ … }
void disable_swap_slots_cache_lock(void)
{ … }
static void __reenable_swap_slots_cache(void)
{ … }
void reenable_swap_slots_cache_unlock(void)
{ … }
static bool check_cache_active(void)
{ … }
static int alloc_swap_slot_cache(unsigned int cpu)
{ … }
static void drain_slots_cache_cpu(unsigned int cpu, unsigned int type,
bool free_slots)
{ … }
static void __drain_swap_slots_cache(unsigned int type)
{ … }
static int free_slot_cache(unsigned int cpu)
{ … }
void enable_swap_slots_cache(void)
{ … }
static int refill_swap_slots_cache(struct swap_slots_cache *cache)
{ … }
void free_swap_slot(swp_entry_t entry)
{ … }
swp_entry_t folio_alloc_swap(struct folio *folio)
{ … }