Message ID | 20180705064348.3162-3-kraxel@redhat.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] vga: set default_display for all machines using cirrus. | expand |
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 >
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
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.
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.
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
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?
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
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".
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
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
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.
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"; }
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(-)