1. 17 Apr, 2012 7 commits
  2. 16 Apr, 2012 9 commits
    • Peter Portante's avatar
      qemu-timer.c: Remove 250us timeouts · 158fd3ce
      Peter Portante authored
      Basically, the main wait loop calls qemu_run_all_timers() unconditionally. The
      first thing this routine used to do is to see if a timer had been serviced,
      and then reset the loop timeout to the next deadline.
      
      However, the new deadlines had not been calculated at that point, as
      qemu_run_timers() had not been called yet for each of the clocks. So
      qemu_rearm_alarm_timer() would end up with a negative or zero deadline, and
      default to setting a 250us timeout for the loop.
      
      As qemu_run_timers() is called for each clock, the real deadlines would be put
      in place, but because a loop timeout was already set, the loop timeout would
      not be changed.
      
      Once that 250us timeout fired, the real deadline would be used for the
      subsequent timeout.
      
      For idle VMs, this effectively doubles the number of times through the loop,
      doubling the number of select() system calls, timer calls, etc. putting added
      scheduling pressure on the kernel. And under cgroups, this really causes a big
      problem because the cgroup code does not scale well.
      
      By simply running the timers before trying to rearm the timer, we always rearm
      with a non-zero deadline, effectively halving the number of system calls.
      Signed-off-by: default avatarPeter Portante <pportant@redhat.com>
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      158fd3ce
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'kiszka/queues/pending' into staging · fc34e77b
      Anthony Liguori authored
      * kiszka/queues/pending:
        vapic: Disable for pre-1.1 machines
        Kick io-thread on qemu_chr_accept_input
        pcnet: Properly handle TX requests during Link Fail
        pcnet: Clear ERR in CSR0 on stop
        signrom: Rewrite as python script
      
      Conflicts:
      	hw/pc_piix.c
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      fc34e77b
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'mst/tags/for_anthony' into staging · 52346e8c
      Anthony Liguori authored
      * mst/tags/for_anthony:
        pci: fix corrupted pci conf index register by unaligned write
        acpi: explicitly account for >1 device per slot
        acpi_piix4: Re-define PCI hotplug eject register read
        acpi_piix4: Remove PCI_RMV_BASE write code
        acpi_piix4: Fix PCI hotplug race
        acpi_piix4: Disallow write to up/down PCI hotplug registers
        virtio-pci: change virtio balloon PCI class code
        ivshmem: add missing msix calls
        vhost: readd assert statement
        vhost: Fix size of dirty log sync on resize
        pc: reduce duplication in compat machine types
        piix_pci: fix typo in i400FX chipset init code
      52346e8c
    • Anthony Liguori's avatar
      Merge remote-tracking branch 'sstabellini/for_anthony' into staging · 8a6b8708
      Anthony Liguori authored
      * sstabellini/for_anthony:
        xen: introduce an event channel for buffered io event notifications
        xen-mapcache: don't unmap locked entry during mapcache invalidation
        Xen, mapcache: Fix the compute of the size of bucket.
        xen: handle backend deletion from xenstore
        Xen: Add xen-apic support and hook it up.
        Xen: basic HVM MSI injection support.
      8a6b8708
    • Jan Kiszka's avatar
      vapic: Disable for pre-1.1 machines · 9bea6a29
      Jan Kiszka authored
      The kvmvapic was not present in older QEMU versions, thus must be
      disabled in compat machines.
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      9bea6a29
    • Jan Kiszka's avatar
      Kick io-thread on qemu_chr_accept_input · 98c8ee1d
      Jan Kiszka authored
      Once a chr frontend is able to receive input again, we need to inform
      the io-thread about this fact. Otherwise, main_loop_wait may continue to
      select without the related backend file descriptor in its set. This can
      cause high input latencies if only low-rate events arrive otherwise.
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      98c8ee1d
    • Jan Kiszka's avatar
      pcnet: Properly handle TX requests during Link Fail · ef45c914
      Jan Kiszka authored
      As long as we have no link and we aren't in internal loopback mode, no
      packet must be sent. Instead, LCAR needs to be set in any active TX
      descriptor and also CERR in CSR0.
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      ef45c914
    • Jan Kiszka's avatar
      pcnet: Clear ERR in CSR0 on stop · 6655124d
      Jan Kiszka authored
      pcnet_stop already clears any reason (BABL, CERR, MISS, MERR) why ERR
      (bit 15) should be set in CRS0. So we have to clear that bit as well.
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      6655124d
    • Jan Kiszka's avatar
      signrom: Rewrite as python script · 0d6b9cc7
      Jan Kiszka authored
      Now that we have a hard dependency on python anyway, we can replace the
      slow shell script to calculate the option ROM checksum with a fast AND
      portable python version. Tested both with python 2.7 and 3.1.
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      0d6b9cc7
  3. 15 Apr, 2012 24 commits