All of lore.kernel.org
 help / color / mirror / Atom feed
* Difference between 'current_machine' vs MACHINE(qdev_get_machine())
@ 2020-01-09 11:23 Philippe Mathieu-Daudé
  2020-01-09 12:01 ` Paolo Bonzini
  0 siblings, 1 reply; 5+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-09 11:23 UTC (permalink / raw)
  To: qemu-devel, Like Xu, Eduardo Habkost
  Cc: Peter Maydell, Igor Mammedov, Daniel P . Berrange,
	Markus Armbruster, Paolo Bonzini

Hi,

"hw/boards.h" declare current_machine, and vl.c defines it:

     current_machine = 
MACHINE(object_new_with_class(OBJECT_CLASS(machine_class)));
     object_property_add_child(object_get_root(), "machine",
                               OBJECT(current_machine), &error_abort);

The bigger user of 'current_machine' is the accel/KVM code.

Recently in a0628599f..cc7d44c2e0 "Replace global smp variables with 
machine smp properties" we started to use MACHINE(qdev_get_machine()).

qdev_get_machine() resolves the machine in the QOM composition tree.
I am confused by this comment:

   /* qdev_get_machine() can return something that's not TYPE_MACHINE
    * if this is one of the user-only emulators; in that case there's
    * no need to check the ignore_memory_transaction_failures board flag.
    */

Following a0628599f..cc7d44c2e0, a5e0b33119 use 'current_machine' again.

What are the differences between both form, when should we use one or 
another (or can we use a single one?). Can this break user-only mode?

Thanks,

Phil.



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-01-13 15:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-09 11:23 Difference between 'current_machine' vs MACHINE(qdev_get_machine()) Philippe Mathieu-Daudé
2020-01-09 12:01 ` Paolo Bonzini
2020-01-09 15:24   ` Like Xu
2020-01-10 10:15     ` Philippe Mathieu-Daudé
2020-01-13 15:56   ` Markus Armbruster

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.