Support Intel uncore event lists

From: Andi Kleen
Date: Thu Oct 13 2016 - 17:18:49 EST

This adds uncore support on top of the recently merged JSON event list
infrastructure for core events. Uncore is everything outside the core,
including memory controllers, PCI, interconnect etc.

Uncore is more complicated to handle than core events because it uses
many duplicated PMUs, which leads to long event lists and verbose duplicated

In fact previously it was nearly unusable for many cases without special
tools to generate event list and aggregate data (such as

With this patchkit we add:
- Basic support for uncore events in JSON events
- Support aliases that get duplicated over many PMUs transparently
- Support summing up duplicated PMUs per socket
- Support extending the perf stat builtin metrics with simple ratios
specified in the event list. This covers the vast majority of useful

So far mainly servers are supported. Also this is not using full event lists
(which are full of very obscure events) but only for a smaller subset of
curated useful and understandable metrics.

The actual event lists are not posted, but available at
git:// perf/intel-uncore-json-files-1

The code is available here
git:// perf/builtin-json-15

v1: Initial post