14 Jan, 2011

31 commits

  • - Move no_printk above first CONFIG_PRINTK block so it can be used by
    printk_once.

    - Convert statement expression if (0) printk macros to no_printk.

    - Convert printk_once(x...) to more normally used (fmt, ...) fmt,
    ##__VA_ARGS__.

    - Standardize __attribute__ use.

    - Expand single line inline functions.

    - Remove space before pointer.

    Signed-off-by: Joe Perches
    Cc: Matt Mackall
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Signed-off-by: Joe Perches
    Cc: Matt Mackall
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • There are many uses of printk_once(KERN_, so add pr__once
    macros to avoid printk_once(KERN_ pr_fmt(fmt).

    Add an #ifdef CONFIG_PRINTK for print_hex_dump and static inline void
    functions for the #else cases to reduce embedded code size. Neaten and
    organize the rest of the code.

    This patch:

    Move console functions and variables together.

    Signed-off-by: Joe Perches
    Cc: Matt Mackall
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • dump_list_lock is used to protect dump_list in kmsg_dumper implementation,
    kmsg_dump() uses it to traverse dump_list too. But if there is contention
    on the lock, kmsg_dump() will fail, and the valuable kernel message may be
    lost.

    This patch solves this issue with RCU. Because kmsg_dump() only read the
    list, no lock is needed in kmsg_dump(). So that kmsg_dump() will never
    fail because of lock contention.

    Signed-off-by: Huang Ying
    Cc: "Paul E. McKenney"
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Ying
     
  • The return here doesn't release the locks or re-enable IRQs. But as
    Andrew Morton points out, domain is never NULL. list_first_entry()
    essentially never returns NULL and also we already verified that the list
    is not empty.

    Signed-off-by: Dan Carpenter
    Acked-by: Maciej Sosnowski
    Cc: David Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • Add the %pK printk format specifier and the /proc/sys/kernel/kptr_restrict
    sysctl.

    The %pK format specifier is designed to hide exposed kernel pointers,
    specifically via /proc interfaces. Exposing these pointers provides an
    easy target for kernel write vulnerabilities, since they reveal the
    locations of writable structures containing easily triggerable function
    pointers. The behavior of %pK depends on the kptr_restrict sysctl.

    If kptr_restrict is set to 0, no deviation from the standard %p behavior
    occurs. If kptr_restrict is set to 1, the default, if the current user
    (intended to be a reader via seq_printf(), etc.) does not have CAP_SYSLOG
    (currently in the LSM tree), kernel pointers using %pK are printed as 0's.
    If kptr_restrict is set to 2, kernel pointers using %pK are printed as
    0's regardless of privileges. Replacing with 0's was chosen over the
    default "(null)", which cannot be parsed by userland %p, which expects
    "(nil)".

    [akpm@linux-foundation.org: check for IRQ context when !kptr_restrict, save an indent level, s/WARN/WARN_ONCE/]
    [akpm@linux-foundation.org: coding-style fixup]
    [randy.dunlap@oracle.com: fix kernel/sysctl.c warning]
    Signed-off-by: Dan Rosenberg
    Signed-off-by: Randy Dunlap
    Cc: James Morris
    Cc: Eric Dumazet
    Cc: Thomas Graf
    Cc: Eugene Teo
    Cc: Kees Cook
    Cc: Ingo Molnar
    Cc: David S. Miller
    Cc: Peter Zijlstra
    Cc: Eric Paris

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Rosenberg
     
  • For arch which needs USE_GENERIC_SMP_HELPERS, it has to select
    USE_GENERIC_SMP_HELPERS, rather than leaving a choice to user, since they
    don't provide their own implementions.

    Also, move on_each_cpu() to kernel/smp.c, it is strange to put it in
    kernel/softirq.c.

    For arch which doesn't use USE_GENERIC_SMP_HELPERS, e.g. blackfin, only
    on_each_cpu() is compiled.

    Signed-off-by: Amerigo Wang
    Cc: David Howells
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Yinghai Lu
    Cc: Peter Zijlstra
    Cc: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Amerigo Wang
     
  • Fix unusued return value compiler warnings due to unchecked write() calls.

    [akpm@linux-foundation.org: correctly handle short writes]
    Signed-off-by: Chris Ruffin
    Cc: Mark Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Ruffin
     
  • The readmostly section should end at a cacheline aligned address,
    otherwise the last several data might share cachline with other data and
    make the readmostly data still have cache bounce.

    For example, in ia64, secpath_cachep is the last readmostly data, and it
    shares cacheline with init_uts_ns.

    a000000100e80480 d secpath_cachep
    a000000100e80488 D init_uts_ns

    Signed-off-by: Shaohua Li
    Cc: "H. Peter Anvin"
    Cc: Eric Dumazet
    Acked-by: Tejun Heo
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shaohua Li
     
  • Cc: Will Newton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Currently, tosh_smm() prototype is present in a header file exported to
    userland. This patch fixes it.

    Signed-off-by: Alexander Shishkin
    Cc: Jonathan Buzzard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Shishkin
     
  • Michal reports:

    In the framebuffer subsystem the abs() macro is often used as a part of
    the calculation of a Manhattan metric, which in turn is used as a measure
    of similarity between video modes. The arguments of abs() are sometimes
    unsigned numbers. This worked fine until commit a49c59c0 ("Make sure the
    value in abs() does not get truncated if it is greater than 2^32:) , which
    changed the definition of abs() to prevent truncation. As a result of
    this change, in the following piece of code:

    u32 a = 0, b = 1;
    u32 c = abs(a - b);

    'c' will end up with a value of 0xffffffff instead of the expected 0x1.

    A problem caused by this change and visible by the end user is that
    framebuffer drivers relying on functions from modedb.c will fail to find
    high resolution video modes similar to that explicitly requested by the
    user if an exact match cannot be found (see e.g.

    Fix this by special-casing `long' types within abs().

    This patch reduces x86_64 code size a bit - drivers/video/uvesafb.o shrunk
    by 15 bytes, presumably because it is doing abs() on 4-byte quantities,
    and expanding those to 8-byte longs adds code.

    testcase:

    #define oldabs(x) ({ \
    long __x = (x); \
    (__x < 0) ? -__x : __x; \
    })

    #define newabs(x) ({ \
    long ret; \
    if (sizeof(x) == sizeof(long)) { \
    long __x = (x); \
    ret = (__x < 0) ? -__x : __x; \
    } else { \
    int __x = (x); \
    ret = (__x < 0) ? -__x : __x; \
    } \
    ret; \
    })

    typedef unsigned int u32;

    main()
    {
    u32 a = 0;
    u32 b = 1;
    u32 oldc = oldabs(a - b);
    u32 newc = newabs(a - b);

    printf("%u %u\n", oldc, newc);
    }

    akpm:/home/akpm> gcc t.c
    akpm:/home/akpm> ./a.out
    4294967295 1

    Reported-by: Michal Januszewski
    Cc: Rolf Eike Beer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Occasionally the system gets into a state where the CMOS clock has gotten
    slightly ahead of current time and the periodic update of RTC fails. The
    message is a nuisance and repeats spamming the log.

    See: http://www.ntp.org/ntpfaq/NTP-s-trbl-spec.htm#Q-LINUX-SET-RTC-MMSS

    Rather than just removing the message, make it show only once and reduce
    severity since it indicates a normal and non urgent condition.

    Signed-off-by: Stephen Hemminger
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Cc: Ralf Baechle
    Cc: David Howells
    Cc: Paul Mundt
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Hemminger
     
  • We need to know the reason why system rebooted in support service.
    However, we can't inform our customers of the reason because final
    messages are lost on current Linux kernel.

    This patch improves the situation above because the final messages are
    saved by adding kmsg_dump() to reboot, halt, poweroff and
    emergency_restart path.

    Signed-off-by: Seiji Aguchi
    Cc: David Woodhouse
    Cc: Marco Stornelli
    Reviewed-by: Artem Bityutskiy
    Reviewed-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Seiji Aguchi
     
  • This series aims to develop logging facility for enterprise use.

    It is important to save kernel messages reliably on enterprise system
    because they are helpful for diagnosing system.

    This series add kmsg_dump() to the paths loosing kernel messages. The use
    case is the following.

    [Use case of reboot/poweroff/halt/emergency_restart]

    My company has often experienced the followings in our support service.
    - Customer's system suddenly reboots.
    - Customers ask us to investigate the reason of the reboot.

    We recognize the fact itself because boot messages remain in
    /var/log/messages. However, we can't investigate the reason why the
    system rebooted, because the last messages don't remain. And off course
    we can't explain the reason.

    We can solve above problem with this patch as follows.

    Case1: reboot with command
    - We can see "Restarting system with command:" or ""Restarting system.".

    Case2: halt with command
    - We can see "System halted.".

    Case3: poweroff with command
    - We can see " Power down.".

    Case4: emergency_restart with sysrq.
    - We can see "Sysrq:" outputted in __handle_sysrq().

    Case5: emergency_restart with softdog.
    - We can see "Initiating system reboot" in watchdog_fire().

    So, we can distinguish the reason of reboot, poweroff, halt and emergency_restart.

    If customer executed reboot command, you may think the customer should
    know the fact. However, they often claim they don't execute the command
    when they rebooted system by mistake.

    No message remains on the current Linux kernel, so we can't show the proof
    to the customer. This patch improves this situation.

    This patch:

    Alters mtdoops and ramoops to perform their actions only for
    KMSG_DUMP_PANIC, KMSG_DUMP_OOPS and KMSG_DUMP_KEXEC because they would
    like to log crashes only.

    Signed-off-by: Seiji Aguchi
    Cc: David Woodhouse
    Cc: Marco Stornelli
    Reviewed-by: Artem Bityutskiy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Seiji Aguchi
     
  • Simplify write file operation for mmapper by using
    simple_write_to_buffer().

    Signed-off-by: Akinobu Mita
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Add missing MODULE_LICENSE():

    WARNING: modpost: missing MODULE_LICENSE() in arch/um/drivers/mmapper_kern.o

    Signed-off-by: Randy Dunlap
    Cc: Greg Lonnon
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • unregister_winch() should use list_for_each_safe(), as it can delete from
    the list.

    Signed-off-by: Will Newton
    Cc: richard -rw- weinberger
    Acked-by: WANG Cong
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Will Newton
     
  • Currently CONFIG_HIGHMEM is broken on User Mode Linux. I'm not sure if it
    worked ever.

    It doesn't compile and this breaks randomconfig testing.

    Signed-off-by: Richard Weinberger
    Cc: Jeff Dike
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Weinberger
     
  • The reset command is part of the init sequence and it take effect
    only if the lcd is powered.

    The effect of the bug was that the sequence:
    set lcd power_state to FB_BLANK_POWERDOWN
    set lcd power_state to FB_BLANK_UNBLANK
    Did not produced a complete reboot of the LCD which was showing fuzzy
    colours.

    This was not experienced before implementing correctly all the LCD power
    states with the patch [1]. Since before the patch [1] the regulators were
    not touched and the LCD shutdown was reached with a register write. After
    the patch [1] a complete boot sequence with an initial reset is needed for
    the display every time the LCD is powered up.

    drivers-video-backlight-l4f00242t03c-full-implement-fb-power-states-for-this-lcd.patch

    Signed-off-by: Alberto Panizzo
    Cc: Richard Purdie
    Cc: Marek Vasut
    Cc: Tejun Heo
    Cc: Axel Lin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alberto Panizzo
     
  • Otherwise a double call to:
    $ echo 4 > /sys/class/lcd/l4f00242t03/lcd_power
    Will, the first power down the lcd and regulators correctly and the
    second produce an unbalanced call to regulator disable.

    Signed-off-by: Alberto Panizzo
    Cc: Richard Purdie
    Cc: Marek Vasut
    Cc: Tejun Heo
    Cc: Axel Lin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alberto Panizzo
     
  • Complete the support of fb power states managing correctly the regulators
    bound to this driver.

    Signed-off-by: Alberto Panizzo
    Cc: Richard Purdie
    Cc: Marek Vasut
    Cc: Tejun Heo
    Cc: Axel Lin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alberto Panizzo
     
  • Fixes sparse warning:
    drivers/video/backlight/l4f00242t03.c:28:21: error: dubious one-bit signed bitfield

    Signed-off-by: Mariusz Kozlowski
    Acked-by: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mariusz Kozlowski
     
  • Extend the LED backlight tirgger driver with an option that allows for
    inverting the trigger output polarity.

    With the invertion option provided, I (ab)use the backlight trigger for
    driving a LED that indicates LCD display blank condtition on my Amstrad
    Delta videophone. Since the machine has no dedicated power LED, it was
    not possible to distinguish if the display was blanked, or the machine was
    turned off, without touching it.

    The invert sysfs control is patterned after a similiar function of the GPIO
    trigger driver.

    [akpm@linux-foundation.org: make output match input, tighten input checking]
    [akpm@linux-foundation.org: make output match input, tighten input checking]
    Signed-off-by: Janusz Krzysztofik
    Cc: Paul Mundt
    Acked-by: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Janusz Krzysztofik
     
  • Currently the led device name is fetched from the device_type in
    I2C_BOARD_INFO which comes from the platform data. This name is in turn
    used to create an entry in sysfs.

    If there exists two or more lp5521 on a particular platform, the
    device_type in I2C_BOARD_INFO has to be the same, else lp5521 driver probe
    wont be called and if used so, results in run time warning "cannot create
    sysfs with same name" and hence a failure.

    The name that is used to create sysfs entry is to be passed by the struct
    led_platform_data. Hence adding an element of type const char * and
    change in lp5521 driver to use this name in creating the led device if
    present else use the name obtained by I2C_BOARD_INFO.

    Signed-off-by: Arun Murthy
    Acked-by: Samu Onkalo
    Cc: Ilkka Koskinen
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Murthy
     
  • Driver contained possibility for circular locking.

    One lock is held by sysfs-core and another one by the driver itself. This
    happened when the driver created or removed sysfs entries dynamically.
    There is no real need to do those operations. Now all the sysfs entries
    are created at probe and removed at removal. Engine load sysfs entries
    are now visible all the time. However, access to the entries fails if the
    engine is disabled or running.

    Signed-off-by: Samu Onkalo
    Cc: Arun Murthy
    Reviewed-by: Ilkka Koskinen
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • Driver contained possibility for circular locking.

    One lock is held by sysfs-core and another one by the driver itself. This
    happened when the driver created or removed sysfs entries dynamically.
    There is no real need to do those operations. Now all the sysfs entries
    are created at probe and removed at removal. Engine load and mux
    configuration sysfs entries are now visible all the time. However, access
    to the entries fails if the engine is disabled or running.

    Signed-off-by: Samu Onkalo
    Cc: Arun Murthy
    Reviewed-by: Ilkka Koskinen
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • Currently all leds channels begins with string lp5523. Patch adds a
    possibility to provide name via platform data. This makes it possible to
    have several chips without overlapping sysfs names.

    Signed-off-by: Samu Onkalo
    Cc: Arun Murthy
    Cc: Ilkka Koskinen
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Samu Onkalo
     
  • - Remove unneeded input_free_device() after input_unregister_device().

    - Add pca9532_destroy_devices() function for destroy devices.

    Signed-off-by: Axel Lin
    Acked-by: Dmitry Torokhov
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Axel Lin
     
  • The code doesn't check first sscanf() return value. If first sscanf()
    failed then c contains some garbage. It might lead to reading
    uninitialised stack data in the second sscanf() call.

    Signed-off-by: Vasiliy Kulikov
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vasiliy Kulikov
     
  • pr_warning_ratelimited() doesn't exist.

    Also include printk.h, which defines these things.

    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

13 Jan, 2011

5 commits

  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (39 commits)
    i915/gtt: fix ordering causing DMAR errors on object teardown.
    i915/gtt: fix ordering issues with status setup and DMAR
    drm/i915/execbuffer: Reorder binding of objects to favour restrictions
    drm/i915: If we hit OOM when allocating GTT pages, clear the aperture
    drm/i915/evict: Ensure we completely cleanup on failure
    drm/i915/execbuffer: Correctly clear the current object list upon EFAULT
    drm/i915/debugfs: Show all objects in the gtt
    drm/i915: Record AGP memory type upon error
    drm/i915: Periodically flush the active lists and requests
    drm/i915/gtt: Unmap the PCI pages after unbinding them from the GTT
    drm/i915: Record the error batchbuffer on each ring
    drm/i915: Include TLB miss overhead for computing WM
    drm/i915: Propagate error from flushing the ring
    drm/i915: detect & report PCH display error interrupts
    drm/i915: cleanup rc6 code
    drm/i915: fix rc6 enabling around suspend/resume
    drm/i915: re-enable rc6 support for Ironlake+
    drm/i915: Make the ring IMR handling private
    drm/i915/ringbuffer: Simplify the ring irq refcounting
    drm/i915/debugfs: Show the per-ring IMR
    ...

    Linus Torvalds
     
  • * 'tools' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
    tools: create power/x86/x86_energy_perf_policy
    tools: create power/x86/turbostat

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-ktest: (30 commits)
    ktest: Ask for the manditory config options instead of just failing
    ktest: Copy the last good and bad configs in config_bisect
    ktest: For grub reboot, use run_ssh instead of run_command
    ktest: Added force stop after success and failure
    ktest: Parse off the directory name in useconfig for failures
    ktest: Use different temp config name for minconfig
    ktest: Updated the sample.conf for the latest options
    ktest: Added compare script to test ktest.pl to sample.conf
    ktest: Added config_bisect test type
    ktest/cleanups: Added version 0.2, ssh as options
    ktest: Output something easy to parse for failure or success
    ktest: Allow a test case to undefine a default value
    ktest: Use $output_config instead of typing $outputdir/.config
    ktest: Write to stdout if no log file is given
    ktest: Use oldnoconfig instead of yes command
    ktest: Update the sample config file with more documentation
    ktest: New TEST_START instead of using [], and use real SHA1s
    ktest: Add poweroff after halt and powercycle after reboot
    ktest: Add POST_INSTALL to allow initrds to be created
    ktest: Added sample.conf, new %default option format
    ...

    Linus Torvalds
     
  • * 'stable/xenbus' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/xenbus: making backend support modular is too complex
    xen/pci: Make xen-pcifront be dependent on XEN_XENBUS_FRONTEND
    xen/xenbus: fixup checkpatch issues in xenbus_probe*
    xen/netfront: select XEN_XENBUS_FRONTEND
    xen/xenbus: clean up noise in xenbus_probe_frontend.c
    xen/xenbus: clean up noise in xenbus_probe_backend.c
    xen/xenbus: clean up noise in xenbus_probe.c
    xen/xenbus: cleanup debug noise in xenbus_comms.c
    xen/xenbus: clean up error handling
    xen/xenbus: make frontend bus GPL
    xen/xenbus: make sure backend bus is registered earlier
    xenbus/frontend: register bus earlier
    xen: remove xen/evtchn.h
    xen: add backend driver support
    xen: separate out frontend xenbus

    Linus Torvalds
     
  • Fix writev() to not keep writing the first segment over and over again
    instead of moving onto subsequent segments and update the NTFS entry in
    MAINTAINERS to reflect that Tuxera Inc. now supports the NTFS driver.

    Signed-off-by: Anton Altaparmakov
    Signed-off-by: Linus Torvalds

    Anton Altaparmakov
     

12 Jan, 2011

4 commits

  • Len Brown
     
  • MSR_IA32_ENERGY_PERF_BIAS first became available on Westmere Xeon.
    It is implemented in all Sandy Bridge processors -- mobile, desktop and server.
    It is expected to become increasingly important in subsequent generations.

    x86_energy_perf_policy is a user-space utility to set the
    hardware energy vs performance policy hint in the processor.
    Most systems would benefit from "x86_energy_perf_policy normal"
    at system startup, as the hardware default is maximum performance
    at the expense of energy efficiency.

    See x86_energy_perf_policy.8 man page for more information.

    Background:

    Linux-2.6.36 added "epb" to /proc/cpuinfo to indicate
    if an x86 processor supports MSR_IA32_ENERGY_PERF_BIAS,
    without actually modifying the MSR.

    In March, 2010, Venkatesh Pallipadi proposed a small driver
    that programmed MSR_IA32_ENERGY_PERF_BIAS, based on
    the cpufreq governor in use. It also offered
    a boot-time cmdline option to override.
    http://lkml.org/lkml/2010/3/4/457
    But hiding the hardware policy behind the
    governor choice was deemed "kinda icky".

    In June, 2010, I proposed a generic user/kernel API to
    generalize the power/performance policy trade-off.
    "RFC: /sys/power/policy_preference"
    http://lkml.org/lkml/2010/6/16/399
    That is my preference for implementing this capability,
    but I received no support on the list.

    So in September, 2010, I sent x86_energy_perf_policy.c to LKML,
    a user-space utility that scribbles directly to the MSR.
    http://lkml.org/lkml/2010/9/28/246

    Here is that same utility, after responding to some review feedback,
    to live in tools/power/, where it is easily found.

    Signed-off-by: Len Brown

    Len Brown
     
  • turbostat is a Linux tool to observe proper operation
    of Intel(R) Turbo Boost Technology.

    turbostat displays the actual processor frequency
    on x86 processors that include APERF and MPERF MSRs.

    Note that turbostat is of limited utility on Linux
    kernels 2.6.29 and older, as acpi_cpufreq cleared
    APERF/MPERF up through that release.

    On Intel Core i3/i5/i7 (Nehalem) and newer processors,
    turbostat also displays residency in idle power saving states,
    which are necessary for diagnosing any cpuidle issues
    that may have an effect on turbo-mode.

    See the turbostat.8 man page for example usage.

    Signed-off-by: Len Brown

    Len Brown
     
  • Previous to the last GTT rework we always rewrote the GTT then unmapped the
    object, somehow this got reversed in the rework in 2.6.37-rc5 timeframe.

    This fix needs to go to stable in an alternate form since the code changed.

    This fixes DMAR reports on my Ironlake HP2540p.

    Signed-off-by: Dave Airlie

    Dave Airlie