Re: [PATCH] target/ppc/cpu_init: make cpu listing determnistic

Amit Machhiwal <[email protected]>
Newsgroups gmane.comp.emulators.qemu
Message-ID <[email protected]>
On 2026/07/28 10:57 AM, Pierrick Bouvier wrote:
> On 7/28/2026 2:40 AM, Amit Machhiwal wrote:
> > On 2026/07/20 07:24 PM, Pierrick Bouvier wrote:
> >> The existing compare function only make sure that we list cpus with PVR
> >> order. However, we never compare cpu names.
> >> As a result, while cpus are grouped per PVR, the order within a group is
> >> non deterministic. Depending on QOM type initialization order, we get
> >> different results for -cpu help.
> >>
> >> For instance, previous output could be:
> >> Available CPUs:
> >>   755_v1.0         PVR 00083100
> >>   745_v1.0         PVR 00083100
> >>   755_v1.1         PVR 00083101
> >>   745_v1.1         PVR 00083101
> >>
> >> While a sorted output should be:
> >> Available CPUs:
> >>   745_v1.0         PVR 00083100
> >>   755_v1.0         PVR 00083100
> >>   745_v1.1         PVR 00083101
> >>   755_v1.1         PVR 00083101
> >>
> >> Fix it by comparing cpu names to have a stable result.
> > 
> > Verified the before/after output of `qemu-system-ppc64 -cpu help`. The
> > patch correctly stabilises ordering in all PVR-collision groups.
> > 
> > No regressions: identical CPU set, ordering only.
> > 
> > Reviewed-by: Amit Machhiwal <[email protected]> 
> > Tested-by: Amit Machhiwal <[email protected]> 
> > 
> > Minor nit: subject line has a typo ("determnistic" should be
> > "deterministic").
> > 
> > Thanks,
> > Amit
> >
> 
> Thanks Amit.
> 
> Do you need a v2 with a change, or feel like fixing the typo when
> pulling this patch?

I think its a minor one and a v2 is not required just for this.

@Harsh, could you please fix this while pulling it?

Thanks,
Amit

> 
> Regards,
> Pierrick
> 
> >> This allows us to record and compare various command line results across
> >> versions to make sure we didn't break anything while working on
> >> single-binary.
> >>
> >> Signed-off-by: Pierrick Bouvier <[email protected]>
> >> ---
> >>  target/ppc/cpu_init.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
> >> index f404c7e549d..3443dbeeb01 100644
> >> --- a/target/ppc/cpu_init.c
> >> +++ b/target/ppc/cpu_init.c
> >> @@ -7130,7 +7130,7 @@ static gint ppc_cpu_list_compare(gconstpointer a, gconstpointer b, gpointer d)
> >>          } else if (pcc_a->pvr > pcc_b->pvr) {
> >>              return 1;
> >>          } else {
> >> -            return 0;
> >> +            return strcmp(name_a, name_b);
> >>          }
> >>      }
> >>  }
> >> -- 
> >> 2.43.0
> >>
> >>
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.