Question: In the Intel manual, there are tables containing listings of `Performance-Monitoring Counters`, but they are extremely specific to the particular processor family.

For example, one table lists the counters of `P6 Family`, and another lists for `Pentium`.

In `Ubuntu`, if I do `cat /proc/cpuinfo`, I get a line that says `cpu family`, but it is a single number. Is there some mapping between this number and Intel's notion of a `processor family`?

I also looked [this page](http://www.intel.com/content/www/us/en/processors/processor-numbers.html) from Intel, but it does not even mention the word "family".

Incidentally, I am on an `X3470` so I thought maybe `Xeon` was the family, but the manual does not list it.

Answer: 
"Family" is an ambiguous concept. The number returned by /proc/cpuinfo is the "family" field from the [CPUID](https://en.wikipedia.org/wiki/CPUID) instruction, which gives a vague idea of what processors are related to this one, and is really only useful for doing a table lookup to select what name to display for processors that don't support the "processor brand string" extended CPUID instruction.

You could try parsing the "processor brand string" for the information you want, but you're probably better off checking the extended CPUID instructions to see if the counters you're looking for are supported.
IMHO, instead of finding out the family, look for CPU capability flags like in ::

<http://lxr.linux.no/#linux+v3.13.5/arch/x86/include/asm/cpufeature.h>