linux-mips
[Top] [All Lists]

Re: [PATCH RESEND 16/17] MIPS: make oprofile use cp0_perfcount_irq if it

To: Sergei Shtylyov <sshtylyov@mvista.com>
Subject: Re: [PATCH RESEND 16/17] MIPS: make oprofile use cp0_perfcount_irq if it is set
From: Guenter Roeck <guenter.roeck@ericsson.com>
Date: Thu, 12 Jan 2012 06:49:38 -0800
Cc: John Crispin <blogic@openwrt.org>, Ralf Baechle <ralf@linux-mips.org>, "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>, Felix Fietkau <nbd@openwrt.org>
In-reply-to: <4F0EFE6E.3080503@mvista.com>
References: <1326314674-9899-1-git-send-email-blogic@openwrt.org> <1326314674-9899-16-git-send-email-blogic@openwrt.org> <4F0EFE6E.3080503@mvista.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
On Thu, Jan 12, 2012 at 10:38:22AM -0500, Sergei Shtylyov wrote:
> Hello.
> 
> On 01/11/2012 11:44 PM, John Crispin wrote:
> 
> > The patch makes the oprofile code use the performance counters irq.
> 
> > This patch is written by Felix Fietkau.
> 
> > Signed-off-by: Felix Fietkau<nbd@openwrt.org>
> > Signed-off-by: John Crispin<blogic@openwrt.org>
> 
> > @@ -374,6 +379,10 @@ static int __init mipsxx_init(void)
> >     save_perf_irq = perf_irq;
> >     perf_irq = mipsxx_perfcount_handler;
> >
> > +   if (cp0_perfcount_irq>= 0)
> 
>     BTW, I just noticed. IRQ0 is not a valid IRQ in Linux, request_irq() 
> should 
> fail when passed 0, so this and following check should be '> 0'.
> 
There is also the little matter of coding style. Watch out for chapter 3.

Guenter

> > +           return request_irq(cp0_perfcount_irq, mipsxx_perfcount_int,
> > +                   IRQF_SHARED, "Perfcounter", save_perf_irq);
> > +
> >     return 0;
> >   }
> >
> > @@ -381,6 +390,9 @@ static void mipsxx_exit(void)
> >   {
> >     int counters = op_model_mipsxx_ops.num_counters;
> >
> > +   if (cp0_perfcount_irq>= 0)
> > +           free_irq(cp0_perfcount_irq, save_perf_irq);
> > +
> >     counters = counters_per_cpu_to_total(counters);
> >     on_each_cpu(reset_counters, (void *)(long)counters, 1);
> >
> 
> WBR, Sergei
> 

<Prev in Thread] Current Thread [Next in Thread>