23 Dec, 2006

1 commit

  • Fixes the oops in cpufreq_stats with acpi_cpufreq driver. The issue was
    that the frequency was reported as 0 in acpi-cpufreq.c. The bug is due to
    different indicies for freq_table and ACPI perf table.

    Also adds a check in cpufreq_stats to check for error return from
    freq_table_get_index() and avoid using the error return value.

    Patch fixes the issue reported at
    http://www.ussg.iu.edu/hypermail/linux/kernel/0611.2/0629.html
    and also other similar issue here
    http://bugme.osdl.org/show_bug.cgi?id=7383 comment 53

    Signed-off-by: Dhaval Giani
    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Andrew Morton
    Signed-off-by: Dave Jones

    Venkatesh Pallipadi
     

07 Nov, 2006

1 commit


23 Sep, 2006

1 commit

  • Lukewarm IQ detected in hotplug locking
    BUG: warning at kernel/cpu.c:38/lock_cpu_hotplug()
    [] lock_cpu_hotplug+0x42/0x65
    [] cpufreq_update_policy+0x25/0xad
    [] kprobe_flush_task+0x18/0x40
    [] schedule+0x63f/0x68b
    [] __link_module+0x0/0x1f
    [] __cond_resched+0x16/0x34
    [] cond_resched+0x26/0x31
    [] wait_for_completion+0x17/0xb1
    [] cpufreq_stat_cpu_callback+0x13/0x20 [cpufreq_stats]
    [] cpufreq_stats_init+0x74/0x8b [cpufreq_stats]
    [] sys_init_module+0x91/0x174
    [] sysenter_past_esp+0x56/0x79

    As there are other places that call cpufreq_update_policy without
    the hotplug lock, it seems better to keep the hotplug locking
    at the lower level for the time being until this is revamped.

    Signed-off-by: Dave Jones

    Dave Jones
     

01 Jul, 2006

1 commit


28 Jun, 2006

1 commit

  • CPUs come online only at init time (unless CONFIG_HOTPLUG_CPU is defined).
    So, cpu_notifier functionality need to be available only at init time.

    This patch makes register_cpu_notifier() available only at init time, unless
    CONFIG_HOTPLUG_CPU is defined.

    This patch exports register_cpu_notifier() and unregister_cpu_notifier() only
    if CONFIG_HOTPLUG_CPU is defined.

    Signed-off-by: Chandra Seetharaman
    Cc: Ashok Raj
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chandra Seetharaman
     

31 May, 2006

1 commit


12 Mar, 2006

1 commit

  • cpufreq are the only remaining bit to be solved for me to have a modpost
    clean build for sparc64 - so I took one more look at it.
    changelog entry:

    Fix section mismatch warnings in cpufreq:
    WARNING: drivers/cpufreq/cpufreq_stats.o - Section mismatch: reference to .init.text: from .data between 'cpufreq_stat_cpu_notifier' (at offset 0xa8) and 'notifier_policy_block'
    WARNING: drivers/cpufreq/cpufreq_stats.o - Section mismatch: reference to .init.text: from .exit.text after 'cleanup_module' (at offset 0x30)

    The culprint is the function: cpufreq_stat_cpu_callback
    It is marked __cpuinit which get's redefined to __init in case
    HOTPLUG_CPU is not enabled as per. init.h:

    #ifdef CONFIG_HOTPLUG_CPU
    #define __cpuinit
    #else
    #define __cpuinit __init
    #endif

    $> grep HOTPLUG .config
    CONFIG_HOTPLUG=y

    But cpufreq_stat_cpu_callback() is used in:
    __exit cpufreq_stats_exit()
    static struct notifier_block cpufreq_stat_cpu_notifier

    cpufreq_stat_cpu_notifier is again used in:
    __init cpufreq_stats_init()
    __exit cpufreq_stats_exit()

    So in both cases used from both __init and __exit context.
    Only solution seems to drop __cpuinit tag.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: Dave Jones

    Sam Ravnborg
     

28 Feb, 2006

1 commit


08 Nov, 2005

1 commit


02 Nov, 2005

1 commit


31 Oct, 2005

1 commit

  • cpufreq entries in sysfs should only be populated when CPU is online state.
    When we either boot with maxcpus=x and then boot the other cpus by echoing
    to sysfs online file, these entries should be created and destroyed when
    CPU_DEAD is notified. Same treatement as cache entries under sysfs.

    We place the processor in the lowest frequency, so hw managed P-State
    transitions can still work on the other threads to save power.

    Primary goal was to just make these directories appear/disapper dynamically.

    There is one in this patch i had to do, which i really dont like myself but
    probably best if someone handling the cpufreq infrastructure could give
    this code right treatment if this is not acceptable. I guess its probably
    good for the first cut.

    - Converting lock_cpu_hotplug()/unlock_cpu_hotplug() to disable/enable preempt.
    The locking was smack in the middle of the notification path, when the
    hotplug is already holding the lock. I tried another solution to avoid this
    so avoid taking locks if we know we are from notification path. The solution
    was getting very ugly and i decided this was probably good for this iteration
    until someone who understands cpufreq could do a better job than me.

    (akpm: export cpucontrol to GPL modules: drivers/cpufreq/cpufreq_stats.c now
    does lock_cpu_hotplug())

    Signed-off-by: Ashok Raj
    Signed-off-by: Venkatesh Pallipadi
    Cc: Dave Jones
    Cc: Zwane Mwaikambo
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ashok Raj
     

28 Oct, 2005

1 commit

  • This fixes an issue found in drivers/cpufreq/cpufreq_stats.c by Coverity.

    Error reported:
    CID: 2642
    Checker: NULL_RETURNS (help)
    File: /export2/p4-coverity/mc2/linux26/drivers/cpufreq/cpufreq_stats.c
    Function: cpufreq_stats_create_table
    Description: Dereferencing NULL value "data"

    Patch description:
    The return of cpufreq_cpu_get can be NULL, check return code and return
    -EINVAL if it is NULL.

    Signed-off-by: Jayachandran C.
    Signed-off-by: Dave Jones

    Dave Jones
     

21 Oct, 2005

1 commit


01 Jun, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds