qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 1bc7e5: exec: Reduce CONFIG_USER_ONLY ifdeffe


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 1bc7e5: exec: Reduce CONFIG_USER_ONLY ifdeffenery
Date: Thu, 28 Jul 2016 02:30:06 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 1bc7e522d9cf1b58f2de9c8f1737be0bb5129c35
      
https://github.com/qemu/qemu/commit/1bc7e522d9cf1b58f2de9c8f1737be0bb5129c35
  Author: Igor Mammedov <address@hidden>
  Date:   2016-07-26 (Tue, 26 Jul 2016)

  Changed paths:
    M bsd-user/qemu.h
    M exec.c
    M include/exec/exec-all.h
    M linux-user/qemu.h

  Log Message:
  -----------
  exec: Reduce CONFIG_USER_ONLY ifdeffenery

Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 8b1b835035fda831b405c1947210efcf758a7ca8
      
https://github.com/qemu/qemu/commit/8b1b835035fda831b405c1947210efcf758a7ca8
  Author: Igor Mammedov <address@hidden>
  Date:   2016-07-26 (Tue, 26 Jul 2016)

  Changed paths:
    M exec.c

  Log Message:
  -----------
  exec: Don't use cpu_index to detect if cpu_exec_init()'s been called

Instead use QTAIL's tqe_prev field to detect if cpu's been
placed in list by cpu_exec_init() which is always set if
QTAIL element is in list.

Fixes SIGSEGV on failure path in case cpu_index is assigned
by board and cpu.relalize() fails before cpu_exec_init() is called.

In follow up patches, cpu_index will be assigned by boards that
support cpu hot(un)plug and need stable cpu_index that doesn't
depend on order cpus are created/removed.

Signed-off-by: Igor Mammedov <address@hidden>
Reported-by: David Gibson <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: a07f953ef4ef48058c24fb50b49e6fa28bf5f5f4
      
https://github.com/qemu/qemu/commit/a07f953ef4ef48058c24fb50b49e6fa28bf5f5f4
  Author: Igor Mammedov <address@hidden>
  Date:   2016-07-26 (Tue, 26 Jul 2016)

  Changed paths:
    M exec.c
    M include/qom/cpu.h
    M qom/cpu.c

  Log Message:
  -----------
  exec: Set cpu_index only if it's not been explictly set

It keeps the legacy behavior for all users that doesn't care
about stable cpu_index value, but would allow boards that
would support device_add/device_del to set stable cpu_index
that won't depend on order in which cpus are created/destroyed.

While at that simplify cpu_get_free_index() as cpu_index
generated by USER_ONLY and softmmu variants is the same
since none of the users support cpu-remove so far, except
of not yet released spapr/x86 device_add/delr, which
will be altered by follow up patches to set stable
cpu_index manually.

Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 69382d8b3e8600b349c191394d761dcb480502cf
      
https://github.com/qemu/qemu/commit/69382d8b3e8600b349c191394d761dcb480502cf
  Author: Igor Mammedov <address@hidden>
  Date:   2016-07-26 (Tue, 26 Jul 2016)

  Changed paths:
    M hw/core/qdev.c

  Log Message:
  -----------
  qdev: Fix object reference leak in case device.realize() fails

If device doesn't have parent assined before its realize
is called, device_set_realized() will implicitly set parent
to '/machine/unattached'.

However device_set_realized() may fail after that point at
several other points leaving not realized object dangling
in '/machine/unattached' and as result caller of

  obj = object_new()
    obj->ref == 1
  object_property_set_bool(obj,..., true, "realized",...)
    obj->ref == 2
  if (fail)
      object_unref(obj);
      obj->ref == 1

will get object leak instead of expected object destruction.

Fix it by making device_set_realized() to cleanup after itself
in case of failure.

Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: a15d2728a9aadeb801370adf5bf0b411a774a2d2
      
https://github.com/qemu/qemu/commit/a15d2728a9aadeb801370adf5bf0b411a774a2d2
  Author: Igor Mammedov <address@hidden>
  Date:   2016-07-26 (Tue, 26 Jul 2016)

  Changed paths:
    M hw/i386/pc.c

  Log Message:
  -----------
  pc: Init CPUState->cpu_index with index in possible_cpus[]

It will enshure that cpu_index for a given cpu stays the same
regardless of the order cpus has been created/deleted.

No compat code is needed as for initial cpus index in
possible_cpus[] matches cpu_index that's been auto-allocated
in cpu_exec_init().

Tha same applies for hotplug with cpu-add command if cpus are
added sequentially in increasing order as 'id' matches cpu_index.

If cpu-add had been used for creating out-of-order cpus,
that created unmigratable instance since it were not possible
to start target with the same cpu_index using old way
of migrating instance with hotplugged cpus:

* source QEMU with CLI (-smp 1,maxcpus=3 and cpu-add id=2)
  following set of cpu_index is allocated [0, 1] with
  apics set [0, 2] respectivelly
* target QEMU is started with CLI -smp 2,maxcpus=3
  resulting in set of cpu_index [0, 1] but with
  set of apics [0, 1] wich doesn't match source.

So we don't need compat code in this case as it's never worked
and newelly added device_add support would use stable cpu_index
set by machine to begin with, so it won't have above limitation
and source QEMU could be migrated to destination regardless
of the order cpus were created.

Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: David Gibson <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 9527e7bde5b59005ddb2d902973915b81b4c5b2c
      
https://github.com/qemu/qemu/commit/9527e7bde5b59005ddb2d902973915b81b4c5b2c
  Author: Igor Mammedov <address@hidden>
  Date:   2016-07-26 (Tue, 26 Jul 2016)

  Changed paths:
    M hw/i386/pc.c

  Log Message:
  -----------
  Revert "pc: Enforce adding CPUs contiguously and removing them in opposite 
order"

This reverts commit 4da7faaeb0c7dd3f7f233165d336c878f78fd1eb.

Since commit:
  pc: init CPUState->cpu_index with index in possible_cpus[]
cpu_index is stable regardless of the order cpus were created
and QEMU instance stays migratable always so limitation added
by 4da7faaeb could be safely removed.

Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 78a3930685c3159c4b8f953bd9f9e7a28655d823
      
https://github.com/qemu/qemu/commit/78a3930685c3159c4b8f953bd9f9e7a28655d823
  Author: Greg Kurz <address@hidden>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M hw/core/machine.c

  Log Message:
  -----------
  machine: Add comment to abort path in machine_set_kernel_irqchip

We're not supposed to abort when the user passes a bogus value.
Since the checking is done in visit_type_OnOffSplit(), the call
to abort() is legitimate. Let's add a comment to make it
explicit.

Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: b3443f43f45e06971d87c985bb0316c1e40259c9
      
https://github.com/qemu/qemu/commit/b3443f43f45e06971d87c985bb0316c1e40259c9
  Author: Greg Kurz <address@hidden>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

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

  Log Message:
  -----------
  qdev: ignore GlobalProperty.errp for hotplugged devices

This patch ensures QEMU won't terminate while hotplugging a device if the
global property cannot be set and errp points to error_fatal or error_abort.

While here, it also fixes indentation of the typename argument.

Suggested-by: Eduardo Habkost <address@hidden>
Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 03f28efbbb0ee521611e0eb28b45096b3598fb34
      
https://github.com/qemu/qemu/commit/03f28efbbb0ee521611e0eb28b45096b3598fb34
  Author: Greg Kurz <address@hidden>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  vl: exit if a bad property value is passed to -global

When passing '-global driver=host-powerpc64-cpu,property=compat,value=foo'
on the command line, without this patch, we get the following warning per
device (which means many lines if the guests has many cpus):

qemu-system-ppc64: Warning: can't apply global host-powerpc64-cpu.compat=foo:
    Invalid compatibility mode "foo"

... and QEMU continues execution, ignoring the property.

With this patch, we get a single line:

qemu-system-ppc64: can't apply global host-powerpc64-cpu.compat=foo:
    Invalid compatibility mode "foo"

... and QEMU exits.

The previous behavior is kept for hotplugged devices since we don't want
QEMU to exit when doing device_add.

Reviewed-by: David Gibson <address@hidden>
Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>


  Commit: 21a21b853a1bb606358af61e738abfb9aecbd720
      
https://github.com/qemu/qemu/commit/21a21b853a1bb606358af61e738abfb9aecbd720
  Author: Peter Maydell <address@hidden>
  Date:   2016-07-27 (Wed, 27 Jul 2016)

  Changed paths:
    M bsd-user/qemu.h
    M exec.c
    M hw/core/machine.c
    M hw/core/qdev-properties.c
    M hw/core/qdev.c
    M hw/i386/pc.c
    M include/exec/exec-all.h
    M include/hw/qdev-core.h
    M include/qom/cpu.h
    M linux-user/qemu.h
    M qom/cpu.c
    M vl.c

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

x86 and machine queue, 2016-07-27

Highlights:
* Fixes to allow CPU hotplug/unplug in any order;
* Exit QEMU on invalid global properties.

# gpg: Signature made Wed 27 Jul 2016 15:28:53 BST
# 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:
  vl: exit if a bad property value is passed to -global
  qdev: ignore GlobalProperty.errp for hotplugged devices
  machine: Add comment to abort path in machine_set_kernel_irqchip
  Revert "pc: Enforce adding CPUs contiguously and removing them in opposite 
order"
  pc: Init CPUState->cpu_index with index in possible_cpus[]
  qdev: Fix object reference leak in case device.realize() fails
  exec: Set cpu_index only if it's not been explictly set
  exec: Don't use cpu_index to detect if cpu_exec_init()'s been called
  exec: Reduce CONFIG_USER_ONLY ifdeffenery

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


Compare: https://github.com/qemu/qemu/compare/51313fe4f4af...21a21b853a1b

reply via email to

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