Re: [PATCH 01/11] x86, perf: Support sysfs files depending on SMT status

From: Peter Zijlstra
Date: Thu Apr 28 2016 - 04:18:00 EST


On Thu, Apr 28, 2016 at 10:06:09AM +0200, Peter Zijlstra wrote:
> On Wed, Apr 27, 2016 at 01:00:41PM -0700, Andi Kleen wrote:
> > From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> >
> > Add a way to show different sysfs events attributes depending on
> > HyperThreading is on or off. This is difficult to determine
> > early at boot, so we just do it dynamically when the sysfs
> > attribute is read.
>
> Thomas would like to have this in the general (x86) topology bits.
>
> Because having SMT enabled (or not) is not something perf specific (nor
> Intel, because apparently AMD is going to do proper SMT too with their
> Zen micro-arch), and might very well be useful for other thingies to
> know.
>
> So I suppose it should end up somewhere around:
>
> /sys/devices/system/cpu/

FWIW I think we already can tell if SMT is enabled by doing something
like:

for i in /sys/devices/system/cpu/cpu*/topology/thread_siblings_list;
do
SMT=`cat $i | awk --field-separator "," '{print NF}'`;
if [ $SMT -gt 1 ] ; then
echo ENABLED;
break;
fi;
done

With pretty much the same races as this interface has, no?

In any case, a single value is certainly easier than the above.