/* AddressSanitizer sometimes crashes due to data dereference below, due to * this being mmap()'ed memory. Disable instrumentation with * no_sanitize_address attribute
*/
__attribute__((no_sanitize_address)) staticvoid on_sample(void *ctx, int cpu, void *data, __u32 size)
{ int cpu_data = *(int *)data, duration = 0;
cpu_set_t *cpu_seen = ctx;
if (cpu_data != cpu)
CHECK(cpu_data != cpu, "check_cpu_data", "cpu_data %d != cpu %d\n", cpu_data, cpu);
CPU_SET(cpu, cpu_seen);
}
int trigger_on_cpu(int cpu)
{
cpu_set_t cpu_set; int err;
/* trigger kprobe on every CPU */
CPU_ZERO(&cpu_seen); for (i = 0; i < nr_cpus; i++) { if (i >= on_len || !online[i]) {
printf("skipping offline CPU #%d\n", i); continue;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.