|
i just attempted ftrace
with kvm.ko: It clearly shows who is the caller and who is the callee. This is only two level. With systemtap u can do stacktrace, which is a lot more level of caller/callee being dump on the stack. qemu-system-x86-19828 [000] 2794.001785: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001786: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001787: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001787: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.001788: kvm_vcpu_kick <-__apic_accept_irq qemu-system-x86-19828 [000] 2794.001788: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.001788: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001789: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001789: kvm_lapic_get_cr8 <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001789: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001790: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.001790: kvm_cpu_get_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001790: kvm_get_apic_interrupt <-kvm_cpu_get_interrupt qemu-system-x86-19828 [000] 2794.001790: kvm_apic_has_interrupt <-kvm_get_apic_interrupt qemu-system-x86-19828 [000] 2794.001791: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001791: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.001791: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.001792: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001794: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001795: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001795: kvm_mmu_page_fault <-handle_exception qemu-system-x86-19828 [000] 2794.001795: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001796: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001796: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001796: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001797: kvm_release_pfn_clean <-paging32_page_fault qemu-system-x86-19828 [000] 2794.001798: kvm_read_guest_virt <-do_insn_fetch qemu-system-x86-19828 [000] 2794.001798: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001798: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001799: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001799: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001799: kvm_read_guest <-kvm_read_guest_virt qemu-system-x86-19828 [000] 2794.001799: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001800: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001801: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001801: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001801: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001802: kvm_ioapic_update_eoi <-apic_mmio_write qemu-system-x86-19828 [000] 2794.001802: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001803: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.001803: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.001803: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001804: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001804: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001804: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.001804: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.001805: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001810: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001810: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001811: kvm_mmu_page_fault <-handle_exception qemu-system-x86-19828 [000] 2794.001811: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001811: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001812: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001812: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001812: kvm_release_pfn_clean <-paging32_page_fault qemu-system-x86-19828 [000] 2794.001813: kvm_read_guest_virt <-do_insn_fetch qemu-system-x86-19828 [000] 2794.001813: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001813: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001814: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001814: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001814: kvm_read_guest <-kvm_read_guest_virt qemu-system-x86-19828 [000] 2794.001815: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001815: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001816: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001816: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.001816: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.001818: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.001818: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.001818: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.001819: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001819: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001819: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.001820: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.001820: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.001820: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002182: kvm_sched_out <-__schedule qemu-system-x86-19828 [000] 2794.002183: kvm_arch_vcpu_put <-kvm_sched_out qemu-system-x86-19828 [000] 2794.002265: kvm_sched_in <-finish_task_switch qemu-system-x86-19828 [000] 2794.002265: kvm_arch_vcpu_load <-kvm_sched_in qemu-system-x86-19828 [000] 2794.002266: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002266: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002267: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002267: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002267: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002268: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002269: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002269: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002269: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002270: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002270: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002442: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002443: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002443: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002443: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002444: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002444: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002444: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002445: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002445: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002445: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002445: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002788: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002789: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002789: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002789: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002790: kvm_vcpu_kick <-__apic_accept_irq qemu-system-x86-19828 [000] 2794.002790: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002790: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002791: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002791: kvm_lapic_get_cr8 <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002791: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002792: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002792: kvm_cpu_get_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002792: kvm_get_apic_interrupt <-kvm_cpu_get_interrupt qemu-system-x86-19828 [000] 2794.002792: kvm_apic_has_interrupt <-kvm_get_apic_interrupt qemu-system-x86-19828 [000] 2794.002793: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002793: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002793: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002794: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002796: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002797: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002797: kvm_mmu_page_fault <-handle_exception qemu-system-x86-19828 [000] 2794.002798: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002798: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002799: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002799: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002800: kvm_release_pfn_clean <-paging32_page_fault qemu-system-x86-19828 [000] 2794.002801: kvm_read_guest_virt <-do_insn_fetch qemu-system-x86-19828 [000] 2794.002801: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002802: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002802: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002802: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002803: kvm_read_guest <-kvm_read_guest_virt qemu-system-x86-19828 [000] 2794.002803: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002805: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002805: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002805: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002805: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002806: kvm_ioapic_update_eoi <-apic_mmio_write qemu-system-x86-19828 [000] 2794.002807: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002807: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002808: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002808: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002808: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002808: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002809: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002809: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002809: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002817: kvm_lapic_sync_from_vapic <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002817: kvm_handle_exit <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002817: kvm_mmu_page_fault <-handle_exception qemu-system-x86-19828 [000] 2794.002818: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002818: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002818: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002819: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002819: kvm_release_pfn_clean <-paging32_page_fault qemu-system-x86-19828 [000] 2794.002820: kvm_read_guest_virt <-do_insn_fetch qemu-system-x86-19828 [000] 2794.002820: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002820: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002821: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002821: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002821: kvm_read_guest <-kvm_read_guest_virt qemu-system-x86-19828 [000] 2794.002821: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002822: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002822: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002823: kvm_read_guest <-paging32_walk_addr qemu-system-x86-19828 [000] 2794.002823: kvm_read_guest_page <-kvm_read_guest qemu-system-x86-19828 [000] 2794.002824: kvm_inject_pending_timer_irqs <-kvm_arch_vcpu_ioctl_run qemu-system-x86-19828 [000] 2794.002825: kvm_inject_apic_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002825: kvm_inject_pit_timer_irqs <-kvm_inject_pending_timer_irqs qemu-system-x86-19828 [000] 2794.002825: kvm_lapic_enabled <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002825: kvm_lapic_find_highest_irr <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002826: kvm_cpu_has_interrupt <-vmx_intr_assist qemu-system-x86-19828 [000] 2794.002826: kvm_apic_has_interrupt <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002826: kvm_apic_accept_pic_intr <-kvm_cpu_has_interrupt qemu-system-x86-19828 [000] 2794.002827: kvm_lapic_sync_to_vapic <-kvm_arch_vcpu_ioctl_run |
