From: Jonathan Cameron via <qemu-devel@nongnu.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Zhao Liu" <zhao1.liu@intel.com>,
berrange@redhat.com, "Eduardo Habkost" <eduardo@habkost.net>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Michael S.Tsirkin " <mst@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Eric Blake" <eblake@redhat.com>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Sia Jee Heng" <jeeheng.sia@starfivetech.com>,
qemu-devel@nongnu.org, kvm@vger.kernel.org,
qemu-riscv@nongnu.org, qemu-arm@nongnu.org,
"Zhenyu Wang" <zhenyu.z.wang@intel.com>,
"Dapeng Mi" <dapeng1.mi@linux.intel.com>,
"Yongwei Ma" <yongwei.ma@intel.com>
Subject: Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object
Date: Thu, 25 Jul 2024 11:59:02 +0100 [thread overview]
Message-ID: <20240725115902.000037e4@Huawei.com> (raw)
In-Reply-To: <20240725115059.000016c5@Huawei.com>
On Thu, 25 Jul 2024 11:50:59 +0100
Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:
Resending as this bounced due (I think) to an address typo.
> Hi Markus, Zhao Liu
>
> From the ARM server side this is something I want to see as well.
> So I can comment on why we care.
>
> > >> This series adds a way to configure caches.
> > >>
> > >> Structure of the configuration data: a list
> > >>
> > >> [{"name": N, "topo": T}, ...]
> > >>
> > >> where N can be "l1d", "l1i", "l2", or "l3",
> > >> and T can be "invalid", "thread", "core", "module", "cluster",
> > >> "die", "socket", "book", "drawer", or "default".
> > >>
> > >> What's the use case? The commit messages don't tell.
> > >
> > > i386 has the default cache topology model: l1 per core/l2 per core/l3
> > > per die.
> > >
> > > Cache topology affects scheduler performance, e.g., kernel's cluster
> > > scheduling.
> > >
> > > Of course I can hardcode some cache topology model in the specific cpu
> > > model that corresponds to the actual hardware, but for -cpu host/max,
> > > the default i386 cache topology model has no flexibility, and the
> > > host-cpu-cache option doesn't have enough fine-grained control over the
> > > cache topology.
> > >
> > > So I want to provide a way to allow user create more fleasible cache
> > > topology. Just like cpu topology.
> >
> >
> > So the use case is exposing a configurable cache topology to the guest
> > in order to increase performance. Performance can increase when the
> > configured virtual topology is closer to the physical topology than a
> > default topology would be. This can be the case with CPU host or max.
> >
> > Correct?
>
> That is definitely why we want it on arm64 where this info fills in
> the topology we can't get from the CPU registers.
> (we should have patches on top of this to send out shortly).
>
> As a side note we also need this for MPAM emulation for TCG
> (any maybe eventually paravirtualized MPAM) as this is needed
> to build the right PPTT to describe the caches which we then
> query to figure out association of MPAM controls with particularly
> caches.
>
> Size configuration is something we'll need down the line (presenting
> only part of an L3 may make sense if it's shared by multiple VMs
> or partitioned with MPAM) but that's a future question.
>
>
> >
> > >> Why does that use case make no sense without SMP?
> > >
> > > As the example I mentioned, for Intel hyrbid architecture, P cores has
> > > l2 per core and E cores has l2 per module. Then either setting the l2
> > > topology level as core nor module, can emulate the real case.
> > >
> > > Even considering the more extreme case of Intel 14th MTL CPU, where
> > > some E cores have L3 and some don't even have L3. As well as the last
> > > time you and Daniel mentioned that in the future we could consider
> > > covering more cache properties such as cache size. But the l3 size can
> > > be different in the same system, like AMD's x3D technology. So
> > > generally configuring properties for @name in a list can't take into
> > > account the differences of heterogeneous caches with the same @name.
> > >
> > > Hope my poor english explains the problem well. :-)
> >
> > I think I understand why you want to configure caches. My question was
> > about the connection to SMP.
> >
> > Say we run a guest with a single core, no SMP. Could configuring caches
> > still be useful then?
>
> Probably not useful to configure topology (sizes are a separate question)
> - any sensible default should be fine.
>
> Jonathan
>
>
next prev parent reply other threads:[~2024-07-25 11:00 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-04 3:15 [PATCH 0/8] Introduce SMP Cache Topology Zhao Liu
2024-07-04 3:15 ` [PATCH 1/8] hw/core: Make CPU topology enumeration arch-agnostic Zhao Liu
2024-07-22 11:56 ` Markus Armbruster
2024-07-22 13:24 ` Markus Armbruster
2024-07-22 14:01 ` Zhao Liu
2024-07-23 10:14 ` Markus Armbruster
2024-07-23 14:40 ` Zhao Liu
2024-07-04 3:15 ` [PATCH 2/8] qapi/qom: Introduce smp-cache object Zhao Liu
2024-07-09 10:13 ` Zhao Liu
2024-07-22 13:33 ` Markus Armbruster
2024-07-22 14:30 ` Zhao Liu
2024-07-24 11:35 ` Markus Armbruster
2024-07-24 12:47 ` Daniel P. Berrangé
2024-07-24 14:03 ` Zhao Liu
2024-07-24 15:10 ` Zhao Liu
2024-07-24 14:55 ` Zhao Liu
2024-07-25 8:51 ` Markus Armbruster
[not found] ` <20240725115059.000016c5@Huawei.com>
2024-07-25 10:59 ` Jonathan Cameron via [this message]
2024-07-25 11:58 ` Zhao Liu
2024-07-25 11:56 ` Zhao Liu
2024-07-04 3:15 ` [PATCH 3/8] hw/core: Add smp cache topology for machine Zhao Liu
2024-07-04 3:15 ` [PATCH 4/8] hw/core: Check smp cache topology support " Zhao Liu
2024-07-04 3:16 ` [PATCH 5/8] i386/cpu: Support thread and module level cache topology Zhao Liu
2024-07-04 3:16 ` [PATCH 6/8] i386/cpu: Update cache topology with machine's configuration Zhao Liu
2024-07-04 3:16 ` [PATCH 7/8] i386/pc: Support cache topology in -machine for PC machine Zhao Liu
2024-07-04 3:16 ` [PATCH 8/8] qemu-options: Add the description of smp-cache object Zhao Liu
2024-07-22 13:37 ` Markus Armbruster
2024-07-22 14:42 ` Zhao Liu
2024-07-24 12:39 ` Markus Armbruster
2024-07-24 14:21 ` Zhao Liu
2024-07-25 9:07 ` Markus Armbruster
2024-08-01 9:37 ` Zhao Liu
2024-08-01 11:28 ` Markus Armbruster
2024-08-02 7:58 ` Zhao Liu
2024-08-07 10:00 ` Zhao Liu
2024-08-09 12:24 ` Markus Armbruster
2024-08-12 9:24 ` Zhao Liu
2024-07-22 7:33 ` [PATCH 0/8] Introduce SMP Cache Topology Zhao Liu
2024-07-22 7:49 ` Michael S. Tsirkin
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=20240725115902.000037e4@Huawei.com \
--to=qemu-devel@nongnu.org \
--cc=Jonathan.Cameron@Huawei.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=dapeng1.mi@linux.intel.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=jeeheng.sia@starfivetech.com \
--cc=kvm@vger.kernel.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=wangyanan55@huawei.com \
--cc=yongwei.ma@intel.com \
--cc=zhao1.liu@intel.com \
--cc=zhenyu.z.wang@intel.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).