[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC 2/8] hw/core: Move CPU topology enumeration into arch-agnostic
From: |
Zhao Liu |
Subject: |
Re: [RFC 2/8] hw/core: Move CPU topology enumeration into arch-agnostic file |
Date: |
Thu, 29 Feb 2024 12:46:55 +0800 |
Hi JeeHeng,
> > +const char *cpu_topo_to_string(CPUTopoLevel topo)
> > +{
> > + return cpu_topo_descriptors[topo].name;
> > +}
> > +
> > +CPUTopoLevel string_to_cpu_topo(char *str)
>
> Can use const char *str.
Okay, I'll.
> > +{
> > + for (int i = 0; i < ARRAY_SIZE(cpu_topo_descriptors); i++) {
> > + CPUTopoInfo *info = &cpu_topo_descriptors[i];
> > +
> > + if (!strcmp(info->name, str)) {
>
> Suggest to use strncmp instead.
Thanks! I tries "l1i-cache=coree", and it causes Segmentation fault.
Will fix.
> > + return (CPUTopoLevel)i;
> > + }
> > + }
> > + return CPU_TOPO_LEVEL_MAX;
> > +}
> > @@ -304,7 +304,7 @@ static uint32_t
> > num_threads_by_topo_level(X86CPUTopoInfo *topo_info,
> > enum CPUTopoLevel topo_level)
> > {
> > switch (topo_level) {
> > - case CPU_TOPO_LEVEL_SMT:
> > + case CPU_TOPO_LEVEL_THREAD:
> > return 1;
> Just wondering why 'return 1' is used directly for the thread, but not
> for the rest?
This helper returens how many threads in one topology domain/container
at this level.
For thread level, it calculates how many threads are in one thread
domain, so it returns 1 directly.
Thanks,
Zhao