Re: [patch 00/19] perfmon2 minimal v3: introduction

stephane eranian
2008-07-29T06:21:00Z

Stephen,

On Mon, Jul 28, 2008 at 8:47 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> On Mon, 30 Jun 2008 06:13:26 -0700 (PDT) eranian@googlemail.com wrote:
>>
>> The following patches implement a minimal perfmon2 subsystem which provides
>> access to the hardware performance counters of modern processors.
>
> First up, I cannot speak to the actual function of the patches, but just
> to the mechanics of getting them into the kernel. One good thing is that
> with CONFIG_PERFMON turned off, it looks like the impact is very close to
> zero. Two obvious things that would help these being accepted are:
>
Yes, when CONFIG_PERFMON is off, there should be no penalty at all.
The hooks are removed via empty inline functions. The extra field in
task_struct is removed. In x86-specific code, the low-level interrupt
code is removed. The TIF flags are unused, thus no impact on context
switch because the thread_info cacheline is checked regardless of perfmon2.

> ordering - in the current incarnation, the patches produce places
> where the kernel will not build. We like things to be ordered so that
> git bisection does not fail if at all possible - that means that an
> allmod/yesconfig should build after the application of each patch.
> Currently this is not so. It could be mode to do so trivially by
> delaying the "global" Kconfig/Makefile updates until later in the
> sequence. And you really should introduce the system calls *before*
> wiring them up.

I will restructure the patch series so it can be built at any one level of
of th patch stack.

>
> quite a few of the macros (especially for the dummy (non
> CONFIG_PERFMON) versions of functions) should be "static inline"
> functions unless they absolutely must be macros. Andrew Morton said it
> best - "write in C not C preprocessor".
>
I will fix that as well.

> I can see that this infrastructure could be very useful and I appreciate
> that it has been cut down for this initial merge. These patches (even as
> they are) compare favourably to some other new infrastructure that has
> been introduced.

I think I can break it down a bit more especially for x86_64.

As discussed with people on LKML and with Andi Kleen last week at OLS, I will
see what can be done with the syscalls to make them a bit more extensible.

Thanks.