Lines Matching refs:level
41 unsigned level:7; member
285 l_add_tail(q->es, q->qs + e->level, e); in q_push()
293 l_add_before(q->es, q->qs + e->level, old, e); in q_push_before()
298 l_del(q->es, q->qs + e->level, e); in q_del()
308 unsigned level; in q_peek() local
313 for (level = 0; level < max_level; level++) in q_peek()
314 for (e = l_head(q->es, q->qs + level); e; e = l_next(q->es, e)) { in q_peek()
356 static struct entry *__redist_pop_from(struct queue *q, unsigned level) in __redist_pop_from() argument
360 for (; level < q->nr_levels; level++) in __redist_pop_from()
361 for (e = l_head(q->es, q->qs + level); e; e = l_next(q->es, e)) in __redist_pop_from()
363 l_del(q->es, q->qs + e->level, e); in __redist_pop_from()
372 unsigned level, nr_levels, entries_per_level, remainder; in q_set_targets_subrange_() local
380 for (level = lbegin; level < lend; level++) in q_set_targets_subrange_()
381 q->target_count[level] = in q_set_targets_subrange_()
382 (level < (lbegin + remainder)) ? entries_per_level + 1u : entries_per_level; in q_set_targets_subrange_()
413 unsigned target, level; in q_redistribute() local
419 for (level = 0u; level < q->nr_levels - 1u; level++) { in q_redistribute()
420 l = q->qs + level; in q_redistribute()
421 target = q->target_count[level]; in q_redistribute()
427 e = __redist_pop_from(q, level + 1u); in q_redistribute()
433 e->level = level; in q_redistribute()
440 l_above = q->qs + level + 1u; in q_redistribute()
448 e->level = level + 1u; in q_redistribute()
461 if (extra_levels && (e->level < q->nr_levels - 1u)) { in q_requeue_before()
462 new_level = min(q->nr_levels - 1u, e->level + extra_levels); in q_requeue_before()
468 de->level = e->level; in q_requeue_before()
477 e->level = new_level; in q_requeue_before()
518 static void stats_level_accessed(struct stats *s, unsigned level) in stats_level_accessed() argument
520 if (level >= s->hit_threshold) in stats_level_accessed()
701 e->level = 0u; in init_entry()
835 static struct entry *get_sentinel(struct entry_alloc *ea, unsigned level, bool which) in get_sentinel() argument
837 return get_entry(ea, which ? level : NR_CACHE_LEVELS + level); in get_sentinel()
840 static struct entry *writeback_sentinel(struct smq_policy *mq, unsigned level) in writeback_sentinel() argument
842 return get_sentinel(&mq->writeback_sentinel_alloc, level, mq->current_writeback_sentinels); in writeback_sentinel()
845 static struct entry *demote_sentinel(struct smq_policy *mq, unsigned level) in demote_sentinel() argument
847 return get_sentinel(&mq->demote_sentinel_alloc, level, mq->current_demote_sentinels); in demote_sentinel()
852 unsigned level; in __update_writeback_sentinels() local
856 for (level = 0; level < q->nr_levels; level++) { in __update_writeback_sentinels()
857 sentinel = writeback_sentinel(mq, level); in __update_writeback_sentinels()
865 unsigned level; in __update_demote_sentinels() local
869 for (level = 0; level < q->nr_levels; level++) { in __update_demote_sentinels()
870 sentinel = demote_sentinel(mq, level); in __update_demote_sentinels()
893 unsigned level; in __sentinels_init() local
896 for (level = 0; level < NR_CACHE_LEVELS; level++) { in __sentinels_init()
897 sentinel = writeback_sentinel(mq, level); in __sentinels_init()
898 sentinel->level = level; in __sentinels_init()
901 sentinel = demote_sentinel(mq, level); in __sentinels_init()
902 sentinel->level = level; in __sentinels_init()
944 sentinel = writeback_sentinel(mq, e->level); in push()
947 sentinel = demote_sentinel(mq, e->level); in push()
985 sentinel = writeback_sentinel(mq, e->level); in requeue()
988 sentinel = demote_sentinel(mq, e->level); in requeue()
1148 return maybe_promote(hs_e->level >= mq->write_promote_level); in should_promote()
1150 return maybe_promote(hs_e->level >= mq->read_promote_level); in should_promote()
1197 stats_level_accessed(&mq->hotspot_stats, e->level); in update_hotspot_queue()
1243 stats_level_accessed(&mq->cache_stats, e->level); in map()
1372 e->level = hint_valid ? min(hint, NR_CACHE_LEVELS - 1) : 1; in smq_load_mapping()
1382 unsigned level; in smq_save_hints() local
1385 for (level = 0; level < q->nr_levels; level++) in smq_save_hints()
1386 for (e = l_head(q->es, q->qs + level); e; e = l_next(q->es, e)) { in smq_save_hints()
1389 e->oblock, e->level); in smq_save_hints()