diff options
Diffstat (limited to 'tools/lib/traceevent/plugin_kvm.c')
| -rw-r--r-- | tools/lib/traceevent/plugin_kvm.c | 154 |
1 files changed, 77 insertions, 77 deletions
diff --git a/tools/lib/traceevent/plugin_kvm.c b/tools/lib/traceevent/plugin_kvm.c index 18536f756577..1d0d15906225 100644 --- a/tools/lib/traceevent/plugin_kvm.c +++ b/tools/lib/traceevent/plugin_kvm.c | |||
| @@ -247,17 +247,17 @@ static const char *find_exit_reason(unsigned isa, int val) | |||
| 247 | return strings[i].str; | 247 | return strings[i].str; |
| 248 | } | 248 | } |
| 249 | 249 | ||
| 250 | static int print_exit_reason(struct trace_seq *s, struct pevent_record *record, | 250 | static int print_exit_reason(struct trace_seq *s, struct tep_record *record, |
| 251 | struct event_format *event, const char *field) | 251 | struct event_format *event, const char *field) |
| 252 | { | 252 | { |
| 253 | unsigned long long isa; | 253 | unsigned long long isa; |
| 254 | unsigned long long val; | 254 | unsigned long long val; |
| 255 | const char *reason; | 255 | const char *reason; |
| 256 | 256 | ||
| 257 | if (pevent_get_field_val(s, event, field, record, &val, 1) < 0) | 257 | if (tep_get_field_val(s, event, field, record, &val, 1) < 0) |
| 258 | return -1; | 258 | return -1; |
| 259 | 259 | ||
| 260 | if (pevent_get_field_val(s, event, "isa", record, &isa, 0) < 0) | 260 | if (tep_get_field_val(s, event, "isa", record, &isa, 0) < 0) |
| 261 | isa = 1; | 261 | isa = 1; |
| 262 | 262 | ||
| 263 | reason = find_exit_reason(isa, val); | 263 | reason = find_exit_reason(isa, val); |
| @@ -268,7 +268,7 @@ static int print_exit_reason(struct trace_seq *s, struct pevent_record *record, | |||
| 268 | return 0; | 268 | return 0; |
| 269 | } | 269 | } |
| 270 | 270 | ||
| 271 | static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record, | 271 | static int kvm_exit_handler(struct trace_seq *s, struct tep_record *record, |
| 272 | struct event_format *event, void *context) | 272 | struct event_format *event, void *context) |
| 273 | { | 273 | { |
| 274 | unsigned long long info1 = 0, info2 = 0; | 274 | unsigned long long info1 = 0, info2 = 0; |
| @@ -276,10 +276,10 @@ static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record, | |||
| 276 | if (print_exit_reason(s, record, event, "exit_reason") < 0) | 276 | if (print_exit_reason(s, record, event, "exit_reason") < 0) |
| 277 | return -1; | 277 | return -1; |
| 278 | 278 | ||
| 279 | pevent_print_num_field(s, " rip 0x%lx", event, "guest_rip", record, 1); | 279 | tep_print_num_field(s, " rip 0x%lx", event, "guest_rip", record, 1); |
| 280 | 280 | ||
| 281 | if (pevent_get_field_val(s, event, "info1", record, &info1, 0) >= 0 | 281 | if (tep_get_field_val(s, event, "info1", record, &info1, 0) >= 0 |
| 282 | && pevent_get_field_val(s, event, "info2", record, &info2, 0) >= 0) | 282 | && tep_get_field_val(s, event, "info2", record, &info2, 0) >= 0) |
| 283 | trace_seq_printf(s, " info %llx %llx", info1, info2); | 283 | trace_seq_printf(s, " info %llx %llx", info1, info2); |
| 284 | 284 | ||
| 285 | return 0; | 285 | return 0; |
| @@ -291,7 +291,7 @@ static int kvm_exit_handler(struct trace_seq *s, struct pevent_record *record, | |||
| 291 | #define KVM_EMUL_INSN_F_CS_L (1 << 3) | 291 | #define KVM_EMUL_INSN_F_CS_L (1 << 3) |
| 292 | 292 | ||
| 293 | static int kvm_emulate_insn_handler(struct trace_seq *s, | 293 | static int kvm_emulate_insn_handler(struct trace_seq *s, |
| 294 | struct pevent_record *record, | 294 | struct tep_record *record, |
| 295 | struct event_format *event, void *context) | 295 | struct event_format *event, void *context) |
| 296 | { | 296 | { |
| 297 | unsigned long long rip, csbase, len, flags, failed; | 297 | unsigned long long rip, csbase, len, flags, failed; |
| @@ -299,22 +299,22 @@ static int kvm_emulate_insn_handler(struct trace_seq *s, | |||
| 299 | uint8_t *insn; | 299 | uint8_t *insn; |
| 300 | const char *disasm; | 300 | const char *disasm; |
| 301 | 301 | ||
| 302 | if (pevent_get_field_val(s, event, "rip", record, &rip, 1) < 0) | 302 | if (tep_get_field_val(s, event, "rip", record, &rip, 1) < 0) |
| 303 | return -1; | 303 | return -1; |
| 304 | 304 | ||
| 305 | if (pevent_get_field_val(s, event, "csbase", record, &csbase, 1) < 0) | 305 | if (tep_get_field_val(s, event, "csbase", record, &csbase, 1) < 0) |
| 306 | return -1; | 306 | return -1; |
| 307 | 307 | ||
| 308 | if (pevent_get_field_val(s, event, "len", record, &len, 1) < 0) | 308 | if (tep_get_field_val(s, event, "len", record, &len, 1) < 0) |
| 309 | return -1; | 309 | return -1; |
| 310 | 310 | ||
| 311 | if (pevent_get_field_val(s, event, "flags", record, &flags, 1) < 0) | 311 | if (tep_get_field_val(s, event, "flags", record, &flags, 1) < 0) |
| 312 | return -1; | 312 | return -1; |
| 313 | 313 | ||
| 314 | if (pevent_get_field_val(s, event, "failed", record, &failed, 1) < 0) | 314 | if (tep_get_field_val(s, event, "failed", record, &failed, 1) < 0) |
| 315 | return -1; | 315 | return -1; |
| 316 | 316 | ||
| 317 | insn = pevent_get_field_raw(s, event, "insn", record, &llen, 1); | 317 | insn = tep_get_field_raw(s, event, "insn", record, &llen, 1); |
| 318 | if (!insn) | 318 | if (!insn) |
| 319 | return -1; | 319 | return -1; |
| 320 | 320 | ||
| @@ -330,24 +330,24 @@ static int kvm_emulate_insn_handler(struct trace_seq *s, | |||
| 330 | } | 330 | } |
| 331 | 331 | ||
| 332 | 332 | ||
| 333 | static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct pevent_record *record, | 333 | static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct tep_record *record, |
| 334 | struct event_format *event, void *context) | 334 | struct event_format *event, void *context) |
| 335 | { | 335 | { |
| 336 | if (print_exit_reason(s, record, event, "exit_code") < 0) | 336 | if (print_exit_reason(s, record, event, "exit_code") < 0) |
| 337 | return -1; | 337 | return -1; |
| 338 | 338 | ||
| 339 | pevent_print_num_field(s, " info1 %llx", event, "exit_info1", record, 1); | 339 | tep_print_num_field(s, " info1 %llx", event, "exit_info1", record, 1); |
| 340 | pevent_print_num_field(s, " info2 %llx", event, "exit_info2", record, 1); | 340 | tep_print_num_field(s, " info2 %llx", event, "exit_info2", record, 1); |
| 341 | pevent_print_num_field(s, " int_info %llx", event, "exit_int_info", record, 1); | 341 | tep_print_num_field(s, " int_info %llx", event, "exit_int_info", record, 1); |
| 342 | pevent_print_num_field(s, " int_info_err %llx", event, "exit_int_info_err", record, 1); | 342 | tep_print_num_field(s, " int_info_err %llx", event, "exit_int_info_err", record, 1); |
| 343 | 343 | ||
| 344 | return 0; | 344 | return 0; |
| 345 | } | 345 | } |
| 346 | 346 | ||
| 347 | static int kvm_nested_vmexit_handler(struct trace_seq *s, struct pevent_record *record, | 347 | static int kvm_nested_vmexit_handler(struct trace_seq *s, struct tep_record *record, |
| 348 | struct event_format *event, void *context) | 348 | struct event_format *event, void *context) |
| 349 | { | 349 | { |
| 350 | pevent_print_num_field(s, "rip %llx ", event, "rip", record, 1); | 350 | tep_print_num_field(s, "rip %llx ", event, "rip", record, 1); |
| 351 | 351 | ||
| 352 | return kvm_nested_vmexit_inject_handler(s, record, event, context); | 352 | return kvm_nested_vmexit_inject_handler(s, record, event, context); |
| 353 | } | 353 | } |
| @@ -370,7 +370,7 @@ union kvm_mmu_page_role { | |||
| 370 | }; | 370 | }; |
| 371 | }; | 371 | }; |
| 372 | 372 | ||
| 373 | static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record, | 373 | static int kvm_mmu_print_role(struct trace_seq *s, struct tep_record *record, |
| 374 | struct event_format *event, void *context) | 374 | struct event_format *event, void *context) |
| 375 | { | 375 | { |
| 376 | unsigned long long val; | 376 | unsigned long long val; |
| @@ -379,7 +379,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record, | |||
| 379 | }; | 379 | }; |
| 380 | union kvm_mmu_page_role role; | 380 | union kvm_mmu_page_role role; |
| 381 | 381 | ||
| 382 | if (pevent_get_field_val(s, event, "role", record, &val, 1) < 0) | 382 | if (tep_get_field_val(s, event, "role", record, &val, 1) < 0) |
| 383 | return -1; | 383 | return -1; |
| 384 | 384 | ||
| 385 | role.word = (int)val; | 385 | role.word = (int)val; |
| @@ -388,8 +388,8 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record, | |||
| 388 | * We can only use the structure if file is of the same | 388 | * We can only use the structure if file is of the same |
| 389 | * endianess. | 389 | * endianess. |
| 390 | */ | 390 | */ |
| 391 | if (pevent_is_file_bigendian(event->pevent) == | 391 | if (tep_is_file_bigendian(event->pevent) == |
| 392 | pevent_is_host_bigendian(event->pevent)) { | 392 | tep_is_host_bigendian(event->pevent)) { |
| 393 | 393 | ||
| 394 | trace_seq_printf(s, "%u q%u%s %s%s %spae %snxe %swp%s%s%s", | 394 | trace_seq_printf(s, "%u q%u%s %s%s %spae %snxe %swp%s%s%s", |
| 395 | role.level, | 395 | role.level, |
| @@ -406,10 +406,10 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record, | |||
| 406 | } else | 406 | } else |
| 407 | trace_seq_printf(s, "WORD: %08x", role.word); | 407 | trace_seq_printf(s, "WORD: %08x", role.word); |
| 408 | 408 | ||
| 409 | pevent_print_num_field(s, " root %u ", event, | 409 | tep_print_num_field(s, " root %u ", event, |
| 410 | "root_count", record, 1); | 410 | "root_count", record, 1); |
| 411 | 411 | ||
| 412 | if (pevent_get_field_val(s, event, "unsync", record, &val, 1) < 0) | 412 | if (tep_get_field_val(s, event, "unsync", record, &val, 1) < 0) |
| 413 | return -1; | 413 | return -1; |
| 414 | 414 | ||
| 415 | trace_seq_printf(s, "%s%c", val ? "unsync" : "sync", 0); | 415 | trace_seq_printf(s, "%s%c", val ? "unsync" : "sync", 0); |
| @@ -417,17 +417,17 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct pevent_record *record, | |||
| 417 | } | 417 | } |
| 418 | 418 | ||
| 419 | static int kvm_mmu_get_page_handler(struct trace_seq *s, | 419 | static int kvm_mmu_get_page_handler(struct trace_seq *s, |
| 420 | struct pevent_record *record, | 420 | struct tep_record *record, |
| 421 | struct event_format *event, void *context) | 421 | struct event_format *event, void *context) |
| 422 | { | 422 | { |
| 423 | unsigned long long val; | 423 | unsigned long long val; |
| 424 | 424 | ||
| 425 | if (pevent_get_field_val(s, event, "created", record, &val, 1) < 0) | 425 | if (tep_get_field_val(s, event, "created", record, &val, 1) < 0) |
| 426 | return -1; | 426 | return -1; |
| 427 | 427 | ||
| 428 | trace_seq_printf(s, "%s ", val ? "new" : "existing"); | 428 | trace_seq_printf(s, "%s ", val ? "new" : "existing"); |
| 429 | 429 | ||
| 430 | if (pevent_get_field_val(s, event, "gfn", record, &val, 1) < 0) | 430 | if (tep_get_field_val(s, event, "gfn", record, &val, 1) < 0) |
| 431 | return -1; | 431 | return -1; |
| 432 | 432 | ||
| 433 | trace_seq_printf(s, "sp gfn %llx ", val); | 433 | trace_seq_printf(s, "sp gfn %llx ", val); |
| @@ -444,79 +444,79 @@ process_is_writable_pte(struct trace_seq *s, unsigned long long *args) | |||
| 444 | return pte & PT_WRITABLE_MASK; | 444 | return pte & PT_WRITABLE_MASK; |
| 445 | } | 445 | } |
| 446 | 446 | ||
| 447 | int PEVENT_PLUGIN_LOADER(struct pevent *pevent) | 447 | int TEP_PLUGIN_LOADER(struct tep_handle *pevent) |
| 448 | { | 448 | { |
| 449 | init_disassembler(); | 449 | init_disassembler(); |
| 450 | 450 | ||
| 451 | pevent_register_event_handler(pevent, -1, "kvm", "kvm_exit", | 451 | tep_register_event_handler(pevent, -1, "kvm", "kvm_exit", |
| 452 | kvm_exit_handler, NULL); | 452 | kvm_exit_handler, NULL); |
| 453 | 453 | ||
| 454 | pevent_register_event_handler(pevent, -1, "kvm", "kvm_emulate_insn", | 454 | tep_register_event_handler(pevent, -1, "kvm", "kvm_emulate_insn", |
| 455 | kvm_emulate_insn_handler, NULL); | 455 | kvm_emulate_insn_handler, NULL); |
| 456 | 456 | ||
| 457 | pevent_register_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit", | 457 | tep_register_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit", |
| 458 | kvm_nested_vmexit_handler, NULL); | 458 | kvm_nested_vmexit_handler, NULL); |
| 459 | 459 | ||
| 460 | pevent_register_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit_inject", | 460 | tep_register_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit_inject", |
| 461 | kvm_nested_vmexit_inject_handler, NULL); | 461 | kvm_nested_vmexit_inject_handler, NULL); |
| 462 | 462 | ||
| 463 | pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_get_page", | 463 | tep_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_get_page", |
| 464 | kvm_mmu_get_page_handler, NULL); | 464 | kvm_mmu_get_page_handler, NULL); |
| 465 | 465 | ||
| 466 | pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_sync_page", | 466 | tep_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_sync_page", |
| 467 | kvm_mmu_print_role, NULL); | 467 | kvm_mmu_print_role, NULL); |
| 468 | 468 | ||
| 469 | pevent_register_event_handler(pevent, -1, | 469 | tep_register_event_handler(pevent, -1, |
| 470 | "kvmmmu", "kvm_mmu_unsync_page", | 470 | "kvmmmu", "kvm_mmu_unsync_page", |
| 471 | kvm_mmu_print_role, NULL); | 471 | kvm_mmu_print_role, NULL); |
| 472 | 472 | ||
| 473 | pevent_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page", | 473 | tep_register_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page", |
| 474 | kvm_mmu_print_role, NULL); | 474 | kvm_mmu_print_role, NULL); |
| 475 | 475 | ||
| 476 | pevent_register_event_handler(pevent, -1, "kvmmmu", | 476 | tep_register_event_handler(pevent, -1, "kvmmmu", |
| 477 | "kvm_mmu_prepare_zap_page", kvm_mmu_print_role, | 477 | "kvm_mmu_prepare_zap_page", kvm_mmu_print_role, |
| 478 | NULL); | 478 | NULL); |
| 479 | 479 | ||
| 480 | pevent_register_print_function(pevent, | 480 | tep_register_print_function(pevent, |
| 481 | process_is_writable_pte, | 481 | process_is_writable_pte, |
| 482 | PEVENT_FUNC_ARG_INT, | 482 | TEP_FUNC_ARG_INT, |
| 483 | "is_writable_pte", | 483 | "is_writable_pte", |
| 484 | PEVENT_FUNC_ARG_LONG, | 484 | TEP_FUNC_ARG_LONG, |
| 485 | PEVENT_FUNC_ARG_VOID); | 485 | TEP_FUNC_ARG_VOID); |
| 486 | return 0; | 486 | return 0; |
| 487 | } | 487 | } |
| 488 | 488 | ||
| 489 | void PEVENT_PLUGIN_UNLOADER(struct pevent *pevent) | 489 | void TEP_PLUGIN_UNLOADER(struct tep_handle *pevent) |
| 490 | { | 490 | { |
| 491 | pevent_unregister_event_handler(pevent, -1, "kvm", "kvm_exit", | 491 | tep_unregister_event_handler(pevent, -1, "kvm", "kvm_exit", |
| 492 | kvm_exit_handler, NULL); | 492 | kvm_exit_handler, NULL); |
| 493 | 493 | ||
| 494 | pevent_unregister_event_handler(pevent, -1, "kvm", "kvm_emulate_insn", | 494 | tep_unregister_event_handler(pevent, -1, "kvm", "kvm_emulate_insn", |
| 495 | kvm_emulate_insn_handler, NULL); | 495 | kvm_emulate_insn_handler, NULL); |
| 496 | 496 | ||
| 497 | pevent_unregister_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit", | 497 | tep_unregister_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit", |
| 498 | kvm_nested_vmexit_handler, NULL); | 498 | kvm_nested_vmexit_handler, NULL); |
| 499 | 499 | ||
| 500 | pevent_unregister_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit_inject", | 500 | tep_unregister_event_handler(pevent, -1, "kvm", "kvm_nested_vmexit_inject", |
| 501 | kvm_nested_vmexit_inject_handler, NULL); | 501 | kvm_nested_vmexit_inject_handler, NULL); |
| 502 | 502 | ||
| 503 | pevent_unregister_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_get_page", | 503 | tep_unregister_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_get_page", |
| 504 | kvm_mmu_get_page_handler, NULL); | 504 | kvm_mmu_get_page_handler, NULL); |
| 505 | 505 | ||
| 506 | pevent_unregister_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_sync_page", | 506 | tep_unregister_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_sync_page", |
| 507 | kvm_mmu_print_role, NULL); | 507 | kvm_mmu_print_role, NULL); |
| 508 | 508 | ||
| 509 | pevent_unregister_event_handler(pevent, -1, | 509 | tep_unregister_event_handler(pevent, -1, |
| 510 | "kvmmmu", "kvm_mmu_unsync_page", | 510 | "kvmmmu", "kvm_mmu_unsync_page", |
| 511 | kvm_mmu_print_role, NULL); | 511 | kvm_mmu_print_role, NULL); |
| 512 | 512 | ||
| 513 | pevent_unregister_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page", | 513 | tep_unregister_event_handler(pevent, -1, "kvmmmu", "kvm_mmu_zap_page", |
| 514 | kvm_mmu_print_role, NULL); | 514 | kvm_mmu_print_role, NULL); |
| 515 | 515 | ||
| 516 | pevent_unregister_event_handler(pevent, -1, "kvmmmu", | 516 | tep_unregister_event_handler(pevent, -1, "kvmmmu", |
| 517 | "kvm_mmu_prepare_zap_page", kvm_mmu_print_role, | 517 | "kvm_mmu_prepare_zap_page", kvm_mmu_print_role, |
| 518 | NULL); | 518 | NULL); |
| 519 | 519 | ||
| 520 | pevent_unregister_print_function(pevent, process_is_writable_pte, | 520 | tep_unregister_print_function(pevent, process_is_writable_pte, |
| 521 | "is_writable_pte"); | 521 | "is_writable_pte"); |
| 522 | } | 522 | } |
