qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 04d104: target-i386: Add ECX information to F


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 04d104: target-i386: Add ECX information to FeatureWordInf...
Date: Tue, 07 May 2013 05:30:11 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 04d104b61198615c259d1851684b2713213dcf99
      
https://github.com/qemu/qemu/commit/04d104b61198615c259d1851684b2713213dcf99
  Author: Eduardo Habkost <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Add ECX information to FeatureWordInfo

FEAT_7_0_EBX uses ECX as input, so we have to take that into account
when reporting feature word values.

Signed-off-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: bd87d2a2c05569a28768648b069cbc24c40f4fb8
      
https://github.com/qemu/qemu/commit/bd87d2a2c05569a28768648b069cbc24c40f4fb8
  Author: Eduardo Habkost <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Use FeatureWord loop on filter_features_for_kvm()

Instead of open-coding the filtering code for each feature word, change
the existing code to use the feature_word_info array, that has exactly
the same CPUID eax/ecx/register values for each feature word.

Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: 8e8aba5054c043027445c880fcb9dbc8f6a217f3
      
https://github.com/qemu/qemu/commit/8e8aba5054c043027445c880fcb9dbc8f6a217f3
  Author: Eduardo Habkost <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M Makefile.objs
    M qapi-schema.json
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Add "feature-words" property to X86CPU

This property will be useful for libvirt, as libvirt already has logic
based on low-level feature bits (not feature names), so it will be
really easy to convert the current libvirt logic to something using the
"feature-words" property.

The property will have two main use cases:
 - Checking host capabilities, by checking the features of the "host"
   CPU model
 - Checking which features are enabled on each CPU model

Example output:

  $ ./QMP/qmp --path=/tmp/m \
    qom-get --path=/machine/icc-bridge/icc/child[0] \
      --property=feature-words
  item[0].cpuid-register: EDX
  item[0].cpuid-input-eax: 2147483658
  item[0].features: 0
  item[1].cpuid-register: EAX
  item[1].cpuid-input-eax: 1073741825
  item[1].features: 0
  item[2].cpuid-register: EDX
  item[2].cpuid-input-eax: 3221225473
  item[2].features: 0
  item[3].cpuid-register: ECX
  item[3].cpuid-input-eax: 2147483649
  item[3].features: 101
  item[4].cpuid-register: EDX
  item[4].cpuid-input-eax: 2147483649
  item[4].features: 563346425
  item[5].cpuid-register: EBX
  item[5].cpuid-input-eax: 7
  item[5].features: 0
  item[5].cpuid-input-ecx: 0
  item[6].cpuid-register: ECX
  item[6].cpuid-input-eax: 1
  item[6].features: 2155880449
  item[7].cpuid-register: EDX
  item[7].cpuid-input-eax: 1
  item[7].features: 126614521

Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: 034acf4a581b03fc10cba772f731ae521e00fcd8
      
https://github.com/qemu/qemu/commit/034acf4a581b03fc10cba772f731ae521e00fcd8
  Author: Eduardo Habkost <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M target-i386/cpu-qom.h
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Introduce X86CPU::filtered_features field

This field will contain the feature bits that were filtered out because
of missing host support.

Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: 7e5292b553c9ec27e0816abdcb717f87aa6b6a8d
      
https://github.com/qemu/qemu/commit/7e5292b553c9ec27e0816abdcb717f87aa6b6a8d
  Author: Eduardo Habkost <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Add "filtered-features" property to X86CPU

This property will contain all the features that were removed from the
CPU because they are not supported by the host.

This way, libvirt or other management tools can emulate the
check/enforce behavior by checking if filtered-properties is all zeroes,
before starting the guest.

Example output where some features were missing:

  $ qemu-system-x86_64 -enable-kvm -cpu Haswell,check -S \
    -qmp unix:/tmp/m,server,nowait
  warning: host doesn't support requested feature: CPUID.01H:ECX.fma [bit 12]
  warning: host doesn't support requested feature: CPUID.01H:ECX.movbe [bit 22]
  warning: host doesn't support requested feature: CPUID.01H:ECX.tsc-deadline 
[bit 24]
  warning: host doesn't support requested feature: CPUID.01H:ECX.xsave [bit 26]
  warning: host doesn't support requested feature: CPUID.01H:ECX.avx [bit 28]
  warning: host doesn't support requested feature: CPUID.07H:EBX.fsgsbase [bit 
0]
  warning: host doesn't support requested feature: CPUID.07H:EBX.bmi1 [bit 3]
  warning: host doesn't support requested feature: CPUID.07H:EBX.hle [bit 4]
  warning: host doesn't support requested feature: CPUID.07H:EBX.avx2 [bit 5]
  warning: host doesn't support requested feature: CPUID.07H:EBX.smep [bit 7]
  warning: host doesn't support requested feature: CPUID.07H:EBX.bmi2 [bit 8]
  warning: host doesn't support requested feature: CPUID.07H:EBX.erms [bit 9]
  warning: host doesn't support requested feature: CPUID.07H:EBX.invpcid [bit 
10]
  warning: host doesn't support requested feature: CPUID.07H:EBX.rtm [bit 11]
  [...]
  $ ./QMP/qmp --path=/tmp/m \
    qom-get --path=/machine/icc-bridge/icc/child[0] \
      --property=filtered-features
  item[0].cpuid-register: EDX
  item[0].cpuid-input-eax: 2147483658
  item[0].features: 0
  item[1].cpuid-register: EAX
  item[1].cpuid-input-eax: 1073741825
  item[1].features: 0
  item[2].cpuid-register: EDX
  item[2].cpuid-input-eax: 3221225473
  item[2].features: 0
  item[3].cpuid-register: ECX
  item[3].cpuid-input-eax: 2147483649
  item[3].features: 0
  item[4].cpuid-register: EDX
  item[4].cpuid-input-eax: 2147483649
  item[4].features: 0
  item[5].cpuid-register: EBX
  item[5].cpuid-input-eax: 7
  item[5].features: 4025
  item[5].cpuid-input-ecx: 0
  item[6].cpuid-register: ECX
  item[6].cpuid-input-eax: 1
  item[6].features: 356519936
  item[7].cpuid-register: EDX
  item[7].cpuid-input-eax: 1
  item[7].features: 0

Example output when no feature is missing:

  $ qemu-system-x86_64 -enable-kvm -cpu Nehalem,enforce -S \
    -qmp unix:/tmp/m,server,nowait
  [...]
  $ ./QMP/qmp --path=/tmp/m \
    qom-get --path=/machine/icc-bridge/icc/child[0] \
      --property=filtered-features
  item[0].cpuid-register: EDX
  item[0].cpuid-input-eax: 2147483658
  item[0].features: 0
  item[1].cpuid-register: EAX
  item[1].cpuid-input-eax: 1073741825
  item[1].features: 0
  item[2].cpuid-register: EDX
  item[2].cpuid-input-eax: 3221225473
  item[2].features: 0
  item[3].cpuid-register: ECX
  item[3].cpuid-input-eax: 2147483649
  item[3].features: 0
  item[4].cpuid-register: EDX
  item[4].cpuid-input-eax: 2147483649
  item[4].features: 0
  item[5].cpuid-register: EBX
  item[5].cpuid-input-eax: 7
  item[5].features: 0
  item[5].cpuid-input-ecx: 0
  item[6].cpuid-register: ECX
  item[6].cpuid-input-eax: 1
  item[6].features: 0
  item[7].cpuid-register: EDX
  item[7].cpuid-input-eax: 1
  item[7].features: 0

Signed-off-by: Eduardo Habkost <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: b1fe9bcbceb6fb9d800f735da37aa79ac4552c6e
      
https://github.com/qemu/qemu/commit/b1fe9bcbceb6fb9d800f735da37aa79ac4552c6e
  Author: Andreas Färber <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M hw/core/qdev-properties.c
    M hw/core/qdev.c
    M include/hw/qdev-properties.h
    M qdev-monitor.c

  Log Message:
  -----------
  qdev: Let qdev_prop_parse() pass through Error

Move error reporting to callers.

Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: 868d378bb087c6003bfa0e431aec0e5871a90ff4
      
https://github.com/qemu/qemu/commit/868d378bb087c6003bfa0e431aec0e5871a90ff4
  Author: Andreas Färber <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M hw/core/qdev-properties.c
    M include/hw/qdev-properties.h

  Log Message:
  -----------
  qdev: Introduce qdev_prop_set_globals_for_type()

Reuse it in qdev_prop_set_globals().

Reviewed-by: Eduardo Habkost <address@hidden>
[AF: Renamed from qdev_prop_set_custom_globals()]
Signed-off-by: Andreas Färber <address@hidden>


  Commit: ba2bc7a42e7c7b343f996967484ce3a1543cfebc
      
https://github.com/qemu/qemu/commit/ba2bc7a42e7c7b343f996967484ce3a1543cfebc
  Author: Andreas Färber <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Emulate X86CPU subclasses for global properties

After initializing the object from its x86_def_t and before setting any
additional -cpu arguments, set any global properties for the designated
subclass <name>-{i386,x86_64}-cpu.

Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: b2a856d99281f2fee60a4313d204205bcd2c4269
      
https://github.com/qemu/qemu/commit/b2a856d99281f2fee60a4313d204205bcd2c4269
  Author: Andreas Färber <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M include/hw/i386/pc.h
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: Change CPUID model of 486 to 8

This changes the model number of 486 to 8 (DX4) which matches the
feature set presented, and actually has the CPUID instruction.

This adds a compatibility property, to keep model=0 on pc-*-1.4 and older.

Signed-off-by: H. Peter Anvin <address@hidden>
[AF: Add compat_props entry]
Tested-by: Eduardo Habkost <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: 0668af542f99b7bb1d95539829b27d5a1bcecde4
      
https://github.com/qemu/qemu/commit/0668af542f99b7bb1d95539829b27d5a1bcecde4
  Author: Eduardo Habkost <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M target-i386/cpu.c
    M target-i386/cpu.h

  Log Message:
  -----------
  target-i386: Introduce generic CPUID feature compat function

Introduce x86_cpu_compat_set_features(), that can be used to set/unset
feature bits on specific CPU models for machine-type compatibility.

Signed-off-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: 4458c23672904fa131e69897007eeb7c953be7e5
      
https://github.com/qemu/qemu/commit/4458c23672904fa131e69897007eeb7c953be7e5
  Author: Borislav Petkov <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M target-i386/cpu.c

  Log Message:
  -----------
  target-i386: n270 can MOVBE

The Atom core (cpu name "n270" in QEMU speak) supports MOVBE. This is
needed when booting 3.8 and later linux kernels built with the MATOM
target because we require MOVBE in order to boot properly now.

Signed-off-by: Borislav Petkov <address@hidden>
[ehabkost: added compat code to disable MOVBE on pc-*-1.4 and older]
Signed-off-by: Eduardo Habkost <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>


  Commit: 95efb20c714800de7eaf991f19dab6e7a29d5364
      
https://github.com/qemu/qemu/commit/95efb20c714800de7eaf991f19dab6e7a29d5364
  Author: Gerd Hoffmann <address@hidden>
  Date:   2013-05-06 (Mon, 06 May 2013)

  Changed paths:
    M hw/usb/host-libusb.c

  Log Message:
  -----------
  usb-host: live migration support for the libusb version

Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: c3268cc1135f41264cd26bcb269b3414d3c11453
      
https://github.com/qemu/qemu/commit/c3268cc1135f41264cd26bcb269b3414d3c11453
  Author: Gerd Hoffmann <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M hw/usb/host-libusb.c

  Log Message:
  -----------
  usb-host: add usb_host_full_speed_compat

Alloes to pass through usb2 devices on usb1 host controllers if possible.
Brings the libusb implementation to feature-parity with the linux usbfs
code, so the usb-host implementation in 1.5 (libusb) doesn't regress
compared to 1.4 (usbfs).

Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 9822261ce3bfbc7aec8b2a3e378892dc368910ed
      
https://github.com/qemu/qemu/commit/9822261ce3bfbc7aec8b2a3e378892dc368910ed
  Author: Hans de Goede <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M hw/usb/hcd-uhci.c

  Log Message:
  -----------
  uhci: Use an intermediate buffer for usb packet data

Due to various unfortunate reasons we cannot reliable detect a guest
cancelling a packet as soon as it happens, instead we detect cancels
with some delay.

When packets are handled async, and we directly pass the guest memory for
the packet to the usb-device as iovec, this means that the usb-device can
write to guest-memory which the guest has already re-used for other purposes
-> not good!

This patch fixes this by adding an intermediate buffer and writing back not
only the result, but also the data, of async completed packets when scanning
the schedule.

Signed-off-by: Hans de Goede <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 4e906d567a97ee45b4922001bf521dad0bde5268
      
https://github.com/qemu/qemu/commit/4e906d567a97ee45b4922001bf521dad0bde5268
  Author: Gerd Hoffmann <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M hw/usb/hcd-xhci.c

  Log Message:
  -----------
  xhci: handle USB_RET_BABBLE

Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: fd8192a5a868ddbb711abbf4a871b09bbb1dae04
      
https://github.com/qemu/qemu/commit/fd8192a5a868ddbb711abbf4a871b09bbb1dae04
  Author: Anthony Liguori <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M Makefile.objs
    M hw/core/qdev-properties.c
    M hw/core/qdev.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M include/hw/i386/pc.h
    M include/hw/qdev-properties.h
    M qapi-schema.json
    M qdev-monitor.c
    M target-i386/cpu-qom.h
    M target-i386/cpu.c
    M target-i386/cpu.h

  Log Message:
  -----------
  Merge remote-tracking branch 'afaerber/qom-cpu' into staging

# By Eduardo Habkost (6) and others
# Via Andreas Färber
* afaerber/qom-cpu:
  target-i386: n270 can MOVBE
  target-i386: Introduce generic CPUID feature compat function
  target-i386: Change CPUID model of 486 to 8
  target-i386: Emulate X86CPU subclasses for global properties
  qdev: Introduce qdev_prop_set_globals_for_type()
  qdev: Let qdev_prop_parse() pass through Error
  target-i386: Add "filtered-features" property to X86CPU
  target-i386: Introduce X86CPU::filtered_features field
  target-i386: Add "feature-words" property to X86CPU
  target-i386: Use FeatureWord loop on filter_features_for_kvm()
  target-i386: Add ECX information to FeatureWordInfo


  Commit: d7108d90100d5bac5965abef5ed73f2602adae14
      
https://github.com/qemu/qemu/commit/d7108d90100d5bac5965abef5ed73f2602adae14
  Author: Jason Wang <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M hw/net/virtio-net.c

  Log Message:
  -----------
  virtio-net: properly check the vhost status during status set

Commit 32993698 (vhost: disable on tap link down) tries to disable the vhost
also when the peer's link is down. But the check was not done properly, the
vhost were only started when:

1) peer's link is not down
2) virtio-net has already been started.

Since == have a higher precedence than &&, place a brace to make sure both the
conditions were met then does the check. This fixes the crash when doing a savem
after set the link off which let qemu crash and complains:

virtio_net_save: Assertion `!n->vhost_started' failed.

Cc: Michael S. Tsirkin <address@hidden>
Signed-off-by: Jason Wang <address@hidden>
Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: c689b4f1bac352dcfd6ecb9a1d45337de0f1de67
      
https://github.com/qemu/qemu/commit/c689b4f1bac352dcfd6ecb9a1d45337de0f1de67
  Author: Laszlo Ersek <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M qga/commands-posix.c
    M qga/main.c

  Log Message:
  -----------
  qga: set umask 0077 when daemonizing (CVE-2013-2007)

The qemu guest agent creates a bunch of files with insecure permissions
when started in daemon mode. For example:

  -rw-rw-rw- 1 root root /var/log/qemu-ga.log
  -rw-rw-rw- 1 root root /var/run/qga.state
  -rw-rw-rw- 1 root root /var/log/qga-fsfreeze-hook.log

In addition, at least all files created with the "guest-file-open" QMP
command, and all files created with shell output redirection (or
otherwise) by utilities invoked by the fsfreeze hook script are affected.

For now mask all file mode bits for "group" and "others" in
become_daemon().

Temporarily, for compatibility reasons, stick with the 0666 file-mode in
case of files newly created by the "guest-file-open" QMP call. Do so
without changing the umask temporarily.

Signed-off-by: Laszlo Ersek <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: b174de51ae397549f58b1b76efa9026b213a1efd
      
https://github.com/qemu/qemu/commit/b174de51ae397549f58b1b76efa9026b213a1efd
  Author: Anthony Liguori <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M hw/usb/hcd-uhci.c
    M hw/usb/hcd-xhci.c
    M hw/usb/host-libusb.c

  Log Message:
  -----------
  Merge remote-tracking branch 'kraxel/usb.82' into staging

# By Gerd Hoffmann (3) and Hans de Goede (1)
# Via Gerd Hoffmann
* kraxel/usb.82:
  xhci: handle USB_RET_BABBLE
  uhci: Use an intermediate buffer for usb packet data
  usb-host: add usb_host_full_speed_compat
  usb-host: live migration support for the libusb version

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


  Commit: 15d23fb96656b1ae31bf4305b2108230c29298c6
      
https://github.com/qemu/qemu/commit/15d23fb96656b1ae31bf4305b2108230c29298c6
  Author: Anthony Liguori <address@hidden>
  Date:   2013-05-07 (Tue, 07 May 2013)

  Changed paths:
    M VERSION

  Log Message:
  -----------
  Update version for qemu-1.5.0-rc0

Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/b5803aa3583e...15d23fb96656

reply via email to

[Prev in Thread] Current Thread [Next in Thread]