Messages in this thread | | | Date | Tue, 21 Oct 2014 18:04:11 +0200 | From | Peter Zijlstra <> | Subject | Re: [RFC 0/5] CR4 handling improvements |
| |
On Tue, Oct 21, 2014 at 11:00:26AM -0400, Vince Weaver wrote: > On Mon, 20 Oct 2014, Andy Lutomirski wrote: > > > ISTM it would be a lot better to use the perf subsystem for this. You > > can probably pin an event to a pmu. > > No, you cannot pin an event to a counter with perf_event. > That's one of the big differences between perf_event and, say, perfmon2. > > With perf_event the kernel controls which events go in which counters and > the user has no say. That's part of why you need to check the mmap page > every time you want to use rdpmc because there's no other way of knowing > which counter to read to get the event you want. > > perf_event is also fairly high overhead for setting up and starting > events,
Which you only do once at the start, so is that really a problem?
> and mildly high overhead when doing a proper rdpmc call (due to > the required looking at mmap, and the fact that you need to do two rdpmc > calls before/after to get your value). This is why people really worried > about low-latency measurements bypass as much of perf_event as possible.
I still don't get that argument, 2 rdpmc's is cheaper than doing wrmsr, not to mention doing wrmsr through a syscall. And looking at that mmap page is 1 cacheline. Is that cacheline read (assuming you miss) the real problem?
| |