Commit 6ec54363 authored by Nathan Lynch's avatar Nathan Lynch Committed by Michael Ellerman

powerpc/cacheinfo: Warn if cache object chain becomes unordered

This can catch cases where the device tree has gotten mishandled into
an inconsistent state at runtime, e.g. the cache nodes for both the
source and the destination are present after a migration.
Signed-off-by: default avatarNathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190627051537.7298-5-nathanl@linux.ibm.com
parent 1b3da8ff
...@@ -420,6 +420,15 @@ static void link_cache_lists(struct cache *smaller, struct cache *bigger) ...@@ -420,6 +420,15 @@ static void link_cache_lists(struct cache *smaller, struct cache *bigger)
} }
smaller->next_local = bigger; smaller->next_local = bigger;
/*
* The cache->next_local list sorts by level ascending:
* L1d -> L1i -> L2 -> L3 ...
*/
WARN_ONCE((smaller->level == 1 && bigger->level > 2) ||
(smaller->level > 1 && bigger->level != smaller->level + 1),
"linking L%i cache %pOFP to L%i cache %pOFP; skipped a level?\n",
smaller->level, smaller->ofnode, bigger->level, bigger->ofnode);
} }
static void do_subsidiary_caches_debugcheck(struct cache *cache) static void do_subsidiary_caches_debugcheck(struct cache *cache)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment