Lines Matching +full:active +full:- +full:distance
1 // SPDX-License-Identifier: GPL-2.0
41 cpumask_and(mask, cpumask_of_node(node_dev->dev.id), cpu_online_mask); in cpumap_read()
62 cpumask_and(mask, cpumask_of_node(node_dev->dev.id), cpu_online_mask); in cpulist_read()
72 * struct node_access_nodes - Access class device to hold user visible
117 list_for_each_entry_safe(c, cnext, &node->access_list, list_node) { in node_remove_accesses()
118 list_del(&c->list_node); in node_remove_accesses()
119 device_unregister(&c->dev); in node_remove_accesses()
134 list_for_each_entry(access_node, &node->access_list, list_node) in node_init_node_access()
135 if (access_node->access == access) in node_init_node_access()
142 access_node->access = access; in node_init_node_access()
143 dev = &access_node->dev; in node_init_node_access()
144 dev->parent = &node->dev; in node_init_node_access()
145 dev->release = node_access_release; in node_init_node_access()
146 dev->groups = node_access_node_groups; in node_init_node_access()
154 list_add_tail(&access_node->list_node, &node->access_list); in node_init_node_access()
157 kfree_const(dev->kobj.name); in node_init_node_access()
170 to_access_nodes(dev)->hmem_attrs.name); \
188 * node_set_perf_attrs - Set the performance values for given access class
208 c->hmem_attrs = *hmem_attrs; in node_set_perf_attrs()
210 if (sysfs_add_file_to_group(&c->dev.kobj, access_attrs[i], in node_set_perf_attrs()
220 * struct node_cache_info - Internal tracking for memory node caches
238 to_cache_info(dev)->cache_attrs.name); \
276 dev->parent = &node->dev; in node_init_cache_dev()
277 dev->release = node_cache_release; in node_init_cache_dev()
285 node->cache_dev = dev; in node_init_cache_dev()
292 * node_add_cache() - add cache attribute to a memory node
306 list_for_each_entry(info, &node->cache_attrs, node) { in node_add_cache()
307 if (info->cache_attrs.level == cache_attrs->level) { in node_add_cache()
308 dev_warn(&node->dev, in node_add_cache()
310 cache_attrs->level); in node_add_cache()
315 if (!node->cache_dev) in node_add_cache()
317 if (!node->cache_dev) in node_add_cache()
324 dev = &info->dev; in node_add_cache()
326 dev->parent = node->cache_dev; in node_add_cache()
327 dev->release = node_cacheinfo_release; in node_add_cache()
328 dev->groups = cache_groups; in node_add_cache()
329 if (dev_set_name(dev, "index%d", cache_attrs->level)) in node_add_cache()
332 info->cache_attrs = *cache_attrs; in node_add_cache()
334 dev_warn(&node->dev, "failed to add cache level:%d\n", in node_add_cache()
335 cache_attrs->level); in node_add_cache()
339 list_add_tail(&info->node, &node->cache_attrs); in node_add_cache()
349 if (!node->cache_dev) in node_remove_caches()
352 list_for_each_entry_safe(info, next, &node->cache_attrs, node) { in node_remove_caches()
353 list_del(&info->node); in node_remove_caches()
354 device_unregister(&info->dev); in node_remove_caches()
356 device_unregister(node->cache_dev); in node_remove_caches()
361 INIT_LIST_HEAD(&node_devices[nid]->cache_attrs); in node_init_caches()
368 #define K(x) ((x) << (PAGE_SHIFT - 10))
373 int nid = dev->id; in node_read_meminfo()
390 "Node %d Active: %8lu kB\n" in node_read_meminfo()
392 "Node %d Active(anon): %8lu kB\n" in node_read_meminfo()
394 "Node %d Active(file): %8lu kB\n" in node_read_meminfo()
400 nid, K(i.totalram - i.freeram), in node_read_meminfo()
421 nid, K(i.totalram - i.totalhigh), in node_read_meminfo()
422 nid, K(i.freeram - i.freehigh)); in node_read_meminfo()
497 sum_zone_numa_event_state(dev->id, NUMA_HIT), in node_read_numastat()
498 sum_zone_numa_event_state(dev->id, NUMA_MISS), in node_read_numastat()
499 sum_zone_numa_event_state(dev->id, NUMA_FOREIGN), in node_read_numastat()
500 sum_zone_numa_event_state(dev->id, NUMA_INTERLEAVE_HIT), in node_read_numastat()
501 sum_zone_numa_event_state(dev->id, NUMA_LOCAL), in node_read_numastat()
502 sum_zone_numa_event_state(dev->id, NUMA_OTHER)); in node_read_numastat()
509 int nid = dev->id; in node_read_vmstat()
543 int nid = dev->id; in node_read_distance()
549 * at the most (distance + space or newline). in node_read_distance()
561 static DEVICE_ATTR(distance, 0444, node_read_distance, NULL);
595 * the hugetlb module to [un]register attributes for hot-plugged nodes.
603 node_state(node->dev.id, N_MEMORY)) { in hugetlb_register_node()
639 * The work is using node->node_work, so we should in node_device_release()
642 flush_work(&node->node_work); in node_device_release()
648 * register_node - Setup a sysfs device for a node.
649 * @num - Node number to use when creating the device.
657 node->dev.id = num; in register_node()
658 node->dev.bus = &node_subsys; in register_node()
659 node->dev.release = node_device_release; in register_node()
660 node->dev.groups = node_dev_groups; in register_node()
661 error = device_register(&node->dev); in register_node()
664 put_device(&node->dev); in register_node()
674 * unregister_node - unregister a node device
682 hugetlb_unregister_node(node); /* no-op, if memoryless node */ in unregister_node()
685 device_unregister(&node->dev); in unregister_node()
705 ret = sysfs_create_link(&node_devices[nid]->dev.kobj, in register_cpu_under_node()
706 &obj->kobj, in register_cpu_under_node()
707 kobject_name(&obj->kobj)); in register_cpu_under_node()
711 return sysfs_create_link(&obj->kobj, in register_cpu_under_node()
712 &node_devices[nid]->dev.kobj, in register_cpu_under_node()
713 kobject_name(&node_devices[nid]->dev.kobj)); in register_cpu_under_node()
717 * register_memory_node_under_compute_node - link memory node to its compute
738 return -ENODEV; in register_memory_node_under_compute_node()
745 return -ENOMEM; in register_memory_node_under_compute_node()
747 ret = sysfs_add_link_to_group(&initiator->dev.kobj, "targets", in register_memory_node_under_compute_node()
748 &targ_node->dev.kobj, in register_memory_node_under_compute_node()
749 dev_name(&targ_node->dev)); in register_memory_node_under_compute_node()
753 ret = sysfs_add_link_to_group(&target->dev.kobj, "initiators", in register_memory_node_under_compute_node()
754 &init_node->dev.kobj, in register_memory_node_under_compute_node()
755 dev_name(&init_node->dev)); in register_memory_node_under_compute_node()
761 sysfs_remove_link_from_group(&initiator->dev.kobj, "targets", in register_memory_node_under_compute_node()
762 dev_name(&targ_node->dev)); in register_memory_node_under_compute_node()
777 sysfs_remove_link(&node_devices[nid]->dev.kobj, in unregister_cpu_under_node()
778 kobject_name(&obj->kobj)); in unregister_cpu_under_node()
779 sysfs_remove_link(&obj->kobj, in unregister_cpu_under_node()
780 kobject_name(&node_devices[nid]->dev.kobj)); in unregister_cpu_under_node()
804 mem_blk->nid = nid; in do_register_memory_block_under_node()
806 ret = sysfs_create_link_nowarn(&node_devices[nid]->dev.kobj, in do_register_memory_block_under_node()
807 &mem_blk->dev.kobj, in do_register_memory_block_under_node()
808 kobject_name(&mem_blk->dev.kobj)); in do_register_memory_block_under_node()
809 if (ret && ret != -EEXIST) in do_register_memory_block_under_node()
810 dev_err_ratelimited(&node_devices[nid]->dev, in do_register_memory_block_under_node()
812 kobject_name(&mem_blk->dev.kobj), ret); in do_register_memory_block_under_node()
814 ret = sysfs_create_link_nowarn(&mem_blk->dev.kobj, in do_register_memory_block_under_node()
815 &node_devices[nid]->dev.kobj, in do_register_memory_block_under_node()
816 kobject_name(&node_devices[nid]->dev.kobj)); in do_register_memory_block_under_node()
817 if (ret && ret != -EEXIST) in do_register_memory_block_under_node()
818 dev_err_ratelimited(&mem_blk->dev, in do_register_memory_block_under_node()
820 kobject_name(&node_devices[nid]->dev.kobj), in do_register_memory_block_under_node()
829 unsigned long start_pfn = section_nr_to_pfn(mem_blk->start_section_nr); in register_mem_block_under_node_early()
830 unsigned long end_pfn = start_pfn + memory_block_pfns - 1; in register_mem_block_under_node_early()
843 PAGES_PER_SECTION) - 1; in register_mem_block_under_node_early()
883 if (mem_blk->nid == NUMA_NO_NODE) in unregister_memory_block_under_nodes()
886 sysfs_remove_link(&node_devices[mem_blk->nid]->dev.kobj, in unregister_memory_block_under_nodes()
887 kobject_name(&mem_blk->dev.kobj)); in unregister_memory_block_under_nodes()
888 sysfs_remove_link(&mem_blk->dev.kobj, in unregister_memory_block_under_nodes()
889 kobject_name(&node_devices[mem_blk->nid]->dev.kobj)); in unregister_memory_block_under_nodes()
902 walk_memory_blocks(PFN_PHYS(start_pfn), PFN_PHYS(end_pfn - start_pfn), in link_mem_sections()
930 INIT_WORK(&node_devices[nid]->node_work, node_hugetlb_work); in init_node_hugetlb_work()
937 int nid = mnb->status_change_nid; in node_memory_callback()
947 schedule_work(&node_devices[nid]->node_work); in node_memory_callback()
982 return -ENOMEM; in __register_one_node()
992 INIT_LIST_HEAD(&node_devices[nid]->access_list); in __register_one_node()
1024 nodemask_pr_args(&node_states[na->state])); in show_node_state()
1071 BUILD_BUG_ON(ARRAY_SIZE(node_state_attrs)-1 != NR_NODE_STATES); in register_node_type()