CONTEXT_VPPID = 9,
CONTEXT_PTHREAD_ID = 10,
CONTEXT_HOSTNAME = 11,
+ CONTEXT_IP = 12,
};
/*
{ "ppid", CONTEXT_PPID },
{ "vppid", CONTEXT_VPPID },
{ "hostname", CONTEXT_HOSTNAME },
+ { "ip", CONTEXT_IP },
/* Perf options */
PERF_HW(cpu-cycles, CPU_CYCLES),
PERF_HW(cycles, CPU_CYCLES),
fprintf(ofp, " TYPE can be one of the strings below:\n");
print_ctx_type(ofp);
fprintf(ofp, "\n");
+ fprintf(ofp, "Note that the vpid, vppid and vtid context types represent the virtual process id,\n"
+ "virtual parent process id and virtual thread id as seen from the current execution context\n"
+ "as opposed to the pid, ppid and tid which are kernel internal data structures.\n\n");
fprintf(ofp, "Example:\n");
fprintf(ofp, "This command will add the context information 'prio' and two perf\n"
"counters (hardware branch misses and cache misses), to all channels\n"
}
type->opt = &ctx_opts[index];
- if (type->opt->ctx_type == -1) {
+ if (type->opt->symbol == NULL) {
ERR("Unknown context type %s", opt_type);
free(type);
ret = CMD_ERROR;
goto end;
} else {
- cds_list_add(&type->list, &ctx_type_list.head);
+ cds_list_add_tail(&type->list, &ctx_type_list.head);
}
break;
case OPT_USERSPACE: