1. 25 4月, 2013 3 次提交
    • M
      pc: Kill the "use flash device for BIOS unless KVM" misfeature · 9953f882
      Markus Armbruster 提交于
      Use of a flash memory device for the BIOS was added in series "[PATCH
      v10 0/8] PC system flash support", commit 4732dcaf..1b89fafe, v1.1.
      
      Flash vs. ROM is a guest-visible difference.  Thus, flash use had to
      be suppressed for machine types pc-1.0 and older.  This was
      accomplished by adding a dummy device "pc-sysfw" with property
      "rom_only":
      
      * Non-zero rom_only means "use ROM".  Default for pc-1.0 and older.
      * Zero rom_only means "maybe use flash".  Default for newer machines.
      
      Not only is the dummy device ugly, it was also retroactively added to
      the older machine types!  Fortunately, it's not guest-visible (thus no
      immediate guest ABI breakage), and has no vmstate (thus no immediate
      migration breakage).  Breakage occurs only if the user unwisely
      enables flash by setting rom_only to zero.  Patch review FAIL #1.
      
      Why "maybe use flash"?  Flash didn't (and still doesn't) work with
      KVM.  Therefore, rom_only=0 really means "use flash, except when KVM
      is enabled, use ROM".  This is a Bad Idea, because it makes enabling/
      disabling KVM guest-visible.  Patch review FAIL #2.
      
      Aside: it also precludes migrating between KVM on and off, but that's
      not possible for other reasons anyway.
      
      Fix as follows:
      
      1. Change the meaning of rom_only=0 to mean "use flash, no ifs, buts,
      or maybes" for pc-i440fx-1.5 and pc-q35-1.5.  Don't change anything
      for older machines (to remain bug-compatible).
      
      2. Change the default value from 0 to 1 for these machines.
      Necessary, because 0 doesn't work with KVM.  Once it does, we can flip
      the default back to 0.
      
      3. Don't revert the retroactive addition of device "pc-sysfw" to older
      machine types.  Seems not worth the trouble.
      
      4. Add a TODO comment asking for device "pc-sysfw" to be dropped once
      flash works with KVM.
      
      Net effect is that you get a BIOS ROM again even when KVM is disabled,
      just like for machines predating the introduction of flash.
      
      To get flash instead, use "--global pc-sysfw.rom_only=0".
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-id: 1365780303-26398-4-git-send-email-armbru@redhat.com
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      9953f882
    • M
      pc: Split pc_init_pci_1_0() off pc_init_pci_1_2() · 6fd028f6
      Markus Armbruster 提交于
      Just to make the next commit easier to review.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-id: 1365780303-26398-3-git-send-email-armbru@redhat.com
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      6fd028f6
    • M
      pc: Inline pc_init_pci_1_3() into pc_init_pci_1_2() · 36afbc51
      Markus Armbruster 提交于
      Just to make the commit after next easier to review.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Message-id: 1365780303-26398-2-git-send-email-armbru@redhat.com
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      36afbc51
  2. 15 4月, 2013 1 次提交
  3. 09 4月, 2013 1 次提交
    • P
      hw: move headers to include/ · 0d09e41a
      Paolo Bonzini 提交于
      Many of these should be cleaned up with proper qdev-/QOM-ification.
      Right now there are many catch-all headers in include/hw/ARCH depending
      on cpu.h, and this makes it necessary to compile these files per-target.
      However, fixing this does not belong in these patches.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      0d09e41a
  4. 12 3月, 2013 1 次提交
  5. 01 3月, 2013 2 次提交
  6. 27 2月, 2013 1 次提交
  7. 23 2月, 2013 1 次提交
  8. 02 2月, 2013 1 次提交
  9. 30 1月, 2013 1 次提交
    • A
      virtio-net: introduce a new macaddr control · c1943a3f
      Amos Kong 提交于
      In virtio-net guest driver, currently we write MAC address to
      pci config space byte by byte, this means that we have an
      intermediate step where mac is wrong. This patch introduced
      a new control command to set MAC address, it's atomic.
      
      VIRTIO_NET_F_CTRL_MAC_ADDR is a new feature bit for compatibility.
      
      "mac" field will be set to read-only when VIRTIO_NET_F_CTRL_MAC_ADDR
      is acked.
      Signed-off-by: NAmos Kong <akong@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      c1943a3f
  10. 27 1月, 2013 2 次提交
    • E
      pc: Generate APIC IDs according to CPU topology · 8932cfdf
      Eduardo Habkost 提交于
      This keeps compatibility on machine-types pc-1.2 and older, and prints a
      warning in case the requested configuration won't get the correct
      topology.
      
      I couldn't think of a better way to warn about broken topology when in
      compat mode other than using error_report(). The warning message will
      probably be buried in a log file somewhere, but it's better than
      nothing.
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      8932cfdf
    • E
      pc: Reverse pc_init_pci() compatibility logic · 29694758
      Eduardo Habkost 提交于
      Currently, the pc-1.4 machine init function enables PV EOI and then
      calls the pc-1.2 machine init function. The problem with this approach
      is that now we can't enable any additional compatibility code inside the
      pc-1.2 init function because it would end up enabling the compatibility
      behavior on pc-1.3 and pc-1.4 as well.
      
      This reverses the logic so that the pc-1.2 machine init function will
      disable PV EOI, and then call the pc-1.4 machine init function.
      
      This way we can change older machine-types to enable compatibility
      behavior, and the newer machine-types (pc-1.3, pc-q35-1.4 and
      pc-i440fx-1.4) would just use the default behavior.
      
      (This means that one nice side-effect of this change is that pc-q35-1.4
      will get PV EOI enabled by default, too)
      
      It would be interesting to eventually change pc_init_pci_no_kvmclock()
      and pc_init_isa() to reuse pc_init_pci_1_2() as well (so we don't need
      to duplicate compatibility code on those two functions). But this will
      be probably much easier to do after we create a PCInitArgs struct for
      the PC initialization arguments, and/or after we use global-properties
      to implement the compatibility modes present in pc_init_pci_1_2().
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Reviewed-by: NMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      29694758
  11. 16 1月, 2013 1 次提交
  12. 11 1月, 2013 1 次提交
    • G
      pc: rename machine types · 94dec594
      Gerd Hoffmann 提交于
      Starting with release 1.4 we have a fully functional q35 machine type,
      i.e. "qemu -M q35" JustWorks[tm].  Update machine type names to reflect
      that:
      
        * pc-1.4 becomes pc-i440fx-1.4
        * q35-next becomes pc-q35-1.4
      
      The pc-1.3 (+older) names are maintained for compatibility reasons.
      For the same reason the "pc" and "q35" aliases are kept.  pc-piix-1.4
      continues to be the default machine type, again for compatibility
      reasons.
      
      Also updated the description (shown by "qemu -M ?") with host bridge
      name, south bridge name and chipset release year.
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      94dec594
  13. 04 1月, 2013 1 次提交
  14. 19 12月, 2012 3 次提交
  15. 17 12月, 2012 1 次提交
  16. 04 12月, 2012 2 次提交
    • H
      usb-tablet: Allow connecting to ehci · 427e3aa1
      Hans de Goede 提交于
      Our ehci code has is capable of significantly lowering the wakeup rate
      for the hcd emulation while the device is idle. It is possible to add
      similar code ot the uhci emulation, but that simply is not there atm,
      and there is no reason why a (virtual) usb-tablet can not be a USB-2 device.
      
      Making usb-hid devices connect to the emulated ehci controller instead
      of the emulated uhci controller on vms which have both lowers the cpuload
      for a fully idle vm from 20% to 2-3% (on my laptop).
      
      An alternative implementation to using a property to select the tablet
      type, would be simply making it a new device type, ie usb-tablet2, but the
      downside of that is that this will require libvirt changes to be available
      through libvirt at all, and then management tools changes to become the
      default for new vms, where as using a property will automatically get
      any pc-1.3 type vms the lower cpuload.
      
      [ kraxel: adapt compat property for post-1.3 merge ]
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      
      tablet compat fixup
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      427e3aa1
    • G
      add pc-1.4 · f1ae2e38
      Gerd Hoffmann 提交于
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      f1ae2e38
  17. 26 11月, 2012 3 次提交
  18. 02 11月, 2012 1 次提交
  19. 29 10月, 2012 2 次提交
    • M
      qemu: enable PV EOI for qemu 1.3 · dc59944b
      Michael S. Tsirkin 提交于
      Enable KVM PV EOI by default. You can still disable it with
      -kvm_pv_eoi cpu flag. To avoid breaking cross-version migration,
      enable only for qemu 1.3 (or in the future, newer) machine type.
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      dc59944b
    • Z
      Add USB option in machine options · 094b287f
      zhlcindy@gmail.com 提交于
      When -usb option is used, global varible usb_enabled is set.
      And all the plaform will create one USB controller according
      to this variable. In fact, global varibles make code hard
      to read.
      
      So this patch is to remove global variable usb_enabled and
      add USB option in machine options. All the plaforms will get
      USB option value from machine options.
      
      USB option of machine options will be set either by:
        * -usb
        * -machine type=pseries,usb=on
      
      Both these ways can work now. They both set USB option in
      machine options. In the future, the first way will be removed.
      Signed-off-by: NLi Zhang <zhlcindy@linux.vnet.ibm.com>
      Acked-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      094b287f
  20. 23 10月, 2012 1 次提交
    • A
      Rename target_phys_addr_t to hwaddr · a8170e5e
      Avi Kivity 提交于
      target_phys_addr_t is unwieldly, violates the C standard (_t suffixes are
      reserved) and its purpose doesn't match the name (most target_phys_addr_t
      addresses are not target specific).  Replace it with a finger-friendly,
      standards conformant hwaddr.
      
      Outstanding patchsets can be fixed up with the command
      
        git rebase -i --exec 'find -name "*.[ch]"
                              | xargs s/target_phys_addr_t/hwaddr/g' origin
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      a8170e5e
  21. 20 10月, 2012 2 次提交
    • E
      create struct for machine initialization arguments · 5f072e1f
      Eduardo Habkost 提交于
      This should help us to:
      - More easily add or remove machine initialization arguments without
        having to change every single machine init function;
      - More easily make mechanical changes involving the machine init
        functions in the future;
      - Let machine initialization forward the init arguments to other
        functions more easily.
      
      This change was half-mechanical process: first the struct was added with
      the local ram_size, boot_device, kernel_*, initrd_*, and cpu_model local
      variable initialization to all functions. Then the compiler helped me
      locate the local variables that are unused, so they could be removed.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      5f072e1f
    • G
      vga: add mmio bar to standard vga · 803ff052
      Gerd Hoffmann 提交于
      This patch adds a mmio bar to the qemu standard vga which allows to
      access the standard vga registers and bochs dispi interface registers
      via mmio.
      
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      803ff052
  22. 08 10月, 2012 1 次提交
  23. 26 9月, 2012 5 次提交
  24. 22 8月, 2012 1 次提交
    • S
      virtio-blk: hide VIRTIO_BLK_F_CONFIG_WCE from old machine types · ea776abc
      Stefan Hajnoczi 提交于
      QEMU has a policy of keeping a stable guest device ABI.  When new guest device
      features are introduced they must not change hardware info seen by existing
      guests.  This is important because operating systems or applications may
      "fingerprint" the hardware and refuse to run when the hardware changes.  To
      always get the latest guest device ABI, run with x86 machine type "pc".
      
      This patch hides the new VIRTIO_BLK_F_CONFIG_WCE virtio feature bit from
      existing machine types.  Only pc-1.2 and later will expose this feature
      by default.
      
      For more info on the VIRTIO_BLK_F_CONFIG_WCE feature bit, see:
      
        commit 13e3dce0
        Author: Paolo Bonzini <pbonzini@redhat.com>
        Date:   Thu Aug 9 16:07:19 2012 +0200
      
            virtio-blk: support VIRTIO_BLK_F_CONFIG_WCE
      
            Also rename VIRTIO_BLK_F_WCACHE to VIRTIO_BLK_F_WCE for consistency with
            the spec.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      
      Anthony Liguori <aliguori@us.ibm.com> reported:
      
        This broke qemu-test because it changed the pc-1.0 machine type:
      
        Setting guest RANDOM seed to 47167
        *** Running tests ***
        Running test /tests/finger-print.sh...		OK
        --- fingerprints/pc-1.0.x86_64	2011-12-18 13:08:40.000000000 -0600
        +++ fingerprint.txt	2012-08-12 13:30:48.000000000 -0500
        @@ -55,7 +55,7 @@
         /sys/bus/pci/devices/0000:00:06.0/subsystem_device=0x0002
         /sys/bus/pci/devices/0000:00:06.0/class=0x010000
         /sys/bus/pci/devices/0000:00:06.0/revision=0x00
        -/sys/bus/pci/devices/0000:00:06.0/virtio/host-features=0x710006d4
        +/sys/bus/pci/devices/0000:00:06.0/virtio/host-features=0x71000ed4
         /sys/class/dmi/id/bios_vendor=Bochs
         /sys/class/dmi/id/bios_date=01/01/2007
         /sys/class/dmi/id/bios_version=Bochs
        Guest fingerprint changed for pc-1.0!
      Reported-by: NAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      ea776abc
  25. 20 8月, 2012 1 次提交