Lines Matching full:parent
199 * latency and shift its old resources to its parent and its parent's resources
200 * to its parent, etc. until root lgroup reached
216 * Save current resources and latency to insert in parent and in lgrp_rsets_replace()
261 lgrp_t *parent; in lgrp_ancestor_delete() local
280 parent = child->lgrp_parent; in lgrp_ancestor_delete()
282 while (parent != NULL) { in lgrp_ancestor_delete()
285 prom_printf("lgrp_ancestor_delete: parent %d," in lgrp_ancestor_delete()
287 parent->lgrp_id, lgrpid); in lgrp_ancestor_delete()
290 klgrpset_del(parent->lgrp_leaves, lgrpid); in lgrp_ancestor_delete()
291 klgrpset_del(parent->lgrp_children, lgrpid); in lgrp_ancestor_delete()
292 parent->lgrp_childcnt--; in lgrp_ancestor_delete()
294 klgrpset_add(*changed, parent->lgrp_id); in lgrp_ancestor_delete()
296 if (parent->lgrp_childcnt != 0) in lgrp_ancestor_delete()
299 current = parent; in lgrp_ancestor_delete()
300 parent = current->lgrp_parent; in lgrp_ancestor_delete()
332 lgrp_t *parent; in lgrp_consolidate() local
404 parent = child->lgrp_parent; in lgrp_consolidate()
405 while (parent != NULL) { in lgrp_consolidate()
406 klgrpset_or(parent->lgrp_leaves, child->lgrp_leaves); in lgrp_consolidate()
408 klgrpset_add(*changed, parent->lgrp_id); in lgrp_consolidate()
410 child = parent; in lgrp_consolidate()
411 parent = parent->lgrp_parent; in lgrp_consolidate()
543 * Create new parent lgroup with given latency and resources for
601 * Proprogate resources of new leaf into parent lgroup of given child
608 lgrp_t *parent; in lgrp_proprogate() local
617 parent = child->lgrp_parent; in lgrp_proprogate()
618 klgrpset_or(parent->lgrp_leaves, child->lgrp_leaves); in lgrp_proprogate()
620 klgrpset_add(*changed, parent->lgrp_id); in lgrp_proprogate()
624 * Don't proprogate new leaf resources to parent if it already in lgrp_proprogate()
627 if (lgrp_rsets_member_all(parent->lgrp_set, newleaf->lgrp_id)) { in lgrp_proprogate()
638 * Add leaf resources to parent lgroup in lgrp_proprogate()
640 lgrp_rsets_add(newleaf->lgrp_set, parent->lgrp_set); in lgrp_proprogate()
645 "latency %d, child %d(0x%p), parent %d(0x%p)\n", in lgrp_proprogate()
647 (void *)child, parent->lgrp_id, (void *)parent); in lgrp_proprogate()
648 prom_printf("lgrp_proprogate: parent's leaves becomes 0x%llx\n", in lgrp_proprogate()
649 (u_longlong_t)parent->lgrp_leaves); in lgrp_proprogate()
652 prom_printf("lgrp_proprogate: adding to parent %d (0x%p)\n", in lgrp_proprogate()
653 parent->lgrp_id, (void *)parent); in lgrp_proprogate()
654 lgrp_rsets_print("parent resources become:", parent->lgrp_set); in lgrp_proprogate()
668 * Split parent lgroup of given child if child's leaf decendant (oldleaf) has
680 lgrp_t *parent; in lgrp_split() local
690 * Parent must have more than one child to have a child split from it in lgrp_split()
693 parent = child->lgrp_parent; in lgrp_split()
694 if (parent == NULL || parent->lgrp_childcnt < 2 || parent == lgrp_root) in lgrp_split()
725 * don't have parent as common ancestor in lgrp_split()
728 !klgrpset_ismember(parent->lgrp_leaves, lgrp->lgrp_id)) in lgrp_split()
747 * Different latencies, so remove child from its parent and in lgrp_split()
748 * make new parent for old leaf with same latency and same in lgrp_split()
751 parent->lgrp_childcnt--; in lgrp_split()
752 klgrpset_del(parent->lgrp_children, child->lgrp_id); in lgrp_split()
753 klgrpset_del(parent->lgrp_leaves, oldleaf->lgrp_id); in lgrp_split()
754 grandparent = parent->lgrp_parent; in lgrp_split()
765 count += lgrp_new_parent(child, parent->lgrp_latency, in lgrp_split()
766 parent->lgrp_set, &changes); in lgrp_split()
770 klgrpset_add(*changed, parent->lgrp_id); in lgrp_split()
775 parent = child->lgrp_parent; in lgrp_split()
778 prom_printf("lgrp_split: new parent %d (0x%p) for" in lgrp_split()
780 parent->lgrp_id, (void *)parent, in lgrp_split()
782 lgrp_rsets_print("new parent resources:", in lgrp_split()
783 parent->lgrp_set); in lgrp_split()
842 lgrp_t *parent; in lgrp_lineage_add() local
889 parent = child->lgrp_parent; in lgrp_lineage_add()
897 * lgroup since parent lgroups contain all the resources of their in lgrp_lineage_add()
905 prom_printf("lgrp_lineage_add: child %d (0x%p), parent" in lgrp_lineage_add()
908 parent->lgrp_id, (void *)parent); in lgrp_lineage_add()
912 * See whether parent lgroup needs to be split in lgrp_lineage_add()
914 * May need to split parent lgroup when it is ancestor to more in lgrp_lineage_add()
916 * leaf within the parent lgroup's latency in lgrp_lineage_add()
918 * it from parent in lgrp_lineage_add()
924 prom_printf("lgrp_lineage_add: setting parent" in lgrp_lineage_add()
926 child->lgrp_id, parent->lgrp_id, in lgrp_lineage_add()
929 parent = child->lgrp_parent; in lgrp_lineage_add()
946 parent = child->lgrp_parent; in lgrp_lineage_add()
947 klgrpset_add(collapse, parent->lgrp_id); in lgrp_lineage_add()
948 child = parent; in lgrp_lineage_add()
949 parent = parent->lgrp_parent; in lgrp_lineage_add()
956 " parent latency 0x%x\n", in lgrp_lineage_add()
957 latency, parent->lgrp_latency); in lgrp_lineage_add()
962 * one of the parent lgroups somewhere along the line in lgrp_lineage_add()
964 if (latency < parent->lgrp_latency) { in lgrp_lineage_add()
969 * child and parent in lgrp_lineage_add()
974 "latency < parent latency\n"); in lgrp_lineage_add()
979 * between child and parent in lgrp_lineage_add()
994 if (parent == lgrp_root) { in lgrp_lineage_add()
997 * to parent, if it already contains in lgrp_lineage_add()
1001 parent->lgrp_set, newleaf->lgrp_id)) in lgrp_lineage_add()
1012 "replaced parent lgrp %d at 0x%p" in lgrp_lineage_add()
1014 parent->lgrp_id, (void *)parent, in lgrp_lineage_add()
1016 lgrp_rsets_print("old parent" in lgrp_lineage_add()
1017 " resources:", parent->lgrp_set); in lgrp_lineage_add()
1018 lgrp_rsets_print("new parent " in lgrp_lineage_add()
1023 * Replace contents of parent with new in lgrp_lineage_add()
1025 * closer and shift its parent's resources to in lgrp_lineage_add()
1026 * its parent, etc. until root lgroup reached in lgrp_lineage_add()
1028 lgrp_rsets_replace(rset, latency, parent, 1); in lgrp_lineage_add()
1030 klgrpset_or(*changed, parent->lgrp_id); in lgrp_lineage_add()
1055 "parent lgrp %d at 0x%p for " in lgrp_lineage_add()
1058 lgrp_rsets_print("new parent " in lgrp_lineage_add()
1065 } else if (latency == parent->lgrp_latency) { in lgrp_lineage_add()
1067 * New leaf resources should go into parent in lgrp_lineage_add()
1072 "parent latency\n"); in lgrp_lineage_add()
1078 if (lgrp_rsets_member_all(parent->lgrp_set, in lgrp_lineage_add()
1084 parent = child->lgrp_parent; in lgrp_lineage_add()
1085 klgrpset_add(collapse, parent->lgrp_id); in lgrp_lineage_add()
1092 child = parent; in lgrp_lineage_add()
1093 parent = parent->lgrp_parent; in lgrp_lineage_add()
1094 } while (parent != NULL); in lgrp_lineage_add()
1147 * Initialize parent of leaf lgroup to root in lgrp_leaf_add()
1374 lgrp_t *parent; in lgrp_topo_flatten() local
1379 parent = lgrp->lgrp_parent; in lgrp_topo_flatten()
1382 klgrpset_add(*changed, parent->lgrp_id); in lgrp_topo_flatten()
1385 if (parent) { in lgrp_topo_flatten()
1386 klgrpset_del(parent->lgrp_children, in lgrp_topo_flatten()
1388 parent->lgrp_childcnt--; in lgrp_topo_flatten()
1488 * lgroup as its parent, and update the memory nodes of all lgroups in lgrp_topo_update()
1540 lgrp_t *parent; in lgrp_print() local
1553 parent = lgrp->lgrp_parent; in lgrp_print()
1554 prom_printf("\tparent 0x%p", (void *)parent); in lgrp_print()
1555 if (parent) in lgrp_print()
1556 prom_printf("[%d]\n", parent->lgrp_id); in lgrp_print()