1. 03 5月, 2007 15 次提交
  2. 04 3月, 2007 8 次提交
  3. 13 2月, 2007 3 次提交
  4. 10 2月, 2007 1 次提交
  5. 31 1月, 2007 1 次提交
  6. 27 1月, 2007 2 次提交
  7. 23 1月, 2007 1 次提交
    • A
      [PATCH] KVM: fix race between mmio reads and injected interrupts · cccf748b
      Avi Kivity 提交于
      The kvm mmio read path looks like:
      
       1. guest read faults
       2. kvm emulates read, calls emulator_read_emulated()
       3. fails as a read requires userspace help
       4. exit to userspace
       5. userspace emulates read, kvm sets vcpu->mmio_read_completed
       6. re-enter guest, fault again
       7. kvm emulates read, calls emulator_read_emulated()
       8. succeeds as vcpu->mmio_read_emulated is set
       9. instruction completes and guest is resumed
      
      A problem surfaces if the userspace exit (step 5) also requests an interrupt
      injection.  In that case, the guest does not re-execute the original
      instruction, but the interrupt handler.  The next time an mmio read is
      exectued (likely for a different address), step 3 will find
      vcpu->mmio_read_completed set and return the value read for the original
      instruction.
      
      The problem manifested itself in a few annoying ways:
      - little squares appear randomly on console when switching virtual terminals
      - ne2000 fails under nfs read load
      - rtl8139 complains about "pci errors" even though the device model is
        incapable of issuing them.
      
      Fix by skipping interrupt injection if an mmio read is pending.
      
      A better fix is to avoid re-entry into the guest, and re-emulating immediately
      instead.  However that's a bit more complex.
      Signed-off-by: NAvi Kivity <avi@qumranet.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cccf748b
  8. 12 1月, 2007 1 次提交
    • I
      [PATCH] KVM: add VM-exit profiling · 07031e14
      Ingo Molnar 提交于
      This adds the profile=kvm boot option, which enables KVM to profile VM
      exits.
      
      Use: "readprofile -m ./System.map | sort -n" to see the resulting
      output:
      
         [...]
         18246 serial_out                               148.3415
         18945 native_flush_tlb                         378.9000
         23618 serial_in                                212.7748
         29279 __spin_unlock_irq                        622.9574
         43447 native_apic_write                        2068.9048
         52702 enable_8259A_irq                         742.2817
         54250 vgacon_scroll                             89.3740
         67394 ide_inb                                  6126.7273
         79514 copy_page_range                           98.1654
         84868 do_wp_page                                86.6000
        140266 pit_read                                 783.6089
        151436 ide_outb                                 25239.3333
        152668 native_io_delay                          21809.7143
        174783 mask_and_ack_8259A                       783.7803
        362404 native_set_pte_at                        36240.4000
       1688747 total                                      0.5009
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NAvi Kivity <avi@qumranet.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      07031e14
  9. 06 1月, 2007 6 次提交
  10. 31 12月, 2006 2 次提交