From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Zhao Liu" <zhao1.liu@intel.com>,
"Daniel P.\" =?ISO-8859-1?Q?Berrang=E9?= <berrange@redhat.com>,
Eduardo Habkost <eduardo@habkost.net>,
Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
Philippe =?ISO-8859-1?Q?Mathieu-D?= =?ISO-8859-1?Q?aud=E9?=
<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 =?ISO-8859-1?Q?Benn=E9e?= <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>"@domain.invalid
Subject: Re: [PATCH 2/8] qapi/qom: Introduce smp-cache object
Date: Thu, 25 Jul 2024 11:50:59 +0100 [thread overview]
Message-ID: <20240725115059.000016c5@Huawei.com> (raw)
In-Reply-To: <871q3hua56.fsf@pond.sub.org>
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 10:51 UTC|newest]
Thread overview: 48+ 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 12:25 ` Jonathan Cameron
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 12:38 ` Jonathan Cameron
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
2024-07-25 10:50 ` Jonathan Cameron [this message]
2024-07-25 10:59 ` Jonathan Cameron via
2024-07-25 10:59 ` Jonathan Cameron via
2024-07-25 10:59 ` Jonathan Cameron
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-22 12:39 ` Jonathan Cameron
2024-07-04 3:15 ` [PATCH 4/8] hw/core: Check smp cache topology support " Zhao Liu
2024-07-22 12:47 ` Jonathan Cameron
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-08-14 12:12 ` Jonathan Cameron
2024-07-22 7:33 ` [PATCH 0/8] Introduce SMP Cache Topology Zhao Liu
2024-07-22 7:49 ` Michael S. Tsirkin
2024-07-22 12:54 ` Jonathan Cameron
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=20240725115059.000016c5@Huawei.com \
--to=jonathan.cameron@huawei.com \
--cc="Daniel P.\" =?ISO-8859-1?Q?Berrang=E9?= <berrange@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Philippe =?ISO-8859-1?Q?Mathieu-D?= =?ISO-8859-1?Q?aud=E9?= <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 =?ISO-8859-1?Q?Benn=E9e?= <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>"@domain.invalid \
--cc=armbru@redhat.com \
--cc=zhao1.liu@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 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.