Hi Marc, I am currently validating VFIO PCI device assignment (using legacy interrupts) on Freescale LS2085 SOC(ARM64, GICv3). This is being done on kernel-4.0. I have also pulled irqfd patches submitted by Eric. I am using e1000 nic for my testing. During my testing I am observing a huge interrupt latency. I took a kernel trace and observed the following. | vfio_intx_handler() { 0) 2.120 us | vfio_send_intx_eventfd();
0) + 15.640 us | }
------------------------------------------
0) <idle>-0 => kworker-374 ------------------------------------------
0) | kvm_set_irq() {
0) | kvm_vgic_inject_irq() {
0) 0.120 us | vgic_bitmap_get_irq_val();
0) 0.120 us | vgic_bitmap_get_irq_val();
0) 0.120 us | vgic_bitmap_get_irq_val();
0) 0.160 us | vgic_bitmap_set_irq_val();
0) 0.240 us | vgic_bitmap_set_irq_val();
0) 0.120 us | vgic_bitmap_get_irq_val();
0) | vgic_can_sample_irq() {
0) 0.120 us | vgic_bitmap_get_irq_val();
0) 0.120 us | vgic_bitmap_get_irq_val();
0) 2.480 us | }
0) 0.280 us | vgic_cpu_irq_set();
0) | kvm_vcpu_kick() {
------------------------------------------
0) kworker-374 => qemu-sy-1575
------------------------------------------
0) | kvm_sched_in() {
0) | kvm_arch_vcpu_load() {
0) 0.160 us | kvm_arm_set_running_vcpu();
0) 1.480 us | }
0) 2.800 us | } 0) | kvm_vcpu_check_block() {
0) | kvm_arch_vcpu_runnable() {
0) 0.120 us | kvm_vgic_vcpu_pending_irq(); 0) 1.280 us | } 0) 2.480 us | }
0) # 760113.4 us | } /* kvm_vcpu_block */
0) # 760114.8 us | } /* kvm_handle_wfx */
It seems that interrupts are disabled for a significant amount of time.
Regards Varun |
_______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm