1. 28 11月, 2011 1 次提交
  2. 16 10月, 2011 1 次提交
    • J
      pc: Fix and clean up PIC-to-APIC IRQ path · d96e1737
      Jan Kiszka 提交于
      The master PIC is connected to the LINTIN0 of the APICs. As the APIC
      currently does not track the state of that line, we have to ask the PIC
      to reinject its IRQ after the CPU picked up an event from the APIC.
      
      This introduces pic_get_output to read the master PIC IRQ line state
      without changing it. The APIC uses this function to decide if a PIC IRQ
      should be reinjected on apic_update_irq. This reflects better how the
      real hardware works.
      
      The patch fixes some failures of the kvm unit tests apic and eventinj by
      allowing to enable the proper CPU IRQ deassertion when the guest masks
      some pending IRQs at PIC level.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      d96e1737
  3. 23 8月, 2011 1 次提交
  4. 22 8月, 2011 1 次提交
  5. 21 3月, 2011 1 次提交
    • P
      change all other clock references to use nanosecond resolution accessors · 74475455
      Paolo Bonzini 提交于
      This was done with:
      
          sed -i 's/qemu_get_clock\>/qemu_get_clock_ns/' \
              $(git grep -l 'qemu_get_clock\>' )
          sed -i 's/qemu_new_timer\>/qemu_new_timer_ns/' \
              $(git grep -l 'qemu_new_timer\>' )
      
      after checking that get_clock and new_timer never occur twice
      on the same line.  There were no missed occurrences; however, even
      if there had been, they would have been caught by the compiler.
      
      There was exactly one false positive in qemu_run_timers:
      
           -    current_time = qemu_get_clock (clock);
           +    current_time = qemu_get_clock_ns (clock);
      
      which is of course not in this patch.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      74475455
  6. 14 2月, 2011 1 次提交
  7. 04 2月, 2011 1 次提交
  8. 21 12月, 2010 1 次提交
  9. 11 12月, 2010 1 次提交
    • A
      Add endianness as io mem parameter · 2507c12a
      Alexander Graf 提交于
      As stated before, devices can be little, big or native endian. The
      target endianness is not of their concern, so we need to push things
      down a level.
      
      This patch adds a parameter to cpu_register_io_memory that allows a
      device to choose its endianness. For now, all devices simply choose
      native endian, because that's the same behavior as before.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      2507c12a
  10. 16 11月, 2010 1 次提交
  11. 21 10月, 2010 1 次提交
  12. 19 6月, 2010 5 次提交
  13. 30 5月, 2010 1 次提交
  14. 22 3月, 2010 1 次提交
  15. 04 3月, 2010 1 次提交
    • J
      KVM: Rework VCPU state writeback API · ea375f9a
      Jan Kiszka 提交于
      This grand cleanup drops all reset and vmsave/load related
      synchronization points in favor of four(!) generic hooks:
      
      - cpu_synchronize_all_states in qemu_savevm_state_complete
        (initial sync from kernel before vmsave)
      - cpu_synchronize_all_post_init in qemu_loadvm_state
        (writeback after vmload)
      - cpu_synchronize_all_post_init in main after machine init
      - cpu_synchronize_all_post_reset in qemu_system_reset
        (writeback after system reset)
      
      These writeback points + the existing one of VCPU exec after
      cpu_synchronize_state map on three levels of writeback:
      
      - KVM_PUT_RUNTIME_STATE (during runtime, other VCPUs continue to run)
      - KVM_PUT_RESET_STATE   (on synchronous system reset, all VCPUs stopped)
      - KVM_PUT_FULL_STATE    (on init or vmload, all VCPUs stopped as well)
      
      This level is passed to the arch-specific VCPU state writing function
      that will decide which concrete substates need to be written. That way,
      no writer of load, save or reset functions that interact with in-kernel
      KVM states will ever have to worry about synchronization again. That
      also means that a lot of reasons for races, segfaults and deadlocks are
      eliminated.
      
      cpu_synchronize_state remains untouched, just as Anthony suggested. We
      continue to need it before reading or writing of VCPU states that are
      also tracked by in-kernel KVM subsystems.
      
      Consequently, this patch removes many cpu_synchronize_state calls that
      are now redundant, just like remaining explicit register syncs.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      ea375f9a
  16. 07 11月, 2009 1 次提交
    • G
      v3: don't call reset functions on cpu initialization · c1699988
      Glauber Costa 提交于
      There is absolutely no need to call reset functions when initializing
      devices. Since we are already registering them, calling qemu_system_reset()
      should suffice. Actually, it is what happens when we reboot the machine,
      and using the same process instead of a special case semantics will even
      allow us to find bugs easier.
      
      Furthermore, the fact that we initialize things like the cpu quite early,
      leads to the need to introduce synchronization stuff like qemu_system_cond.
      This patch removes it entirely. All we need to do is call qemu_system_reset()
      only when we're already sure the system is up and running
      
      I tested it with qemu (with and without io-thread) and qemu-kvm, and it
      seems to be doing okay - although qemu-kvm uses a slightly different patch.
      
      [ v2: user mode still needs cpu_reset, so put it in ifdef. ]
      [ v3: leave qemu_system_cond for now. ]
      Signed-off-by: NGlauber Costa <glommer@redhat.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      c1699988
  17. 05 10月, 2009 1 次提交
  18. 02 10月, 2009 2 次提交
  19. 11 9月, 2009 1 次提交
  20. 10 9月, 2009 1 次提交
  21. 28 8月, 2009 2 次提交
  22. 26 8月, 2009 1 次提交
  23. 17 7月, 2009 1 次提交
  24. 30 6月, 2009 2 次提交
  25. 24 6月, 2009 1 次提交
  26. 22 6月, 2009 1 次提交
    • G
      Handle init/sipi in a main cpu exec loop. (v2) · b09ea7d5
      Gleb Natapov 提交于
      This should fix compilation problem in case of CONFIG_USER_ONLY.
      
      Currently INIT/SIPI is handled in the context of CPU that sends IPI.
      This patch changes this to handle them like all other events in a main
      cpu exec loop. When KVM will gain thread per vcpu capability it will
      be much more clear to handle those event by cpu thread itself and not
      modify one cpu's state from the context of the other.
      Signed-off-by: NGleb Natapov <gleb@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      b09ea7d5
  27. 17 6月, 2009 1 次提交
  28. 14 6月, 2009 1 次提交
    • G
      Don't use cpu_index as apic_id. · 678e12cc
      Gleb Natapov 提交于
      (patch is on top of "Apic creation should not depend on pci" series)
      
      Currently cpu_index is used as cpu apic id on x86.  This is incorrect
      since apic ids not have to be continuous (they can also encode cpu
      hierarchy information). This patch uses cpuid_apic_id for initial apic id
      value. For now cpuid_apic_id is set to be equal to cpu_index so behaviour
      is fully backward compatible, but it allows us to add qemu option to
      provide other values for cpu apic id.
      Signed-off-by: NGleb Natapov <gleb@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      678e12cc
  29. 22 5月, 2009 1 次提交
    • J
      Introduce reset notifier order · 8217606e
      Jan Kiszka 提交于
      Add the parameter 'order' to qemu_register_reset and sort callbacks on
      registration. On system reset, callbacks with lower order will be
      invoked before those with higher order. Update all existing users to the
      standard order 0.
      
      Note: At least for x86, the existing users seem to assume that handlers
      are called in their registration order. Therefore, the patch preserves
      this property. If someone feels bored, (s)he could try to identify this
      dependency and express it properly on callback registration.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      8217606e
  30. 09 4月, 2009 1 次提交
  31. 13 3月, 2009 1 次提交
  32. 06 2月, 2009 1 次提交
  33. 16 1月, 2009 1 次提交