lkml.org 
[lkml]   [2011]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH V2 2/4] Remove CPUIDLE_FLAG_IGNORE and dev->prepare()
    Date
    The cpuidle_device->prepare() mechanism causes updates to the
    cpuidle_state[].flags, setting and clearing CPUIDLE_FLAG_IGNORE
    to tell the governor not to chose a state on a per-cpu basis at
    run-time. State demotion is now handled by the driver and it returns
    the actual state entered. Hence, this mechanism is not required.
    Also this removes per-cpu flags from cpuidle_state enabling
    it to be made global.

    Signed-off-by: Trinabh Gupta <trinabh@linux.vnet.ibm.com>
    ---

    drivers/cpuidle/cpuidle.c | 10 ----------
    drivers/cpuidle/governors/menu.c | 2 --
    include/linux/cpuidle.h | 3 ---
    3 files changed, 0 insertions(+), 15 deletions(-)

    diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
    index 355b078..92a6216 100644
    --- a/drivers/cpuidle/cpuidle.c
    +++ b/drivers/cpuidle/cpuidle.c
    @@ -75,16 +75,6 @@ static void cpuidle_idle_call(void)
    hrtimer_peek_ahead_timers();
    #endif

    - /*
    - * Call the device's prepare function before calling the
    - * governor's select function. ->prepare gives the device's
    - * cpuidle driver a chance to update any dynamic information
    - * of its cpuidle states for the current idle period, e.g.
    - * state availability, latencies, residencies, etc.
    - */
    - if (dev->prepare)
    - dev->prepare(dev);
    -
    /* ask the governor for the next state */
    next_state = cpuidle_curr_governor->select(dev);
    if (need_resched()) {
    diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c
    index 70d9982..40b5630 100644
    --- a/drivers/cpuidle/governors/menu.c
    +++ b/drivers/cpuidle/governors/menu.c
    @@ -286,8 +286,6 @@ static int menu_select(struct cpuidle_device *dev)
    for (i = CPUIDLE_DRIVER_STATE_START; i < dev->state_count; i++) {
    struct cpuidle_state *s = &dev->states[i];

    - if (s->flags & CPUIDLE_FLAG_IGNORE)
    - continue;
    if (s->target_residency > data->predicted_us)
    continue;
    if (s->exit_latency > latency_req)
    diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
    index 45eef60..a3306be 100644
    --- a/include/linux/cpuidle.h
    +++ b/include/linux/cpuidle.h
    @@ -47,7 +47,6 @@ struct cpuidle_state {

    /* Idle State Flags */
    #define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */
    -#define CPUIDLE_FLAG_IGNORE (0x100) /* ignore during this idle period */

    #define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000)

    @@ -93,8 +92,6 @@ struct cpuidle_device {
    struct completion kobj_unregister;
    void *governor_data;
    int safe_state_index;
    -
    - int (*prepare) (struct cpuidle_device *dev);
    };

    DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices);


    \
     
     \ /
      Last update: 2011-04-11 09:19    [W:0.029 / U:1.168 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site