lkml.org 
[lkml]   [2005]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/3] dynticks - implement no idle hz for x86
* Nishanth Aravamudan <nacc@us.ibm.com> [050906 23:55]:

...

> Sigh, later than I had hoped, but here is what I have hashed out so far.
> Does it seem like a step in the right direction? Rather hand-wavy, but I
> think it's mostly correct ;)

Some comments below.

> - include/linux/intsource.h
> with definitions in kernel/intsource.c
>
> #define DYN_TICK_ENABLED (1 << 1)
> #define DYN_TICK_SUITABLE (1 << 0)
>
> #define DYN_TICK_MIN_SKIP 2
>
> /* Abstraction of an interrupt source
> * @state: current state
> * @max_skip: current maximum number of ticks to skip
> * @arch_init: initialization routine
> * @arch_enable_dyn_tick: called via sysfs to enable interrupt skipping
> * @arch_disable_dyn_tick: called via sysfs to disable interrupt
> * skipping
> * @arch_set_all_cpus_idle: last cpu to go idle calls this, which should
> * disable any timesource (e.g. PIT on x86)
> * @arch_recover_time: handler for returning from skipped ticks and keeping
> * time consistent
> */
> struct interrupt_source {
> unsigned int state;
> unsigned long max_skip;
> int (*arch_init) (void);
> void (*arch_enable_dyn_tick) (void);
> void (*arch_disable_dyn_tick) (void);
> unsigned long (*arch_reprogram) (unsigned long); /* return number of ticks skipped */
> unsigned long (*arch_recover_time) (int, void *, struct pt_regs *); /* handler in arm */
> /* following empty in UP */
> void (*arch_set_all_cpus_idle) (int);
> spinlock_t lock;
> };

I would still call the struct dyntick, have CONFIG_DYNTICK, and then have
CONFIG_NO_IDLE_HZ and possibly CONFIG_SUBJIFFIE_TIMER register to use it
like I said in my earlier mail. Would that solve the issues you have
with the naming?

> /* return number of ticks skipped, potentially for accounting purposes? */
> extern unsigned long reprogram_interrupt(void);

The number of ticks skipped can be potentially used in idle loops to
select which ACPI C state to go to depending on the estimated length of
sleep.

Regards,

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

\
 
 \ /
  Last update: 2005-09-07 10:18    [W:0.133 / U:0.984 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site