On Tue, Jul 04, 2017 at 10:33:45AM +0100, Mark Rutland wrote: > On Tue, Jul 04, 2017 at 11:03:13AM +0200, Peter Zijlstra wrote: > > Faking data gets a wee bit tricky in how much data we need to clear > > through, its not only IP, pretty much everything we get from the > > interrupt context, like the branch stack and registers is also suspect. > > Indeed. I'll take a run through __perf_event_output() and callees, and > see what we need to drop. Looking at perf_event_sample_format in uapi/linux/perf_event.h, there are samples that are obviously sensitive, and should be dropped: * PERF_SAMPLE_IP * PERF_SAMPLE_CALLCHAIN * PERF_SAMPLE_BRANCH_STACK * PERF_SAMPLE_REGS_INTR ... samples that look benign: * PERF_SAMPLE_TID * PERF_SAMPLE_TIME * PERF_SAMPLE_CPU * PERF_SAMPLE_PERIOD * PERF_SAMPLE_REGS_USER * PERF_SAMPLE_STACK_USER * PERF_SAMPLE_READ * PERF_SAMPLE_ID * PERF_SAMPLE_STREAM_ID * PERF_SAMPLE_IDENTIFIER .. and samples that I have no idea about: * PERF_SAMPLE_ADDR * PERF_SAMPLE_RAW * PERF_SAMPLE_WEIGHT * PERF_SAMPLE_DATA_SRC * PERF_SAMPLE_TRANSACTION Should any of those be moved into the "should be dropped" pile? Thanks, Mark.