All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/2] vga: make stdvga the global default
@ 2018-07-05  6:43 Gerd Hoffmann
  2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 1/2] vga: set default_display for all machines using cirrus Gerd Hoffmann
  2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default Gerd Hoffmann
  0 siblings, 2 replies; 15+ messages in thread
From: Gerd Hoffmann @ 2018-07-05  6:43 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Alexander Graf, Eduardo Habkost, Marcel Apfelbaum,
	Aleksandar Markovic, Aurelien Jarno, Michael S. Tsirkin,
	David Gibson, BALATON Zoltan, qemu-ppc, Richard Henderson,
	Sebastian Bauer, Gerd Hoffmann



Gerd Hoffmann (2):
  vga: set default_display for all machines using cirrus.
  vga: don't pick cirrus by default

 hw/alpha/dp264.c     | 1 +
 hw/i386/pc_piix.c    | 2 +-
 hw/mips/mips_malta.c | 1 +
 hw/mips/mips_r4k.c   | 1 +
 vl.c                 | 2 --
 5 files changed, 4 insertions(+), 3 deletions(-)

-- 
2.9.3

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

* [Qemu-devel] [PATCH v2 1/2] vga: set default_display for all machines using cirrus.
  2018-07-05  6:43 [Qemu-devel] [PATCH v2 0/2] vga: make stdvga the global default Gerd Hoffmann
@ 2018-07-05  6:43 ` Gerd Hoffmann
  2018-07-05 16:35   ` Eduardo Habkost
  2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default Gerd Hoffmann
  1 sibling, 1 reply; 15+ messages in thread
From: Gerd Hoffmann @ 2018-07-05  6:43 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Alexander Graf, Eduardo Habkost, Marcel Apfelbaum,
	Aleksandar Markovic, Aurelien Jarno, Michael S. Tsirkin,
	David Gibson, BALATON Zoltan, qemu-ppc, Richard Henderson,
	Sebastian Bauer, Gerd Hoffmann

Explicitly set MachineClass->default_display to "cirrus" for all machine
types (alpha, mips, old i386 versions) which use cirrus today, so they
don't depend on cirrus being the default display device.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 hw/alpha/dp264.c     | 1 +
 hw/i386/pc_piix.c    | 2 +-
 hw/mips/mips_malta.c | 1 +
 hw/mips/mips_r4k.c   | 1 +
 4 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c
index 80b987f7fb..668e6d099f 100644
--- a/hw/alpha/dp264.c
+++ b/hw/alpha/dp264.c
@@ -182,6 +182,7 @@ static void clipper_machine_init(MachineClass *mc)
     mc->max_cpus = 4;
     mc->is_default = 1;
     mc->default_cpu_type = ALPHA_CPU_TYPE_NAME("ev67");
+    mc->default_display = "cirrus";
 }
 
 DEFINE_MACHINE("clipper", clipper_machine_init)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index dc09466b3e..bcf866ee34 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -566,7 +566,7 @@ static void pc_i440fx_2_1_machine_options(MachineClass *m)
     PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
     pc_i440fx_2_2_machine_options(m);
     m->hw_version = "2.1.0";
-    m->default_display = NULL;
+    m->default_display = "cirrus";
     SET_MACHINE_COMPAT(m, PC_COMPAT_2_1);
     pcmc->smbios_uuid_encoded = false;
     pcmc->enforce_aligned_dimm = false;
diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
index 3467451482..998971c53a 100644
--- a/hw/mips/mips_malta.c
+++ b/hw/mips/mips_malta.c
@@ -1242,6 +1242,7 @@ static void mips_malta_machine_init(MachineClass *mc)
     mc->block_default_type = IF_IDE;
     mc->max_cpus = 16;
     mc->is_default = 1;
+    mc->default_display = "cirrus";
 #ifdef TARGET_MIPS64
     mc->default_cpu_type = MIPS_CPU_TYPE_NAME("20Kc");
 #else
diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c
index d5725d0555..c4c7ee8aa5 100644
--- a/hw/mips/mips_r4k.c
+++ b/hw/mips/mips_r4k.c
@@ -295,6 +295,7 @@ static void mips_machine_init(MachineClass *mc)
     mc->desc = "mips r4k platform";
     mc->init = mips_r4k_init;
     mc->block_default_type = IF_IDE;
+    mc->default_display = "cirrus";
 #ifdef TARGET_MIPS64
     mc->default_cpu_type = MIPS_CPU_TYPE_NAME("R4000");
 #else
-- 
2.9.3

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

* [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-05  6:43 [Qemu-devel] [PATCH v2 0/2] vga: make stdvga the global default Gerd Hoffmann
  2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 1/2] vga: set default_display for all machines using cirrus Gerd Hoffmann
@ 2018-07-05  6:43 ` Gerd Hoffmann
  2018-07-05 16:35   ` Eduardo Habkost
  1 sibling, 1 reply; 15+ messages in thread
From: Gerd Hoffmann @ 2018-07-05  6:43 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Alexander Graf, Eduardo Habkost, Marcel Apfelbaum,
	Aleksandar Markovic, Aurelien Jarno, Michael S. Tsirkin,
	David Gibson, BALATON Zoltan, qemu-ppc, Richard Henderson,
	Sebastian Bauer, Gerd Hoffmann

Now that all machines which need cirrus explicitly select it qemu
doesn't need to consider it as default display any more.  Drop it.

With this patch applied all ppc machine types will use "std" as default
display, no matter whenever cirrus-vga is compiled in or not.

Fixes: 29f9cef39e ppc: Include vga cirrus card into the compiling process
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 vl.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/vl.c b/vl.c
index 16b913f9d5..117e4e6879 100644
--- a/vl.c
+++ b/vl.c
@@ -4475,8 +4475,6 @@ int main(int argc, char **argv, char **envp)
     if (default_vga) {
         if (machine_class->default_display) {
             vga_model = machine_class->default_display;
-        } else if (vga_interface_available(VGA_CIRRUS)) {
-            vga_model = "cirrus";
         } else if (vga_interface_available(VGA_STD)) {
             vga_model = "std";
         }
-- 
2.9.3

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default Gerd Hoffmann
@ 2018-07-05 16:35   ` Eduardo Habkost
  2018-07-06  6:53     ` Gerd Hoffmann
  0 siblings, 1 reply; 15+ messages in thread
From: Eduardo Habkost @ 2018-07-05 16:35 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: qemu-devel, Paolo Bonzini, Alexander Graf, Marcel Apfelbaum,
	Aleksandar Markovic, Aurelien Jarno, Michael S. Tsirkin,
	David Gibson, BALATON Zoltan, qemu-ppc, Richard Henderson,
	Sebastian Bauer

On Thu, Jul 05, 2018 at 08:43:48AM +0200, Gerd Hoffmann wrote:
> Now that all machines which need cirrus explicitly select it qemu
> doesn't need to consider it as default display any more.  Drop it.
> 
> With this patch applied all ppc machine types will use "std" as default
> display, no matter whenever cirrus-vga is compiled in or not.
> 
> Fixes: 29f9cef39e ppc: Include vga cirrus card into the compiling process
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

Do we have a list of all machine-types with default_display==NULL
that would be affected by this?  For reference, this will affect
the machines in the following binaries:

default-configs/alpha-softmmu.mak:CONFIG_VGA_CIRRUS=y
default-configs/i386-softmmu.mak:CONFIG_VGA_CIRRUS=y
default-configs/mips-softmmu-common.mak:CONFIG_VGA_CIRRUS=y
default-configs/ppc-softmmu.mak:CONFIG_VGA_CIRRUS=y
default-configs/x86_64-softmmu.mak:CONFIG_VGA_CIRRUS=y


> ---
>  vl.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/vl.c b/vl.c
> index 16b913f9d5..117e4e6879 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -4475,8 +4475,6 @@ int main(int argc, char **argv, char **envp)
>      if (default_vga) {
>          if (machine_class->default_display) {
>              vga_model = machine_class->default_display;
> -        } else if (vga_interface_available(VGA_CIRRUS)) {
> -            vga_model = "cirrus";
>          } else if (vga_interface_available(VGA_STD)) {
>              vga_model = "std";
>          }
> -- 
> 2.9.3
> 

-- 
Eduardo

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

* Re: [Qemu-devel] [PATCH v2 1/2] vga: set default_display for all machines using cirrus.
  2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 1/2] vga: set default_display for all machines using cirrus Gerd Hoffmann
@ 2018-07-05 16:35   ` Eduardo Habkost
  0 siblings, 0 replies; 15+ messages in thread
From: Eduardo Habkost @ 2018-07-05 16:35 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: qemu-devel, Paolo Bonzini, Alexander Graf, Marcel Apfelbaum,
	Aleksandar Markovic, Aurelien Jarno, Michael S. Tsirkin,
	David Gibson, BALATON Zoltan, qemu-ppc, Richard Henderson,
	Sebastian Bauer

On Thu, Jul 05, 2018 at 08:43:47AM +0200, Gerd Hoffmann wrote:
> Explicitly set MachineClass->default_display to "cirrus" for all machine
> types (alpha, mips, old i386 versions) which use cirrus today, so they
> don't depend on cirrus being the default display device.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

-- 
Eduardo

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-05 16:35   ` Eduardo Habkost
@ 2018-07-06  6:53     ` Gerd Hoffmann
  2018-07-09 21:08       ` Eduardo Habkost
  0 siblings, 1 reply; 15+ messages in thread
From: Gerd Hoffmann @ 2018-07-06  6:53 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: qemu-devel, Paolo Bonzini, Alexander Graf, Marcel Apfelbaum,
	Aleksandar Markovic, Aurelien Jarno, Michael S. Tsirkin,
	David Gibson, BALATON Zoltan, qemu-ppc, Richard Henderson,
	Sebastian Bauer

On Thu, Jul 05, 2018 at 01:35:01PM -0300, Eduardo Habkost wrote:
> Do we have a list of all machine-types with default_display==NULL
> that would be affected by this?

There are not many which use the default vga thing in the first place.
Workflow is this:

 (1) vl.c calls select_vgahw(vga_model) after setting vga_model.
 (2) select_hw() sets vga_interface_type.
 (3) isa_vga_init() and pci_vga_init() look at vga_interface_type.

Checking where either vga_interface_type or *_vga_init() is used doesn't
yield many places:

# find -name "*.[ch]" | xargs egrep '((isa|pci)_vga_init|vga_interface_type)'
./hw/alpha/dp264.c:    pci_vga_init(pci_bus);
./hw/i386/pc.c:        PCIDevice *pcidev = pci_vga_init(pci_bus);
./hw/i386/pc.c:        ISADevice *isadev = isa_vga_init(isa_bus);
./hw/isa/isa-bus.c:ISADevice *isa_vga_init(ISABus *bus)
./hw/isa/isa-bus.c:    switch (vga_interface_type) {
./hw/mips/mips_malta.c:    pci_vga_init(pci_bus);
./hw/mips/mips_r4k.c:    isa_vga_init(isa_bus);
./hw/pci/pci.c:PCIDevice *pci_vga_init(PCIBus *bus)
./hw/pci/pci.c:    switch (vga_interface_type) {
./hw/ppc/mac_newworld.c:    pci_vga_init(pci_bus);
./hw/ppc/mac_oldworld.c:    pci_vga_init(pci_bus);
./hw/ppc/spapr.c:    switch (vga_interface_type) {
./hw/ppc/spapr.c:        return pci_vga_init(pci_bus) != NULL;
./hw/ppc/prep.c:    pci_vga_init(pci_bus);
./hw/ppc/prep.c:        pci_vga_init(pci_bus);
./hw/sparc/sun4m.c:        if (vga_interface_type == VGA_CG3) {
./include/hw/isa/isa.h:ISADevice *isa_vga_init(ISABus *bus);
./include/hw/pci/pci.h:PCIDevice *pci_vga_init(PCIBus *bus);
./include/sysemu/sysemu.h:extern int vga_interface_type;
./include/sysemu/sysemu.h:#define xenfb_enabled (vga_interface_type == VGA_XENFB)
./vl.c:int vga_interface_type = VGA_NONE;
./vl.c:    assert(vga_interface_type == VGA_NONE);
./vl.c:            vga_interface_type = t;
./vl.c:        vga_interface_type = VGA_DEVICE;

So it is alpha, mips, i386, ppc.

Also some hits vl.c, headers and isa/pci code.
Xen and sparc check for something which is never picked as default,
so no worries here.

cheers,
  Gerd

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-06  6:53     ` Gerd Hoffmann
@ 2018-07-09 21:08       ` Eduardo Habkost
  2018-07-09 21:23         ` Eduardo Habkost
  0 siblings, 1 reply; 15+ messages in thread
From: Eduardo Habkost @ 2018-07-09 21:08 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Aleksandar Markovic, Michael S. Tsirkin, Richard Henderson,
	qemu-devel, Alexander Graf, qemu-ppc, Paolo Bonzini,
	Sebastian Bauer, Aurelien Jarno, David Gibson

On Fri, Jul 06, 2018 at 08:53:42AM +0200, Gerd Hoffmann wrote:
> On Thu, Jul 05, 2018 at 01:35:01PM -0300, Eduardo Habkost wrote:
> > Do we have a list of all machine-types with default_display==NULL
> > that would be affected by this?
> 
> There are not many which use the default vga thing in the first place.
> Workflow is this:
> 
>  (1) vl.c calls select_vgahw(vga_model) after setting vga_model.
>  (2) select_hw() sets vga_interface_type.
>  (3) isa_vga_init() and pci_vga_init() look at vga_interface_type.
> 
> Checking where either vga_interface_type or *_vga_init() is used doesn't
> yield many places:
> 
> # find -name "*.[ch]" | xargs egrep '((isa|pci)_vga_init|vga_interface_type)'
> ./hw/alpha/dp264.c:    pci_vga_init(pci_bus);
> ./hw/i386/pc.c:        PCIDevice *pcidev = pci_vga_init(pci_bus);
> ./hw/i386/pc.c:        ISADevice *isadev = isa_vga_init(isa_bus);
> ./hw/isa/isa-bus.c:ISADevice *isa_vga_init(ISABus *bus)
> ./hw/isa/isa-bus.c:    switch (vga_interface_type) {
> ./hw/mips/mips_malta.c:    pci_vga_init(pci_bus);
> ./hw/mips/mips_r4k.c:    isa_vga_init(isa_bus);
> ./hw/pci/pci.c:PCIDevice *pci_vga_init(PCIBus *bus)
> ./hw/pci/pci.c:    switch (vga_interface_type) {
> ./hw/ppc/mac_newworld.c:    pci_vga_init(pci_bus);
> ./hw/ppc/mac_oldworld.c:    pci_vga_init(pci_bus);
> ./hw/ppc/spapr.c:    switch (vga_interface_type) {
> ./hw/ppc/spapr.c:        return pci_vga_init(pci_bus) != NULL;
> ./hw/ppc/prep.c:    pci_vga_init(pci_bus);
> ./hw/ppc/prep.c:        pci_vga_init(pci_bus);
> ./hw/sparc/sun4m.c:        if (vga_interface_type == VGA_CG3) {
> ./include/hw/isa/isa.h:ISADevice *isa_vga_init(ISABus *bus);
> ./include/hw/pci/pci.h:PCIDevice *pci_vga_init(PCIBus *bus);
> ./include/sysemu/sysemu.h:extern int vga_interface_type;
> ./include/sysemu/sysemu.h:#define xenfb_enabled (vga_interface_type == VGA_XENFB)
> ./vl.c:int vga_interface_type = VGA_NONE;
> ./vl.c:    assert(vga_interface_type == VGA_NONE);
> ./vl.c:            vga_interface_type = t;
> ./vl.c:        vga_interface_type = VGA_DEVICE;
> 
> So it is alpha, mips, i386, ppc.

Right, and all of them have both CONFIG_VGA_CIRRUS and
CONFIG_VGA_PCI enabled.  This means all of them will be affected
by this patch if they have any machines with
default_display==NULL.

At least on x86 we still have a few machines with
default_display==NULL: isapc, xenpv, xenfv.  We need to fix them
before we apply this patch.

I didn't check alpha/mips/ppc yet.

-- 
Eduardo

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-09 21:08       ` Eduardo Habkost
@ 2018-07-09 21:23         ` Eduardo Habkost
  2018-07-09 22:26           ` Sebastian Bauer
  0 siblings, 1 reply; 15+ messages in thread
From: Eduardo Habkost @ 2018-07-09 21:23 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: Aleksandar Markovic, Michael S. Tsirkin, Richard Henderson,
	qemu-devel, Alexander Graf, qemu-ppc, Paolo Bonzini,
	Sebastian Bauer, Aurelien Jarno, David Gibson

On Mon, Jul 09, 2018 at 06:08:33PM -0300, Eduardo Habkost wrote:
> On Fri, Jul 06, 2018 at 08:53:42AM +0200, Gerd Hoffmann wrote:
> > On Thu, Jul 05, 2018 at 01:35:01PM -0300, Eduardo Habkost wrote:
> > > Do we have a list of all machine-types with default_display==NULL
> > > that would be affected by this?
> > 
> > There are not many which use the default vga thing in the first place.
> > Workflow is this:
> > 
> >  (1) vl.c calls select_vgahw(vga_model) after setting vga_model.
> >  (2) select_hw() sets vga_interface_type.
> >  (3) isa_vga_init() and pci_vga_init() look at vga_interface_type.
> > 
> > Checking where either vga_interface_type or *_vga_init() is used doesn't
> > yield many places:
> > 
> > # find -name "*.[ch]" | xargs egrep '((isa|pci)_vga_init|vga_interface_type)'
> > ./hw/alpha/dp264.c:    pci_vga_init(pci_bus);
> > ./hw/i386/pc.c:        PCIDevice *pcidev = pci_vga_init(pci_bus);
> > ./hw/i386/pc.c:        ISADevice *isadev = isa_vga_init(isa_bus);
> > ./hw/isa/isa-bus.c:ISADevice *isa_vga_init(ISABus *bus)
> > ./hw/isa/isa-bus.c:    switch (vga_interface_type) {
> > ./hw/mips/mips_malta.c:    pci_vga_init(pci_bus);
> > ./hw/mips/mips_r4k.c:    isa_vga_init(isa_bus);
> > ./hw/pci/pci.c:PCIDevice *pci_vga_init(PCIBus *bus)
> > ./hw/pci/pci.c:    switch (vga_interface_type) {
> > ./hw/ppc/mac_newworld.c:    pci_vga_init(pci_bus);
> > ./hw/ppc/mac_oldworld.c:    pci_vga_init(pci_bus);
> > ./hw/ppc/spapr.c:    switch (vga_interface_type) {
> > ./hw/ppc/spapr.c:        return pci_vga_init(pci_bus) != NULL;
> > ./hw/ppc/prep.c:    pci_vga_init(pci_bus);
> > ./hw/ppc/prep.c:        pci_vga_init(pci_bus);
> > ./hw/sparc/sun4m.c:        if (vga_interface_type == VGA_CG3) {
> > ./include/hw/isa/isa.h:ISADevice *isa_vga_init(ISABus *bus);
> > ./include/hw/pci/pci.h:PCIDevice *pci_vga_init(PCIBus *bus);
> > ./include/sysemu/sysemu.h:extern int vga_interface_type;
> > ./include/sysemu/sysemu.h:#define xenfb_enabled (vga_interface_type == VGA_XENFB)
> > ./vl.c:int vga_interface_type = VGA_NONE;
> > ./vl.c:    assert(vga_interface_type == VGA_NONE);
> > ./vl.c:            vga_interface_type = t;
> > ./vl.c:        vga_interface_type = VGA_DEVICE;
> > 
> > So it is alpha, mips, i386, ppc.
> 
> Right, and all of them have both CONFIG_VGA_CIRRUS and
> CONFIG_VGA_PCI enabled.  This means all of them will be affected
> by this patch if they have any machines with
> default_display==NULL.
> 
> At least on x86 we still have a few machines with
> default_display==NULL: isapc, xenpv, xenfv.  We need to fix them
> before we apply this patch.
> 
> I didn't check alpha/mips/ppc yet.

List of machines with default_display==NULL on those
architectures:

alpha:
none                 empty machine

mips:
mipssim              MIPS MIPSsim platform
none                 empty machine

ppc*:
bamboo               bamboo
mpc8544ds            mpc8544ds
none                 empty machine
powernv              IBM PowerNV (Non-Virtualized)
ppce500              generic paravirt e500 platform
ref405ep             ref405ep
sam460ex             aCube Sam460ex
taihu                taihu
virtex-ml507         Xilinx Virtex ML507 reference design

x86_64:
isapc                ISA-only PC
none                 empty machine
xenfv                Xen Fully-virtualized PC
xenpv                Xen Para-virtualized PC

Tested on qemu.git master after applying this series.  List
generated by hacking machine_parse(), so some machines may be
missing if they are disabled at build time.

-- 
Eduardo

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-09 21:23         ` Eduardo Habkost
@ 2018-07-09 22:26           ` Sebastian Bauer
  2018-07-11 15:48             ` Eduardo Habkost
  0 siblings, 1 reply; 15+ messages in thread
From: Sebastian Bauer @ 2018-07-09 22:26 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: Gerd Hoffmann, Aleksandar Markovic, Michael S. Tsirkin,
	Richard Henderson, qemu-devel, Alexander Graf, qemu-ppc,
	Paolo Bonzini, Aurelien Jarno, David Gibson

Hi,

Am 2018-07-09 23:23, schrieb Eduardo Habkost:
> List of machines with default_display==NULL on those
> architectures:
> 
> alpha:
> none                 empty machine
> 
> mips:
> mipssim              MIPS MIPSsim platform
> none                 empty machine
> 
> ppc*:
> bamboo               bamboo
> mpc8544ds            mpc8544ds
> none                 empty machine
> powernv              IBM PowerNV (Non-Virtualized)
> ppce500              generic paravirt e500 platform
> ref405ep             ref405ep
> sam460ex             aCube Sam460ex
> taihu                taihu
> virtex-ml507         Xilinx Virtex ML507 reference design
> 
> x86_64:
> isapc                ISA-only PC
> none                 empty machine
> xenfv                Xen Fully-virtualized PC
> xenpv                Xen Para-virtualized PC

Which of these machines really require the Cirrus? The xen ones look 
like that they can deal with std. The isapc is should probably stay at 
the Cirrus.

Also the "none" seems to be a false-positive. I suppose they mean 
"empty", i.e., no graphics card at all?

And at least the ppc ones can be canceled out, they should work with 
std, the new default (expect the sam460ex which goes an own route for 
now).

What is the indented target release for the patch?

If the patch is applied to 3.1 then I think there is enough time to fix 
issues caused by the patch. Additionally, a warning could be put in the 
ChangeLog for 3.0 that in 3.1 that the default mode will be std unless 
machines define an own default. This is should be enough time for people 
to complain or to fix things.

If the patch is to be applied to 3.0 then all non-ppc ones need to be 
reconsidered.

The "important" ppc machines have been fixed already. I can do the 
remaining if this is wanted.

Bye
Sebastian

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-09 22:26           ` Sebastian Bauer
@ 2018-07-11 15:48             ` Eduardo Habkost
  2018-07-11 17:00               ` Sebastian Bauer
  0 siblings, 1 reply; 15+ messages in thread
From: Eduardo Habkost @ 2018-07-11 15:48 UTC (permalink / raw)
  To: Sebastian Bauer
  Cc: Gerd Hoffmann, Aleksandar Markovic, Michael S. Tsirkin,
	Richard Henderson, qemu-devel, Alexander Graf, qemu-ppc,
	Paolo Bonzini, Aurelien Jarno, David Gibson

On Tue, Jul 10, 2018 at 12:26:52AM +0200, Sebastian Bauer wrote:
> Hi,
> 
> Am 2018-07-09 23:23, schrieb Eduardo Habkost:
> > List of machines with default_display==NULL on those
> > architectures:
> > 
> > alpha:
> > none                 empty machine
> > 
> > mips:
> > mipssim              MIPS MIPSsim platform
> > none                 empty machine
> > 
> > ppc*:
> > bamboo               bamboo
> > mpc8544ds            mpc8544ds
> > none                 empty machine
> > powernv              IBM PowerNV (Non-Virtualized)
> > ppce500              generic paravirt e500 platform
> > ref405ep             ref405ep
> > sam460ex             aCube Sam460ex
> > taihu                taihu
> > virtex-ml507         Xilinx Virtex ML507 reference design
> > 
> > x86_64:
> > isapc                ISA-only PC
> > none                 empty machine
> > xenfv                Xen Fully-virtualized PC
> > xenpv                Xen Para-virtualized PC
> 
> Which of these machines really require the Cirrus? The xen ones look like
> that they can deal with std. The isapc is should probably stay at the
> Cirrus.
> 
> Also the "none" seems to be a false-positive. I suppose they mean "empty",
> i.e., no graphics card at all?

"none" looked like a false positive when I first looked, but now
I think it's not.  Shouldn't it set default_display="none"?

> 
> And at least the ppc ones can be canceled out, they should work with std,
> the new default (expect the sam460ex which goes an own route for now).

If machines prefer "std", they should set default_display="std"
explicitly.

> 
> What is the indented target release for the patch?

I'm not convinced this patch is appropriate for 3.0.  If we have
remaining bugs they should be fixed by setting default_display
explicitly on the affected machines.

> 
> If the patch is applied to 3.1 then I think there is enough time to fix
> issues caused by the patch. Additionally, a warning could be put in the
> ChangeLog for 3.0 that in 3.1 that the default mode will be std unless
> machines define an own default. This is should be enough time for people to
> complain or to fix things.

I don't think we will really make user-visible changes: we can
simply work to keep existing behavior, but the difference is that
this will be implemented by setting default_display explicitly on
all machines.

> 
> If the patch is to be applied to 3.0 then all non-ppc ones need to be
> reconsidered.
> 
> The "important" ppc machines have been fixed already. I can do the remaining
> if this is wanted.

This part worries me: do we have other machines that are broken
right now?

-- 
Eduardo

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-11 15:48             ` Eduardo Habkost
@ 2018-07-11 17:00               ` Sebastian Bauer
  2018-07-11 18:43                 ` Eduardo Habkost
  0 siblings, 1 reply; 15+ messages in thread
From: Sebastian Bauer @ 2018-07-11 17:00 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: Gerd Hoffmann, Aleksandar Markovic, Michael S. Tsirkin,
	Richard Henderson, qemu-devel, Alexander Graf, qemu-ppc,
	Paolo Bonzini, Aurelien Jarno, David Gibson

Am 2018-07-11 17:48, schrieb Eduardo Habkost:
> "none" looked like a false positive when I first looked, but now
> I think it's not.  Shouldn't it set default_display="none"?

I think that there is some other logic burried that these machine 
doesn't get a graphics display. But overall it is indeed not clearly 
defined.

But see below.

>> If the patch is applied to 3.1 then I think there is enough time to 
>> fix
>> issues caused by the patch. Additionally, a warning could be put in 
>> the
>> ChangeLog for 3.0 that in 3.1 that the default mode will be std unless
>> machines define an own default. This is should be enough time for 
>> people to
>> complain or to fix things.
> I don't think we will really make user-visible changes: we can
> simply work to keep existing behavior, but the difference is that
> this will be implemented by setting default_display explicitly on
> all machines.

Even if all machines were using explicit default settings the patch will 
affect machines that are not inside the QEMU tree. If the patch is to be 
applied as it is these are affected. To warn users (or devs in this 
case) about this, an entry in the ChangeLog would be appropriate.

>> If the patch is to be applied to 3.0 then all non-ppc ones need to be
>> reconsidered.
>> The "important" ppc machines have been fixed already. I can do the 
>> remaining
>> if this is wanted.
> This part worries me: do we have other machines that are broken
> right now?

I don't know which of them are broken or how this can be elaborated, but 
they are potentially affected. For instance, the sam460ex platform 
doesn't care about this setting, I can say that it is not broken. Other 
platforms like the mac apparently were broken (and fixed in the 
meantime). It is hard to tell which of them are really broken without 
someone that knows the platform trying it and telling it. 'Make check' 
did catch only one single case. It could also be that nobody cares about 
other affected machines.

Overall I think the patch is an improvement over the previous state as 
preferring the Cirrus doesn't make much sense if most machines don't 
prefer it. The more I think over it, the more I think that the concept 
needs further fine-tuning though (not necessarily in this patch).

If OTOH it would become a requirement for machines to set a default 
display then this fallback logic could removed. Instead, qemu could 
simply bailout on machines that define no default display (including 
"none") and also bailout when the requested default display is not 
available. This would be checkable by 'make check'. I still think that 
the most common value can be a default (strictly bailing out when it is 
not available unlike it is done now), but this is a matter of taste I 
guess.

Bye
Sebastian

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

* Re: [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-11 17:00               ` Sebastian Bauer
@ 2018-07-11 18:43                 ` Eduardo Habkost
  2018-07-12  4:57                   ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
  0 siblings, 1 reply; 15+ messages in thread
From: Eduardo Habkost @ 2018-07-11 18:43 UTC (permalink / raw)
  To: Sebastian Bauer
  Cc: Gerd Hoffmann, Aleksandar Markovic, Michael S. Tsirkin,
	Richard Henderson, qemu-devel, Alexander Graf, qemu-ppc,
	Paolo Bonzini, Aurelien Jarno, David Gibson

On Wed, Jul 11, 2018 at 07:00:54PM +0200, Sebastian Bauer wrote:
> Am 2018-07-11 17:48, schrieb Eduardo Habkost:
> > "none" looked like a false positive when I first looked, but now
> > I think it's not.  Shouldn't it set default_display="none"?
> 
> I think that there is some other logic burried that these machine doesn't
> get a graphics display. But overall it is indeed not clearly defined.
> 
> But see below.
> 
> > > If the patch is applied to 3.1 then I think there is enough time to
> > > fix
> > > issues caused by the patch. Additionally, a warning could be put in
> > > the
> > > ChangeLog for 3.0 that in 3.1 that the default mode will be std unless
> > > machines define an own default. This is should be enough time for
> > > people to
> > > complain or to fix things.
> > I don't think we will really make user-visible changes: we can
> > simply work to keep existing behavior, but the difference is that
> > this will be implemented by setting default_display explicitly on
> > all machines.
> 
> Even if all machines were using explicit default settings the patch will
> affect machines that are not inside the QEMU tree. If the patch is to be
> applied as it is these are affected. To warn users (or devs in this case)
> about this, an entry in the ChangeLog would be appropriate.

What do you mean by "machines that are not inside the QEMU tree"?
MachineClass registration is not an API for external use.

> 
> > > If the patch is to be applied to 3.0 then all non-ppc ones need to be
> > > reconsidered.
> > > The "important" ppc machines have been fixed already. I can do the
> > > remaining
> > > if this is wanted.
> > This part worries me: do we have other machines that are broken
> > right now?
> 
> I don't know which of them are broken or how this can be elaborated, but
> they are potentially affected. For instance, the sam460ex platform doesn't
> care about this setting, I can say that it is not broken. Other platforms
> like the mac apparently were broken (and fixed in the meantime). It is hard
> to tell which of them are really broken without someone that knows the
> platform trying it and telling it. 'Make check' did catch only one single
> case. It could also be that nobody cares about other affected machines.
> 
> Overall I think the patch is an improvement over the previous state as
> preferring the Cirrus doesn't make much sense if most machines don't prefer
> it. The more I think over it, the more I think that the concept needs
> further fine-tuning though (not necessarily in this patch).

I'm not sure yet if most machines with default_display==NULL
don't want Cirrus.  I'm also unsure if any of the machines from
that list will break if we start using VGA by default.

> 
> If OTOH it would become a requirement for machines to set a default display
> then this fallback logic could removed. Instead, qemu could simply bailout
> on machines that define no default display (including "none") and also
> bailout when the requested default display is not available. This would be
> checkable by 'make check'. [...]

This is the solution I would like to see implemented.

>                     [...]  I still think that the most common value can be a
> default (strictly bailing out when it is not available unlike it is done
> now), but this is a matter of taste I guess.

This is doable too, if we have a clear consensus on what would be
a reasonable default on TYPE_MACHINE.  Personally I prefer the
default on TYPE_MACHINE to be "none".

-- 
Eduardo

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

* Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-11 18:43                 ` Eduardo Habkost
@ 2018-07-12  4:57                   ` Thomas Huth
  2018-07-12  7:37                     ` Sebastian Bauer
  2018-07-12 17:27                     ` Eduardo Habkost
  0 siblings, 2 replies; 15+ messages in thread
From: Thomas Huth @ 2018-07-12  4:57 UTC (permalink / raw)
  To: Eduardo Habkost, Sebastian Bauer
  Cc: Aleksandar Markovic, Michael S. Tsirkin, qemu-devel, qemu-ppc,
	Gerd Hoffmann, Paolo Bonzini, David Gibson, Richard Henderson

On 11.07.2018 20:43, Eduardo Habkost wrote:
> On Wed, Jul 11, 2018 at 07:00:54PM +0200, Sebastian Bauer wrote:
>> Am 2018-07-11 17:48, schrieb Eduardo Habkost:
>>> "none" looked like a false positive when I first looked, but now
>>> I think it's not.  Shouldn't it set default_display="none"?
>>
>> I think that there is some other logic burried that these machine doesn't
>> get a graphics display. But overall it is indeed not clearly defined.
>>
>> But see below.
>>
>>>> If the patch is applied to 3.1 then I think there is enough time to
>>>> fix
>>>> issues caused by the patch. Additionally, a warning could be put in
>>>> the
>>>> ChangeLog for 3.0 that in 3.1 that the default mode will be std unless
>>>> machines define an own default. This is should be enough time for
>>>> people to
>>>> complain or to fix things.
>>> I don't think we will really make user-visible changes: we can
>>> simply work to keep existing behavior, but the difference is that
>>> this will be implemented by setting default_display explicitly on
>>> all machines.
>>
>> Even if all machines were using explicit default settings the patch will
>> affect machines that are not inside the QEMU tree. If the patch is to be
>> applied as it is these are affected. To warn users (or devs in this case)
>> about this, an entry in the ChangeLog would be appropriate.
> 
> What do you mean by "machines that are not inside the QEMU tree"?
> MachineClass registration is not an API for external use.
> 
>>
>>>> If the patch is to be applied to 3.0 then all non-ppc ones need to be
>>>> reconsidered.
>>>> The "important" ppc machines have been fixed already. I can do the
>>>> remaining
>>>> if this is wanted.
>>> This part worries me: do we have other machines that are broken
>>> right now?
>>
>> I don't know which of them are broken or how this can be elaborated, but
>> they are potentially affected. For instance, the sam460ex platform doesn't
>> care about this setting, I can say that it is not broken. Other platforms
>> like the mac apparently were broken (and fixed in the meantime). It is hard
>> to tell which of them are really broken without someone that knows the
>> platform trying it and telling it. 'Make check' did catch only one single
>> case. It could also be that nobody cares about other affected machines.
>>
>> Overall I think the patch is an improvement over the previous state as
>> preferring the Cirrus doesn't make much sense if most machines don't prefer
>> it. The more I think over it, the more I think that the concept needs
>> further fine-tuning though (not necessarily in this patch).
> 
> I'm not sure yet if most machines with default_display==NULL
> don't want Cirrus.  I'm also unsure if any of the machines from
> that list will break if we start using VGA by default.

I think most machines with default_display == NULL simply do not want
any graphic cards at all. So we likely document that default_display ==
NULL means no graphic card, and fix the machines that have other
assumptions if necessary.

>>                     [...]  I still think that the most common value can be a
>> default (strictly bailing out when it is not available unlike it is done
>> now), but this is a matter of taste I guess.
> 
> This is doable too, if we have a clear consensus on what would be
> a reasonable default on TYPE_MACHINE.  Personally I prefer the
> default on TYPE_MACHINE to be "none".

Yes, please, no magic default hardware for all machines. That will only
cause confusion and problems in the future. People who add new boards
will keep forgetting to set a value in their new boards and then you
later wonder whether that was on purpose or by accident ==> If there is
no default display set, this should simply mean "no display".

 Thomas

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

* Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-12  4:57                   ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
@ 2018-07-12  7:37                     ` Sebastian Bauer
  2018-07-12 17:27                     ` Eduardo Habkost
  1 sibling, 0 replies; 15+ messages in thread
From: Sebastian Bauer @ 2018-07-12  7:37 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Eduardo Habkost, Aleksandar Markovic, Michael S. Tsirkin,
	qemu-devel, qemu-ppc, Gerd Hoffmann, Paolo Bonzini, David Gibson,
	Richard Henderson

Hi,

Am 2018-07-12 06:57, schrieb Thomas Huth:
>> This is doable too, if we have a clear consensus on what would be
>> a reasonable default on TYPE_MACHINE.  Personally I prefer the
>> default on TYPE_MACHINE to be "none".
> Yes, please, no magic default hardware for all machines. That will only
> cause confusion and problems in the future. People who add new boards
> will keep forgetting to set a value in their new boards and then you
> later wonder whether that was on purpose or by accident ==> If there is
> no default display set, this should simply mean "no display".

Sounds reasonable. Let me know if I should do it or if Gerd like to 
continue as he did the initial patch.

Bye
Sebastian

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

* Re: [Qemu-devel] [Qemu-ppc] [PATCH v2 2/2] vga: don't pick cirrus by default
  2018-07-12  4:57                   ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
  2018-07-12  7:37                     ` Sebastian Bauer
@ 2018-07-12 17:27                     ` Eduardo Habkost
  1 sibling, 0 replies; 15+ messages in thread
From: Eduardo Habkost @ 2018-07-12 17:27 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Sebastian Bauer, Aleksandar Markovic, Michael S. Tsirkin,
	qemu-devel, qemu-ppc, Gerd Hoffmann, Paolo Bonzini, David Gibson,
	Richard Henderson

On Thu, Jul 12, 2018 at 06:57:46AM +0200, Thomas Huth wrote:
> On 11.07.2018 20:43, Eduardo Habkost wrote:
> > On Wed, Jul 11, 2018 at 07:00:54PM +0200, Sebastian Bauer wrote:
> >> Am 2018-07-11 17:48, schrieb Eduardo Habkost:
> >>> "none" looked like a false positive when I first looked, but now
> >>> I think it's not.  Shouldn't it set default_display="none"?
> >>
> >> I think that there is some other logic burried that these machine doesn't
> >> get a graphics display. But overall it is indeed not clearly defined.
> >>
> >> But see below.
> >>
> >>>> If the patch is applied to 3.1 then I think there is enough time to
> >>>> fix
> >>>> issues caused by the patch. Additionally, a warning could be put in
> >>>> the
> >>>> ChangeLog for 3.0 that in 3.1 that the default mode will be std unless
> >>>> machines define an own default. This is should be enough time for
> >>>> people to
> >>>> complain or to fix things.
> >>> I don't think we will really make user-visible changes: we can
> >>> simply work to keep existing behavior, but the difference is that
> >>> this will be implemented by setting default_display explicitly on
> >>> all machines.
> >>
> >> Even if all machines were using explicit default settings the patch will
> >> affect machines that are not inside the QEMU tree. If the patch is to be
> >> applied as it is these are affected. To warn users (or devs in this case)
> >> about this, an entry in the ChangeLog would be appropriate.
> > 
> > What do you mean by "machines that are not inside the QEMU tree"?
> > MachineClass registration is not an API for external use.
> > 
> >>
> >>>> If the patch is to be applied to 3.0 then all non-ppc ones need to be
> >>>> reconsidered.
> >>>> The "important" ppc machines have been fixed already. I can do the
> >>>> remaining
> >>>> if this is wanted.
> >>> This part worries me: do we have other machines that are broken
> >>> right now?
> >>
> >> I don't know which of them are broken or how this can be elaborated, but
> >> they are potentially affected. For instance, the sam460ex platform doesn't
> >> care about this setting, I can say that it is not broken. Other platforms
> >> like the mac apparently were broken (and fixed in the meantime). It is hard
> >> to tell which of them are really broken without someone that knows the
> >> platform trying it and telling it. 'Make check' did catch only one single
> >> case. It could also be that nobody cares about other affected machines.
> >>
> >> Overall I think the patch is an improvement over the previous state as
> >> preferring the Cirrus doesn't make much sense if most machines don't prefer
> >> it. The more I think over it, the more I think that the concept needs
> >> further fine-tuning though (not necessarily in this patch).
> > 
> > I'm not sure yet if most machines with default_display==NULL
> > don't want Cirrus.  I'm also unsure if any of the machines from
> > that list will break if we start using VGA by default.
> 
> I think most machines with default_display == NULL simply do not want
> any graphic cards at all. So we likely document that default_display ==
> NULL means no graphic card, and fix the machines that have other
> assumptions if necessary.

We already have a value meaning "no graphics card": "none".

But like with the "cirrus" and "vga" options, I also don't know
if any of the existing machines with default_display==NULL will
break if we start using "none" by default.

> 
> >>                     [...]  I still think that the most common value can be a
> >> default (strictly bailing out when it is not available unlike it is done
> >> now), but this is a matter of taste I guess.
> > 
> > This is doable too, if we have a clear consensus on what would be
> > a reasonable default on TYPE_MACHINE.  Personally I prefer the
> > default on TYPE_MACHINE to be "none".
> 
> Yes, please, no magic default hardware for all machines. That will only
> cause confusion and problems in the future. People who add new boards
> will keep forgetting to set a value in their new boards and then you
> later wonder whether that was on purpose or by accident ==> If there is
> no default display set, this should simply mean "no display".

Agreed.

-- 
Eduardo

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

end of thread, other threads:[~2018-07-12 17:28 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-05  6:43 [Qemu-devel] [PATCH v2 0/2] vga: make stdvga the global default Gerd Hoffmann
2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 1/2] vga: set default_display for all machines using cirrus Gerd Hoffmann
2018-07-05 16:35   ` Eduardo Habkost
2018-07-05  6:43 ` [Qemu-devel] [PATCH v2 2/2] vga: don't pick cirrus by default Gerd Hoffmann
2018-07-05 16:35   ` Eduardo Habkost
2018-07-06  6:53     ` Gerd Hoffmann
2018-07-09 21:08       ` Eduardo Habkost
2018-07-09 21:23         ` Eduardo Habkost
2018-07-09 22:26           ` Sebastian Bauer
2018-07-11 15:48             ` Eduardo Habkost
2018-07-11 17:00               ` Sebastian Bauer
2018-07-11 18:43                 ` Eduardo Habkost
2018-07-12  4:57                   ` [Qemu-devel] [Qemu-ppc] " Thomas Huth
2018-07-12  7:37                     ` Sebastian Bauer
2018-07-12 17:27                     ` Eduardo Habkost

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.