high interrupt latency in guest VM with VFIO PCI (using legacy interrupts)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux