* [PATCH] hw/i386: Add the possibility to disable the 'isapc' machine
@ 2022-01-07 16:07 Thomas Huth
2022-01-07 17:28 ` Paolo Bonzini
2022-01-07 18:54 ` Philippe Mathieu-Daudé
0 siblings, 2 replies; 4+ messages in thread
From: Thomas Huth @ 2022-01-07 16:07 UTC (permalink / raw)
To: qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Paolo Bonzini
Cc: Laurent Vivier, Eduardo Habkost, Richard Henderson, John Snow
We already have a CONFIG_ISAPC switch - but we're not using it yet.
Add some "#ifdefs" to make it possible to disable this machine now.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/i386/pc_piix.c | 5 ++++-
tests/qtest/cdrom-test.c | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 1999190276..5147e1ee74 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -357,10 +357,12 @@ static void pc_compat_1_4_fn(MachineState *machine)
pc_compat_1_5_fn(machine);
}
+#ifdef CONFIG_ISAPC
static void pc_init_isa(MachineState *machine)
{
pc_init1(machine, TYPE_I440FX_PCI_HOST_BRIDGE, TYPE_I440FX_PCI_DEVICE);
}
+#endif
#ifdef CONFIG_XEN
static void pc_xen_hvm_init_pci(MachineState *machine)
@@ -916,6 +918,7 @@ void igd_passthrough_isa_bridge_create(PCIBus *bus, uint16_t gpu_dev_id)
pci_config_set_revision(bridge_dev->config, pch_rev_id);
}
+#ifdef CONFIG_ISAPC
static void isapc_machine_options(MachineClass *m)
{
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
@@ -935,7 +938,7 @@ static void isapc_machine_options(MachineClass *m)
DEFINE_PC_MACHINE(isapc, "isapc", pc_init_isa,
isapc_machine_options);
-
+#endif
#ifdef CONFIG_XEN
static void xenfv_4_2_machine_options(MachineClass *m)
diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c
index cfca24fa94..fdd889a487 100644
--- a/tests/qtest/cdrom-test.c
+++ b/tests/qtest/cdrom-test.c
@@ -138,7 +138,7 @@ static void add_x86_tests(void)
* Unstable CI test under load
* See https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg05509.html
*/
- if (g_test_slow()) {
+ if (g_test_slow() && qtest_has_machine("isapc")) {
qtest_add_data_func("cdrom/boot/isapc", "-M isapc "
"-drive if=ide,media=cdrom,file=", test_cdboot);
}
--
2.27.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] hw/i386: Add the possibility to disable the 'isapc' machine
2022-01-07 16:07 [PATCH] hw/i386: Add the possibility to disable the 'isapc' machine Thomas Huth
@ 2022-01-07 17:28 ` Paolo Bonzini
2022-01-07 18:54 ` Philippe Mathieu-Daudé
1 sibling, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2022-01-07 17:28 UTC (permalink / raw)
To: Thomas Huth, qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum
Cc: Laurent Vivier, Eduardo Habkost, John Snow, Richard Henderson
On 1/7/22 17:07, Thomas Huth wrote:
> We already have a CONFIG_ISAPC switch - but we're not using it yet.
> Add some "#ifdefs" to make it possible to disable this machine now.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> hw/i386/pc_piix.c | 5 ++++-
> tests/qtest/cdrom-test.c | 2 +-
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 1999190276..5147e1ee74 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -357,10 +357,12 @@ static void pc_compat_1_4_fn(MachineState *machine)
> pc_compat_1_5_fn(machine);
> }
>
> +#ifdef CONFIG_ISAPC
> static void pc_init_isa(MachineState *machine)
> {
> pc_init1(machine, TYPE_I440FX_PCI_HOST_BRIDGE, TYPE_I440FX_PCI_DEVICE);
> }
> +#endif
>
> #ifdef CONFIG_XEN
> static void pc_xen_hvm_init_pci(MachineState *machine)
> @@ -916,6 +918,7 @@ void igd_passthrough_isa_bridge_create(PCIBus *bus, uint16_t gpu_dev_id)
> pci_config_set_revision(bridge_dev->config, pch_rev_id);
> }
>
> +#ifdef CONFIG_ISAPC
> static void isapc_machine_options(MachineClass *m)
> {
> PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> @@ -935,7 +938,7 @@ static void isapc_machine_options(MachineClass *m)
>
> DEFINE_PC_MACHINE(isapc, "isapc", pc_init_isa,
> isapc_machine_options);
> -
> +#endif
>
> #ifdef CONFIG_XEN
> static void xenfv_4_2_machine_options(MachineClass *m)
> diff --git a/tests/qtest/cdrom-test.c b/tests/qtest/cdrom-test.c
> index cfca24fa94..fdd889a487 100644
> --- a/tests/qtest/cdrom-test.c
> +++ b/tests/qtest/cdrom-test.c
> @@ -138,7 +138,7 @@ static void add_x86_tests(void)
> * Unstable CI test under load
> * See https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg05509.html
> */
> - if (g_test_slow()) {
> + if (g_test_slow() && qtest_has_machine("isapc")) {
> qtest_add_data_func("cdrom/boot/isapc", "-M isapc "
> "-drive if=ide,media=cdrom,file=", test_cdboot);
> }
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] hw/i386: Add the possibility to disable the 'isapc' machine
2022-01-07 16:07 [PATCH] hw/i386: Add the possibility to disable the 'isapc' machine Thomas Huth
2022-01-07 17:28 ` Paolo Bonzini
@ 2022-01-07 18:54 ` Philippe Mathieu-Daudé
2022-01-13 6:57 ` Thomas Huth
1 sibling, 1 reply; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2022-01-07 18:54 UTC (permalink / raw)
To: Thomas Huth, qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum,
Paolo Bonzini
Cc: Laurent Vivier, Eduardo Habkost, John Snow, Richard Henderson
On 1/7/22 17:07, Thomas Huth wrote:
> We already have a CONFIG_ISAPC switch - but we're not using it yet.
> Add some "#ifdefs" to make it possible to disable this machine now.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> hw/i386/pc_piix.c | 5 ++++-
> tests/qtest/cdrom-test.c | 2 +-
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 1999190276..5147e1ee74 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -357,10 +357,12 @@ static void pc_compat_1_4_fn(MachineState *machine)
> pc_compat_1_5_fn(machine);
> }
>
> +#ifdef CONFIG_ISAPC
> static void pc_init_isa(MachineState *machine)
> {
> pc_init1(machine, TYPE_I440FX_PCI_HOST_BRIDGE, TYPE_I440FX_PCI_DEVICE);
> }
> +#endif
>
> #ifdef CONFIG_XEN
> static void pc_xen_hvm_init_pci(MachineState *machine)
> @@ -916,6 +918,7 @@ void igd_passthrough_isa_bridge_create(PCIBus *bus, uint16_t gpu_dev_id)
> pci_config_set_revision(bridge_dev->config, pch_rev_id);
> }
>
> +#ifdef CONFIG_ISAPC
> static void isapc_machine_options(MachineClass *m)
> {
> PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> @@ -935,7 +938,7 @@ static void isapc_machine_options(MachineClass *m)
>
> DEFINE_PC_MACHINE(isapc, "isapc", pc_init_isa,
> isapc_machine_options);
> -
> +#endif
Wouldn't it be cleaner to extract the isapc machine to a new C unit
(after renaming/declaring pc_init1 public)? Anyway this is what is
done for Xen, so why not...
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] hw/i386: Add the possibility to disable the 'isapc' machine
2022-01-07 18:54 ` Philippe Mathieu-Daudé
@ 2022-01-13 6:57 ` Thomas Huth
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Huth @ 2022-01-13 6:57 UTC (permalink / raw)
To: Philippe Mathieu-Daudé,
qemu-devel, Michael S. Tsirkin, Marcel Apfelbaum, Paolo Bonzini
Cc: Laurent Vivier, Eduardo Habkost, John Snow, Richard Henderson
On 07/01/2022 19.54, Philippe Mathieu-Daudé wrote:
> On 1/7/22 17:07, Thomas Huth wrote:
>> We already have a CONFIG_ISAPC switch - but we're not using it yet.
>> Add some "#ifdefs" to make it possible to disable this machine now.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>> hw/i386/pc_piix.c | 5 ++++-
>> tests/qtest/cdrom-test.c | 2 +-
>> 2 files changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
>> index 1999190276..5147e1ee74 100644
>> --- a/hw/i386/pc_piix.c
>> +++ b/hw/i386/pc_piix.c
>> @@ -357,10 +357,12 @@ static void pc_compat_1_4_fn(MachineState *machine)
>> pc_compat_1_5_fn(machine);
>> }
>>
>> +#ifdef CONFIG_ISAPC
>> static void pc_init_isa(MachineState *machine)
>> {
>> pc_init1(machine, TYPE_I440FX_PCI_HOST_BRIDGE, TYPE_I440FX_PCI_DEVICE);
>> }
>> +#endif
>>
>> #ifdef CONFIG_XEN
>> static void pc_xen_hvm_init_pci(MachineState *machine)
>> @@ -916,6 +918,7 @@ void igd_passthrough_isa_bridge_create(PCIBus *bus, uint16_t gpu_dev_id)
>> pci_config_set_revision(bridge_dev->config, pch_rev_id);
>> }
>>
>> +#ifdef CONFIG_ISAPC
>> static void isapc_machine_options(MachineClass *m)
>> {
>> PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
>> @@ -935,7 +938,7 @@ static void isapc_machine_options(MachineClass *m)
>>
>> DEFINE_PC_MACHINE(isapc, "isapc", pc_init_isa,
>> isapc_machine_options);
>> -
>> +#endif
>
> Wouldn't it be cleaner to extract the isapc machine to a new C unit
> (after renaming/declaring pc_init1 public)?
That would be cleaner, of course, but that would also mean a major
refactoring: We could rearrange the code so that it is possible to compile a
binary that has isapc, but not i440fx... but that likely means a complete
rework of pc_piix.c so that the code that is common between i440fx and isapc
needs to be moved into a separate file, too. And that's likely not worth the
effort, I guess, since people rather want to compile without isapc than
compiling without i440fx, I think. So let's go with this low-hanging fruit
here for now, and keep the possible clean-up in mind for later.
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Thanks!
Thomas
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-01-13 7:01 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-07 16:07 [PATCH] hw/i386: Add the possibility to disable the 'isapc' machine Thomas Huth
2022-01-07 17:28 ` Paolo Bonzini
2022-01-07 18:54 ` Philippe Mathieu-Daudé
2022-01-13 6:57 ` Thomas Huth
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.