• Home
  • Raw
  • Download

Lines Matching full:node

3  * Basic Node interface support
12 #include <linux/node.h>
25 .name = "node",
26 .dev_name = "node",
34 struct node *node_dev = to_node(dev); in node_read_cpumap()
71 * @list_node: List element in the node's access list
109 static void node_remove_accesses(struct node *node) in node_remove_accesses() argument
113 list_for_each_entry_safe(c, cnext, &node->access_list, list_node) { in node_remove_accesses()
124 static struct node_access_nodes *node_init_node_access(struct node *node, in node_init_node_access() argument
130 list_for_each_entry(access_node, &node->access_list, list_node) in node_init_node_access()
140 dev->parent = &node->dev; in node_init_node_access()
150 list_add_tail(&access_node->list_node, &node->access_list); in node_init_node_access()
185 * @nid: Node identifier to be set
193 struct node *node; in node_set_perf_attrs() local
199 node = node_devices[nid]; in node_set_perf_attrs()
200 c = node_init_node_access(node, access); in node_set_perf_attrs()
208 pr_info("failed to add performance attribute to node %d\n", in node_set_perf_attrs()
216 * struct node_cache_info - Internal tracking for memory node caches
218 * @node: List element for tracking in the node
223 struct list_head node; member
263 static void node_init_cache_dev(struct node *node) in node_init_cache_dev() argument
272 dev->parent = &node->dev; in node_init_cache_dev()
281 node->cache_dev = dev; in node_init_cache_dev()
288 * node_add_cache() - add cache attribute to a memory node
289 * @nid: Node identifier that has new cache attributes
296 struct node *node; in node_add_cache() local
301 node = node_devices[nid]; in node_add_cache()
302 list_for_each_entry(info, &node->cache_attrs, node) { in node_add_cache()
304 dev_warn(&node->dev, in node_add_cache()
311 if (!node->cache_dev) in node_add_cache()
312 node_init_cache_dev(node); in node_add_cache()
313 if (!node->cache_dev) in node_add_cache()
322 dev->parent = node->cache_dev; in node_add_cache()
330 dev_warn(&node->dev, "failed to add cache level:%d\n", in node_add_cache()
335 list_add_tail(&info->node, &node->cache_attrs); in node_add_cache()
341 static void node_remove_caches(struct node *node) in node_remove_caches() argument
345 if (!node->cache_dev) in node_remove_caches()
348 list_for_each_entry_safe(info, next, &node->cache_attrs, node) { in node_remove_caches()
349 list_del(&info->node); in node_remove_caches()
352 device_unregister(node->cache_dev); in node_remove_caches()
361 static void node_remove_caches(struct node *node) { } in node_remove_caches() argument
378 "Node %d MemTotal: %8lu kB\n" in node_read_meminfo()
379 "Node %d MemFree: %8lu kB\n" in node_read_meminfo()
380 "Node %d MemUsed: %8lu kB\n" in node_read_meminfo()
381 "Node %d Active: %8lu kB\n" in node_read_meminfo()
382 "Node %d Inactive: %8lu kB\n" in node_read_meminfo()
383 "Node %d Active(anon): %8lu kB\n" in node_read_meminfo()
384 "Node %d Inactive(anon): %8lu kB\n" in node_read_meminfo()
385 "Node %d Active(file): %8lu kB\n" in node_read_meminfo()
386 "Node %d Inactive(file): %8lu kB\n" in node_read_meminfo()
387 "Node %d Unevictable: %8lu kB\n" in node_read_meminfo()
388 "Node %d Mlocked: %8lu kB\n", in node_read_meminfo()
405 "Node %d HighTotal: %8lu kB\n" in node_read_meminfo()
406 "Node %d HighFree: %8lu kB\n" in node_read_meminfo()
407 "Node %d LowTotal: %8lu kB\n" in node_read_meminfo()
408 "Node %d LowFree: %8lu kB\n", in node_read_meminfo()
415 "Node %d Dirty: %8lu kB\n" in node_read_meminfo()
416 "Node %d Writeback: %8lu kB\n" in node_read_meminfo()
417 "Node %d FilePages: %8lu kB\n" in node_read_meminfo()
418 "Node %d Mapped: %8lu kB\n" in node_read_meminfo()
419 "Node %d AnonPages: %8lu kB\n" in node_read_meminfo()
420 "Node %d Shmem: %8lu kB\n" in node_read_meminfo()
421 "Node %d KernelStack: %8lu kB\n" in node_read_meminfo()
423 "Node %d ShadowCallStack:%8lu kB\n" in node_read_meminfo()
425 "Node %d PageTables: %8lu kB\n" in node_read_meminfo()
426 "Node %d NFS_Unstable: %8lu kB\n" in node_read_meminfo()
427 "Node %d Bounce: %8lu kB\n" in node_read_meminfo()
428 "Node %d WritebackTmp: %8lu kB\n" in node_read_meminfo()
429 "Node %d KReclaimable: %8lu kB\n" in node_read_meminfo()
430 "Node %d Slab: %8lu kB\n" in node_read_meminfo()
431 "Node %d SReclaimable: %8lu kB\n" in node_read_meminfo()
432 "Node %d SUnreclaim: %8lu kB\n" in node_read_meminfo()
434 "Node %d AnonHugePages: %8lu kB\n" in node_read_meminfo()
435 "Node %d ShmemHugePages: %8lu kB\n" in node_read_meminfo()
436 "Node %d ShmemPmdMapped: %8lu kB\n" in node_read_meminfo()
437 "Node %d FileHugePages: %8lu kB\n" in node_read_meminfo()
438 "Node %d FilePmdMapped: %8lu kB\n" in node_read_meminfo()
537 * buf is currently PAGE_SIZE in length and each node needs 4 chars in node_read_distance()
565 * hugetlbfs per node attributes registration interface:
567 * it will register its per node attributes for all online nodes with
569 * register its attribute registration functions with this node driver.
570 * Once these hooks have been initialized, the node driver will call into
576 static inline bool hugetlb_register_node(struct node *node) in hugetlb_register_node() argument
579 node_state(node->dev.id, N_MEMORY)) { in hugetlb_register_node()
580 __hugetlb_register_node(node); in hugetlb_register_node()
586 static inline void hugetlb_unregister_node(struct node *node) in hugetlb_unregister_node() argument
589 __hugetlb_unregister_node(node); in hugetlb_unregister_node()
599 static inline void hugetlb_register_node(struct node *node) {} in hugetlb_register_node() argument
601 static inline void hugetlb_unregister_node(struct node *node) {} in hugetlb_unregister_node() argument
606 struct node *node = to_node(dev); in node_device_release() local
611 * onlined/offlined on this node. When we come here, in node_device_release()
612 * all the memory on this node has been offlined, in node_device_release()
615 * The work is using node->node_work, so we should in node_device_release()
618 flush_work(&node->node_work); in node_device_release()
620 kfree(node); in node_device_release()
624 * register_node - Setup a sysfs device for a node.
625 * @num - Node number to use when creating the device.
627 * Initialize and register the node device.
629 static int register_node(struct node *node, int num) in register_node() argument
633 node->dev.id = num; in register_node()
634 node->dev.bus = &node_subsys; in register_node()
635 node->dev.release = node_device_release; in register_node()
636 node->dev.groups = node_dev_groups; in register_node()
637 error = device_register(&node->dev); in register_node()
640 put_device(&node->dev); in register_node()
642 hugetlb_register_node(node); in register_node()
644 compaction_register_node(node); in register_node()
650 * unregister_node - unregister a node device
651 * @node: node going away
653 * Unregisters a node device @node. All the devices on the node must be
656 void unregister_node(struct node *node) in unregister_node() argument
658 hugetlb_unregister_node(node); /* no-op, if memoryless node */ in unregister_node()
659 node_remove_accesses(node); in unregister_node()
660 node_remove_caches(node); in unregister_node()
661 device_unregister(&node->dev); in unregister_node()
664 struct node *node_devices[MAX_NUMNODES];
667 * register cpu under node
693 * register_memory_node_under_compute_node - link memory node to its compute
694 * node for a given access class.
695 * @mem_nid: Memory node number
696 * @cpu_nid: Cpu node number
701 * This function will export node relationships linking which memory
709 struct node *init_node, *targ_node; in register_memory_node_under_compute_node()
780 * the last processed node. in do_register_memory_block_under_node()
802 /* register memory section under specified node if it spans that node */
827 * case because node's ranges can be interleaved. in register_mem_block_under_node_early()
838 /* mem section does not span the specified node */ in register_mem_block_under_node_early()
844 * node.
856 * Unregister a memory block device under the node it spans. Memory blocks
887 * Handle per node hstate attribute [un]registration on transistions
892 struct node *node = container_of(work, struct node, node_work); in node_hugetlb_work() local
895 * We only get here when a node transitions to/from memoryless state. in node_hugetlb_work()
897 * node has memory now. hugetlb_register_node() already check this in node_hugetlb_work()
899 * node has transitioned to memoryless, try to unregister the in node_hugetlb_work()
902 if (!hugetlb_register_node(node)) in node_hugetlb_work()
903 hugetlb_unregister_node(node); in node_hugetlb_work()
921 * offload per node hstate [un]registration to a work thread in node_memory_callback()
958 node_devices[nid] = kzalloc(sizeof(struct node), GFP_KERNEL); in __register_one_node()
964 /* link cpu under this node */ in __register_one_node()
988 * node states attributes
1061 * Note: we're not going to unregister the node class if we fail in register_node_type()
1062 * to register the node state class attribute files. in register_node_type()