qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: "Michael S. Tsirkin" <mst@redhat.com>,
	Bernhard Beschow <shentey@gmail.com>
Cc: qemu-devel@nongnu.org, "Hervé Poussineau" <hpoussin@reactos.org>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"John Snow" <jsnow@redhat.com>,
	qemu-block@nongnu.org, "Igor Mammedov" <imammedo@redhat.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Eduardo Habkost" <eduardo@habkost.net>,
	"Ani Sinha" <ani@anisinha.ca>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>
Subject: Re: [PATCH 00/32] Consolidate PIIX south bridges
Date: Tue, 20 Dec 2022 16:08:57 +0100	[thread overview]
Message-ID: <d5e1af45-9ff9-6b01-9650-bf5b960abee7@linaro.org> (raw)
In-Reply-To: <20221220094738-mutt-send-email-mst@kernel.org>

On 20/12/22 15:48, Michael S. Tsirkin wrote:
> On Sun, Dec 04, 2022 at 08:05:21PM +0100, Bernhard Beschow wrote:
>> This series consolidates the implementations of the PIIX3 and PIIX4 south
>> bridges and is an extended version of [1]. The motivation is to share as much
>> code as possible and to bring both device models to feature parity such that
>> perhaps PIIX4 can become a drop-in-replacement for PIIX3 in the pc machine. This
>> could resolve the "Frankenstein" PIIX4-PM problem in PIIX3 discussed on this
>> list before.
>>
>> The series is structured as follows: First, PIIX3 is changed to instantiate
>> internal devices itself, like PIIX4 does already. Second, PIIX3 gets prepared
>> for the merge with PIIX4 which includes some fixes, cleanups, and renamings.
>> Third, the same is done for PIIX4. In step four the implementations are merged.
>> Since some consolidations could be done easier with merged implementations, the
>> consolidation continues in step five which concludes the series.
>>
>> One particular challenge in this series was that the PIC of PIIX3 used to be
>> instantiated outside of the south bridge while some sub functions require a PIC
>> with populated qemu_irqs. This has been solved by introducing a proxy PIC which
>> furthermore allows PIIX3 to be agnostic towards the virtualization technology
>> used (KVM, TCG, Xen). Due to consolidation PIIX4 gained the proxy PIC as well.
>>
>> Another challenge was dealing with optional devices where Peter already gave
>> advice in [1] which this series implements.
>>
>> A challenge still remains with consolidating PCI interrupt handling. There are
>> still board-specific piix3_pci_slot_get_pirq() and piix4_pci_slot_get_pirq()
>> which are implemented in isa/piix.c. Any advice how to resolve these would be
>> highly appreaciated. See [2] for details.
>>
>> Last but not least there might be some opportunity to consolidate VM state
>> handling, probably by reusing the one from PIIX3. Since I'm not very familiar
>> with the requirements I didn't touch it so far.
>>
>> Testing done:
>> * make check
>> * make check-avocado
>> * Boot live CD:
>>    * `qemu-system-x86_64 -M pc -m 2G -accel kvm -cpu host -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
>>    * `qemu-system-x86_64 -M q35 -m 2G -accel kvm -cpu host -cdrom manjaro-kde-21.3.2-220704-linux515.iso`
>> * 'qemu-system-mips64el -M malta -kernel vmlinux-3.2.0-4-5kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1 console=ttyS0"`
>>
>> v3:
>> - Introduce one TYPE_ICH9_USB_UHCI(fn) rather than several TYPE_ICH9_USB_UHCIx (Philippe)
>> - Make proxy PIC generic (Philippe)
>> - Track Malta's PIIX dependencies through KConfig
>> - Rebase onto Philippe's 'hw/isa/piix4: Remove MIPS Malta specific bits' series [3]
>> - Also rebase onto latest master to resolve merge conflicts. This required copying
>>    Philippe's series as first three patches - please ignore.
> 
> So IIUC, you are waiting for Philippe to respin his series then
> you can include it all in v4, right?
Correct. And mine is waiting for few more R-b tags. If you can Ack
this series, no need for v4 and I can pick it via mips-next once the
rest is ready (before Xmas I hope).

Regards.

Phil.


  reply	other threads:[~2022-12-20 15:09 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-04 19:05 [PATCH 00/32] Consolidate PIIX south bridges Bernhard Beschow
2022-12-04 19:05 ` [PATCH 01/32] hw/mips/malta: Introduce PIIX4_PCI_DEVFN definition Bernhard Beschow
2022-12-19  9:19   ` Igor Mammedov
2022-12-04 19:05 ` [PATCH 02/32] hw/mips/malta: Set PIIX4 IRQ routes in embedded bootloader Bernhard Beschow
2022-12-04 19:05 ` [PATCH 03/32] hw/isa/piix4: Correct IRQRC[A:D] reset values Bernhard Beschow
2022-12-04 19:05 ` [PATCH 04/32] hw/mips/Kconfig: Track Malta's PIIX dependencies via Kconfig Bernhard Beschow
2022-12-04 21:44   ` Philippe Mathieu-Daudé
2022-12-04 19:05 ` [PATCH 05/32] hw/i386/pc_piix: Allow for setting properties before realizing PIIX3 south bridge Bernhard Beschow
2022-12-04 19:05 ` [PATCH 06/32] hw/usb/hcd-uhci: Introduce TYPE_ defines for device models Bernhard Beschow
2022-12-04 21:45   ` Philippe Mathieu-Daudé
2022-12-04 19:05 ` [PATCH 07/32] hw/i386/pc: Create RTC controllers in south bridges Bernhard Beschow
2022-12-04 19:05 ` [PATCH 08/32] hw/i386/pc: No need for rtc_state to be an out-parameter Bernhard Beschow
2022-12-04 19:05 ` [PATCH 09/32] hw/isa/piix3: Create USB controller in host device Bernhard Beschow
2022-12-04 19:05 ` [PATCH 10/32] hw/isa/piix3: Create power management " Bernhard Beschow
2022-12-04 19:05 ` [PATCH 11/32] hw/core: Introduce proxy-pic Bernhard Beschow
2022-12-04 19:05 ` [PATCH 12/32] hw/isa/piix3: Create Proxy PIC in host device Bernhard Beschow
2022-12-04 19:05 ` [PATCH 13/32] hw/isa/piix3: Create IDE controller " Bernhard Beschow
2022-12-04 19:05 ` [PATCH 14/32] hw/isa/piix3: Wire up ACPI interrupt internally Bernhard Beschow
2022-12-04 19:05 ` [PATCH 15/32] hw/isa/piix3: Resolve redundant PIIX_NUM_PIC_IRQS Bernhard Beschow
2022-12-04 19:05 ` [PATCH 16/32] hw/isa/piix3: Rename pci_piix3_props for sharing with PIIX4 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 17/32] hw/isa/piix3: Rename piix3_reset() " Bernhard Beschow
2022-12-04 19:05 ` [PATCH 18/32] hw/isa/piix3: Prefix pci_slot_get_pirq() with "piix3_" Bernhard Beschow
2022-12-04 19:05 ` [PATCH 19/32] hw/isa/piix3: Rename typedef PIIX3State to PIIXState Bernhard Beschow
2022-12-04 19:05 ` [PATCH 20/32] hw/isa/piix4: Make PIIX4's ACPI and USB functions optional Bernhard Beschow
2022-12-04 19:05 ` [PATCH 21/32] hw/isa/piix4: Remove unused code Bernhard Beschow
2022-12-04 19:05 ` [PATCH 22/32] hw/isa/piix4: Use Proxy PIC device Bernhard Beschow
2022-12-04 19:05 ` [PATCH 23/32] hw/isa/piix4: Reuse struct PIIXState from PIIX3 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 24/32] hw/isa/piix4: Rename reset control operations to match PIIX3 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 25/32] hw/isa/piix4: Prefix pci_slot_get_pirq() with "piix4_" Bernhard Beschow
2022-12-04 19:05 ` [PATCH 26/32] hw/isa/piix3: Merge hw/isa/piix4.c Bernhard Beschow
2022-12-04 19:05 ` [PATCH 27/32] hw/isa/piix: Harmonize names of reset control memory regions Bernhard Beschow
2022-12-04 19:05 ` [PATCH 28/32] hw/isa/piix: Reuse PIIX3 base class' realize method in PIIX4 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 29/32] hw/isa/piix: Rename functions to be shared for interrupt triggering Bernhard Beschow
2022-12-04 19:05 ` [PATCH 30/32] hw/isa/piix: Consolidate IRQ triggering Bernhard Beschow
2022-12-04 19:05 ` [PATCH 31/32] hw/isa/piix: Share PIIX3 base class with PIIX4 Bernhard Beschow
2022-12-04 19:05 ` [PATCH 32/32] hw/isa/piix: Drop the "3" from the PIIX base class Bernhard Beschow
2022-12-18 10:35   ` Bernhard Beschow
2022-12-04 19:24 ` [PATCH 00/32] Consolidate PIIX south bridges Bernhard Beschow
2022-12-18 10:33 ` Bernhard Beschow
2022-12-18 14:17   ` Philippe Mathieu-Daudé
2022-12-19 12:14     ` Bernhard Beschow
2022-12-20 14:48 ` Michael S. Tsirkin
2022-12-20 15:08   ` Philippe Mathieu-Daudé [this message]
2022-12-20 22:35     ` Bernhard Beschow
2022-12-20 23:03       ` Michael S. Tsirkin
2022-12-21 17:11       ` Bernhard Beschow
2022-12-21 17:37     ` Bernhard Beschow
2022-12-20 15:30 ` Michael S. Tsirkin
2022-12-20 23:04   ` Bernhard Beschow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d5e1af45-9ff9-6b01-9650-bf5b960abee7@linaro.org \
    --to=philmd@linaro.org \
    --cc=ani@anisinha.ca \
    --cc=aurelien@aurel32.net \
    --cc=eduardo@habkost.net \
    --cc=f4bug@amsat.org \
    --cc=hpoussin@reactos.org \
    --cc=imammedo@redhat.com \
    --cc=jiaxun.yang@flygoat.com \
    --cc=jsnow@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=shentey@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).