Lines Matching full:metadata

83 	u64				**metadata;  member
299 if (!spe->metadata) in arm_spe__get_metadata_by_cpu()
303 if (spe->metadata[i][ARM_SPE_CPU] == cpu) in arm_spe__get_metadata_by_cpu()
304 return spe->metadata[i]; in arm_spe__get_metadata_by_cpu()
625 u64 *metadata = NULL; in arm_spe__synth_ds() local
629 /* Metadata version 1 assumes all CPUs are the same (old behavior) */ in arm_spe__synth_ds()
633 pr_warning_once("Old SPE metadata, re-record to improve decode accuracy\n"); in arm_spe__synth_ds()
646 /* In homogeneous system, simply use CPU0's metadata */ in arm_spe__synth_ds()
647 if (spe->metadata) in arm_spe__synth_ds()
648 metadata = spe->metadata[0]; in arm_spe__synth_ds()
650 metadata = arm_spe__get_metadata_by_cpu(spe, speq->cpu); in arm_spe__synth_ds()
653 if (!metadata) in arm_spe__synth_ds()
656 midr = metadata[ARM_SPE_CPU_MIDR]; in arm_spe__synth_ds()
1175 u64 *metadata; in arm_spe__alloc_per_cpu_metadata() local
1177 metadata = zalloc(per_cpu_size); in arm_spe__alloc_per_cpu_metadata()
1178 if (!metadata) in arm_spe__alloc_per_cpu_metadata()
1181 memcpy(metadata, buf, per_cpu_size); in arm_spe__alloc_per_cpu_metadata()
1182 return metadata; in arm_spe__alloc_per_cpu_metadata()
1185 static void arm_spe__free_metadata(u64 **metadata, int nr_cpu) in arm_spe__free_metadata() argument
1190 zfree(&metadata[i]); in arm_spe__free_metadata()
1191 free(metadata); in arm_spe__free_metadata()
1199 u64 **metadata = NULL; in arm_spe__alloc_metadata() local
1205 /* Metadata version 1 */ in arm_spe__alloc_metadata()
1209 /* No per CPU metadata */ in arm_spe__alloc_metadata()
1217 metadata = calloc(*nr_cpu, sizeof(*metadata)); in arm_spe__alloc_metadata()
1218 if (!metadata) in arm_spe__alloc_metadata()
1221 /* Locate the start address of per CPU metadata */ in arm_spe__alloc_metadata()
1226 metadata[i] = arm_spe__alloc_per_cpu_metadata(ptr, per_cpu_sz); in arm_spe__alloc_metadata()
1227 if (!metadata[i]) in arm_spe__alloc_metadata()
1233 return metadata; in arm_spe__alloc_metadata()
1236 arm_spe__free_metadata(metadata, *nr_cpu); in arm_spe__alloc_metadata()
1274 arm_spe__free_metadata(spe->metadata, spe->metadata_nr_cpu); in arm_spe_free()
1527 static bool arm_spe__is_homogeneous(u64 **metadata, int nr_cpu) in arm_spe__is_homogeneous() argument
1536 if (!metadata[i]) in arm_spe__is_homogeneous()
1540 midr = metadata[i][ARM_SPE_CPU_MIDR]; in arm_spe__is_homogeneous()
1544 if (midr != metadata[i][ARM_SPE_CPU_MIDR]) in arm_spe__is_homogeneous()
1558 u64 **metadata = NULL; in arm_spe_process_auxtrace_info() local
1566 metadata = arm_spe__alloc_metadata(auxtrace_info, &metadata_ver, in arm_spe_process_auxtrace_info()
1568 if (!metadata && metadata_ver != 1) { in arm_spe_process_auxtrace_info()
1569 pr_err("Failed to parse Arm SPE metadata.\n"); in arm_spe_process_auxtrace_info()
1590 spe->metadata = metadata; in arm_spe_process_auxtrace_info()
1593 spe->is_homogeneous = arm_spe__is_homogeneous(metadata, nr_cpu); in arm_spe_process_auxtrace_info()
1655 arm_spe__free_metadata(metadata, nr_cpu); in arm_spe_process_auxtrace_info()