From: "Philippe Mathieu-Daudé" <f4bug@amsat.org> To: Bernhard Beschow <shentey@gmail.com>, qemu-devel@nongnu.org Cc: "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>, 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>, "Peter Maydell" <peter.maydell@linaro.org>, "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 3/9] hw/core/sysbus: Resolve main_system_bus singleton Date: Tue, 20 Sep 2022 06:52:51 +0200 [thread overview] Message-ID: <6af33d73-1e34-304d-998f-a46c8c05f4bb@amsat.org> (raw) In-Reply-To: <20220919231720.163121-4-shentey@gmail.com> On 20/9/22 01:17, Bernhard Beschow wrote: > In QEMU, a machine and the main_system_bus always go togehter. Usually > the bus is part of the machine which suggsts to host it there. "together", "suggests" > Since tere is already a current_machine singleton, all code that > accesses the main_system_bus can be changed (behind the scenes) to go > through current_machine. This resolves a singleton. Futhermore, by "Furthermore" > reifying it in code, the every-machine-has-exactly-one-main-system-bus > relationship becomes very obvious. > > Note that the main_system_bus attribute is a value rather than a > pointer. This trades pointer dereferences for pointer arithmetic. The > idea is to reduce cache misses - a rule of thumb says that > every pointer dereference causes a cache miss while arithmetic is > basically free. > > Signed-off-by: Bernhard Beschow <shentey@gmail.com> > --- > hw/core/bus.c | 5 ++++- > hw/core/machine.c | 3 +++ > hw/core/sysbus.c | 22 +++++----------------- > include/hw/boards.h | 1 + > 4 files changed, 13 insertions(+), 18 deletions(-) > diff --git a/include/hw/boards.h b/include/hw/boards.h > index 311ed17e18..7af940102d 100644 > --- a/include/hw/boards.h > +++ b/include/hw/boards.h Likely missing the BusState declaration: #include "hw/qdev-core.h" > @@ -346,6 +346,7 @@ struct MachineState { > */ > MemoryRegion *ram; > DeviceMemoryState *device_memory; > + BusState main_system_bus; > > ram_addr_t ram_size; > ram_addr_t maxram_size;
WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé via" <qemu-devel@nongnu.org> To: Bernhard Beschow <shentey@gmail.com>, qemu-devel@nongnu.org Cc: "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>, 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>, "Peter Maydell" <peter.maydell@linaro.org>, "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 3/9] hw/core/sysbus: Resolve main_system_bus singleton Date: Tue, 20 Sep 2022 06:52:51 +0200 [thread overview] Message-ID: <6af33d73-1e34-304d-998f-a46c8c05f4bb@amsat.org> (raw) In-Reply-To: <20220919231720.163121-4-shentey@gmail.com> On 20/9/22 01:17, Bernhard Beschow wrote: > In QEMU, a machine and the main_system_bus always go togehter. Usually > the bus is part of the machine which suggsts to host it there. "together", "suggests" > Since tere is already a current_machine singleton, all code that > accesses the main_system_bus can be changed (behind the scenes) to go > through current_machine. This resolves a singleton. Futhermore, by "Furthermore" > reifying it in code, the every-machine-has-exactly-one-main-system-bus > relationship becomes very obvious. > > Note that the main_system_bus attribute is a value rather than a > pointer. This trades pointer dereferences for pointer arithmetic. The > idea is to reduce cache misses - a rule of thumb says that > every pointer dereference causes a cache miss while arithmetic is > basically free. > > Signed-off-by: Bernhard Beschow <shentey@gmail.com> > --- > hw/core/bus.c | 5 ++++- > hw/core/machine.c | 3 +++ > hw/core/sysbus.c | 22 +++++----------------- > include/hw/boards.h | 1 + > 4 files changed, 13 insertions(+), 18 deletions(-) > diff --git a/include/hw/boards.h b/include/hw/boards.h > index 311ed17e18..7af940102d 100644 > --- a/include/hw/boards.h > +++ b/include/hw/boards.h Likely missing the BusState declaration: #include "hw/qdev-core.h" > @@ -346,6 +346,7 @@ struct MachineState { > */ > MemoryRegion *ram; > DeviceMemoryState *device_memory; > + BusState main_system_bus; > > ram_addr_t ram_size; > ram_addr_t maxram_size;
next prev parent reply other threads:[~2022-09-20 4:53 UTC|newest] Thread overview: 42+ 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-20 4:47 ` Philippe Mathieu-Daudé via 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 4:50 ` Philippe Mathieu-Daudé via 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é [this message] 2022-09-20 4:52 ` Philippe Mathieu-Daudé via 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-20 5:36 ` Philippe Mathieu-Daudé via 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-20 4:57 ` Philippe Mathieu-Daudé via 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 5:11 ` Philippe Mathieu-Daudé via 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:15 ` Philippe Mathieu-Daudé via 2022-09-20 5:29 ` Philippe Mathieu-Daudé 2022-09-20 5:29 ` Philippe Mathieu-Daudé via 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
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=6af33d73-1e34-304d-998f-a46c8c05f4bb@amsat.org \ --to=f4bug@amsat.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=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=peter.maydell@linaro.org \ --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: linkBe 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.