The Intel manual mentions that some of the performance events exclude "unknown data source." These include the following events on Broadwell:
MEM_LOAD_UOPS_RETIRED.L1_MISS, MEM_LOAD_UOPS_RETIRED.L2_MISS, and MEM_LOAD_UOPS_RETIRED.L3_MISS.
and the following events on Haswell:
MEM_LOAD_UOPS_RETIRED.L2_MISS and MEM_LOAD_UOPS_RETIRED.L3_MISS.
and the MEM_LOAD_UOPS_RETIRED.L2_MISS event on Ivy Bridge.
There are apparently no "unknown data sources" on Skylake.
(1) What is an unknown data source?
(2) When and why unknown data sources occur?
(3) Does MEM_UOPS_RETIRED.ALL_LOADS count unknown data sources?
(4) Are there really no unknown data sources on Skylake or are they counted by the events?
(5) Why does MEM_LOAD_UOPS_RETIRED.L1_MISS include unknown data sources on Ivy Bridge and Haswell but not on Broadwell? Why does MEM_LOAD_UOPS_RETIRED.LLC_MISS include unknown data sources on Ivy Bridge but not on Haswell and Broadwell?
(6) The online documentation (https://download.01.org/perfmon/index/) also says that some of the cache hit events also exclude unknown data source on some of these microarchitectures. What does that mean? How can a cache hit have an unknown data source?
I find all of this very confusing.