Lines Matching defs:level
42 unsigned level:6;
261 * level.
293 * Insert an entry to the back of the given level.
302 l_add_tail(q->es, q->qs + e->level, e);
312 l_add_head(q->es, q->qs + e->level, e);
322 l_add_before(q->es, q->qs + e->level, old, e);
327 l_del(q->es, q->qs + e->level, e);
333 * Return the oldest entry of the lowest populated level.
337 unsigned level;
342 for (level = 0; level < max_level; level++)
343 for (e = l_head(q->es, q->qs + level); e; e = l_next(q->es, e)) {
372 static struct entry *__redist_pop_from(struct queue *q, unsigned level)
376 for (; level < q->nr_levels; level++)
377 for (e = l_head(q->es, q->qs + level); e; e = l_next(q->es, e))
379 l_del(q->es, q->qs + e->level, e);
388 unsigned level, nr_levels, entries_per_level, remainder;
396 for (level = lbegin; level < lend; level++)
397 q->target_count[level] =
398 (level < (lbegin + remainder)) ? entries_per_level + 1u : entries_per_level;
429 unsigned target, level;
435 for (level = 0u; level < q->nr_levels - 1u; level++) {
436 l = q->qs + level;
437 target = q->target_count[level];
440 * Pull down some entries from the level above.
443 e = __redist_pop_from(q, level + 1u);
449 e->level = level;
456 l_above = q->qs + level + 1u;
464 e->level = level + 1u;
475 unsigned new_level = min(q->nr_levels - 1u, e->level + extra_levels);
478 if (extra_levels && (e->level < q->nr_levels - 1u)) {
484 de->level = e->level;
504 e->level = new_level;
538 static void stats_level_accessed(struct stats *s, unsigned level)
540 if (level >= s->hit_threshold)
721 e->level = 0u;
868 static struct entry *get_sentinel(struct entry_alloc *ea, unsigned level, bool which)
870 return get_entry(ea, which ? level : NR_CACHE_LEVELS + level);
873 static struct entry *writeback_sentinel(struct smq_policy *mq, unsigned level)
875 return get_sentinel(&mq->writeback_sentinel_alloc, level, mq->current_writeback_sentinels);
878 static struct entry *demote_sentinel(struct smq_policy *mq, unsigned level)
880 return get_sentinel(&mq->demote_sentinel_alloc, level, mq->current_demote_sentinels);
885 unsigned level;
889 for (level = 0; level < q->nr_levels; level++) {
890 sentinel = writeback_sentinel(mq, level);
898 unsigned level;
902 for (level = 0; level < q->nr_levels; level++) {
903 sentinel = demote_sentinel(mq, level);
926 unsigned level;
929 for (level = 0; level < NR_CACHE_LEVELS; level++) {
930 sentinel = writeback_sentinel(mq, level);
931 sentinel->level = level;
934 sentinel = demote_sentinel(mq, level);
935 sentinel->level = level;
1012 get_sentinel(&mq->writeback_sentinel_alloc, e->level, !mq->current_writeback_sentinels),
1013 get_sentinel(&mq->writeback_sentinel_alloc, e->level, mq->current_writeback_sentinels));
1020 * The promote level depends on the current performance of the
1293 return maybe_promote(hs_e->level >= mq->write_promote_level);
1295 return maybe_promote(hs_e->level >= mq->read_promote_level);
1312 stats_level_accessed(&mq->hotspot_stats, e->level);
1382 stats_level_accessed(&mq->cache_stats, e->level);
1477 e->level = NR_CACHE_LEVELS - 1;
1571 e->level = hint_valid ? min(hint, NR_CACHE_LEVELS - 1) : random_level(cblock);
1606 return e->level;