[PATCH v4 0/9] PC cleanups

Bernhard Beschow posted 9 patches 1 year, 2 months ago
include/hw/i386/pc.h             |  1 -
include/hw/i386/x86.h            |  2 ++
include/hw/pci-host/i440fx.h     |  7 ++++---
include/hw/pci-host/pam.h        |  5 +++--
include/hw/pci-host/q35.h        |  4 +++-
hw/i386/pc.c                     |  2 --
hw/i386/pc_piix.c                | 10 +++++-----
hw/i386/pc_q35.c                 | 17 +++++++++--------
hw/i386/x86.c                    |  4 ++++
hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
hw/pci-host/pam.c                | 12 ++++++------
hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
13 files changed, 66 insertions(+), 60 deletions(-)
[PATCH v4 0/9] PC cleanups
Posted by Bernhard Beschow 1 year, 2 months ago
This series contains some cleanups I came across when working on the PC
machines. It consists of reducing the usage of global variables and eliminating
some redundancies.

One notable change is that the SMRAM memory region gets moved from the i440fx
and q35 host bridges into the x86 machine. This will simplify cleaning up these
host bridges which will be done in a separate series. Note that the movement of
the SMRAM memory region apparently doesn't change migration ABI for the pc and
q35 machines (see below).

Testing done:
* `make check`
' `make check-avocado`
* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
   manjaro-kde-21.3.2-220704-linux515.iso`
* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
* Confirm that JSON representation of migration files (pc & q35) are empty:
  1. Create four migration files {pc,q35}-{before,after}.mig by running
     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
     this series.
  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
     files
  3. Compare the diffs -> both are empty

v4:
* Remove ram_memory variable in pc_q35 completely (Zoltan)

v3:
* Add three patches regarding init_pam() and SMRAM.
* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
  a similar patch in a more comprehensive series:
  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
  it inadvertantly changed the memory hierarchy.
* Drop ICH9 cleanups again in favor of a separate series.

v2:
* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
  Resolve redundant q35_host variable' (Zoltan)
* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
  variable' (Zoltan)
* Add ICH9 cleanups

Bernhard Beschow (9):
  hw/pci-host/i440fx: Inline sysbus_add_io()
  hw/pci-host/q35: Inline sysbus_add_io()
  hw/i386/pc_q35: Reuse machine parameter
  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
  hw/i386/pc: Initialize ram_memory variable directly
  hw/pci-host/pam: Make init_pam() usage more readable
  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size

 include/hw/i386/pc.h             |  1 -
 include/hw/i386/x86.h            |  2 ++
 include/hw/pci-host/i440fx.h     |  7 ++++---
 include/hw/pci-host/pam.h        |  5 +++--
 include/hw/pci-host/q35.h        |  4 +++-
 hw/i386/pc.c                     |  2 --
 hw/i386/pc_piix.c                | 10 +++++-----
 hw/i386/pc_q35.c                 | 17 +++++++++--------
 hw/i386/x86.c                    |  4 ++++
 hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
 hw/pci-host/pam.c                | 12 ++++++------
 hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
 target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
 13 files changed, 66 insertions(+), 60 deletions(-)

-- 
2.39.1

Re: [PATCH v4 0/9] PC cleanups
Posted by Bernhard Beschow 1 year, 2 months ago

Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>This series contains some cleanups I came across when working on the PC
>
>machines. It consists of reducing the usage of global variables and eliminating
>
>some redundancies.
>
>
>
>One notable change is that the SMRAM memory region gets moved from the i440fx
>
>and q35 host bridges into the x86 machine. This will simplify cleaning up these
>
>host bridges which will be done in a separate series. Note that the movement of
>
>the SMRAM memory region apparently doesn't change migration ABI for the pc and
>
>q35 machines (see below).
>

Ping

>
>
>Testing done:
>
>* `make check`
>
>' `make check-avocado`
>
>* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
>
>   manjaro-kde-21.3.2-220704-linux515.iso`
>
>* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
>
>* Confirm that JSON representation of migration files (pc & q35) are empty:
>
>  1. Create four migration files {pc,q35}-{before,after}.mig by running
>
>     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
>
>     this series.
>
>  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
>
>     files
>
>  3. Compare the diffs -> both are empty
>
>
>
>v4:
>
>* Remove ram_memory variable in pc_q35 completely (Zoltan)
>
>
>
>v3:
>
>* Add three patches regarding init_pam() and SMRAM.
>
>* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
>
>  a similar patch in a more comprehensive series:
>
>  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
>
>* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
>
>  it inadvertantly changed the memory hierarchy.
>
>* Drop ICH9 cleanups again in favor of a separate series.
>
>
>
>v2:
>
>* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
>
>  Resolve redundant q35_host variable' (Zoltan)
>
>* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
>
>  variable' (Zoltan)
>
>* Add ICH9 cleanups
>
>
>
>Bernhard Beschow (9):
>
>  hw/pci-host/i440fx: Inline sysbus_add_io()
>
>  hw/pci-host/q35: Inline sysbus_add_io()
>
>  hw/i386/pc_q35: Reuse machine parameter
>
>  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
>
>  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
>
>  hw/i386/pc: Initialize ram_memory variable directly
>
>  hw/pci-host/pam: Make init_pam() usage more readable
>
>  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
>
>  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size
>
>
>
> include/hw/i386/pc.h             |  1 -
>
> include/hw/i386/x86.h            |  2 ++
>
> include/hw/pci-host/i440fx.h     |  7 ++++---
>
> include/hw/pci-host/pam.h        |  5 +++--
>
> include/hw/pci-host/q35.h        |  4 +++-
>
> hw/i386/pc.c                     |  2 --
>
> hw/i386/pc_piix.c                | 10 +++++-----
>
> hw/i386/pc_q35.c                 | 17 +++++++++--------
>
> hw/i386/x86.c                    |  4 ++++
>
> hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
>
> hw/pci-host/pam.c                | 12 ++++++------
>
> hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
>
> target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
>
> 13 files changed, 66 insertions(+), 60 deletions(-)
>
>
>
>-- >
>2.39.1
>
>
>
Re: [PATCH v4 0/9] PC cleanups
Posted by Bernhard Beschow 1 year, 2 months ago

Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>This series contains some cleanups I came across when working on the PC
>
>machines. It consists of reducing the usage of global variables and eliminating
>
>some redundancies.
>
>
>
>One notable change is that the SMRAM memory region gets moved from the i440fx
>
>and q35 host bridges into the x86 machine. This will simplify cleaning up these
>
>host bridges which will be done in a separate series. Note that the movement of
>
>the SMRAM memory region apparently doesn't change migration ABI for the pc and
>
>q35 machines (see below).
>
>
>
>Testing done:
>
>* `make check`
>
>' `make check-avocado`
>
>* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
>
>   manjaro-kde-21.3.2-220704-linux515.iso`
>
>* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
>
>* Confirm that JSON representation of migration files (pc & q35) are empty:
>
>  1. Create four migration files {pc,q35}-{before,after}.mig by running
>
>     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
>
>     this series.
>
>  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
>
>     files
>
>  3. Compare the diffs -> both are empty
>
>
>
>v4:
>
>* Remove ram_memory variable in pc_q35 completely (Zoltan)
>

The last two patches still need review. Comments welcome!

>
>
>v3:
>
>* Add three patches regarding init_pam() and SMRAM.
>
>* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
>
>  a similar patch in a more comprehensive series:
>
>  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
>
>* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
>
>  it inadvertantly changed the memory hierarchy.
>
>* Drop ICH9 cleanups again in favor of a separate series.
>
>
>
>v2:
>
>* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
>
>  Resolve redundant q35_host variable' (Zoltan)
>
>* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
>
>  variable' (Zoltan)
>
>* Add ICH9 cleanups
>
>
>
>Bernhard Beschow (9):
>
>  hw/pci-host/i440fx: Inline sysbus_add_io()
>
>  hw/pci-host/q35: Inline sysbus_add_io()
>
>  hw/i386/pc_q35: Reuse machine parameter
>
>  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
>
>  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
>
>  hw/i386/pc: Initialize ram_memory variable directly
>
>  hw/pci-host/pam: Make init_pam() usage more readable
>
>  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
>
>  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size
>
>
>
> include/hw/i386/pc.h             |  1 -
>
> include/hw/i386/x86.h            |  2 ++
>
> include/hw/pci-host/i440fx.h     |  7 ++++---
>
> include/hw/pci-host/pam.h        |  5 +++--
>
> include/hw/pci-host/q35.h        |  4 +++-
>
> hw/i386/pc.c                     |  2 --
>
> hw/i386/pc_piix.c                | 10 +++++-----
>
> hw/i386/pc_q35.c                 | 17 +++++++++--------
>
> hw/i386/x86.c                    |  4 ++++
>
> hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
>
> hw/pci-host/pam.c                | 12 ++++++------
>
> hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
>
> target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
>
> 13 files changed, 66 insertions(+), 60 deletions(-)
>
>
>
>-- >
>2.39.1
>
>
>
Re: [PATCH v4 0/9] PC cleanups
Posted by Bernhard Beschow 1 year, 1 month ago

Am 13. Februar 2023 16:45:05 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>
>
>Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>>This series contains some cleanups I came across when working on the PC
>>
>>machines. It consists of reducing the usage of global variables and eliminating
>>
>>some redundancies.
>>
>>
>>
>>One notable change is that the SMRAM memory region gets moved from the i440fx
>>
>>and q35 host bridges into the x86 machine. This will simplify cleaning up these
>>
>>host bridges which will be done in a separate series. Note that the movement of
>>
>>the SMRAM memory region apparently doesn't change migration ABI for the pc and
>>
>>q35 machines (see below).
>>
>>
>>
>>Testing done:
>>
>>* `make check`
>>
>>' `make check-avocado`
>>
>>* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
>>
>>   manjaro-kde-21.3.2-220704-linux515.iso`
>>
>>* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
>>
>>* Confirm that JSON representation of migration files (pc & q35) are empty:
>>
>>  1. Create four migration files {pc,q35}-{before,after}.mig by running
>>
>>     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
>>
>>     this series.
>>
>>  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
>>
>>     files
>>
>>  3. Compare the diffs -> both are empty
>>
>>
>>
>>v4:
>>
>>* Remove ram_memory variable in pc_q35 completely (Zoltan)
>>
>
>The last two patches still need review. Comments welcome!

Ping

Can we queue the reviewed patches (all but the last two) already?

Thanks,
Bernhard

>
>>
>>
>>v3:
>>
>>* Add three patches regarding init_pam() and SMRAM.
>>
>>* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
>>
>>  a similar patch in a more comprehensive series:
>>
>>  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
>>
>>* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
>>
>>  it inadvertantly changed the memory hierarchy.
>>
>>* Drop ICH9 cleanups again in favor of a separate series.
>>
>>
>>
>>v2:
>>
>>* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
>>
>>  Resolve redundant q35_host variable' (Zoltan)
>>
>>* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
>>
>>  variable' (Zoltan)
>>
>>* Add ICH9 cleanups
>>
>>
>>
>>Bernhard Beschow (9):
>>
>>  hw/pci-host/i440fx: Inline sysbus_add_io()
>>
>>  hw/pci-host/q35: Inline sysbus_add_io()
>>
>>  hw/i386/pc_q35: Reuse machine parameter
>>
>>  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
>>
>>  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
>>
>>  hw/i386/pc: Initialize ram_memory variable directly
>>
>>  hw/pci-host/pam: Make init_pam() usage more readable
>>
>>  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
>>
>>  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size
>>
>>
>>
>> include/hw/i386/pc.h             |  1 -
>>
>> include/hw/i386/x86.h            |  2 ++
>>
>> include/hw/pci-host/i440fx.h     |  7 ++++---
>>
>> include/hw/pci-host/pam.h        |  5 +++--
>>
>> include/hw/pci-host/q35.h        |  4 +++-
>>
>> hw/i386/pc.c                     |  2 --
>>
>> hw/i386/pc_piix.c                | 10 +++++-----
>>
>> hw/i386/pc_q35.c                 | 17 +++++++++--------
>>
>> hw/i386/x86.c                    |  4 ++++
>>
>> hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
>>
>> hw/pci-host/pam.c                | 12 ++++++------
>>
>> hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
>>
>> target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
>>
>> 13 files changed, 66 insertions(+), 60 deletions(-)
>>
>>
>>
>>-- >
>>2.39.1
>>
>>
>>
Re: [PATCH v4 0/9] PC cleanups
Posted by Bernhard Beschow 11 months, 2 weeks ago

Am 5. März 2023 07:45:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>
>
>Am 13. Februar 2023 16:45:05 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>>
>>
>>Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>>>This series contains some cleanups I came across when working on the PC
>>>
>>>machines. It consists of reducing the usage of global variables and eliminating
>>>
>>>some redundancies.
>>>
>>>
>>>
>>>One notable change is that the SMRAM memory region gets moved from the i440fx
>>>
>>>and q35 host bridges into the x86 machine. This will simplify cleaning up these
>>>
>>>host bridges which will be done in a separate series. Note that the movement of
>>>
>>>the SMRAM memory region apparently doesn't change migration ABI for the pc and
>>>
>>>q35 machines (see below).
>>>
>>>
>>>
>>>Testing done:
>>>
>>>* `make check`
>>>
>>>' `make check-avocado`
>>>
>>>* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
>>>
>>>   manjaro-kde-21.3.2-220704-linux515.iso`
>>>
>>>* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
>>>
>>>* Confirm that JSON representation of migration files (pc & q35) are empty:
>>>
>>>  1. Create four migration files {pc,q35}-{before,after}.mig by running
>>>
>>>     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
>>>
>>>     this series.
>>>
>>>  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
>>>
>>>     files
>>>
>>>  3. Compare the diffs -> both are empty
>>>
>>>
>>>
>>>v4:
>>>
>>>* Remove ram_memory variable in pc_q35 completely (Zoltan)
>>>
>>
>>The last two patches still need review. Comments welcome!
>
>Ping
>
>Can we queue the reviewed patches (all but the last two) already?

Ping 2

>
>Thanks,
>Bernhard
>
>>
>>>
>>>
>>>v3:
>>>
>>>* Add three patches regarding init_pam() and SMRAM.
>>>
>>>* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
>>>
>>>  a similar patch in a more comprehensive series:
>>>
>>>  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
>>>
>>>* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
>>>
>>>  it inadvertantly changed the memory hierarchy.
>>>
>>>* Drop ICH9 cleanups again in favor of a separate series.
>>>
>>>
>>>
>>>v2:
>>>
>>>* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
>>>
>>>  Resolve redundant q35_host variable' (Zoltan)
>>>
>>>* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
>>>
>>>  variable' (Zoltan)
>>>
>>>* Add ICH9 cleanups
>>>
>>>
>>>
>>>Bernhard Beschow (9):
>>>
>>>  hw/pci-host/i440fx: Inline sysbus_add_io()
>>>
>>>  hw/pci-host/q35: Inline sysbus_add_io()
>>>
>>>  hw/i386/pc_q35: Reuse machine parameter
>>>
>>>  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
>>>
>>>  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
>>>
>>>  hw/i386/pc: Initialize ram_memory variable directly
>>>
>>>  hw/pci-host/pam: Make init_pam() usage more readable
>>>
>>>  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
>>>
>>>  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size
>>>
>>>
>>>
>>> include/hw/i386/pc.h             |  1 -
>>>
>>> include/hw/i386/x86.h            |  2 ++
>>>
>>> include/hw/pci-host/i440fx.h     |  7 ++++---
>>>
>>> include/hw/pci-host/pam.h        |  5 +++--
>>>
>>> include/hw/pci-host/q35.h        |  4 +++-
>>>
>>> hw/i386/pc.c                     |  2 --
>>>
>>> hw/i386/pc_piix.c                | 10 +++++-----
>>>
>>> hw/i386/pc_q35.c                 | 17 +++++++++--------
>>>
>>> hw/i386/x86.c                    |  4 ++++
>>>
>>> hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
>>>
>>> hw/pci-host/pam.c                | 12 ++++++------
>>>
>>> hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
>>>
>>> target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
>>>
>>> 13 files changed, 66 insertions(+), 60 deletions(-)
>>>
>>>
>>>
>>>-- >
>>>2.39.1
>>>
>>>
>>>
Re: [PATCH v4 0/9] PC cleanups
Posted by Michael S. Tsirkin 11 months, 2 weeks ago
On Wed, May 10, 2023 at 06:26:54PM +0000, Bernhard Beschow wrote:
> 
> 
> Am 5. März 2023 07:45:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
> >
> >
> >Am 13. Februar 2023 16:45:05 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
> >>
> >>
> >>Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
> >>>This series contains some cleanups I came across when working on the PC
> >>>
> >>>machines. It consists of reducing the usage of global variables and eliminating
> >>>
> >>>some redundancies.
> >>>
> >>>
> >>>
> >>>One notable change is that the SMRAM memory region gets moved from the i440fx
> >>>
> >>>and q35 host bridges into the x86 machine. This will simplify cleaning up these
> >>>
> >>>host bridges which will be done in a separate series. Note that the movement of
> >>>
> >>>the SMRAM memory region apparently doesn't change migration ABI for the pc and
> >>>
> >>>q35 machines (see below).
> >>>
> >>>
> >>>
> >>>Testing done:
> >>>
> >>>* `make check`
> >>>
> >>>' `make check-avocado`
> >>>
> >>>* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
> >>>
> >>>   manjaro-kde-21.3.2-220704-linux515.iso`
> >>>
> >>>* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
> >>>
> >>>* Confirm that JSON representation of migration files (pc & q35) are empty:
> >>>
> >>>  1. Create four migration files {pc,q35}-{before,after}.mig by running
> >>>
> >>>     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
> >>>
> >>>     this series.
> >>>
> >>>  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
> >>>
> >>>     files
> >>>
> >>>  3. Compare the diffs -> both are empty
> >>>
> >>>
> >>>
> >>>v4:
> >>>
> >>>* Remove ram_memory variable in pc_q35 completely (Zoltan)
> >>>
> >>
> >>The last two patches still need review. Comments welcome!
> >
> >Ping
> >
> >Can we queue the reviewed patches (all but the last two) already?
> 
> Ping 2


queued 1-7

> >
> >Thanks,
> >Bernhard
> >
> >>
> >>>
> >>>
> >>>v3:
> >>>
> >>>* Add three patches regarding init_pam() and SMRAM.
> >>>
> >>>* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
> >>>
> >>>  a similar patch in a more comprehensive series:
> >>>
> >>>  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
> >>>
> >>>* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
> >>>
> >>>  it inadvertantly changed the memory hierarchy.
> >>>
> >>>* Drop ICH9 cleanups again in favor of a separate series.
> >>>
> >>>
> >>>
> >>>v2:
> >>>
> >>>* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
> >>>
> >>>  Resolve redundant q35_host variable' (Zoltan)
> >>>
> >>>* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
> >>>
> >>>  variable' (Zoltan)
> >>>
> >>>* Add ICH9 cleanups
> >>>
> >>>
> >>>
> >>>Bernhard Beschow (9):
> >>>
> >>>  hw/pci-host/i440fx: Inline sysbus_add_io()
> >>>
> >>>  hw/pci-host/q35: Inline sysbus_add_io()
> >>>
> >>>  hw/i386/pc_q35: Reuse machine parameter
> >>>
> >>>  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
> >>>
> >>>  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
> >>>
> >>>  hw/i386/pc: Initialize ram_memory variable directly
> >>>
> >>>  hw/pci-host/pam: Make init_pam() usage more readable
> >>>
> >>>  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
> >>>
> >>>  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size
> >>>
> >>>
> >>>
> >>> include/hw/i386/pc.h             |  1 -
> >>>
> >>> include/hw/i386/x86.h            |  2 ++
> >>>
> >>> include/hw/pci-host/i440fx.h     |  7 ++++---
> >>>
> >>> include/hw/pci-host/pam.h        |  5 +++--
> >>>
> >>> include/hw/pci-host/q35.h        |  4 +++-
> >>>
> >>> hw/i386/pc.c                     |  2 --
> >>>
> >>> hw/i386/pc_piix.c                | 10 +++++-----
> >>>
> >>> hw/i386/pc_q35.c                 | 17 +++++++++--------
> >>>
> >>> hw/i386/x86.c                    |  4 ++++
> >>>
> >>> hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
> >>>
> >>> hw/pci-host/pam.c                | 12 ++++++------
> >>>
> >>> hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
> >>>
> >>> target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
> >>>
> >>> 13 files changed, 66 insertions(+), 60 deletions(-)
> >>>
> >>>
> >>>
> >>>-- >
> >>>2.39.1
> >>>
> >>>
> >>>
Re: [PATCH v4 0/9] PC cleanups
Posted by Bernhard Beschow 11 months, 2 weeks ago

Am 10. Mai 2023 19:20:59 UTC schrieb "Michael S. Tsirkin" <mst@redhat.com>:
>On Wed, May 10, 2023 at 06:26:54PM +0000, Bernhard Beschow wrote:
>> 
>> 
>> Am 5. März 2023 07:45:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>> >
>> >
>> >Am 13. Februar 2023 16:45:05 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>> >>
>> >>
>> >>Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>> >>>This series contains some cleanups I came across when working on the PC
>> >>>
>> >>>machines. It consists of reducing the usage of global variables and eliminating
>> >>>
>> >>>some redundancies.
>> >>>
>> >>>
>> >>>
>> >>>One notable change is that the SMRAM memory region gets moved from the i440fx
>> >>>
>> >>>and q35 host bridges into the x86 machine. This will simplify cleaning up these
>> >>>
>> >>>host bridges which will be done in a separate series. Note that the movement of
>> >>>
>> >>>the SMRAM memory region apparently doesn't change migration ABI for the pc and
>> >>>
>> >>>q35 machines (see below).
>> >>>
>> >>>
>> >>>
>> >>>Testing done:
>> >>>
>> >>>* `make check`
>> >>>
>> >>>' `make check-avocado`
>> >>>
>> >>>* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
>> >>>
>> >>>   manjaro-kde-21.3.2-220704-linux515.iso`
>> >>>
>> >>>* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
>> >>>
>> >>>* Confirm that JSON representation of migration files (pc & q35) are empty:
>> >>>
>> >>>  1. Create four migration files {pc,q35}-{before,after}.mig by running
>> >>>
>> >>>     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
>> >>>
>> >>>     this series.
>> >>>
>> >>>  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
>> >>>
>> >>>     files
>> >>>
>> >>>  3. Compare the diffs -> both are empty
>> >>>
>> >>>
>> >>>
>> >>>v4:
>> >>>
>> >>>* Remove ram_memory variable in pc_q35 completely (Zoltan)
>> >>>
>> >>
>> >>The last two patches still need review. Comments welcome!
>> >
>> >Ping
>> >
>> >Can we queue the reviewed patches (all but the last two) already?
>> 
>> Ping 2
>
>
>queued 1-7

Thanks -- also for the RTC ones!

Best regards,
Bernhard

>
>> >
>> >Thanks,
>> >Bernhard
>> >
>> >>
>> >>>
>> >>>
>> >>>v3:
>> >>>
>> >>>* Add three patches regarding init_pam() and SMRAM.
>> >>>
>> >>>* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
>> >>>
>> >>>  a similar patch in a more comprehensive series:
>> >>>
>> >>>  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
>> >>>
>> >>>* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
>> >>>
>> >>>  it inadvertantly changed the memory hierarchy.
>> >>>
>> >>>* Drop ICH9 cleanups again in favor of a separate series.
>> >>>
>> >>>
>> >>>
>> >>>v2:
>> >>>
>> >>>* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
>> >>>
>> >>>  Resolve redundant q35_host variable' (Zoltan)
>> >>>
>> >>>* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
>> >>>
>> >>>  variable' (Zoltan)
>> >>>
>> >>>* Add ICH9 cleanups
>> >>>
>> >>>
>> >>>
>> >>>Bernhard Beschow (9):
>> >>>
>> >>>  hw/pci-host/i440fx: Inline sysbus_add_io()
>> >>>
>> >>>  hw/pci-host/q35: Inline sysbus_add_io()
>> >>>
>> >>>  hw/i386/pc_q35: Reuse machine parameter
>> >>>
>> >>>  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
>> >>>
>> >>>  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
>> >>>
>> >>>  hw/i386/pc: Initialize ram_memory variable directly
>> >>>
>> >>>  hw/pci-host/pam: Make init_pam() usage more readable
>> >>>
>> >>>  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
>> >>>
>> >>>  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size
>> >>>
>> >>>
>> >>>
>> >>> include/hw/i386/pc.h             |  1 -
>> >>>
>> >>> include/hw/i386/x86.h            |  2 ++
>> >>>
>> >>> include/hw/pci-host/i440fx.h     |  7 ++++---
>> >>>
>> >>> include/hw/pci-host/pam.h        |  5 +++--
>> >>>
>> >>> include/hw/pci-host/q35.h        |  4 +++-
>> >>>
>> >>> hw/i386/pc.c                     |  2 --
>> >>>
>> >>> hw/i386/pc_piix.c                | 10 +++++-----
>> >>>
>> >>> hw/i386/pc_q35.c                 | 17 +++++++++--------
>> >>>
>> >>> hw/i386/x86.c                    |  4 ++++
>> >>>
>> >>> hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
>> >>>
>> >>> hw/pci-host/pam.c                | 12 ++++++------
>> >>>
>> >>> hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
>> >>>
>> >>> target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
>> >>>
>> >>> 13 files changed, 66 insertions(+), 60 deletions(-)
>> >>>
>> >>>
>> >>>
>> >>>-- >
>> >>>2.39.1
>> >>>
>> >>>
>> >>>
>
Re: [PATCH v4 0/9] PC cleanups
Posted by Michael S. Tsirkin 1 year, 1 month ago
On Sun, Mar 05, 2023 at 07:45:55AM +0000, Bernhard Beschow wrote:
> 
> 
> Am 13. Februar 2023 16:45:05 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
> >
> >
> >Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
> >>This series contains some cleanups I came across when working on the PC
> >>
> >>machines. It consists of reducing the usage of global variables and eliminating
> >>
> >>some redundancies.
> >>
> >>
> >>
> >>One notable change is that the SMRAM memory region gets moved from the i440fx
> >>
> >>and q35 host bridges into the x86 machine. This will simplify cleaning up these
> >>
> >>host bridges which will be done in a separate series. Note that the movement of
> >>
> >>the SMRAM memory region apparently doesn't change migration ABI for the pc and
> >>
> >>q35 machines (see below).
> >>
> >>
> >>
> >>Testing done:
> >>
> >>* `make check`
> >>
> >>' `make check-avocado`
> >>
> >>* `qemu-system-x86_64 -M q35 -m 2G -cdrom \
> >>
> >>   manjaro-kde-21.3.2-220704-linux515.iso`
> >>
> >>* `qemu-system-x86_64 -M pc -m 2G -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
> >>
> >>* Confirm that JSON representation of migration files (pc & q35) are empty:
> >>
> >>  1. Create four migration files {pc,q35}-{before,after}.mig by running
> >>
> >>     `qemu-system-x86_64 -M {pc,q35} -S` with QEMU built from master and from
> >>
> >>     this series.
> >>
> >>  2. Run `./scripts/analyze-migration.py -d desc -f *.mig > *.json` on the four
> >>
> >>     files
> >>
> >>  3. Compare the diffs -> both are empty
> >>
> >>
> >>
> >>v4:
> >>
> >>* Remove ram_memory variable in pc_q35 completely (Zoltan)
> >>
> >
> >The last two patches still need review. Comments welcome!
> 
> Ping
> 
> Can we queue the reviewed patches (all but the last two) already?
> 
> Thanks,
> Bernhard

Philippe objected to patch 1 - he suggested using
pci_address_space_io.




> >
> >>
> >>
> >>v3:
> >>
> >>* Add three patches regarding init_pam() and SMRAM.
> >>
> >>* Drop 'hw/i386/pc_q35: Resolve redundant q35_host variable' since Phil posted
> >>
> >>  a similar patch in a more comprehensive series:
> >>
> >>  https://lore.kernel.org/qemu-devel/20230203180914.49112-13-philmd@linaro.org/
> >>
> >>* Drop 'hw/isa/lpc_ich9: Reuse memory and io address space of PCI bus' since
> >>
> >>  it inadvertantly changed the memory hierarchy.
> >>
> >>* Drop ICH9 cleanups again in favor of a separate series.
> >>
> >>
> >>
> >>v2:
> >>
> >>* Factor out 'hw/i386/pc_q35: Reuse machine parameter' from 'hw/i386/pc_q35:
> >>
> >>  Resolve redundant q35_host variable' (Zoltan)
> >>
> >>* Lower type of phb to Object in 'hw/i386/pc_q35: Resolve redundant q35_host
> >>
> >>  variable' (Zoltan)
> >>
> >>* Add ICH9 cleanups
> >>
> >>
> >>
> >>Bernhard Beschow (9):
> >>
> >>  hw/pci-host/i440fx: Inline sysbus_add_io()
> >>
> >>  hw/pci-host/q35: Inline sysbus_add_io()
> >>
> >>  hw/i386/pc_q35: Reuse machine parameter
> >>
> >>  hw/i386/pc_{q35,piix}: Reuse MachineClass::desc as SMB product name
> >>
> >>  hw/i386/pc_{q35,piix}: Minimize usage of get_system_memory()
> >>
> >>  hw/i386/pc: Initialize ram_memory variable directly
> >>
> >>  hw/pci-host/pam: Make init_pam() usage more readable
> >>
> >>  hw/i386/x86: Make TYPE_X86_MACHINE the owner of smram
> >>
> >>  target/i386/tcg/sysemu/tcg-cpu: Avoid own opinion about smram size
> >>
> >>
> >>
> >> include/hw/i386/pc.h             |  1 -
> >>
> >> include/hw/i386/x86.h            |  2 ++
> >>
> >> include/hw/pci-host/i440fx.h     |  7 ++++---
> >>
> >> include/hw/pci-host/pam.h        |  5 +++--
> >>
> >> include/hw/pci-host/q35.h        |  4 +++-
> >>
> >> hw/i386/pc.c                     |  2 --
> >>
> >> hw/i386/pc_piix.c                | 10 +++++-----
> >>
> >> hw/i386/pc_q35.c                 | 17 +++++++++--------
> >>
> >> hw/i386/x86.c                    |  4 ++++
> >>
> >> hw/pci-host/i440fx.c             | 28 +++++++++++++---------------
> >>
> >> hw/pci-host/pam.c                | 12 ++++++------
> >>
> >> hw/pci-host/q35.c                | 31 ++++++++++++++++---------------
> >>
> >> target/i386/tcg/sysemu/tcg-cpu.c |  3 +--
> >>
> >> 13 files changed, 66 insertions(+), 60 deletions(-)
> >>
> >>
> >>
> >>-- >
> >>2.39.1
> >>
> >>
> >>
Re: [PATCH v4 0/9] PC cleanups
Posted by Philippe Mathieu-Daudé 1 year, 1 month ago
On 5/3/23 11:09, Michael S. Tsirkin wrote:
> On Sun, Mar 05, 2023 at 07:45:55AM +0000, Bernhard Beschow wrote:
>>
>>
>> Am 13. Februar 2023 16:45:05 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>>>
>>>
>>> Am 13. Februar 2023 16:19:55 UTC schrieb Bernhard Beschow <shentey@gmail.com>:
>>>> This series contains some cleanups I came across when working on the PC
>>>>
>>>> machines. It consists of reducing the usage of global variables and eliminating
>>>>
>>>> some redundancies.
>>>>
>>>>
>>>>
>>>> One notable change is that the SMRAM memory region gets moved from the i440fx
>>>>
>>>> and q35 host bridges into the x86 machine. This will simplify cleaning up these
>>>>
>>>> host bridges which will be done in a separate series. Note that the movement of
>>>>
>>>> the SMRAM memory region apparently doesn't change migration ABI for the pc and
>>>>
>>>> q35 machines (see below).


>>> The last two patches still need review. Comments welcome!
>>
>> Ping
>>
>> Can we queue the reviewed patches (all but the last two) already?
>>
>> Thanks,
>> Bernhard
> 
> Philippe objected to patch 1 - he suggested using
> pci_address_space_io.

I was wrong...