I was trying to read the memory latency information for a program using the information in Intel Software Developer Manual Vol 3B Page 18-39 under "188.8.131.52 Load Latency Performance Monitoring Facility" published in April 2016 for Haswell.
It says that LATENCY_ABOVE_THRESHOLD event mask must be specified (IA32_PerfEvtSelX[15:0] = 100H), which is wrong and does not give you any output except 0.
You need to specify IA32_PerfEvtSelX[15:0] = 1CDH to get correct values out of the cores.
I am posting this here because I have already spent countless hours to figure this out and do not want anyone else to waste his/her time.
Hope this helps.
PS: It would be great if Intel could correct this in the future versions of the software manual.