All of lore.kernel.org
 help / color / mirror / Atom feed
* Enabling tickless kernel feature in ARM
@ 2011-04-26 13:55 Vikram Narayanan
  2011-04-26 16:34 ` Haojian Zhuang
  2011-04-26 16:35 ` Mulyadi Santosa
  0 siblings, 2 replies; 12+ messages in thread
From: Vikram Narayanan @ 2011-04-26 13:55 UTC (permalink / raw)
  To: kernelnewbies

Hi,

I want to enable the dynamic tick aka tickless kernel feature for the
BSP which I am developing. What are all the architecture dependent
changes that needs to be done for implementing it.
There was one struct by the name dyn_tick_timer, which is located
under linux/include/asm-arm/mach/time.h file. (which is removed from v
2.6.27)
Now my question is that, are all the dyn_tick_timer functionalities
are moved to a generic interface somewhere?
Are the clock source and clockevent device timers enough to take care
of the tickless feature?

-
Vikram

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-26 13:55 Enabling tickless kernel feature in ARM Vikram Narayanan
@ 2011-04-26 16:34 ` Haojian Zhuang
  2011-04-27  3:04   ` Vikram Narayanan
  2011-04-26 16:35 ` Mulyadi Santosa
  1 sibling, 1 reply; 12+ messages in thread
From: Haojian Zhuang @ 2011-04-26 16:34 UTC (permalink / raw)
  To: kernelnewbies

On Tue, Apr 26, 2011 at 9:55 PM, Vikram Narayanan <vikram186@gmail.com> wrote:
> Hi,
>
> I want to enable the dynamic tick aka tickless kernel feature for the
> BSP which I am developing. What are all the architecture dependent
> changes that needs to be done for implementing it.
> There was one struct by the name dyn_tick_timer, which is located
> under linux/include/asm-arm/mach/time.h file. (which is removed from v
> 2.6.27)
> Now my question is that, are all the dyn_tick_timer functionalities
> are moved to a generic interface somewhere?
CONFIG_NO_HZ is used instead.

> Are the clock source and clockevent device timers enough to take care
> of the tickless feature?
There's no relationship between NOHZ and clocksource/clockevent.
>
> -
> Vikram
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-26 13:55 Enabling tickless kernel feature in ARM Vikram Narayanan
  2011-04-26 16:34 ` Haojian Zhuang
@ 2011-04-26 16:35 ` Mulyadi Santosa
  2011-04-27  3:09   ` Vikram Narayanan
  1 sibling, 1 reply; 12+ messages in thread
From: Mulyadi Santosa @ 2011-04-26 16:35 UTC (permalink / raw)
  To: kernelnewbies

Dear Vikram...

On Tue, Apr 26, 2011 at 20:55, Vikram Narayanan <vikram186@gmail.com> wrote:
> Hi,
>
> I want to enable the dynamic tick aka tickless kernel feature for the
> BSP which I am developing. What are all the architecture dependent
> changes that needs to be done for implementing it.

To the best I know:

essentially, to achieve tickless ( also know as "no hz"), you need to
reprogram your timer chip, so it just "shoot" whenever needed, not
periodically. And sometimes, you need to round them up, i.e there are
timers which expires in the next 10 ms, 11 ms and 15 ms...so
effectively, better to make them expire at 15 ms if possible.

so, you need a way to detect the timer expiration (possibly by walking
through active timer list) and decide when the timer chip needs to
shoot interrupt. The rest of the change...of course...still needed
further thinking....

NB: AFAIK In x86, HPET is a prerequisite to achieve tickless... maybe
because reprogramming HPET is somewhat way faster than regular PIT

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-26 16:34 ` Haojian Zhuang
@ 2011-04-27  3:04   ` Vikram Narayanan
  2011-04-27  6:29     ` Haojian Zhuang
  0 siblings, 1 reply; 12+ messages in thread
From: Vikram Narayanan @ 2011-04-27  3:04 UTC (permalink / raw)
  To: kernelnewbies

Dear Haojian,

On Tue, Apr 26, 2011 at 10:04 PM, Haojian Zhuang
<haojian.zhuang@gmail.com> wrote:
>
> On Tue, Apr 26, 2011 at 9:55 PM, Vikram Narayanan <vikram186@gmail.com> wrote:
> > Hi,
> >
> > I want to enable the dynamic tick aka tickless kernel feature for the
> > BSP which I am developing. What are all the architecture dependent
> > changes that needs to be done for implementing it.
> > There was one struct by the name dyn_tick_timer, which is located
> > under linux/include/asm-arm/mach/time.h file. (which is removed from v
> > 2.6.27)
> > Now my question is that, are all the dyn_tick_timer functionalities
> > are moved to a generic interface somewhere?
> CONFIG_NO_HZ is used instead.

I am aware of the CONFIG_NO_HZ option. I am asking about the
implementation of it. To put in a more clear way.
There was a structure in the kernel source
linux/include/asm-arm/mach/time.h before 2.6.27

struct dyn_tick_timer {
          spinlock_t      lock;
          unsigned int    state;                  /* Current state */
          int             (*enable)(void);        /* Enables dynamic tick */
          int             (*disable)(void);       /* Disables dynamic tick */
          void            (*reprogram)(unsigned long); /* Reprograms
the timer */
          int             (*handler)(int, void *);
  };

To enable dynamic tick timer, one should implement functions for
enable, disable and reprogram. But this structure is no more used in
the new kernel source. In 2007 linux symposium, 3 authors talked about
implementing the tickless feature using HPET timers. Now my question
where does the implementation lies in the ARM architecture.

Vikram
>
> > Are the clock source and clockevent device timers enough to take care
> > of the tickless feature?
> There's no relationship between NOHZ and clocksource/clockevent.
> >
> > -
> > Vikram
> >
> > _______________________________________________
> > Kernelnewbies mailing list
> > Kernelnewbies at kernelnewbies.org
> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-26 16:35 ` Mulyadi Santosa
@ 2011-04-27  3:09   ` Vikram Narayanan
  2011-04-27  4:29     ` Mulyadi Santosa
  0 siblings, 1 reply; 12+ messages in thread
From: Vikram Narayanan @ 2011-04-27  3:09 UTC (permalink / raw)
  To: kernelnewbies

Dear,

On Tue, Apr 26, 2011 at 10:05 PM, Mulyadi Santosa
<mulyadi.santosa@gmail.com> wrote:
> Dear Vikram...
>
> On Tue, Apr 26, 2011 at 20:55, Vikram Narayanan <vikram186@gmail.com> wrote:
>> Hi,
>>
>> I want to enable the dynamic tick aka tickless kernel feature for the
>> BSP which I am developing. What are all the architecture dependent
>> changes that needs to be done for implementing it.
>
> To the best I know:
>
> essentially, to achieve tickless ( also know as "no hz"), you need to
> reprogram your timer chip, so it just "shoot" whenever needed, not
> periodically. And sometimes, you need to round them up, i.e there are
> timers which expires in the next 10 ms, 11 ms and 15 ms...so
> effectively, better to make them expire at 15 ms if possible.
>
> so, you need a way to detect the timer expiration (possibly by walking
> through active timer list) and decide when the timer chip needs to
> shoot interrupt. The rest of the change...of course...still needed
> further thinking....
>
> NB: AFAIK In x86, HPET is a prerequisite to achieve tickless... maybe
> because reprogramming HPET is somewhat way faster than regular PIT
I have read about the dynamic tick feature in lwn.net. When I see the
source, it seems to have implemented only with the HPET timers. and
also, these dynamic ticks are achieved with hrtimers nowadays.
http://lxr.linux.no/#linux+v2.6.38/Documentation/timers/highres.txt#L204
Also I believe most of the implementation is moved to the arch
independent part with the help of clocksource and clockevents.
Do I need to enable hrtimers for enabling the dynamic tick feature.?

-
Thanks
Vikram
>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-27  3:09   ` Vikram Narayanan
@ 2011-04-27  4:29     ` Mulyadi Santosa
  2011-04-27 13:49       ` Vikram Narayanan
  0 siblings, 1 reply; 12+ messages in thread
From: Mulyadi Santosa @ 2011-04-27  4:29 UTC (permalink / raw)
  To: kernelnewbies

Hi Vikram...

On Wed, Apr 27, 2011 at 10:09, Vikram Narayanan <vikram186@gmail.com> wrote:
> Do I need to enable hrtimers for enabling the dynamic tick feature.?

maybe... but I am not sure about that...  what are the timer provided
in your machine, anyway?


-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-27  3:04   ` Vikram Narayanan
@ 2011-04-27  6:29     ` Haojian Zhuang
  0 siblings, 0 replies; 12+ messages in thread
From: Haojian Zhuang @ 2011-04-27  6:29 UTC (permalink / raw)
  To: kernelnewbies

On Wed, Apr 27, 2011 at 11:04 AM, Vikram Narayanan <vikram186@gmail.com> wrote:
> Dear Haojian,
>
> On Tue, Apr 26, 2011 at 10:04 PM, Haojian Zhuang
> <haojian.zhuang@gmail.com> wrote:
>>
>> On Tue, Apr 26, 2011 at 9:55 PM, Vikram Narayanan <vikram186@gmail.com> wrote:
>> > Hi,
>> >
>> > I want to enable the dynamic tick aka tickless kernel feature for the
>> > BSP which I am developing. What are all the architecture dependent
>> > changes that needs to be done for implementing it.
>> > There was one struct by the name dyn_tick_timer, which is located
>> > under linux/include/asm-arm/mach/time.h file. (which is removed from v
>> > 2.6.27)
>> > Now my question is that, are all the dyn_tick_timer functionalities
>> > are moved to a generic interface somewhere?
>> CONFIG_NO_HZ is used instead.
>
> I am aware of the CONFIG_NO_HZ option. I am asking about the
> implementation of it. To put in a more clear way.
> There was a structure in the kernel source
> linux/include/asm-arm/mach/time.h before 2.6.27
>
> struct dyn_tick_timer {
> ? ? ? ? ?spinlock_t ? ? ?lock;
> ? ? ? ? ?unsigned int ? ?state; ? ? ? ? ? ? ? ? ?/* Current state */
> ? ? ? ? ?int ? ? ? ? ? ? (*enable)(void); ? ? ? ?/* Enables dynamic tick */
> ? ? ? ? ?int ? ? ? ? ? ? (*disable)(void); ? ? ? /* Disables dynamic tick */
> ? ? ? ? ?void ? ? ? ? ? ?(*reprogram)(unsigned long); /* Reprograms
> the timer */
> ? ? ? ? ?int ? ? ? ? ? ? (*handler)(int, void *);
> ?};
>
> To enable dynamic tick timer, one should implement functions for
> enable, disable and reprogram. But this structure is no more used in
> the new kernel source. In 2007 linux symposium, 3 authors talked about
> implementing the tickless feature using HPET timers. Now my question
> where does the implementation lies in the ARM architecture.
>
irq_exit(). While irq handler is finished, timer interrupt should also
occur. And
jiffies may not sync to latest ticks. The process flow is in below.
asm_do_IRQ() --> irq_exit() --> tick_nohz_stop_sched_tick() -->
tick_do_update_jiffies64()

In tick_do_update_jiffies64(), jiffies will be updated whatever the
idle time is 1 jiffies or more.

>>
>> > Are the clock source and clockevent device timers enough to take care
>> > of the tickless feature?
>> There's no relationship between NOHZ and clocksource/clockevent.
>> >
>> > -
>> > Vikram
>> >
>> > _______________________________________________
>> > Kernelnewbies mailing list
>> > Kernelnewbies at kernelnewbies.org
>> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>> >
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-27  4:29     ` Mulyadi Santosa
@ 2011-04-27 13:49       ` Vikram Narayanan
  2011-04-27 15:37         ` Mulyadi Santosa
  0 siblings, 1 reply; 12+ messages in thread
From: Vikram Narayanan @ 2011-04-27 13:49 UTC (permalink / raw)
  To: kernelnewbies

On Wed, Apr 27, 2011 at 9:59 AM, Mulyadi Santosa
<mulyadi.santosa@gmail.com> wrote:
> Hi Vikram...
>
> On Wed, Apr 27, 2011 at 10:09, Vikram Narayanan <vikram186@gmail.com> wrote:
>> Do I need to enable hrtimers for enabling the dynamic tick feature.?
>
> maybe... but I am not sure about that... ?what are the timer provided
> in your machine, anyway?
Four 16-bit general purpose timers(which can also be used as 32 bit
counters), and an RTC (24-bit)
The max clock freq is 48 Mhz, which may be downscaled to any value
which will be fed as an input to these timers.
I guess hrtimers is impossible in these frequencies. What's your
opinion on this?

Thanks,
Vikram
>
>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-27 13:49       ` Vikram Narayanan
@ 2011-04-27 15:37         ` Mulyadi Santosa
  2011-04-28 13:18           ` Vikram Narayanan
  0 siblings, 1 reply; 12+ messages in thread
From: Mulyadi Santosa @ 2011-04-27 15:37 UTC (permalink / raw)
  To: kernelnewbies

Hi Vikram...

On Wed, Apr 27, 2011 at 20:49, Vikram Narayanan <vikram186@gmail.com> wrote:
> Four 16-bit general purpose timers(which can also be used as 32 bit
> counters), and an RTC (24-bit)
> The max clock freq is 48 Mhz, which may be downscaled to any value
> which will be fed as an input to these timers.
> I guess hrtimers is impossible in these frequencies. What's your
> opinion on this?

hard to say, but I guess that "16 bit timer" is something that can be
explored first.

what you need to pay attention is actually the duration the timer
needs to be reprogrammed. The longer it takes, the worse it is...thus
you need to avoid it.
-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-27 15:37         ` Mulyadi Santosa
@ 2011-04-28 13:18           ` Vikram Narayanan
  2011-04-28 15:08             ` Mulyadi Santosa
  0 siblings, 1 reply; 12+ messages in thread
From: Vikram Narayanan @ 2011-04-28 13:18 UTC (permalink / raw)
  To: kernelnewbies

On Wed, Apr 27, 2011 at 9:07 PM, Mulyadi Santosa
<mulyadi.santosa@gmail.com> wrote:
> Hi Vikram...
>
> On Wed, Apr 27, 2011 at 20:49, Vikram Narayanan <vikram186@gmail.com> wrote:
>> Four 16-bit general purpose timers(which can also be used as 32 bit
>> counters), and an RTC (24-bit)
>> The max clock freq is 48 Mhz, which may be downscaled to any value
>> which will be fed as an input to these timers.
>> I guess hrtimers is impossible in these frequencies. What's your
>> opinion on this?
>
> hard to say, but I guess that "16 bit timer" is something that can be
> explored first.
Yes. I am planning to go with it.
>
> what you need to pay attention is actually the duration the timer
> needs to be reprogrammed. The longer it takes, the worse it is...thus
> you need to avoid it.
I am planning to have a tick of 10ms. i.e the HZ value as 100. Will
that be good enough?

-
Thanks
Vikram
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-28 13:18           ` Vikram Narayanan
@ 2011-04-28 15:08             ` Mulyadi Santosa
  2011-04-28 16:20               ` Vikram Narayanan
  0 siblings, 1 reply; 12+ messages in thread
From: Mulyadi Santosa @ 2011-04-28 15:08 UTC (permalink / raw)
  To: kernelnewbies

On 28/04/2011, Vikram Narayanan <vikram186@gmail.com> wrote:
> I am planning to have a tick of 10ms. i.e the HZ value as 100. Will
> that be good enough?

Sorry, you misunderstood me. What I meant was "how long it takes to
reprogram the timer, so it ready to deliver another interupt". This is
based on my rough info that some timers are quick to be reprogrammed,
some are slow...the rest are damn slow. And since we deal with
uncertainty (timers could be needed at any point), the fastest one is
the best bet.

Hopefully I explain it clearly now...

-- 
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Enabling tickless kernel feature in ARM
  2011-04-28 15:08             ` Mulyadi Santosa
@ 2011-04-28 16:20               ` Vikram Narayanan
  0 siblings, 0 replies; 12+ messages in thread
From: Vikram Narayanan @ 2011-04-28 16:20 UTC (permalink / raw)
  To: kernelnewbies

On Thu, Apr 28, 2011 at 8:38 PM, Mulyadi Santosa
<mulyadi.santosa@gmail.com> wrote:
> On 28/04/2011, Vikram Narayanan <vikram186@gmail.com> wrote:
>> I am planning to have a tick of 10ms. i.e the HZ value as 100. Will
>> that be good enough?
>
> Sorry, you misunderstood me. What I meant was "how long it takes to
> reprogram the timer, so it ready to deliver another interupt". This is
> based on my rough info that some timers are quick to be reprogrammed,
> some are slow...the rest are damn slow. And since we deal with
> uncertainty (timers could be needed at any point), the fastest one is
> the best bet.
>
> Hopefully I explain it clearly now...
Yeah. Actually I didn't measure the timer reprogramming latency yet.
But I think it will be quite good. My assumption may go wrong.
Are there any other considerations to take care while implementing the
clocksource/clockevents?

Thanks,
Vikram
>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2011-04-28 16:20 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-26 13:55 Enabling tickless kernel feature in ARM Vikram Narayanan
2011-04-26 16:34 ` Haojian Zhuang
2011-04-27  3:04   ` Vikram Narayanan
2011-04-27  6:29     ` Haojian Zhuang
2011-04-26 16:35 ` Mulyadi Santosa
2011-04-27  3:09   ` Vikram Narayanan
2011-04-27  4:29     ` Mulyadi Santosa
2011-04-27 13:49       ` Vikram Narayanan
2011-04-27 15:37         ` Mulyadi Santosa
2011-04-28 13:18           ` Vikram Narayanan
2011-04-28 15:08             ` Mulyadi Santosa
2011-04-28 16:20               ` Vikram Narayanan

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.