On Mon, Jun 30, 2014 at 04:50:41PM +0800, Yan, Zheng wrote: > @@ -438,8 +451,11 @@ static int intel_pmu_setup_hw_lbr_filter(struct perf_event *event) > reg = &event->hw.branch_reg; > reg->idx = EXTRA_REG_LBR; > > - /* LBR_SELECT operates in suppress mode so invert mask */ > - reg->config = ~mask & x86_pmu.lbr_sel_mask; > + /* > + * the first 8 bits (LBR_SEL_MASK) in LBR_SELECT operates > + * in suppress mode so invert mask > + */ > + reg->config = mask ^ x86_pmu.lbr_sel_mask; Where the comment made sense with the old code; it doesn't really with the new..