• Thomas Renninger's avatar
    x86 cpufreq, perf: Make trace_power_frequency cpufreq driver independent · 4c21adf2
    Thomas Renninger authored
    and fix the broken case if a core's frequency depends on others.
    
    trace_power_frequency was only implemented in a rather ungeneric
    way in acpi-cpufreq driver's target() function only.
    
    -> Move the call to trace_power_frequency to
       cpufreq.c:cpufreq_notify_transition() where CPUFREQ_POSTCHANGE
       notifier is triggered.
       This will support power frequency tracing by all cpufreq
       drivers.
    
    trace_power_frequency did not trace frequency changes correctly
    when the userspace governor was used or when CPU cores'
    frequency depend on each other.
    
    -> Moving this into the CPUFREQ_POSTCHANGE notifier and pass the cpu
       which gets switched automatically fixes this.
    
    Robert Schoene provided some important fixes on top of my
    initial quick shot version which are integrated in this patch:
    - Forgot some changes in power_end trace (TP_printk/variable names)
    - Variable dummy in power_end must now be cpu_id
    - Use static 64 bit variable instead of unsigned int for cpu_id
    
    [akpm@linux-foundation.org: build fix]
    Signed-off-by: default avatarThomas Renninger <trenn@suse.de>
    Cc: davej@codemonkey.org.uk
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Cc: Dave Jones <davej@codemonkey.org.uk>
    Acked-by: default avatarArjan van de Ven <arjan@infradead.org>
    Cc: Robert Schoene <robert.schoene@tu-dresden.de>
    Tested-by: default avatarRobert Schoene <robert.schoene@tu-dresden.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    4c21adf2
cpufreq.c 50.7 KB