From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: ehabkost@redhat.com, mst@redhat.com, qemu-devel@nongnu.org,
Babu Moger <babu.moger@amd.com>,
pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [PATCH v5 0/8] Remove EPYC mode apicid decode and use generic decode
Date: Tue, 25 Aug 2020 16:25:21 +0100 [thread overview]
Message-ID: <20200825152521.GA3574@work-vm> (raw)
In-Reply-To: <20200825163846.10185087@redhat.com>
* Igor Mammedov (imammedo@redhat.com) wrote:
> On Tue, 25 Aug 2020 09:15:04 +0100
> "Dr. David Alan Gilbert" <dgilbert@redhat.com> wrote:
>
> > * Babu Moger (babu.moger@amd.com) wrote:
> > > Hi Dave,
> > >
> > > On 8/24/20 1:41 PM, Dr. David Alan Gilbert wrote:
> > > > * Babu Moger (babu.moger@amd.com) wrote:
> > > >> To support some of the complex topology, we introduced EPYC mode apicid decode.
> > > >> But, EPYC mode decode is running into problems. Also it can become quite a
> > > >> maintenance problem in the future. So, it was decided to remove that code and
> > > >> use the generic decode which works for majority of the topology. Most of the
> > > >> SPECed configuration would work just fine. With some non-SPECed user inputs,
> > > >> it will create some sub-optimal configuration.
> > > >> Here is the discussion thread.
> > > >> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fqemu-devel%2Fc0bcc1a6-1d84-a6e7-e468-d5b437c1b254%40amd.com%2F&data=02%7C01%7Cbabu.moger%40amd.com%7C74d90724af9c4adcc75008d8485d4d16%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637338912853492167&sdata=GTsMKcpeYXAA0CvpLTirPHKdNSdlJE3RuPjCtSyWtGQ%3D&reserved=0
> > > >>
> > > >> This series removes all the EPYC mode specific apicid changes and use the generic
> > > >> apicid decode.
> > > >
> > > > Hi Babu,
> > > > This does simplify things a lot!
> > > > One worry, what happens about a live migration of a VM from an old qemu
> > > > that was using the node-id to a qemu with this new scheme?
> > >
> > > The node_id which we introduced was only used internally. This wasn't
> > > exposed outside. I don't think live migration will be an issue.
> >
> > Didn't it become part of the APIC ID visible to the guest?
>
> Daniel asked similar question wrt hard error on start up,
> when CLI is not sufficient to create EPYC cpu.
>
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg728536.html
>
> Migration might fall into the same category.
> Also looking at the history, 5.0 commit
> 247b18c593ec29 target/i386: Enable new apic id encoding for EPYC based cpus models
> silently broke APIC ID (without versioning), for all EPYC models (that's were 1 new and 1 old one).
>
> (I'm not aware of somebody complaining about it)
>
> Another commit ed78467a21459, changed CPUID_8000_001E without versioning as well.
>
>
> With current EPYC apicid code, if all starts align (no numa or 1 numa node only on
> CLI and no -smp dies=) it might produce a valid CPU (apicid+CPUID_8000_001E).
> No numa is gray area, since EPYC spec implies that it has to be numa machine in case of real EPYC cpus.
> Multi-node configs would be correct only if user assigns cpus to numa nodes
> by duplicating internal node_id algorithm that this series removes.
>
> There might be other broken cases that I don't recall anymore
> (should be mentioned in previous versions of this series)
>
>
> To summarize from migration pov (ignoring ed78467a21459 change):
>
> 1) old qemu pre-5.0 ==> qemu 5.0, 5.1 - broken migration
Oh ....
> 2) with this series (lets call it qemu 5.2)
> pre-5.0 ==> qemu 5.2 - should work as series basically rollbacks current code to pre-5.0
> qemu 5.0, 5.1 ==> qemu 5.2 - broken
>
> It's all about picking which poison to choose,
> I'd preffer 2nd case as it lets drop a lot of complicated code that
> doesn't work as expected.
I think that would make our lives easier for other reasons; so I'm happy
to go with that.
> PS:
> I didn't review it yet, but with this series we aren't
> making up internal node_ids that should match user provided numa node ids somehow.
> It seems series lost the patch that would enforce numa in case -smp dies>1,
> but otherwise it heads in the right direction.
Dave
> >
> > Dave
> >
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2020-08-25 15:26 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-21 22:12 [PATCH v5 0/8] Remove EPYC mode apicid decode and use generic decode Babu Moger
2020-08-21 22:12 ` [PATCH v5 1/8] hw/i386: Remove node_id, nr_nodes and nodes_per_pkg from topology Babu Moger
2020-08-26 9:57 ` Igor Mammedov
2020-08-26 17:31 ` Babu Moger
2020-08-21 22:12 ` [PATCH v5 2/8] Revert "i386: Fix pkg_id offset for EPYC cpu models" Babu Moger
2020-08-21 22:12 ` [PATCH v5 3/8] Revert "target/i386: Enable new apic id encoding for EPYC based cpus models" Babu Moger
2020-08-21 22:12 ` [PATCH v5 4/8] Revert "hw/i386: Move arch_id decode inside x86_cpus_init" Babu Moger
2020-08-21 22:12 ` [PATCH v5 5/8] Revert "i386: Introduce use_epyc_apic_id_encoding in X86CPUDefinition" Babu Moger
2020-08-21 22:12 ` [PATCH v5 6/8] Revert "hw/i386: Introduce apicid functions inside X86MachineState" Babu Moger
2020-08-21 22:13 ` [PATCH v5 7/8] Revert "hw/386: Add EPYC mode topology decoding functions" Babu Moger
2020-08-28 17:27 ` Eduardo Habkost
2020-08-28 18:03 ` Babu Moger
2020-08-21 22:13 ` [PATCH v5 8/8] i386: Simplify CPUID_8000_001E for AMD Babu Moger
2020-08-26 12:19 ` Igor Mammedov
2020-08-24 18:41 ` [PATCH v5 0/8] Remove EPYC mode apicid decode and use generic decode Dr. David Alan Gilbert
2020-08-24 19:20 ` Babu Moger
2020-08-25 8:15 ` Dr. David Alan Gilbert
2020-08-25 14:38 ` Igor Mammedov
2020-08-25 15:25 ` Dr. David Alan Gilbert [this message]
2020-08-26 12:43 ` Igor Mammedov
2020-08-26 14:10 ` Dr. David Alan Gilbert
2020-08-27 21:19 ` Igor Mammedov
2020-08-27 22:58 ` Babu Moger
2020-08-28 8:42 ` Igor Mammedov
2020-08-28 14:22 ` Babu Moger
2020-08-28 8:48 ` Dr. David Alan Gilbert
2020-08-28 11:36 ` Igor Mammedov
2020-08-26 12:38 ` Igor Mammedov
2020-08-26 12:50 ` Daniel P. Berrangé
2020-08-26 13:30 ` Igor Mammedov
2020-08-26 13:36 ` Daniel P. Berrangé
2020-08-26 14:02 ` Igor Mammedov
2020-08-26 15:03 ` Daniel P. Berrangé
2020-08-26 15:18 ` Eduardo Habkost
2020-08-27 17:03 ` Igor Mammedov
2020-08-27 19:07 ` Eduardo Habkost
2020-08-27 20:55 ` Igor Mammedov
2020-08-28 8:55 ` Daniel P. Berrangé
2020-08-28 16:29 ` Eduardo Habkost
2020-08-28 16:32 ` Daniel P. Berrangé
2020-08-28 16:45 ` Eduardo Habkost
2020-08-28 18:00 ` Babu Moger
2020-08-26 17:17 ` Babu Moger
2020-08-26 18:33 ` Dr. David Alan Gilbert
2020-08-26 18:45 ` Babu Moger
2020-08-27 20:21 ` Igor Mammedov
2020-08-28 8:58 ` Daniel P. Berrangé
2020-08-28 11:24 ` Igor Mammedov
2020-08-28 14:17 ` Babu Moger
2020-08-28 14:48 ` Igor Mammedov
2020-08-26 14:04 ` Eduardo Habkost
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=20200825152521.GA3574@work-vm \
--to=dgilbert@redhat.com \
--cc=babu.moger@amd.com \
--cc=ehabkost@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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.