Lines Matching refs:memtier
113 static __always_inline nodemask_t get_memtier_nodemask(struct memory_tier *memtier) in get_memtier_nodemask() argument
118 list_for_each_entry(memtype, &memtier->memory_types, tier_sibiling) in get_memtier_nodemask()
166 struct memory_tier *memtier, *new_memtier; in find_create_memory_tier() local
178 list_for_each_entry(memtier, &memory_tiers, list) { in find_create_memory_tier()
179 if (adistance == memtier->adistance_start) in find_create_memory_tier()
180 return memtier; in find_create_memory_tier()
186 list_for_each_entry(memtier, &memory_tiers, list) { in find_create_memory_tier()
187 if (adistance == memtier->adistance_start) { in find_create_memory_tier()
189 } else if (adistance < memtier->adistance_start) { in find_create_memory_tier()
203 list_add_tail(&new_memtier->list, &memtier->list); in find_create_memory_tier()
214 list_del(&memtier->list); in find_create_memory_tier()
215 put_device(&memtier->dev); in find_create_memory_tier()
218 memtier = new_memtier; in find_create_memory_tier()
221 list_add(&memtype->tier_sibiling, &memtier->memory_types); in find_create_memory_tier()
222 return memtier; in find_create_memory_tier()
237 return rcu_dereference_check(pgdat->memtier, in __node_get_memory_tier()
246 struct memory_tier *memtier; in node_is_toptier() local
253 memtier = rcu_dereference(pgdat->memtier); in node_is_toptier()
254 if (!memtier) { in node_is_toptier()
258 if (memtier->adistance_start <= top_tier_adistance) in node_is_toptier()
269 struct memory_tier *memtier; in node_get_allowed_targets() local
277 memtier = rcu_dereference(pgdat->memtier); in node_get_allowed_targets()
278 if (memtier) in node_get_allowed_targets()
279 *targets = memtier->lower_tier_mask; in node_get_allowed_targets()
332 struct memory_tier *memtier; in disable_all_demotion_targets() local
341 memtier = __node_get_memory_tier(node); in disable_all_demotion_targets()
342 if (memtier) in disable_all_demotion_targets()
343 memtier->lower_tier_mask = NODE_MASK_NONE; in disable_all_demotion_targets()
361 struct memory_tier *memtier; in establish_demotion_targets() local
378 memtier = __node_get_memory_tier(node); in establish_demotion_targets()
379 if (!memtier || list_is_last(&memtier->list, &memory_tiers)) in establish_demotion_targets()
384 memtier = list_next_entry(memtier, list); in establish_demotion_targets()
385 tier_nodes = get_memtier_nodemask(memtier); in establish_demotion_targets()
421 list_for_each_entry_reverse(memtier, &memory_tiers, list) { in establish_demotion_targets()
422 tier_nodes = get_memtier_nodemask(memtier); in establish_demotion_targets()
429 top_tier_adistance = memtier->adistance_start + in establish_demotion_targets()
441 list_for_each_entry(memtier, &memory_tiers, list) { in establish_demotion_targets()
447 tier_nodes = get_memtier_nodemask(memtier); in establish_demotion_targets()
449 memtier->lower_tier_mask = lower_tier; in establish_demotion_targets()
478 struct memory_tier *memtier; in set_node_memory_tier() local
492 memtier = find_create_memory_tier(memtype); in set_node_memory_tier()
493 if (!IS_ERR(memtier)) in set_node_memory_tier()
494 rcu_assign_pointer(pgdat->memtier, memtier); in set_node_memory_tier()
495 return memtier; in set_node_memory_tier()
498 static void destroy_memory_tier(struct memory_tier *memtier) in destroy_memory_tier() argument
500 list_del(&memtier->list); in destroy_memory_tier()
501 device_unregister(&memtier->dev); in destroy_memory_tier()
508 struct memory_tier *memtier; in clear_node_memory_tier() local
522 memtier = __node_get_memory_tier(node); in clear_node_memory_tier()
523 if (memtier) { in clear_node_memory_tier()
526 rcu_assign_pointer(pgdat->memtier, NULL); in clear_node_memory_tier()
532 if (list_empty(&memtier->memory_types)) in clear_node_memory_tier()
533 destroy_memory_tier(memtier); in clear_node_memory_tier()
599 struct memory_tier *memtier; in memtier_hotplug_callback() local
618 memtier = set_node_memory_tier(arg->status_change_nid); in memtier_hotplug_callback()
619 if (!IS_ERR(memtier)) in memtier_hotplug_callback()
631 struct memory_tier *memtier; in memory_tier_init() local
657 memtier = set_node_memory_tier(node); in memory_tier_init()
658 if (IS_ERR(memtier)) in memory_tier_init()