xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: Bernhard Beschow <shentey@gmail.com>
Cc: qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
	"Magnus Damm" <magnus.damm@gmail.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Bandan Das" <bsd@redhat.com>,
	"Matthew Rosato" <mjrosato@linux.ibm.com>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	"Sergio Lopez" <slp@redhat.com>,
	"Alexey Kardashevskiy" <aik@ozlabs.ru>,
	"Xiaojuan Yang" <yangxiaojuan@loongson.cn>,
	"Cameron Esfahani" <dirty@apple.com>,
	"Michael Rolnik" <mrolnik@gmail.com>,
	"Song Gao" <gaosong@loongson.cn>,
	"Jagannathan Raman" <jag.raman@oracle.com>,
	"Greg Kurz" <groug@kaod.org>,
	"Kamil Rytarowski" <kamil@netbsd.org>,
	"Peter Xu" <peterx@redhat.com>, "Joel Stanley" <joel@jms.id.au>,
	"Alistair Francis" <Alistair.Francis@wdc.com>,
	"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	haxm-team@intel.com, "Roman Bolshakov" <r.bolshakov@yadro.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Eric Auger" <eric.auger@redhat.com>,
	"David Gibson" <david@gibson.dropbear.id.au>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Cédric Le Goater" <clg@kaod.org>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	qemu-block@nongnu.org, "Eduardo Habkost" <eduardo@habkost.net>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	qemu-ppc@nongnu.org, "Cornelia Huck" <cohuck@redhat.com>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Helge Deller" <deller@gmx.de>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	qemu-riscv@nongnu.org, "Stafford Horne" <shorne@gmail.com>,
	"Paul Durrant" <paul@xen.org>,
	"Havard Skinnemoen" <hskinnemoen@google.com>,
	"Elena Ufimtseva" <elena.ufimtseva@oracle.com>,
	"Alexander Graf" <agraf@csgraf.de>,
	"Thomas Huth" <thuth@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Wenchao Wang" <wenchao.wang@intel.com>,
	"Tony Krowiak" <akrowiak@linux.ibm.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	qemu-s390x@nongnu.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Eric Farman" <farman@linux.ibm.com>,
	"Reinoud Zandijk" <reinoud@netbsd.org>,
	"Alexander Bulekov" <alxndr@bu.edu>,
	"Yanan Wang" <wangyanan55@huawei.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Tyrone Ting" <kfting@nuvoton.com>,
	xen-devel@lists.xenproject.org,
	"Yoshinori Sato" <ysato@users.sourceforge.jp>,
	"John Snow" <jsnow@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Darren Kenny" <darren.kenny@oracle.com>,
	kvm@vger.kernel.org, "Qiuhao Li" <Qiuhao.Li@outlook.com>,
	"John G Johnson" <john.g.johnson@oracle.com>,
	"Bin Meng" <bin.meng@windriver.com>,
	"Sunil Muthuswamy" <sunilmut@microsoft.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	qemu-arm@nongnu.org, "Marcelo Tosatti" <mtosatti@redhat.com>,
	"Anthony Perard" <anthony.perard@citrix.com>,
	"Andrew Jeffery" <andrew@aj.id.au>,
	"Artyom Tarasenko" <atar4qemu@gmail.com>,
	"Halil Pasic" <pasic@linux.ibm.com>,
	"Maciej S. Szmigiero" <maciej.szmigiero@oracle.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"David Hildenbrand" <david@redhat.com>,
	"Laurent Vivier" <laurent@vivier.eu>,
	"Alistair Francis" <alistair@alistair23.me>,
	"Jason Herne" <jjherne@linux.ibm.com>
Subject: Re: [PATCH 0/9] Deprecate sysbus_get_default() and get_system_memory() et. al
Date: Wed, 21 Sep 2022 10:47:58 +0100	[thread overview]
Message-ID: <CAFEAcA9wHy8GNH_yWkZycdZZ4KxzDdTA=YP6zmHGsRC1gk=CUw@mail.gmail.com> (raw)
In-Reply-To: <AD2F1750-F579-4F3B-A9FD-F2ADDF29D9E8@gmail.com>

On Tue, 20 Sept 2022 at 23:50, Bernhard Beschow <shentey@gmail.com> wrote:
>
> Am 20. September 2022 09:55:37 UTC schrieb Peter Maydell <peter.maydell@linaro.org>:
> >On Tue, 20 Sept 2022 at 00:18, Bernhard Beschow <shentey@gmail.com> wrote:
> >>
> >> In address-spaces.h it can be read that get_system_memory() and
> >> get_system_io() are temporary interfaces which "should only be used temporarily
> >> until a proper bus interface is available". This statement certainly extends to
> >> the address_space_memory and address_space_io singletons.
> >
> >This is a long standing "we never really completed a cleanup"...
> >
> >> This series attempts
> >> to stop further proliferation of their use by turning TYPE_SYSTEM_BUS into an
> >> object-oriented, "proper bus interface" inspired by PCIBus.
> >>
> >> While at it, also the main_system_bus singleton is turned into an attribute of
> >> MachineState. Together, this resolves five singletons in total, making the
> >> ownership relations much more obvious which helps comprehension.
> >
> >...but I don't think this is the direction we want to go.
> >Overall the reason that the "system memory" and "system IO"
> >singletons are weird is that in theory they should not be necessary
> >at all -- board code should create devices and map them into an
> >entirely arbitrary MemoryRegion or set of MemoryRegions corresponding
> >to address space(s) for the CPU and for DMA-capable devices.
>
> My intention was to allow exactly that: By turning sytem memory and system IO into non-singletons, one could have many of them, thus allowing boards to create arbitrary mappings of memory and IO. Since QEMU currently assumes one set (memory and IO) of addresses, I for now instantiated the SysBus once in the machine class to preserve behavior.

You can already create arbitrary mappings of memory and IO
(look at the virt board for an example). The existence of the
legacy singleton system-memory and system-io doesn't prevent that,
and stuffing the singletons into the MachineState doesn't do
anything to change the code that is relying on the singletons.

> >Retaining the whole-system singleton but shoving it into MachineState
> >doesn't really change much, IMHO.
> >
> >More generally, sysbus is rather weird because it isn't really a
> >bus. Every device in the system of TYPE_SYS_BUS_DEVICE is "on"
> >the unique TYPE_SYSTEM_BUS bus, but that doesn't mean they're
> >all in the same address space or that in real hardware they'd
> >all be on the same bus.
>
> Again, having multiple SysBuses may solve that issue.

We definitely don't want multiple sysbuses.

thanks
-- PMM


      reply	other threads:[~2022-09-21  9:48 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-19 23:17 [PATCH 0/9] Deprecate sysbus_get_default() and get_system_memory() et. al Bernhard Beschow
2022-09-19 23:17 ` [PATCH 1/9] hw/riscv/sifive_e: Fix inheritance of SiFiveEState Bernhard Beschow
2022-09-19 23:31   ` Alistair Francis
2022-09-20 11:36     ` Markus Armbruster
2022-09-20 23:23       ` Bernhard Beschow
2022-09-21  4:55         ` Markus Armbruster
2022-09-22  7:55           ` B
2022-09-20  4:47   ` Philippe Mathieu-Daudé
2022-09-19 23:17 ` [PATCH 2/9] exec/hwaddr.h: Add missing include Bernhard Beschow
2022-09-20  4:50   ` Philippe Mathieu-Daudé
2022-09-20 23:03     ` Bernhard Beschow
2022-09-19 23:17 ` [PATCH 3/9] hw/core/sysbus: Resolve main_system_bus singleton Bernhard Beschow
2022-09-20  4:52   ` Philippe Mathieu-Daudé
2022-09-19 23:17 ` [PATCH 4/9] hw/ppc/spapr: Fix code style problems reported by checkpatch Bernhard Beschow
2022-09-20 14:00   ` Daniel Henrique Barboza
2022-09-19 23:17 ` [PATCH 5/9] exec/address-spaces: Wrap address space singletons into functions Bernhard Beschow
2022-09-20  5:36   ` Philippe Mathieu-Daudé
2022-09-19 23:17 ` [PATCH 6/9] target/loongarch/cpu: Remove unneeded include directive Bernhard Beschow
2022-09-20  4:57   ` Philippe Mathieu-Daudé
2022-09-19 23:17 ` [PATCH 7/9] hw/sysbus: Introduce dedicated struct SysBusState for TYPE_SYSTEM_BUS Bernhard Beschow
2022-09-19 23:17 ` [PATCH 8/9] softmmu/physmem: Let SysBusState absorb memory region and address space singletons Bernhard Beschow
2022-09-20  5:11   ` Philippe Mathieu-Daudé
2022-09-20  8:50     ` BALATON Zoltan
2022-09-20 23:13       ` Bernhard Beschow
2022-09-19 23:17 ` [PATCH 9/9] exec/address-spaces: Inline legacy functions Bernhard Beschow
2022-09-20  5:15   ` Philippe Mathieu-Daudé
2022-09-20  5:29     ` Philippe Mathieu-Daudé
2022-09-20  9:02     ` BALATON Zoltan
2022-09-20 23:20       ` Bernhard Beschow
2022-09-20  9:55 ` [PATCH 0/9] Deprecate sysbus_get_default() and get_system_memory() et. al Peter Maydell
2022-09-20 15:36   ` Mark Cave-Ayland
2022-09-20 22:59     ` Bernhard Beschow
2022-09-20 22:50   ` Bernhard Beschow
2022-09-21  9:47     ` Peter Maydell [this message]

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='CAFEAcA9wHy8GNH_yWkZycdZZ4KxzDdTA=YP6zmHGsRC1gk=CUw@mail.gmail.com' \
    --to=peter.maydell@linaro.org \
    --cc=Alistair.Francis@wdc.com \
    --cc=Qiuhao.Li@outlook.com \
    --cc=agraf@csgraf.de \
    --cc=aik@ozlabs.ru \
    --cc=akrowiak@linux.ibm.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=alex.williamson@redhat.com \
    --cc=alistair@alistair23.me \
    --cc=alxndr@bu.edu \
    --cc=andrew@aj.id.au \
    --cc=anthony.perard@citrix.com \
    --cc=armbru@redhat.com \
    --cc=atar4qemu@gmail.com \
    --cc=berrange@redhat.com \
    --cc=bin.meng@windriver.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=bsd@redhat.com \
    --cc=clg@kaod.org \
    --cc=cohuck@redhat.com \
    --cc=danielhb413@gmail.com \
    --cc=darren.kenny@oracle.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=david@redhat.com \
    --cc=deller@gmx.de \
    --cc=dgilbert@redhat.com \
    --cc=dirty@apple.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=eduardo@habkost.net \
    --cc=elena.ufimtseva@oracle.com \
    --cc=eric.auger@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=farman@linux.ibm.com \
    --cc=gaosong@loongson.cn \
    --cc=groug@kaod.org \
    --cc=haxm-team@intel.com \
    --cc=hpoussin@reactos.org \
    --cc=hskinnemoen@google.com \
    --cc=jag.raman@oracle.com \
    --cc=jasowang@redhat.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=jjherne@linux.ibm.com \
    --cc=joel@jms.id.au \
    --cc=john.g.johnson@oracle.com \
    --cc=jsnow@redhat.com \
    --cc=kamil@netbsd.org \
    --cc=kfting@nuvoton.com \
    --cc=kraxel@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=laurent@vivier.eu \
    --cc=maciej.szmigiero@oracle.com \
    --cc=magnus.damm@gmail.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mjrosato@linux.ibm.com \
    --cc=mrolnik@gmail.com \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=palmer@dabbelt.com \
    --cc=pasic@linux.ibm.com \
    --cc=paul@xen.org \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-riscv@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=r.bolshakov@yadro.com \
    --cc=reinoud@netbsd.org \
    --cc=richard.henderson@linaro.org \
    --cc=shentey@gmail.com \
    --cc=shorne@gmail.com \
    --cc=slp@redhat.com \
    --cc=sstabellini@kernel.org \
    --cc=stefanha@redhat.com \
    --cc=sunilmut@microsoft.com \
    --cc=thuth@redhat.com \
    --cc=wangyanan55@huawei.com \
    --cc=wenchao.wang@intel.com \
    --cc=xen-devel@lists.xenproject.org \
    --cc=yangxiaojuan@loongson.cn \
    --cc=ysato@users.sourceforge.jp \
    /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).