RE: [patch] x86, perf_counter, bts: add bts to perf_counter

From: Peter Zijlstra
Date: Fri Aug 07 2009 - 07:57:35 EST


On Fri, 2009-08-07 at 12:51 +0100, Metzger, Markus T wrote:
> >-----Original Message-----
> >From: Peter Zijlstra [mailto:a.p.zijlstra@xxxxxxxxx]
> >Sent: Friday, August 07, 2009 1:45 PM
> >To: Metzger, Markus T
> >Cc: linux-kernel@xxxxxxxxxxxxxxx; mingo@xxxxxxx; tglx@xxxxxxxxxxxxx; hpa@xxxxxxxxx;
> >markus.t.metzger@xxxxxxxxx; oleg@xxxxxxxxxx
> >Subject: Re: [patch] x86, perf_counter, bts: add bts to perf_counter
> >
> >On Fri, 2009-08-07 at 09:22 +0200, Markus Metzger wrote:
> >> @@ -721,9 +903,13 @@ static int __hw_perf_counter_init(struct
> >> err = 0;
> >> if (!atomic_inc_not_zero(&active_counters)) {
> >> mutex_lock(&pmc_reserve_mutex);
> >> - if (atomic_read(&active_counters) == 0 && !reserve_pmc_hardware())
> >> - err = -EBUSY;
> >> - else
> >> + if (atomic_read(&active_counters) == 0) {
> >> + if (!reserve_pmc_hardware())
> >> + err = -EBUSY;
> >> + else
> >> + reserve_bts_hardware();
> >> + }
> >> + if (!err)
> >> atomic_inc(&active_counters);
> >> mutex_unlock(&pmc_reserve_mutex);
> >> }
> >
> >You loose the reserve_bts_hardware() error case there.
>
>
> That had been intentional since I consider BTS somewhat optional. In case it is not available or
> fails to initialize, e.g. out of memory, we fall back to normal profiling.
>
> Now that I think about it again, I guess that's not what a (debugger) user would expect.
> An error might be more appropriate in that case.
>
> I'll change it.

If there's hardware that supports intel perfmon v2+ but doesn't have BTS
(I don't think so) then we shouldn't fail it hard on not present.

But if the BTS stuff should always be present on the hardware then we
can indeed unconditionally fail.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/