Re: [PATCH v2 2/3] Documentation, ABI: Add a document entry for cache id

From: Ingo Molnar
Date: Fri Jul 08 2016 - 14:07:39 EST



* Yu, Fenghua <fenghua.yu@xxxxxxxxx> wrote:

> > From: Ingo Molnar [mailto:mingo.kernel.org@xxxxxxxxx] On Behalf Of Ingo
> > Molnar
> > Sent: Friday, July 08, 2016 1:42 AM
> > * Fenghua Yu <fenghua.yu@xxxxxxxxx> wrote:
> >
> > > From: Fenghua Yu <fenghua.yu@xxxxxxxxx>
> > >
> > > Add an ABI document entry for
> > /sys/devices/system/cpu/cpu*/cache/index*/id.
> > >
> > > Signed-off-by: Fenghua Yu <fenghua.yu@xxxxxxxxx>
> > > ---
> > > Documentation/ABI/testing/sysfs-devices-system-cpu | 13
> > +++++++++++++
> > > 1 file changed, 13 insertions(+)
> > >
> > > diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu
> > b/Documentation/ABI/testing/sysfs-devices-system-cpu
> > > index 1650133..cc62034 100644
> > > --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
> > > +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
> > > @@ -272,6 +272,19 @@ Description: Parameters for the CPU cache
> > attributes
> > > the modified cache line is written to main
> > > memory only when it is replaced
> > >
> > > +
> > > +What: /sys/devices/system/cpu/cpu*/cache/index*/id
> > > +Date: July 2016
> > > +Contact: Linux kernel mailing list <linux-kernel@xxxxxxxxxxxxxxx>
> > > +Description: Cache id
> > > +
> > > + The id identifies a cache in the platform. In same index, the id
> > > + is unique across the platform.
> >
> > What does 'In same index' mean?
>
> It means one cache's id is unique in all caches with same cache index number.
> For example, in all caches with index3 (i.e. level3), cache id 0 is unique to
> identify a L3 cache. But in caches with index 0 (i.e. Level0), there is also a
> cache id 0. So cache id is unique in one index. But not unique in two different
> index.
>
> Does that make sense? I hope I express that correctly.

Yeah, makes sense!

I'd express it like that:

The ID identifies a specific hardware cache of the machine
the kernel is running on. The (depth_index, ID) pair uniquely
identifies a cache.

And wherever you mention 'index' I'd change it over to 'depth index' - because
'index' alone is way too opaque - the 'id' is an index too.

Also note how I avoided the 'platform' word - that is really ambigious as well: it
might mean something generic like 'x86', not just the actual system we are on.

BTW., are there any ID enumeration continuity guarantees, or can there be holes in
the depth index or the ID? (In the normal case, not considering CPU hotplug
creating holes.) Is it the kernel that does the enumeration or do we trust what
the hardware (CPUID) is telling us?

Thanks,

Ingo