LRU_REFS_WIDTH
VM_WARN_ON_ONCE(refs > BIT(LRU_REFS_WIDTH));
#define LRU_REFS_PGOFF (LRU_GEN_PGOFF - LRU_REFS_WIDTH)
#define LRU_REFS_MASK ((BIT(LRU_REFS_WIDTH) - 1) << LRU_REFS_PGOFF)
LRU_GEN_WIDTH + LRU_REFS_WIDTH)
LRU_REFS_WIDTH,
if (refs + workingset != BIT(LRU_REFS_WIDTH) + 1) {
if (tier > tier_idx || refs + workingset == BIT(LRU_REFS_WIDTH) + 1) {
if (refs + workingset != BIT(LRU_REFS_WIDTH) + 1) {
BUILD_BUG_ON(LRU_GEN_WIDTH + LRU_REFS_WIDTH >
token = (min_seq << LRU_REFS_WIDTH) | max(refs - 1, 0);
max_seq &= (file ? EVICTION_MASK : EVICTION_MASK_ANON) >> LRU_REFS_WIDTH;
return abs_diff(max_seq, *token >> LRU_REFS_WIDTH) < MAX_NR_GENS;
refs = (token & (BIT(LRU_REFS_WIDTH) - 1)) + 1;