From: "Michael S. Tsirkin" <mst@redhat.com>
To: Bernhard Beschow <shentey@gmail.com>
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
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 18:03:40 -0500 [thread overview]
Message-ID: <20221220180304-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <7030BFB2-DD96-4900-991C-DC962875D4D4@gmail.com>
On Tue, Dec 20, 2022 at 10:35:23PM +0000, Bernhard Beschow wrote:
>
>
> Am 20. Dezember 2022 15:08:57 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.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).
>
> Nice!
>
> Shall we integrate [1] 'Decouple INTx-to-LNKx routing from south bridges' via mips-next rather than x86 as well? This would 1/ make the consolidation more complete and 2/ simplify the process since these series conflict with one another.
OK I'll drop it from my tree.
> I could rebase [1] onto this series (perhaps simpler to review) or the other way around (less code movement). Please let me know what you'd prefer.
>
> [1] https://lists.nongnu.org/archive/html/qemu-devel/2022-11/msg03310.html
>
> >
> >Regards.
> >
> >Phil.
next prev parent reply other threads:[~2022-12-20 23:04 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é
2022-12-20 22:35 ` Bernhard Beschow
2022-12-20 23:03 ` Michael S. Tsirkin [this message]
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=20221220180304-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--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=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--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 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.