04 May, 2011

1 commit

  • With dynamic debug having gained the capability to report debug messages
    also during the boot process, it offers a far superior interface for
    debug messages than the custom cpufreq infrastructure. As a first step,
    remove the old cpufreq_debug_printk() function and replace it with a call
    to the generic pr_debug() function.

    How can dynamic debug be used on cpufreq? You need a kernel which has
    CONFIG_DYNAMIC_DEBUG enabled.

    To enabled debugging during runtime, mount debugfs and

    $ echo -n 'module cpufreq +p' > /sys/kernel/debug/dynamic_debug/control

    for debugging the complete "cpufreq" module. To achieve the same goal during
    boot, append

    ddebug_query="module cpufreq +p"

    as a boot parameter to the kernel of your choice.

    For more detailled instructions, please see
    Documentation/dynamic-debug-howto.txt

    Signed-off-by: Dominik Brodowski
    Signed-off-by: Dave Jones

    Dominik Brodowski
     

19 May, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

18 Jul, 2008

1 commit

  • When dprintk is enabled the following warnings are generated:
    arch/ia64/kernel/cpufreq/acpi-cpufreq.c: In function 'processor_set_pstate':
    arch/ia64/kernel/cpufreq/acpi-cpufreq.c:54: warning: format '%x' expects type 'unsigned int', but argumen
    t 3 has type 's64'
    arch/ia64/kernel/cpufreq/acpi-cpufreq.c: In function 'processor_get_pstate':
    arch/ia64/kernel/cpufreq/acpi-cpufreq.c:76: warning: format '%x' expects type 'unsigned int', but argumen
    t 2 has type 's64'

    Signed-off-by: Denis V. Lunev
    Signed-off-by: Tony Luck

    Denis V. Lunev
     

05 Oct, 2007

1 commit


16 Aug, 2007

1 commit

  • The core cpufreq code doesn't appear to understand returning -EAGAIN
    for the get() function of the cpufreq_driver. If PAL_GET_PSTATE returns
    -1, such as when running on Xen, scaling_cur_freq is happy to return
    4294967285 kHz (ie. (unsigned)-11). The other drivers appear to return
    0 for a failure, and doing so gives me the max frequency from
    scaling_cur_frequency and "" from cpuinfo_cur_frequency. I
    believe that's the desired behavior.

    Signed-off-by: Alex Williamson
    Acked-by: Venkatesh Pallipadi
    Signed-off-by: Tony Luck

    Alex Williamson
     

21 Dec, 2006

1 commit


08 Dec, 2006

1 commit

  • PAL_GET_PSTATE accepts a type argument to return different kinds of
    frequency information.
    Refer: Intel Itanium®Architecture Software Developer's Manual -
    Volume 2: System Architecture, Revision 2.2
    (http://developer.intel.com/design/itanium/manuals/245318.htm)

    Add the support for type argument and use Instantaneous frequency
    in the acpi driver.

    Also fix a bug, where in return value of PAL_GET_PSTATE was getting compared
    with 'control' bits instead of 'status' bits.

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Tony Luck

    Venkatesh Pallipadi
     

01 Jul, 2006

1 commit


06 Dec, 2005

1 commit


01 Dec, 2005

1 commit

  • Linux invokes the AML _PDC method (Processor Driver Capabilities)
    to tell the BIOS what features it can handle. While the ACPI
    spec says nothing about the OS invoking _PDC multiple times,
    doing so with changing bits seems to hopelessly confuse the BIOS
    on multiple platforms up to and including crashing the system.

    Factor out the _PDC invocation so Linux invokes it only once.

    http://bugzilla.kernel.org/show_bug.cgi?id=5483

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Len Brown

    Venkatesh Pallipadi
     

27 Aug, 2005

1 commit

  • Patch to support P-state transitions on ia64. This driver is based on ACPI,
    and uses the ACPI processor driver interface to find out the P-state support
    information for the processor. This driver plugs into generic cpufreq
    infrastructure.

    Once this driver is loaded successfully, ondemand/userspace governor can be
    used to change the CPU frequency dynamically based on load or on request from
    userspace process.

    Refer :
    ACPI specification -
    http://www.acpi.info
    P-state related PAL calls -
    http://developer.intel.com/design/itanium/downloads/24869909.pdf

    Signed-off-by: Venkatesh Pallipadi
    Signed-off-by: Tony Luck

    Venkatesh Pallipadi