All of lore.kernel.org
 help / color / mirror / Atom feed
From: alexandre.belloni@bootlin.com (Alexandre Belloni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 0/6] clocksource: rework Atmel TCB timer driver
Date: Thu, 29 Mar 2018 12:45:42 +0200	[thread overview]
Message-ID: <20180329104542.GK13942@piout.net> (raw)
In-Reply-To: <3478710.yJBBt3uoRT@ada>

On 29/03/2018 at 10:01:26 +0200, Alexander Dahl wrote:
> Hei hei,
> 
> Am Mittwoch, 28. M?rz 2018, 17:50:33 CEST schrieb Alexandre Belloni:
> > On 28/03/2018 at 17:31:35 +0200, Alexandre Belloni wrote:
> > > > Do you have an explanation of why the rate is much higher ?
> > > 
> > > The core is giving deltas of 31 clocks instead of much more than that, I
> > > guess I messed up the initialization somewhere.
> > 
> > I did mess up.
> > 
> > Alexander, can you test that:
> 
> Well, I just did.
> 
> > 
> > diff --git a/drivers/clocksource/timer-atmel-tcb.c
> > b/drivers/clocksource/timer-atmel-tcb.c index 7fde9cfbf203..bbbacf8c46b0
> > 100644
> > --- a/drivers/clocksource/timer-atmel-tcb.c
> > +++ b/drivers/clocksource/timer-atmel-tcb.c
> > @@ -222,7 +222,7 @@ static int __init tc_clkevt_register(struct device_node
> > *node, goto err_slow;
> >  	clk_disable(tce.clk);
> > 
> > -	clockevents_config_and_register(&tce.clkevt, 32768, 1, bits - 1);
> > +	clockevents_config_and_register(&tce.clkevt, 32768, 1, BIT(bits) - 1);
> > 
> >  	ret = request_irq(tce.irq, tc_clkevt2_irq, IRQF_TIMER | IRQF_SHARED,
> >  			  tce.clkevt.name, &tce);
> > 
> > This will behave exactly the same as before on 16bits TCB and will have
> > much less interrupts on 32 bits platforms.
> 
> This is the result:
> 
> INT                NAME          RATE             MAX
>  17 [vel     timer at fffa]  1837 Ints/s     (max:  1912)
>  26 [      vel     eth0]     3 Ints/s     (max:    11)
> 
> This is not much lower than the ~2150 I reported yesterday?
> 
> I'm sorry I can just test this on at91sam9g20 currently, I have no 
> understanding of the subsystem, I can't do a decent review.

Hum, are you sure, I went from:

INT                NAME          RATE             MAX
 16 [evel     timer at fc0]  1027 Ints/s     (max:  1028)
 21 [ evel     at_xdmac]     3 Ints/s     (max:     3)
 30 [    evel     ttyS0]     2 Ints/s     (max:     2)

to:

INT                NAME          RATE             MAX
 16 [evel     timer at fc0]     6 Ints/s     (max:     9)
 21 [ evel     at_xdmac]     2 Ints/s     (max:     2)
 30 [    evel     ttyS0]     2 Ints/s     (max:     2)



-- 
Alexandre Belloni, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Alexander Dahl <ada@thorsis.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org,
	Boris Brezillon <boris.brezillon@bootlin.com>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH v3 0/6] clocksource: rework Atmel TCB timer driver
Date: Thu, 29 Mar 2018 12:45:42 +0200	[thread overview]
Message-ID: <20180329104542.GK13942@piout.net> (raw)
In-Reply-To: <3478710.yJBBt3uoRT@ada>

On 29/03/2018 at 10:01:26 +0200, Alexander Dahl wrote:
> Hei hei,
> 
> Am Mittwoch, 28. März 2018, 17:50:33 CEST schrieb Alexandre Belloni:
> > On 28/03/2018 at 17:31:35 +0200, Alexandre Belloni wrote:
> > > > Do you have an explanation of why the rate is much higher ?
> > > 
> > > The core is giving deltas of 31 clocks instead of much more than that, I
> > > guess I messed up the initialization somewhere.
> > 
> > I did mess up.
> > 
> > Alexander, can you test that:
> 
> Well, I just did.
> 
> > 
> > diff --git a/drivers/clocksource/timer-atmel-tcb.c
> > b/drivers/clocksource/timer-atmel-tcb.c index 7fde9cfbf203..bbbacf8c46b0
> > 100644
> > --- a/drivers/clocksource/timer-atmel-tcb.c
> > +++ b/drivers/clocksource/timer-atmel-tcb.c
> > @@ -222,7 +222,7 @@ static int __init tc_clkevt_register(struct device_node
> > *node, goto err_slow;
> >  	clk_disable(tce.clk);
> > 
> > -	clockevents_config_and_register(&tce.clkevt, 32768, 1, bits - 1);
> > +	clockevents_config_and_register(&tce.clkevt, 32768, 1, BIT(bits) - 1);
> > 
> >  	ret = request_irq(tce.irq, tc_clkevt2_irq, IRQF_TIMER | IRQF_SHARED,
> >  			  tce.clkevt.name, &tce);
> > 
> > This will behave exactly the same as before on 16bits TCB and will have
> > much less interrupts on 32 bits platforms.
> 
> This is the result:
> 
> INT                NAME          RATE             MAX
>  17 [vel     timer@fffa]  1837 Ints/s     (max:  1912)
>  26 [      vel     eth0]     3 Ints/s     (max:    11)
> 
> This is not much lower than the ~2150 I reported yesterday?
> 
> I'm sorry I can just test this on at91sam9g20 currently, I have no 
> understanding of the subsystem, I can't do a decent review.

Hum, are you sure, I went from:

INT                NAME          RATE             MAX
 16 [evel     timer@fc0]  1027 Ints/s     (max:  1028)
 21 [ evel     at_xdmac]     3 Ints/s     (max:     3)
 30 [    evel     ttyS0]     2 Ints/s     (max:     2)

to:

INT                NAME          RATE             MAX
 16 [evel     timer@fc0]     6 Ints/s     (max:     9)
 21 [ evel     at_xdmac]     2 Ints/s     (max:     2)
 30 [    evel     ttyS0]     2 Ints/s     (max:     2)



-- 
Alexandre Belloni, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2018-03-29 10:45 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-23 17:15 [PATCH v3 0/6] clocksource: rework Atmel TCB timer driver Alexandre Belloni
2018-02-23 17:15 ` Alexandre Belloni
2018-02-23 17:15 ` [PATCH v3 1/6] ARM: at91: add TCB registers definitions Alexandre Belloni
2018-02-23 17:15   ` Alexandre Belloni
2018-02-23 17:15 ` [PATCH v3 2/6] clocksource/drivers: Add a new driver for the Atmel ARM TC blocks Alexandre Belloni
2018-02-23 17:15   ` Alexandre Belloni
2018-02-23 17:15 ` [PATCH v3 3/6] clocksource/drivers: atmel-pit: make option silent Alexandre Belloni
2018-02-23 17:15   ` Alexandre Belloni
2018-02-23 17:15 ` [PATCH v3 4/6] ARM: at91: Implement clocksource selection Alexandre Belloni
2018-02-23 17:15   ` Alexandre Belloni
2018-02-23 17:15 ` [PATCH v3 5/6] ARM: configs: at91: use new TCB timer driver Alexandre Belloni
2018-02-23 17:15   ` Alexandre Belloni
2018-02-23 17:15 ` [PATCH v3 6/6] ARM: configs: at91: unselect PIT Alexandre Belloni
2018-02-23 17:15   ` Alexandre Belloni
2018-03-22 15:33 ` [PATCH v3 0/6] clocksource: rework Atmel TCB timer driver Alexandre Belloni
2018-03-22 15:33   ` Alexandre Belloni
2018-03-27 10:41 ` Alexander Dahl
2018-03-27 10:41   ` Alexander Dahl
2018-03-27 11:30   ` Daniel Lezcano
2018-03-27 11:30     ` Daniel Lezcano
2018-03-28 10:29     ` Alexander Dahl
2018-03-28 10:29       ` Alexander Dahl
2018-03-28 13:03       ` Daniel Lezcano
2018-03-28 13:03         ` Daniel Lezcano
2018-03-28 14:16         ` Alexandre Belloni
2018-03-28 14:16           ` Alexandre Belloni
2018-03-28 14:36           ` Daniel Lezcano
2018-03-28 14:36             ` Daniel Lezcano
2018-03-28 15:31             ` Alexandre Belloni
2018-03-28 15:31               ` Alexandre Belloni
2018-03-28 15:50               ` Alexandre Belloni
2018-03-28 15:50                 ` Alexandre Belloni
2018-03-29  8:01                 ` Alexander Dahl
2018-03-29  8:01                   ` Alexander Dahl
2018-03-29 10:45                   ` Alexandre Belloni [this message]
2018-03-29 10:45                     ` Alexandre Belloni
2018-03-29 11:31                     ` Alexander Dahl
2018-03-29 11:31                       ` Alexander Dahl
2018-03-29 11:42                       ` Alexandre Belloni
2018-03-29 11:42                         ` Alexandre Belloni
2018-03-29 12:07                         ` Daniel Lezcano
2018-03-29 12:07                           ` Daniel Lezcano
2018-03-29 13:02                           ` Alexandre Belloni
2018-03-29 13:02                             ` Alexandre Belloni
2018-03-29 15:11                   ` Alexander Dahl
2018-03-29 15:11                     ` Alexander Dahl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180329104542.GK13942@piout.net \
    --to=alexandre.belloni@bootlin.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.