Madhavan Srinivasan <ma...@linux.vnet.ibm.com> writes: > "use_siar" variable is primarily used for deciding the sampled address > and the privilege level to be reported for a sample. perf_read_regs() > function updates the "use_siar" and "regs->result" based on the pmu > flags along with other checks. To force the use of MSR to report the > privilege level and to use "regs->nip" to report the instruction pointer, > set "PPMU_NO_CONT_SAMPLING" flag and remove "PPMU_HAS_SIER" from the > ppmu->flags.
This still won't work for marked events AFAICS: if (TRAP(regs) != 0xf00) use_siar = 0; else if (marked) use_siar = 1; else if ((ppmu->flags & PPMU_NO_CONT_SAMPLING)) use_siar = 0; else if (!(ppmu->flags & PPMU_NO_SIPR) && regs_sipr(regs)) use_siar = 0; else use_siar = 1; So perhaps we just want a USE_SIAR flag? And I don't see how HAS_SIER is related? Or is SIER broken too? cheers