Lines Matching full:target
103 struct memory_target *target; in find_mem_target() local
105 list_for_each_entry(target, &targets, node) in find_mem_target()
106 if (target->memory_pxm == mem_pxm) in find_mem_target()
107 return target; in find_mem_target()
113 struct memory_target *target; in acpi_find_genport_target() local
117 list_for_each_entry(target, &targets, node) { in acpi_find_genport_target()
118 uid_ptr = target->gen_port_device_handle + 8; in acpi_find_genport_target()
121 return target; in acpi_find_genport_target()
140 struct memory_target *target; in acpi_get_genport_coordinates() local
143 target = acpi_find_genport_target(uid); in acpi_get_genport_coordinates()
144 if (!target) in acpi_get_genport_coordinates()
148 target->coord[NODE_ACCESS_CLASS_GENPORT_SINK_LOCAL]; in acpi_get_genport_coordinates()
150 target->coord[NODE_ACCESS_CLASS_GENPORT_SINK_CPU]; in acpi_get_genport_coordinates()
178 struct memory_target *target; in alloc_target() local
180 target = find_mem_target(mem_pxm); in alloc_target()
181 if (!target) { in alloc_target()
182 target = kzalloc(sizeof(*target), GFP_KERNEL); in alloc_target()
183 if (!target) in alloc_target()
185 target->memory_pxm = mem_pxm; in alloc_target()
186 target->processor_pxm = PXM_INVAL; in alloc_target()
187 target->memregions = (struct resource) { in alloc_target()
193 list_add_tail(&target->node, &targets); in alloc_target()
194 INIT_LIST_HEAD(&target->caches); in alloc_target()
197 return target; in alloc_target()
204 struct memory_target *target; in alloc_memory_target() local
206 target = alloc_target(mem_pxm); in alloc_memory_target()
207 if (!target) in alloc_memory_target()
212 * in the per-target memregions resource tree. in alloc_memory_target()
214 if (!__request_region(&target->memregions, start, len, "memory target", in alloc_memory_target()
222 struct memory_target *target; in alloc_genport_target() local
224 target = alloc_target(mem_pxm); in alloc_genport_target()
225 if (!target) in alloc_genport_target()
228 memcpy(target->gen_port_device_handle, handle, in alloc_genport_target()
303 static void hmat_update_target_access(struct memory_target *target, in hmat_update_target_access() argument
308 target->coord[access].read_latency = value; in hmat_update_target_access()
309 target->coord[access].write_latency = value; in hmat_update_target_access()
312 target->coord[access].read_latency = value; in hmat_update_target_access()
315 target->coord[access].write_latency = value; in hmat_update_target_access()
318 target->coord[access].read_bandwidth = value; in hmat_update_target_access()
319 target->coord[access].write_bandwidth = value; in hmat_update_target_access()
322 target->coord[access].read_bandwidth = value; in hmat_update_target_access()
325 target->coord[access].write_bandwidth = value; in hmat_update_target_access()
335 struct memory_target *target; in hmat_update_target_coordinates() local
343 target = find_mem_target(pxm); in hmat_update_target_coordinates()
344 if (!target) in hmat_update_target_coordinates()
347 hmat_update_target_access(target, ACPI_HMAT_READ_LATENCY, in hmat_update_target_coordinates()
349 hmat_update_target_access(target, ACPI_HMAT_WRITE_LATENCY, in hmat_update_target_coordinates()
351 hmat_update_target_access(target, ACPI_HMAT_READ_BANDWIDTH, in hmat_update_target_coordinates()
353 hmat_update_target_access(target, ACPI_HMAT_WRITE_BANDWIDTH, in hmat_update_target_coordinates()
355 target->ext_updated = true; in hmat_update_target_coordinates()
403 struct memory_target *target = find_mem_target(tgt_pxm); in hmat_update_target() local
408 if (target && target->processor_pxm == init_pxm) { in hmat_update_target()
409 hmat_update_target_access(target, type, value, in hmat_update_target()
413 hmat_update_target_access(target, type, value, in hmat_update_target()
445 pr_debug("Locality: Flags:%02x Type:%s Initiator Domains:%u Target Domains:%u Base:%lld\n", in hmat_parse_locality()
458 pr_debug(" Initiator-Target[%u-%u]:%u%s\n", in hmat_parse_locality()
477 struct memory_target *target; in hmat_parse_cache() local
492 target = find_mem_target(cache->memory_PD); in hmat_parse_cache()
493 if (!target) in hmat_parse_cache()
531 list_add_tail(&tcache->node, &target->caches); in hmat_parse_cache()
540 struct memory_target *target = NULL; in hmat_parse_proximity_domain() local
558 target = find_mem_target(p->memory_PD); in hmat_parse_proximity_domain()
559 if (!target) { in hmat_parse_proximity_domain()
564 if (target && p->flags & ACPI_HMAT_PROCESSOR_PD_VALID) { in hmat_parse_proximity_domain()
571 target->processor_pxm = p->processor_PD; in hmat_parse_proximity_domain()
631 static u32 hmat_initiator_perf(struct memory_target *target, in hmat_initiator_perf() argument
656 if (targs[i] == target->memory_pxm) { in hmat_initiator_perf()
723 static void hmat_update_target_attrs(struct memory_target *target, in hmat_update_target_attrs() argument
733 if (target->ext_updated) in hmat_update_target_attrs()
739 !(*(u16 *)target->gen_port_device_handle)) in hmat_update_target_attrs()
748 if (target->processor_pxm != PXM_INVAL) { in hmat_update_target_attrs()
749 cpu_nid = pxm_to_node(target->processor_pxm); in hmat_update_target_attrs()
752 set_bit(target->processor_pxm, p_nodes); in hmat_update_target_attrs()
788 value = hmat_initiator_perf(target, initiator, loc->hmat_loc); in hmat_update_target_attrs()
795 hmat_update_target_access(target, loc->hmat_loc->data_type, best, access); in hmat_update_target_attrs()
799 static void __hmat_register_target_initiators(struct memory_target *target, in __hmat_register_target_initiators() argument
806 mem_nid = pxm_to_node(target->memory_pxm); in __hmat_register_target_initiators()
807 hmat_update_target_attrs(target, p_nodes, access); in __hmat_register_target_initiators()
814 static void hmat_update_generic_target(struct memory_target *target) in hmat_update_generic_target() argument
818 hmat_update_target_attrs(target, p_nodes, in hmat_update_generic_target()
820 hmat_update_target_attrs(target, p_nodes, in hmat_update_generic_target()
824 static void hmat_register_target_initiators(struct memory_target *target) in hmat_register_target_initiators() argument
828 __hmat_register_target_initiators(target, p_nodes, in hmat_register_target_initiators()
830 __hmat_register_target_initiators(target, p_nodes, in hmat_register_target_initiators()
834 static void hmat_register_target_cache(struct memory_target *target) in hmat_register_target_cache() argument
836 unsigned mem_nid = pxm_to_node(target->memory_pxm); in hmat_register_target_cache()
839 list_for_each_entry(tcache, &target->caches, node) in hmat_register_target_cache()
843 static void hmat_register_target_perf(struct memory_target *target, int access) in hmat_register_target_perf() argument
845 unsigned mem_nid = pxm_to_node(target->memory_pxm); in hmat_register_target_perf()
846 node_set_perf_attrs(mem_nid, &target->coord[access], access); in hmat_register_target_perf()
849 static void hmat_register_target_devices(struct memory_target *target) in hmat_register_target_devices() argument
860 for (res = target->memregions.child; res; res = res->sibling) { in hmat_register_target_devices()
861 int target_nid = pxm_to_node(target->memory_pxm); in hmat_register_target_devices()
867 static void hmat_register_target(struct memory_target *target) in hmat_register_target() argument
869 int nid = pxm_to_node(target->memory_pxm); in hmat_register_target()
875 hmat_register_target_devices(target); in hmat_register_target()
882 if (*(u16 *)target->gen_port_device_handle) { in hmat_register_target()
883 hmat_update_generic_target(target); in hmat_register_target()
884 target->registered = true; in hmat_register_target()
899 if (!target->registered) { in hmat_register_target()
900 hmat_register_target_initiators(target); in hmat_register_target()
901 hmat_register_target_cache(target); in hmat_register_target()
902 hmat_register_target_perf(target, ACCESS_COORDINATE_LOCAL); in hmat_register_target()
903 hmat_register_target_perf(target, ACCESS_COORDINATE_CPU); in hmat_register_target()
904 target->registered = true; in hmat_register_target()
911 struct memory_target *target; in hmat_register_targets() local
913 list_for_each_entry(target, &targets, node) in hmat_register_targets()
914 hmat_register_target(target); in hmat_register_targets()
920 struct memory_target *target; in hmat_callback() local
928 target = find_mem_target(pxm); in hmat_callback()
929 if (!target) in hmat_callback()
932 hmat_register_target(target); in hmat_callback()
940 struct memory_target *target; in hmat_set_default_dram_perf() local
945 target = find_mem_target(pxm); in hmat_set_default_dram_perf()
946 if (!target) in hmat_set_default_dram_perf()
948 attrs = &target->coord[ACCESS_COORDINATE_CPU]; in hmat_set_default_dram_perf()
961 struct memory_target *target; in hmat_calculate_adistance() local
967 target = find_mem_target(pxm); in hmat_calculate_adistance()
968 if (!target) in hmat_calculate_adistance()
972 hmat_update_target_attrs(target, p_nodes, ACCESS_COORDINATE_CPU); in hmat_calculate_adistance()
975 perf = &target->coord[ACCESS_COORDINATE_CPU]; in hmat_calculate_adistance()
990 struct memory_target *target, *tnext; in hmat_free_structures() local
995 list_for_each_entry_safe(target, tnext, &targets, node) { in hmat_free_structures()
998 list_for_each_entry_safe(tcache, cnext, &target->caches, node) { in hmat_free_structures()
1003 list_del(&target->node); in hmat_free_structures()
1004 res = target->memregions.child; in hmat_free_structures()
1007 __release_region(&target->memregions, res->start, in hmat_free_structures()
1011 kfree(target); in hmat_free_structures()