Re: [PATCH 1/2] Fix perf LBR filtering

From: Andi Kleen
Date: Thu Apr 25 2013 - 13:42:18 EST

On Thu, Apr 25, 2013 at 07:18:42PM +0200, Peter Zijlstra wrote:
> On Thu, Apr 25, 2013 at 07:00:37PM +0200, Andi Kleen wrote:
> > > Traping the read deals with the first. The second shouldn't be a problem since
> > > we generally only allow kernel info for CAP_ADMIN; if we don't already for LBR
> > > that needs to be fixed separately.
> >
> > Where is that check? I don't see it.
> Then that might need fixing.


BTW I would just still argue that even paranoid == -1 should not allow
crashes. So even with that added it would still be a problem.

> > Also remember that precise == 2 can enable LBR implicitly.
> Sure.. but it doesn't need the filter stuff. Now I completely forgot if it will
> actually still use the filter muck.. /me goes check

True. It doesn't filter.

> I think intel_pmu_lbr_filter() will typically bail on the X86_BR_ALL test for
> PEBS fixup, it might only end up in the filter code if precise_br_compat()
> finds another LBR user compatible with the fixup.

Yes it does.

> > > That only leaves the third.. can we descern MMIO maps from the kernel page tables?
> >
> > In theory you could use some bits in the PTE for vmalloc, but it would need quite a
> > few changes.
> >
> > Also there may be corner cases where MMIO is in the direct mapping or in
> > the kernel mapping.
> Hrmm... do we keep track of the MMIO regions somewhere at all?

There's the non cachable region tracking. But there's no guarantee a
MMIO has to be in there, driver may still rely just on MTRRs. Also
there may be MMIOs the kernel doesn't know about which just happen
to be somewhere in the direct mapping.

I don't see any reliable way to detect all mmios.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at