qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 771a13: i386: Unset cannot_destroy_with_objec


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 771a13: i386: Unset cannot_destroy_with_object_finalize_ye...
Date: Thu, 02 Mar 2017 04:30:11 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 771a13e90d24bc3db5ae102cf0da6f645eecf06c
      
https://github.com/qemu/qemu/commit/771a13e90d24bc3db5ae102cf0da6f645eecf06c
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  i386: Unset cannot_destroy_with_object_finalize_yet on "host" model

The class is now safe because the assert(kvm_enabled()) line was
removed by commit e435601058e656e6d24e3e87b187e5518f7bf16a.

Message-Id: <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: f48c88370399b106ab7ae3fe26aa49f52bb57cce
      
https://github.com/qemu/qemu/commit/f48c88370399b106ab7ae3fe26aa49f52bb57cce
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

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

  Log Message:
  -----------
  i386: Add ordering field to CPUClass

Instead of using kvm_enabled to order the "-cpu help" list, use a
new "ordering" field for that.

Message-Id: <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 44bd8e530661be1d22ae0f461a5c9bdbcc3847ec
      
https://github.com/qemu/qemu/commit/44bd8e530661be1d22ae0f461a5c9bdbcc3847ec
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

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

  Log Message:
  -----------
  i386: Rename X86CPU::host_features to X86CPU::max_features

Rename the field and add a small comment to make its purpose
clearer.

Message-Id: <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: b8d834a00fa3ed4dad7d371e1a00938a126a54a0
      
https://github.com/qemu/qemu/commit/b8d834a00fa3ed4dad7d371e1a00938a126a54a0
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  i386: Reorganize and document CPUID initialization steps

CPU runnability checks and CPU model expansion have slightly
different requirements. Document the steps involved in loading a
CPU model and realizing a CPU, so their requirements and purpose
are clearly defined.

This patch doesn't change any implementation. It just add
comments, rename the x86_cpu_load_features() function for clarity
(so it won't be confused with x86_cpu_load_def()), and move
x86_cpu_filter_features() closer to it.

Message-Id: <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: a357a65b66a59488f3f5f09298a01df31319c624
      
https://github.com/qemu/qemu/commit/a357a65b66a59488f3f5f09298a01df31319c624
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M qapi-schema.json

  Log Message:
  -----------
  qapi-schema: Comment about full expansion of non-migration-safe models

Add a note warning that static expansion may not be 100% accurate
when the CPU model is not migration-safe. This will be the case
on x86 when expansing the "host" CPU model, because there are
"host" features that can't have a migration-safe representation
(e.g. "host-cache-info").

Message-Id: <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: c62f2630f8e8765677020ab0a464f94d4ac433b6
      
https://github.com/qemu/qemu/commit/c62f2630f8e8765677020ab0a464f94d4ac433b6
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  i386: Create "max" CPU model

Rename the existing "host" CPU model to "max, and set it to
kvm_enabled=false. The new "max" CPU model will be able to enable
all features supported by TCG out of the box, because its logic
is based on x86_cpu_get_supported_feature_word(), which already
works with TCG.

A new KVM-specific "host" class was added, that simply inherits
everything from "max" except the 'ordering' and 'description'
fields.

Message-Id: <address@hidden>
Tested-by: Richard W.M. Jones <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 6900d1cc8aa6490d40f5ffbb91ada9d5733868f5
      
https://github.com/qemu/qemu/commit/6900d1cc8aa6490d40f5ffbb91ada9d5733868f5
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  i386: Make "max" model not use any host CPUID info on TCG

Instead of reporting host CPUID data on "max", use the qemu64 CPU
model as reference to initialize CPUID
vendor/family/model/stepping/model-id.

Message-Id: <address@hidden>
Tested-by: Richard W.M. Jones <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 0bacd8b3046fbc9bf710619ac3edd4bbca2b40ec
      
https://github.com/qemu/qemu/commit/0bacd8b3046fbc9bf710619ac3edd4bbca2b40ec
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

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

  Log Message:
  -----------
  i386: Don't set CPUClass::cpu_def on "max" model

Host CPUID info is used by the "max" CPU model only in KVM mode.
Move the initialization of CPUID data for "max" from class_init
to instance_init, and don't set CPUClass::cpu_def for "max".

Message-Id: <address@hidden>
Tested-by: Richard W.M. Jones <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 5adbed3088ded43acdfb5da749441c38af671833
      
https://github.com/qemu/qemu/commit/5adbed3088ded43acdfb5da749441c38af671833
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

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

  Log Message:
  -----------
  i386: Define static "base" CPU model

The query-cpu-model-expand QMP command needs at least one static
model, to allow the "static" expansion mode to be implemented.
Instead of defining static versions of every CPU model, define a
"base" CPU model that has absolutely no feature flag enabled.

Despite having no CPUID data set at all, "-cpu base" is even a
functional CPU:

* It can boot a Slackware Linux 1.01 image with a Linux 0.99.12
  kernel[1].
* It is even possible to boot[2] a modern Fedora x86_64 guest by
  manually enabling the following CPU features:
  -cpu base,+lm,+msr,+pae,+fpu,+cx8,+cmov,+sse,+sse2,+fxsr

[1] http://www.qemu-advent-calendar.org/2014/#day-1
[2] This is what can be seen in the guest:
    address@hidden ~]# cat /proc/cpuinfo
    processor       : 0
    vendor_id       : unknown
    cpu family      : 0
    model           : 0
    model name      : 00/00
    stepping        : 0
    physical id     : 0
    siblings        : 1
    core id         : 0
    cpu cores       : 1
    apicid          : 0
    initial apicid  : 0
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 1
    wp              : yes
    flags           : fpu msr pae cx8 cmov fxsr sse sse2 lm nopl
    bugs            :
    bogomips        : 5832.70
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 36 bits physical, 48 bits virtual
    power management:

    address@hidden ~]# x86info -v -a
    x86info v1.30.  Dave Jones 2001-2011
    Feedback to <address@hidden>.

    No TSC, MHz calculation cannot be performed.
    Unknown vendor (0)
    MP Table:

    Family: 0 Model: 0 Stepping: 0
    CPU Model (x86info's best guess):

    eax in: 0x00000000, eax = 00000001 ebx = 00000000 ecx = 00000000 edx = 
00000000
    eax in: 0x00000001, eax = 00000000 ebx = 00000800 ecx = 00000000 edx = 
07008161

    eax in: 0x80000000, eax = 80000001 ebx = 00000000 ecx = 00000000 edx = 
00000000
    eax in: 0x80000001, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 
20000000

    Feature flags:
     fpu            Onboard FPU
     msr            Model-Specific Registers
     pae            Physical Address Extensions
     cx8            CMPXCHG8 instruction
     cmov           CMOV instruction
     fxsr           FXSAVE and FXRSTOR instructions
     sse            SSE support
     sse2           SSE2 support

    Long NOPs supported: yes

    Address sizes : 0 bits physical, 0 bits virtual
    0MHz processor (estimate).

     running at an estimated 0MHz
    address@hidden ~]#

Message-Id: <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: f99fd7ca2afd33bb067e78740c4ee5a689494690
      
https://github.com/qemu/qemu/commit/f99fd7ca2afd33bb067e78740c4ee5a689494690
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M monitor.c
    M target/i386/cpu.c

  Log Message:
  -----------
  i386: Implement query-cpu-model-expansion QMP command

Implement query-cpu-model-expansion for target-i386.

This should meet all the requirements while being simple. In the
case of static expansion, it will use the new "base" CPU model,
and in the case of full expansion, it will keep the original CPU
model name+props, and append extra properties.

A future follow-up should improve the implementation of
type=full, so that it returns more detailed data, including every
writable QOM property in the CPU object.

Cc: address@hidden
Cc: Jiri Denemark <address@hidden>
Message-Id: <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: b8097deb359bbbd92592b9670adfe9e245b2d0bd
      
https://github.com/qemu/qemu/commit/b8097deb359bbbd92592b9670adfe9e245b2d0bd
  Author: Eduardo Habkost <address@hidden>
  Date:   2017-02-27 (Mon, 27 Feb 2017)

  Changed paths:
    M target/i386/cpu.c

  Log Message:
  -----------
  i386: Improve query-cpu-model-expansion full mode

This keeps the same results on type=static expansion, but make
type=full expansion return every single QOM property on the CPU
object that have a different value from the "base' CPU model,
plus all the CPU feature flag properties.

Cc: Jiri Denemark <address@hidden>
Message-Id: <address@hidden>
Tested-by: Jiri Denemark <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 666095c852d32df65b5982fcc8c85332979b7fc1
      
https://github.com/qemu/qemu/commit/666095c852d32df65b5982fcc8c85332979b7fc1
  Author: Peter Maydell <address@hidden>
  Date:   2017-03-02 (Thu, 02 Mar 2017)

  Changed paths:
    M monitor.c
    M qapi-schema.json
    M target/i386/cpu-qom.h
    M target/i386/cpu.c
    M target/i386/cpu.h

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/ehabkost/tags/x86-pull-request' into 
staging

x86 queue, 2017-02-27

"-cpu max" and query-cpu-model-expansion support for x86. This
should be the last x86 pull request before 2.9 soft freeze.

# gpg: Signature made Mon 27 Feb 2017 16:24:15 GMT
# gpg:                using RSA key 0x2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <address@hidden>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* remotes/ehabkost/tags/x86-pull-request:
  i386: Improve query-cpu-model-expansion full mode
  i386: Implement query-cpu-model-expansion QMP command
  i386: Define static "base" CPU model
  i386: Don't set CPUClass::cpu_def on "max" model
  i386: Make "max" model not use any host CPUID info on TCG
  i386: Create "max" CPU model
  qapi-schema: Comment about full expansion of non-migration-safe models
  i386: Reorganize and document CPUID initialization steps
  i386: Rename X86CPU::host_features to X86CPU::max_features
  i386: Add ordering field to CPUClass
  i386: Unset cannot_destroy_with_object_finalize_yet on "host" model

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/f1d640524d05...666095c852d3

reply via email to

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