10 Sep, 2013

1 commit

  • Pull NFS client updates from Trond Myklebust:
    "Highlights include:

    - Fix NFSv4 recovery so that it doesn't recover lost locks in cases
    such as lease loss due to a network partition, where doing so may
    result in data corruption. Add a kernel parameter to control
    choice of legacy behaviour or not.
    - Performance improvements when 2 processes are writing to the same
    file.
    - Flush data to disk when an RPCSEC_GSS session timeout is imminent.
    - Implement NFSv4.1 SP4_MACH_CRED state protection to prevent other
    NFS clients from being able to manipulate our lease and file
    locking state.
    - Allow sharing of RPCSEC_GSS caches between different rpc clients.
    - Fix the broken NFSv4 security auto-negotiation between client and
    server.
    - Fix rmdir() to wait for outstanding sillyrename unlinks to complete
    - Add a tracepoint framework for debugging NFSv4 state recovery
    issues.
    - Add tracing to the generic NFS layer.
    - Add tracing for the SUNRPC socket connection state.
    - Clean up the rpc_pipefs mount/umount event management.
    - Merge more patches from Chuck in preparation for NFSv4 migration
    support"

    * tag 'nfs-for-3.12-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (107 commits)
    NFSv4: use mach cred for SECINFO_NO_NAME w/ integrity
    NFS: nfs_compare_super shouldn't check the auth flavour unless 'sec=' was set
    NFSv4: Allow security autonegotiation for submounts
    NFSv4: Disallow security negotiation for lookups when 'sec=' is specified
    NFSv4: Fix security auto-negotiation
    NFS: Clean up nfs_parse_security_flavors()
    NFS: Clean up the auth flavour array mess
    NFSv4.1 Use MDS auth flavor for data server connection
    NFS: Don't check lock owner compatability unless file is locked (part 2)
    NFS: Don't check lock owner compatibility in writes unless file is locked
    nfs4: Map NFS4ERR_WRONG_CRED to EPERM
    nfs4.1: Add SP4_MACH_CRED write and commit support
    nfs4.1: Add SP4_MACH_CRED stateid support
    nfs4.1: Add SP4_MACH_CRED secinfo support
    nfs4.1: Add SP4_MACH_CRED cleanup support
    nfs4.1: Add state protection handler
    nfs4.1: Minimal SP4_MACH_CRED implementation
    SUNRPC: Replace pointer values with task->tk_pid and rpc_clnt->cl_clid
    SUNRPC: Add an identifier for struct rpc_clnt
    SUNRPC: Ensure rpc_task->tk_pid is available for tracepoints
    ...

    Linus Torvalds
     

05 Sep, 2013

1 commit

  • Rename the new 'recover_locks' kernel parameter to 'recover_lost_locks'
    and change the default to 'false'. Document why in
    Documentation/kernel-parameters.txt

    Move the 'recover_lost_locks' kernel parameter to fs/nfs/super.c to
    make it easy to backport to kernels prior to 3.6.x, which don't have
    a separate NFSv4 module.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

04 Sep, 2013

2 commits

  • Pull ACPI and power management updates from Rafael Wysocki:

    1) ACPI-based PCI hotplug (ACPIPHP) subsystem rework and introduction
    of Intel Thunderbolt support on systems that use ACPI for signalling
    Thunderbolt hotplug events. This also should make ACPIPHP work in
    some cases in which it was known to have problems. From
    Rafael J Wysocki, Mika Westerberg and Kirill A Shutemov.

    2) ACPI core code cleanups and dock station support cleanups from
    Jiang Liu and Rafael J Wysocki.

    3) Fixes for locking problems related to ACPI device hotplug from
    Rafael J Wysocki.

    4) ACPICA update to version 20130725 includig fixes, cleanups, support
    for more than 256 GPEs per GPE block and a change to make the ACPI
    PM Timer optional (we've seen systems without the PM Timer in the
    field already). One of the fixes, related to the DeRefOf operator,
    is necessary to prevent some Windows 8 oriented AML from causing
    problems to happen. From Bob Moore, Lv Zheng, and Jung-uk Kim.

    5) Removal of the old and long deprecated /proc/acpi/event interface
    and related driver changes from Thomas Renninger.

    6) ACPI and Xen changes to make the reduced hardware sleep work with
    the latter from Ben Guthro.

    7) ACPI video driver cleanups and a blacklist of systems that should
    not tell the BIOS that they are compatible with Windows 8 (or ACPI
    backlight and possibly other things will not work on them). From
    Felipe Contreras.

    8) Assorted ACPI fixes and cleanups from Aaron Lu, Hanjun Guo,
    Kuppuswamy Sathyanarayanan, Lan Tianyu, Sachin Kamat, Tang Chen,
    Toshi Kani, and Wei Yongjun.

    9) cpufreq ondemand governor target frequency selection change to
    reduce oscillations between min and max frequencies (essentially,
    it causes the governor to choose target frequencies proportional
    to load) from Stratos Karafotis.

    10) cpufreq fixes allowing sysfs attributes file permissions to be
    preserved over suspend/resume cycles Srivatsa S Bhat.

    11) Removal of Device Tree parsing for CPU device nodes from multiple
    cpufreq drivers that required some changes related to
    of_get_cpu_node() to be made in a few architectures and in the
    driver core. From Sudeep KarkadaNagesha.

    12) cpufreq core fixes and cleanups related to mutual exclusion and
    driver module references from Viresh Kumar, Lukasz Majewski and
    Rafael J Wysocki.

    13) Assorted cpufreq fixes and cleanups from Amit Daniel Kachhap,
    Bartlomiej Zolnierkiewicz, Hanjun Guo, Jingoo Han, Joseph Lo,
    Julia Lawall, Li Zhong, Mark Brown, Sascha Hauer, Stephen Boyd,
    Stratos Karafotis, and Viresh Kumar.

    14) Fixes to prevent race conditions in coupled cpuidle from happening
    from Colin Cross.

    15) cpuidle core fixes and cleanups from Daniel Lezcano and
    Tuukka Tikkanen.

    16) Assorted cpuidle fixes and cleanups from Daniel Lezcano,
    Geert Uytterhoeven, Jingoo Han, Julia Lawall, Linus Walleij,
    and Sahara.

    17) System sleep tracing changes from Todd E Brandt and Shuah Khan.

    18) PNP subsystem conversion to using struct dev_pm_ops for power
    management from Shuah Khan.

    * tag 'pm+acpi-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (217 commits)
    cpufreq: Don't use smp_processor_id() in preemptible context
    cpuidle: coupled: fix race condition between pokes and safe state
    cpuidle: coupled: abort idle if pokes are pending
    cpuidle: coupled: disable interrupts after entering safe state
    ACPI / hotplug: Remove containers synchronously
    driver core / ACPI: Avoid device hot remove locking issues
    cpufreq: governor: Fix typos in comments
    cpufreq: governors: Remove duplicate check of target freq in supported range
    cpufreq: Fix timer/workqueue corruption due to double queueing
    ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT
    ACPI / thermal: Add check of "_TZD" availability and evaluating result
    cpufreq: imx6q: Fix clock enable balance
    ACPI: blacklist win8 OSI for buggy laptops
    cpufreq: tegra: fix the wrong clock name
    cpuidle: Change struct menu_device field types
    cpuidle: Add a comment warning about possible overflow
    cpuidle: Fix variable domains in get_typical_interval()
    cpuidle: Fix menu_device->intervals type
    cpuidle: CodingStyle: Break up multiple assignments on single line
    cpuidle: Check called function parameter in get_typical_interval()
    ...

    Linus Torvalds
     
  • Pull tty/serial driver patches from Greg KH:
    "Here's the big tty/serial driver pull request for 3.12-rc1.

    Lots of n_tty reworks to resolve some very long-standing issues,
    removing the 3-4 different locks that were taken for every character.
    This code has been beaten on for a long time in linux-next with no
    reported regressions.

    Other than that, a range of serial and tty driver updates and
    revisions. Full details in the shortlog"

    * tag 'tty-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (226 commits)
    hvc_xen: Remove unnecessary __GFP_ZERO from kzalloc
    serial: imx: initialize the local variable
    tty: ar933x_uart: add device tree support and binding documentation
    tty: ar933x_uart: allow to build the driver as a module
    ARM: dts: msm: Update uartdm compatible strings
    devicetree: serial: Document msm_serial bindings
    serial: unify serial bindings into a single dir
    serial: fsl-imx-uart: Cleanup duplicate device tree binding
    tty: ar933x_uart: use config_enabled() macro to clean up ifdefs
    tty: ar933x_uart: remove superfluous assignment of ar933x_uart_driver.nr
    tty: ar933x_uart: use the clk API to get the uart clock
    tty: serial: cpm_uart: Adding proper request of GPIO used by cpm_uart driver
    serial: sirf: fix the amount of serial ports
    serial: sirf: define macro for some magic numbers of USP
    serial: icom: move array overflow checks earlier
    TTY: amiserial, remove unnecessary platform_set_drvdata()
    serial: st-asc: remove unnecessary platform_set_drvdata()
    msm_serial: Send more than 1 character on the console w/ UARTDM
    msm_serial: Add support for non-GSBI UARTDM devices
    msm_serial: Switch clock consumer strings and simplify code
    ...

    Linus Torvalds
     

27 Aug, 2013

1 commit

  • * acpica:
    ACPICA: Update version to 20130725.
    ACPICA: Update names for walk_namespace callbacks to clarify usage.
    ACPICA: Return error if DerefOf resolves to a null package element.
    ACPICA: Make ACPI Power Management Timer (PM Timer) optional.
    ACPICA: Fix divergences of the commit - ACPICA: Expose OSI version.
    ACPICA: Fix possible fault for methods that optionally have no return value.
    ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and BufferField refs.
    ACPICA: Emit all unresolved method externals in a text block
    ACPICA: Export acpi_tb_validate_rsdp().
    ACPI: Add facility to remove all _OSI strings
    ACPI: Add facility to disable all _OSI OS vendor strings
    ACPICA: Add acpi_update_interfaces() public interface
    ACPICA: Update version to 20130626
    ACPICA: Fix compiler warnings for casting issues (only some compilers)
    ACPICA: Remove restriction of 256 maximum GPEs in any GPE block
    ACPICA: Disassembler: Expand maximum output string length to 64K
    ACPICA: TableManager: Export acpi_tb_scan_memory_for_rsdp()
    ACPICA: Update comments about behavior when _STA does not exist

    Rafael J. Wysocki
     

24 Aug, 2013

1 commit

  • The swapaccount kernel parameter without any values has been removed by
    commit a2c8990aed5a ("memsw: remove noswapaccount kernel parameter") but
    it seems that we didn't get rid of all the left overs.

    Make sure that menuconfig help text and kernel-parameters.txt are clear
    about value for the paramter and remove the stalled comment which is not
    very much useful on its own.

    Signed-off-by: Michal Hocko
    Reported-by: Gergely Risko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

05 Aug, 2013

1 commit

  • The virtual console has (undocumented) module parameters to set the
    colors for italic and underlined text, but the default text color was
    hardcoded for some reason. This made it impossible to change the color
    for startup messages, or to set the default for new virtual consoles.
    Add a module parameter for that, and document the entire bunch.

    Any hacker who thinks that a command prompt on a "black screen with
    white font" is not supicious enough can now use the kernel parameter
    vt.color=10 to get a nice, evil green.

    Signed-off-by: Clemens Ladisch
    Signed-off-by: Greg Kroah-Hartman

    Clemens Ladisch
     

23 Jul, 2013

2 commits

  • This patch changes the "acpi_osi=" boot parameter implementation so
    that:
    1. "acpi_osi=!" can be used to disable all _OSI OS vendor strings by
    default. It is meaningless to specify "acpi_osi=!" multiple
    times as it can only affect the default state of the target _OSI
    strings.
    2. "acpi_osi=!*" can be used to remove all _OSI OS vendor strings
    and all _OSI feature group strings. It is useful to specify
    "acpi_osi=!*" multiple times through kernel command line to
    override the current state of the target _OSI strings.

    Signed-off-by: Lv Zheng
    Reviewed-by: Zhang Rui
    Acked-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • This patch introduces "acpi_osi=!" command line to force Linux replying
    "UNSUPPORTED" to all of the _OSI strings. This patch is based on an
    ACPICA enhancement - the new API acpi_update_interfaces().

    The _OSI object provides the platform with the ability to query OSPM
    to determine the set of ACPI related interfaces, behaviors, or
    features that the operating system supports. The argument passed to
    the _OSI is a string like the followings:
    1. Feature Group String, examples include
    Module Device
    Processor Device
    3.0 _SCP Extensions
    Processor Aggregator Device
    ...
    2. OS Vendor String, examples include
    Linux
    FreeBSD
    Windows
    ...

    There are AML codes provided in the ACPI namespace written in the
    following style to determine OSPM interfaces / features:
    Method(OSCK)
    {
    if (CondRefOf(_OSI, Local0))
    {
    if (\_OSI("Windows"))
    {
    Return (One)
    }
    if (\_OSI("Windows 2006"))
    {
    Return (Ones)
    }
    Return (Zero)
    }
    Return (Zero)
    }

    There is a debugging facility implemented in Linux. Users can pass
    "acpi_osi=" boot parameters to the kernel to tune the _OSI evaluation
    result so that certain AML codes can be executed. Current
    implementation includes:
    1. 'acpi_osi=' - this makes CondRefOf(_OSI, Local0) TRUE
    2. 'acpi_osi="Windows"' - this makes \_OSI("Windows") TRUE
    3. 'acpi_osi="!Windows"' - this makes \_OSI("Windows") FALSE
    The function to implement this feature is also used as a quirk mechanism
    in the Linux ACPI subystem.

    When _OSI is evaluatated by the AML codes, ACPICA replies "SUPPORTED"
    to all Windows operating system vendor strings. This is because
    Windows operating systems return "SUPPORTED" if the argument to the
    _OSI method specifies an earlier version of Windows. Please refer to
    the following MSDN document:

    How to Identify the Windows Version in ACPI by Using _OSI
    http://msdn.microsoft.com/en-us/library/hardware/gg463275.aspx

    This adds difficulties when developers want to feed specific Windows
    operating system vendor string to the BIOS codes for debugging
    purpose, multiple acpi_osi="!xxx" have to be specified in the command
    line to force Linux replying "UNSUPPORTED" to the Windows OS vendor
    strings listed in the AML codes.

    Signed-off-by: Lv Zheng
    Reviewed-by: Zhang Rui
    Acked-by: Len Brown
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

12 Jul, 2013

1 commit

  • Pull tracing changes from Steven Rostedt:
    "The majority of the changes here are cleanups for the large changes
    that were added to 3.10, which includes several bug fixes that have
    been marked for stable.

    As for new features, there were a few, but nothing to write to LWN
    about. These include:

    New function trigger called "dump" and "cpudump" that will cause
    ftrace to dump its buffer to the console when the function is called.
    The difference between "dump" and "cpudump" is that "dump" will dump
    the entire contents of the ftrace buffer, where as "cpudump" will only
    dump the contents of the ftrace buffer for the CPU that called the
    function.

    Another small enhancement is a new sysctl switch called
    "traceoff_on_warning" which, when enabled, will disable tracing if any
    WARN_ON() is triggered. This is useful if you want to debug what
    caused a warning and do not want to risk losing your trace data by the
    ring buffer overwriting the data before you can disable it. There's
    also a kernel command line option that will make this enabled at boot
    up called the same thing"

    * tag 'trace-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (34 commits)
    tracing: Make tracing_open_generic_{tr,tc}() static
    tracing: Remove ftrace() function
    tracing: Remove TRACE_EVENT_TYPE enum definition
    tracing: Make tracer_tracing_{off,on,is_on}() static
    tracing: Fix irqs-off tag display in syscall tracing
    uprobes: Fix return value in error handling path
    tracing: Fix race between deleting buffer and setting events
    tracing: Add trace_array_get/put() to event handling
    tracing: Get trace_array ref counts when accessing trace files
    tracing: Add trace_array_get/put() to handle instance refs better
    tracing: Protect ftrace_trace_arrays list in trace_events.c
    tracing: Make trace_marker use the correct per-instance buffer
    ftrace: Do not run selftest if command line parameter is set
    tracing/kprobes: Don't pass addr=ip to perf_trace_buf_submit()
    tracing: Use flag buffer_disabled for irqsoff tracer
    tracing/kprobes: Turn trace_probe->files into list_head
    tracing: Fix disabling of soft disable
    tracing: Add missing syscall_metadata comment
    tracing: Simplify code for showing of soft disabled flag
    tracing/kprobes: Kill probe_enable_lock
    ...

    Linus Torvalds
     

10 Jul, 2013

1 commit

  • Merge together the unicore32, arm, and x86 reboot= command line
    parameter handling.

    Signed-off-by: Robin Holt
    Cc: H. Peter Anvin
    Cc: Russell King
    Cc: Guan Xuetao
    Cc: Russ Anderson
    Cc: Robin Holt
    Acked-by: Ingo Molnar
    Acked-by: Guan Xuetao
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     

04 Jul, 2013

4 commits

  • Pull libata updates from Tejun Heo:
    "Overview of changes:

    - The rest of maintainer email address updates.

    - Some core updates - more robust default behavior for port
    multipliers, better error reporting for SG_IO commands, and a way
    to better work around now ancient and probably pretty rare PATA ->
    SATA bridges with ATAPI devices.

    - sata_rcar stabilization.

    - Some hardware PCI ID additions and one-off low level driver
    updates."

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (22 commits)
    AHCI: use ATA_BUSY
    libata-zpodd: must use ata_tf_init()
    ahci: AHCI-mode SATA patch for Intel Coleto Creek DeviceIDs
    ata_piix: IDE-mode SATA patch for Intel Coleto Creek DeviceIDs
    libata: cleanup SAT error translation
    ahci: sata: add support for exynos5440 sata
    libata: skip SRST for all SIMG [34]7x port-multipliers
    ahci: remove pmp link online check in FBS EH
    sata highbank: add bit-banged SGPIO driver support
    ahci: make ahci_transmit_led_message into a function pointer
    sata_rcar: fix compilation warning in sata_rcar_thaw()
    sata_highbank: increase retry count but shorten duration for Calxeda controller
    ata: use pci_get_drvdata()
    ipr: qc_fill_rtf() method should not store alternate status register
    sata_rcar: add 'base' local variable to some functions
    sata_rcar: correct 'sata_rcar_sht'
    sata_rcar: kill superfluous code in sata_rcar_bmdma_fill_sg()
    libata: do not limit R-Car SATA driver to shmobile
    ata: use platform_{get,set}_drvdata()
    AHCI: Make distinct names for ports in /proc/interrupts
    ...

    Linus Torvalds
     
  • Pull power management and ACPI updates from Rafael Wysocki:
    "This time the total number of ACPI commits is slightly greater than
    the number of cpufreq commits, but Viresh Kumar (who works on cpufreq)
    remains the most active patch submitter.

    To me, the most significant change is the addition of offline/online
    device operations to the driver core (with the Greg's blessing) and
    the related modifications of the ACPI core hotplug code. Next are the
    freezer updates from Colin Cross that should make the freezing of
    tasks a bit less heavy weight.

    We also have a couple of regression fixes, a number of fixes for
    issues that have not been identified as regressions, two new drivers
    and a bunch of cleanups all over.

    Highlights:

    - Hotplug changes to support graceful hot-removal failures.

    It sometimes is necessary to fail device hot-removal operations
    gracefully if they cannot be carried out completely. For example,
    if memory from a memory module being hot-removed has been allocated
    for the kernel's own use and cannot be moved elsewhere, it's
    desirable to fail the hot-removal operation in a graceful way
    rather than to crash the kernel, but currenty a success or a kernel
    crash are the only possible outcomes of an attempted memory
    hot-removal. Needless to say, that is not a very attractive
    alternative and it had to be addressed.

    However, in order to make it work for memory, I first had to make
    it work for CPUs and for this purpose I needed to modify the ACPI
    processor driver. It's been split into two parts, a resident one
    handling the low-level initialization/cleanup and a modular one
    playing the actual driver's role (but it binds to the CPU system
    device objects rather than to the ACPI device objects representing
    processors). That's been sort of like a live brain surgery on a
    patient who's riding a bike.

    So this is a little scary, but since we found and fixed a couple of
    regressions it caused to happen during the early linux-next testing
    (a month ago), nobody has complained.

    As a bonus we remove some duplicated ACPI hotplug code, because the
    ACPI-based CPU hotplug is now going to use the common ACPI hotplug
    code.

    - Lighter weight freezing of tasks.

    These changes from Colin Cross and Mandeep Singh Baines are
    targeted at making the freezing of tasks a bit less heavy weight
    operation. They reduce the number of tasks woken up every time
    during the freezing, by using the observation that the freezer
    simply doesn't need to wake up some of them and wait for them all
    to call refrigerator(). The time needed for the freezer to decide
    to report a failure is reduced too.

    Also reintroduced is the check causing a lockdep warining to
    trigger when try_to_freeze() is called with locks held (which is
    generally unsafe and shouldn't happen).

    - cpufreq updates

    First off, a commit from Srivatsa S Bhat fixes a resume regression
    introduced during the 3.10 cycle causing some cpufreq sysfs
    attributes to return wrong values to user space after resume. The
    fix is kind of fresh, but also it's pretty obvious once Srivatsa
    has identified the root cause.

    Second, we have a new freqdomain_cpus sysfs attribute for the
    acpi-cpufreq driver to provide information previously available via
    related_cpus. From Lan Tianyu.

    Finally, we fix a number of issues, mostly related to the
    CPUFREQ_POSTCHANGE notifier and cpufreq Kconfig options and clean
    up some code. The majority of changes from Viresh Kumar with bits
    from Jacob Shin, Heiko Stübner, Xiaoguang Chen, Ezequiel Garcia,
    Arnd Bergmann, and Tang Yuantian.

    - ACPICA update

    A usual bunch of updates from the ACPICA upstream.

    During the 3.4 cycle we introduced support for ACPI 5 extended
    sleep registers, but they are only supposed to be used if the
    HW-reduced mode bit is set in the FADT flags and the code attempted
    to use them without checking that bit. That caused suspend/resume
    regressions to happen on some systems. Fix from Lv Zheng causes
    those registers to be used only if the HW-reduced mode bit is set.

    Apart from this some other ACPICA bugs are fixed and code cleanups
    are made by Bob Moore, Tomasz Nowicki, Lv Zheng, Chao Guan, and
    Zhang Rui.

    - cpuidle updates

    New driver for Xilinx Zynq processors is added by Michal Simek.

    Multidriver support simplification, addition of some missing
    kerneldoc comments and Kconfig-related fixes come from Daniel
    Lezcano.

    - ACPI power management updates

    Changes to make suspend/resume work correctly in Xen guests from
    Konrad Rzeszutek Wilk, sparse warning fix from Fengguang Wu and
    cleanups and fixes of the ACPI device power state selection
    routine.

    - ACPI documentation updates

    Some previously missing pieces of ACPI documentation are added by
    Lv Zheng and Aaron Lu (hopefully, that will help people to
    uderstand how the ACPI subsystem works) and one outdated doc is
    updated by Hanjun Guo.

    - Assorted ACPI updates

    We finally nailed down the IA-64 issue that was the reason for
    reverting commit 9f29ab11ddbf ("ACPI / scan: do not match drivers
    against objects having scan handlers"), so we can fix it and move
    the ACPI scan handler check added to the ACPI video driver back to
    the core.

    A mechanism for adding CMOS RTC address space handlers is
    introduced by Lan Tianyu to allow some EC-related breakage to be
    fixed on some systems.

    A spec-compliant implementation of acpi_os_get_timer() is added by
    Mika Westerberg.

    The evaluation of _STA is added to do_acpi_find_child() to avoid
    situations in which a pointer to a disabled device object is
    returned instead of an enabled one with the same _ADR value. From
    Jeff Wu.

    Intel BayTrail PCH (Platform Controller Hub) support is added to
    the ACPI driver for Intel Low-Power Subsystems (LPSS) and that
    driver is modified to work around a couple of known BIOS issues.
    Changes from Mika Westerberg and Heikki Krogerus.

    The EC driver is fixed by Vasiliy Kulikov to use get_user() and
    put_user() instead of dereferencing user space pointers blindly.

    Code cleanups are made by Bjorn Helgaas, Nicholas Mazzuca and Toshi
    Kani.

    - Assorted power management updates

    The "runtime idle" helper routine is changed to take the return
    values of the callbacks executed by it into account and to call
    rpm_suspend() if they return 0, which allows us to reduce the
    overall code bloat a bit (by dropping some code that's not
    necessary any more after that modification).

    The runtime PM documentation is updated by Alan Stern (to reflect
    the "runtime idle" behavior change).

    New trace points for PM QoS are added by Sahara
    ().

    PM QoS documentation is updated by Lan Tianyu.

    Code cleanups are made and minor issues are addressed by Bernie
    Thompson, Bjorn Helgaas, Julius Werner, and Shuah Khan.

    - devfreq updates

    New driver for the Exynos5-bus device from Abhilash Kesavan.

    Minor cleanups, fixes and MAINTAINERS update from MyungJoo Ham,
    Abhilash Kesavan, Paul Bolle, Rajagopal Venkat, and Wei Yongjun.

    - OMAP power management updates

    Adaptive Voltage Scaling (AVS) SmartReflex voltage control driver
    updates from Andrii Tseglytskyi and Nishanth Menon."

    * tag 'pm+acpi-3.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (162 commits)
    cpufreq: Fix cpufreq regression after suspend/resume
    ACPI / PM: Fix possible NULL pointer deref in acpi_pm_device_sleep_state()
    PM / Sleep: Warn about system time after resume with pm_trace
    cpufreq: don't leave stale policy pointer in cdbs->cur_policy
    acpi-cpufreq: Add new sysfs attribute freqdomain_cpus
    cpufreq: make sure frequency transitions are serialized
    ACPI: implement acpi_os_get_timer() according the spec
    ACPI / EC: Add HP Folio 13 to ec_dmi_table in order to skip DSDT scan
    ACPI: Add CMOS RTC Operation Region handler support
    ACPI / processor: Drop unused variable from processor_perflib.c
    cpufreq: tegra: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: s3c64xx: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: omap: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: imx6q: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: exynos: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: dbx500: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: davinci: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: arm-big-little: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: powernow-k8: call CPUFREQ_POSTCHANGE notfier in error cases
    cpufreq: pcc: call CPUFREQ_POSTCHANGE notfier in error cases
    ...

    Linus Torvalds
     
  • Pull security subsystem updates from James Morris:
    "In this update, Smack learns to love IPv6 and to mount a filesystem
    with a transmutable hierarchy (i.e. security labels are inherited
    from parent directory upon creation rather than creating process).

    The rest of the changes are maintenance"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (37 commits)
    tpm/tpm_i2c_infineon: Remove unused header file
    tpm: tpm_i2c_infinion: Don't modify i2c_client->driver
    evm: audit integrity metadata failures
    integrity: move integrity_audit_msg()
    evm: calculate HMAC after initializing posix acl on tmpfs
    maintainers: add Dmitry Kasatkin
    Smack: Fix the bug smackcipso can't set CIPSO correctly
    Smack: Fix possible NULL pointer dereference at smk_netlbl_mls()
    Smack: Add smkfstransmute mount option
    Smack: Improve access check performance
    Smack: Local IPv6 port based controls
    tpm: fix regression caused by section type conflict of tpm_dev_release() in ppc builds
    maintainers: Remove Kent from maintainers
    tpm: move TPM_DIGEST_SIZE defintion
    tpm_tis: missing platform_driver_unregister() on error in init_tis()
    security: clarify cap_inode_getsecctx description
    apparmor: no need to delay vfree()
    apparmor: fix fully qualified name parsing
    apparmor: fix setprocattr arg processing for onexec
    apparmor: localize getting the security context to a few macros
    ...

    Linus Torvalds
     
  • Pull thermal power-limit update from Tony Luck:
    "Thermal limit warnings are too scary and cause unnecessary concern"

    * tag 'please-pull-mce-therm' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    x86 thermal: Disable power limit notification interrupt by default
    x86 thermal: Delete power-limit-notification console messages

    Linus Torvalds
     

03 Jul, 2013

1 commit

  • Pull workqueue changes from Tejun Heo:
    "Surprisingly, Lai and I didn't break too many things implementing
    custom pools and stuff last time around and there aren't any follow-up
    changes necessary at this point.

    The only change in this pull request is Viresh's patches to make some
    per-cpu workqueues to behave as unbound workqueues dependent on a boot
    param whose default can be configured via a config option. This leads
    to higher processing overhead / lower bandwidth as more work items are
    bounced across CPUs; however, it can lead to noticeable powersave in
    certain configurations - ~10% w/ idlish constant workload on a
    big.LITTLE configuration according to Viresh.

    This is because per-cpu workqueues interfere with how the scheduler
    perceives whether or not each CPU is idle by forcing pinned tasks on
    them, which makes the scheduler's power-aware scheduling decisions
    less effective.

    Its effectiveness is likely less pronounced on homogenous
    configurations and this type of optimization can probably be made
    automatic; however, the changes are pretty minimal and the affected
    workqueues are clearly marked, so it's an easy gain for some
    configurations for the time being with pretty unintrusive changes."

    * 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    fbcon: queue work on power efficient wq
    block: queue work on power efficient wq
    PHYLIB: queue work on system_power_efficient_wq
    workqueue: Add system wide power_efficient workqueues
    workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues

    Linus Torvalds
     

21 Jun, 2013

1 commit


20 Jun, 2013

2 commits

  • This patch moves the integrity_audit_msg() function and defintion to
    security/integrity/, the parent directory, renames the 'ima_audit'
    boot command line option to 'integrity_audit', and fixes the Kconfig
    help text to reflect the actual code.

    Changelog:
    - Fixed ifdef inclusion of integrity_audit_msg() (Fengguang Wu)

    Signed-off-by: Mimi Zohar

    Mimi Zohar
     
  • Add a traceoff_on_warning option in both the kernel command line as well
    as a sysctl option. When set, any WARN*() function that is hit will cause
    the tracing_on variable to be cleared, which disables writing to the
    ring buffer.

    This is useful especially when tracing a bug with function tracing. When
    a warning is hit, the print caused by the warning can flood the trace with
    the functions that producing the output for the warning. This can make the
    resulting trace useless by either hiding where the bug happened, or worse,
    by overflowing the buffer and losing the trace of the bug totally.

    Acked-by: Peter Zijlstra
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     

15 Jun, 2013

1 commit

  • The package power limit notification interrupt is primarily for
    system diagnosis, and should not be blindly enabled on every
    system by default -- particuarly since Linux does nothing in the
    handler except count how many times it has been called...

    Add a new kernel cmdline parameter "int_pln_enable" for situations where
    users want to oberve these events via existing system counters:

    $ grep TRM /proc/interrupts

    $ grep . /sys/devices/system/cpu/cpu*/thermal_throttle/*

    https://bugzilla.kernel.org/show_bug.cgi?id=36182

    Signed-off-by: Fenghua Yu
    Signed-off-by: Len Brown
    Signed-off-by: Tony Luck

    Fenghua Yu
     

13 Jun, 2013

1 commit

  • Pull block layer fixes from Jens Axboe:
    "Outside of bcache (which really isn't super big), these are all
    few-liners. There are a few important fixes in here:

    - Fix blk pm sleeping when holding the queue lock

    - A small collection of bcache fixes that have been done and tested
    since bcache was included in this merge window.

    - A fix for a raid5 regression introduced with the bio changes.

    - Two important fixes for mtip32xx, fixing an oops and potential data
    corruption (or hang) due to wrong bio iteration on stacked devices."

    * 'for-linus' of git://git.kernel.dk/linux-block:
    scatterlist: sg_set_buf() argument must be in linear mapping
    raid5: Initialize bi_vcnt
    pktcdvd: silence static checker warning
    block: remove refs to XD disks from documentation
    blkpm: avoid sleep when holding queue lock
    mtip32xx: Correctly handle bio->bi_idx != 0 conditions
    mtip32xx: Fix NULL pointer dereference during module unload
    bcache: Fix error handling in init code
    bcache: clarify free/available/unused space
    bcache: drop "select CLOSURES"
    bcache: Fix incompatible pointer type warning

    Linus Torvalds
     

22 May, 2013

1 commit

  • Some device require DMADIR to be enabled, but are not detected as such
    by atapi_id_dmadir. One such example is "Asus Serillel 2"
    SATA-host-to-PATA-device bridge: the bridge itself requires DMADIR,
    even if the bridged device does not.

    As atapi_dmadir module parameter can cause problems with some devices
    (as per Tejun Heo's memory), enabling it globally may not be possible
    depending on the hardware.

    This patch adds atapi_dmadir in the form of a "force" horkage value,
    allowing global, per-bus and per-device control.

    Signed-off-by: Vincent Pelletier
    Signed-off-by: Tejun Heo

    Vincent Pelletier
     

17 May, 2013

1 commit

  • Commit d1a6f4f19728d6e90480e53601a90fc9f6a348ad
    "block: delete super ancient PC-XT driver for 1980's hardware"
    deleted the XD disk driver, but there are still a few
    references to it in the documentation directory. Delete
    the remnants and thus also free up the major block device
    13 for reuse.

    Cc: Paul Gortmaker
    Cc: Jens Axboe
    Signed-off-by: Linus Walleij
    Signed-off-by: Jens Axboe

    Linus Walleij
     

15 May, 2013

3 commits

  • There is no point. We would just squeeze the guest to put more and
    more pages in the swap disk without any purpose.

    The only time it makes sense to use the selfballooning and shrinking
    is when frontswap is being utilized.

    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • If tmem is built-in or a module, the user has the option on
    the command line to influence it by doing: tmem.
    instead of having a variety of "nocleancache", and
    "nofrontswap". The others: "noselfballooning" and "selfballooning";
    and "noselfshrink" are in a different driver xen-selfballoon.c
    and the patches:

    xen/tmem: Remove the usage of 'noselfshrink' and use 'tmem.selfshrink' bool instead.
    xen/tmem: Remove the usage of 'noselfballoon','selfballoon' and use 'tmem.selfballon' bool instead.

    remove them.

    Also add documentation.

    Signed-off-by: Konrad Rzeszutek Wilk

    Konrad Rzeszutek Wilk
     
  • Workqueues can be performance or power-oriented. Currently, most workqueues are
    bound to the CPU they were created on. This gives good performance (due to cache
    effects) at the cost of potentially waking up otherwise idle cores (Idle from
    scheduler's perspective. Which may or may not be physically idle) just to
    process some work. To save power, we can allow the work to be rescheduled on a
    core that is already awake.

    Workqueues created with the WQ_UNBOUND flag will allow some power savings.
    However, we don't change the default behaviour of the system. To enable
    power-saving behaviour, a new config option CONFIG_WQ_POWER_EFFICIENT needs to
    be turned on. This option can also be overridden by the
    workqueue.power_efficient boot parameter.

    tj: Updated config description and comments. Renamed
    CONFIG_WQ_POWER_EFFICIENT to CONFIG_WQ_POWER_EFFICIENT_DEFAULT.

    Signed-off-by: Viresh Kumar
    Reviewed-by: Amit Kucheria
    Signed-off-by: Tejun Heo

    Viresh Kumar
     

07 May, 2013

1 commit

  • Pull IOMMU updates from Joerg Roedel:
    "The updates are mostly about the x86 IOMMUs this time.

    Exceptions are the groundwork for the PAMU IOMMU from Freescale (for a
    PPC platform) and an extension to the IOMMU group interface.

    On the x86 side this includes a workaround for VT-d to disable
    interrupt remapping on broken chipsets. On the AMD-Vi side the most
    important new feature is a kernel command-line interface to override
    broken information in IVRS ACPI tables and get interrupt remapping
    working this way.

    Besides that there are small fixes all over the place."

    * tag 'iommu-updates-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (24 commits)
    iommu/tegra: Fix printk formats for dma_addr_t
    iommu: Add a function to find an iommu group by id
    iommu/vt-d: Remove warning for HPET scope type
    iommu: Move swap_pci_ref function to drivers/iommu/pci.h.
    iommu/vt-d: Disable translation if already enabled
    iommu/amd: fix error return code in early_amd_iommu_init()
    iommu/AMD: Per-thread IOMMU Interrupt Handling
    iommu: Include linux/err.h
    iommu/amd: Workaround for ERBT1312
    iommu/amd: Document ivrs_ioapic and ivrs_hpet parameters
    iommu/amd: Don't report firmware bugs with cmd-line ivrs overrides
    iommu/amd: Add ioapic and hpet ivrs override
    iommu/amd: Add early maps for ioapic and hpet
    iommu/amd: Extend IVRS special device data structure
    iommu/amd: Move add_special_device() to __init
    iommu: Fix compile warnings with forward declarations
    iommu/amd: Properly initialize irq-table lock
    iommu/amd: Use AMD specific data structure for irq remapping
    iommu/amd: Remove map_sg_no_iommu()
    iommu/vt-d: add quirk for broken interrupt remapping on 55XX chipsets
    ...

    Linus Torvalds
     

06 May, 2013

1 commit

  • Pull 'full dynticks' support from Ingo Molnar:
    "This tree from Frederic Weisbecker adds a new, (exciting! :-) core
    kernel feature to the timer and scheduler subsystems: 'full dynticks',
    or CONFIG_NO_HZ_FULL=y.

    This feature extends the nohz variable-size timer tick feature from
    idle to busy CPUs (running at most one task) as well, potentially
    reducing the number of timer interrupts significantly.

    This feature got motivated by real-time folks and the -rt tree, but
    the general utility and motivation of full-dynticks runs wider than
    that:

    - HPC workloads get faster: CPUs running a single task should be able
    to utilize a maximum amount of CPU power. A periodic timer tick at
    HZ=1000 can cause a constant overhead of up to 1.0%. This feature
    removes that overhead - and speeds up the system by 0.5%-1.0% on
    typical distro configs even on modern systems.

    - Real-time workload latency reduction: CPUs running critical tasks
    should experience as little jitter as possible. The last remaining
    source of kernel-related jitter was the periodic timer tick.

    - A single task executing on a CPU is a pretty common situation,
    especially with an increasing number of cores/CPUs, so this feature
    helps desktop and mobile workloads as well.

    The cost of the feature is mainly related to increased timer
    reprogramming overhead when a CPU switches its tick period, and thus
    slightly longer to-idle and from-idle latency.

    Configuration-wise a third mode of operation is added to the existing
    two NOHZ kconfig modes:

    - CONFIG_HZ_PERIODIC: [formerly !CONFIG_NO_HZ], now explicitly named
    as a config option. This is the traditional Linux periodic tick
    design: there's a HZ tick going on all the time, regardless of
    whether a CPU is idle or not.

    - CONFIG_NO_HZ_IDLE: [formerly CONFIG_NO_HZ=y], this turns off the
    periodic tick when a CPU enters idle mode.

    - CONFIG_NO_HZ_FULL: this new mode, in addition to turning off the
    tick when a CPU is idle, also slows the tick down to 1 Hz (one
    timer interrupt per second) when only a single task is running on a
    CPU.

    The .config behavior is compatible: existing !CONFIG_NO_HZ and
    CONFIG_NO_HZ=y settings get translated to the new values, without the
    user having to configure anything. CONFIG_NO_HZ_FULL is turned off by
    default.

    This feature is based on a lot of infrastructure work that has been
    steadily going upstream in the last 2-3 cycles: related RCU support
    and non-periodic cputime support in particular is upstream already.

    This tree adds the final pieces and activates the feature. The pull
    request is marked RFC because:

    - it's marked 64-bit only at the moment - the 32-bit support patch is
    small but did not get ready in time.

    - it has a number of fresh commits that came in after the merge
    window. The overwhelming majority of commits are from before the
    merge window, but still some aspects of the tree are fresh and so I
    marked it RFC.

    - it's a pretty wide-reaching feature with lots of effects - and
    while the components have been in testing for some time, the full
    combination is still not very widely used. That it's default-off
    should reduce its regression abilities and obviously there are no
    known regressions with CONFIG_NO_HZ_FULL=y enabled either.

    - the feature is not completely idempotent: there is no 100%
    equivalent replacement for a periodic scheduler/timer tick. In
    particular there's ongoing work to map out and reduce its effects
    on scheduler load-balancing and statistics. This should not impact
    correctness though, there are no known regressions related to this
    feature at this point.

    - it's a pretty ambitious feature that with time will likely be
    enabled by most Linux distros, and we'd like you to make input on
    its design/implementation, if you dislike some aspect we missed.
    Without flaming us to crisp! :-)

    Future plans:

    - there's ongoing work to reduce 1Hz to 0Hz, to essentially shut off
    the periodic tick altogether when there's a single busy task on a
    CPU. We'd first like 1 Hz to be exposed more widely before we go
    for the 0 Hz target though.

    - once we reach 0 Hz we can remove the periodic tick assumption from
    nr_running>=2 as well, by essentially interrupting busy tasks only
    as frequently as the sched_latency constraints require us to do -
    once every 4-40 msecs, depending on nr_running.

    I am personally leaning towards biting the bullet and doing this in
    v3.10, like the -rt tree this effort has been going on for too long -
    but the final word is up to you as usual.

    More technical details can be found in Documentation/timers/NO_HZ.txt"

    * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
    sched: Keep at least 1 tick per second for active dynticks tasks
    rcu: Fix full dynticks' dependency on wide RCU nocb mode
    nohz: Protect smp_processor_id() in tick_nohz_task_switch()
    nohz_full: Add documentation.
    cputime_nsecs: use math64.h for nsec resolution conversion helpers
    nohz: Select VIRT_CPU_ACCOUNTING_GEN from full dynticks config
    nohz: Reduce overhead under high-freq idling patterns
    nohz: Remove full dynticks' superfluous dependency on RCU tree
    nohz: Fix unavailable tick_stop tracepoint in dynticks idle
    nohz: Add basic tracing
    nohz: Select wide RCU nocb for full dynticks
    nohz: Disable the tick when irq resume in full dynticks CPU
    nohz: Re-evaluate the tick for the new task after a context switch
    nohz: Prepare to stop the tick on irq exit
    nohz: Implement full dynticks kick
    nohz: Re-evaluate the tick from the scheduler IPI
    sched: New helper to prevent from stopping the tick in full dynticks
    sched: Kick full dynticks CPU that have more than one task enqueued.
    perf: New helper to prevent full dynticks CPUs from stopping tick
    perf: Kick full dynticks CPU if events rotation is needed
    ...

    Linus Torvalds
     

03 May, 2013

1 commit

  • Pull ARM SoC platform updates from Olof Johansson:
    "This branch contains part 1 of the platform updates for 3.10. Among
    the highlights:

    - Support for the new Atmel Cortex-A5 based platforms (SAMA5D3)
    - New support for CSR SiRFatlas6 SoCs
    - A handful of updates for NVidia T114 (a.k.a. Tegra 4)
    - A bunch of updates for the shmobile platforms
    - A handful of updates for davinci
    - A few updates for Qualcomm MSM
    - Plus a handful of other patches, defconfig updates, etc."

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (135 commits)
    ARM: tegra: pm: fix build error w/o PM_SLEEP
    ARM: davinci: ensure global variables are declared
    ARM: davinci: sram.c: fix incorrect type in assignment
    ARM: davinci: da8xx dt: make file local symbols static
    ARM: davinci: da8xx: add remoteproc support
    ARM: socfpga: Upgrade clk driver for socfpga to make use of dts clock entries
    ARM: socfpga: Add clock entries into device tree
    ARM: socfpga: Enable soft reset
    ARM: EXYNOS: replace cpumask by the corresponding macro
    ARM: EXYNOS: handle properly the return values
    ARM: EXYNOS: factor out the idle states
    ARM: OMAP4: Enable fix for Cortex-A9 erratas
    ARM: OMAP2+: Export SoC information to userspace
    ARM: OMAP2+: SoC name and revision unification
    ARM: OMAP2+: Move common part of late init into common function
    ARM: tegra: pm: remove duplicated include from pm.c
    ARM: davinci: da850: override mmc DT node device name
    ARM: davinci: da850: add mmc DT entries
    mmc: davinci_mmc: add DT support
    ARM: SAMSUNG: check processor type before cache restoration in resume
    ...

    Linus Torvalds
     

02 May, 2013

2 commits


01 May, 2013

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "Usual stuff, mostly comment fixes, typo fixes, printk fixes and small
    code cleanups"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (45 commits)
    mm: Convert print_symbol to %pSR
    gfs2: Convert print_symbol to %pSR
    m32r: Convert print_symbol to %pSR
    iostats.txt: add easy-to-find description for field 6
    x86 cmpxchg.h: fix wrong comment
    treewide: Fix typo in printk and comments
    doc: devicetree: Fix various typos
    docbook: fix 8250 naming in device-drivers
    pata_pdc2027x: Fix compiler warning
    treewide: Fix typo in printks
    mei: Fix comments in drivers/misc/mei
    treewide: Fix typos in kernel messages
    pm44xx: Fix comment for "CONFIG_CPU_IDLE"
    doc: Fix typo "CONFIG_CGROUP_CGROUP_MEMCG_SWAP"
    mmzone: correct "pags" to "pages" in comment.
    kernel-parameters: remove outdated 'noresidual' parameter
    Remove spurious _H suffixes from ifdef comments
    sound: Remove stray pluses from Kconfig file
    radio-shark: Fix printk "CONFIG_LED_CLASS"
    doc: put proper reference to CONFIG_MODULE_SIG_ENFORCE
    ...

    Linus Torvalds
     

30 Apr, 2013

5 commits

  • Pull x86 debug update from Ingo Molnar:
    "Two small changes: a documentation update and a constification"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, early-printk: Update earlyprintk documentation (and kill x86 copy)
    x86: Constify a few items

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The main changes in this cycle are mostly related to preparatory work
    for the full-dynticks work:

    - Remove restrictions on no-CBs CPUs, make RCU_FAST_NO_HZ take
    advantage of numbered callbacks, do callback accelerations based on
    numbered callbacks. Posted to LKML at
    https://lkml.org/lkml/2013/3/18/960

    - RCU documentation updates. Posted to LKML at
    https://lkml.org/lkml/2013/3/18/570

    - Miscellaneous fixes. Posted to LKML at
    https://lkml.org/lkml/2013/3/18/594"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    rcu: Make rcu_accelerate_cbs() note need for future grace periods
    rcu: Abstract rcu_start_future_gp() from rcu_nocb_wait_gp()
    rcu: Rename n_nocb_gp_requests to need_future_gp
    rcu: Push lock release to rcu_start_gp()'s callers
    rcu: Repurpose no-CBs event tracing to future-GP events
    rcu: Rearrange locking in rcu_start_gp()
    rcu: Make RCU_FAST_NO_HZ take advantage of numbered callbacks
    rcu: Accelerate RCU callbacks at grace-period end
    rcu: Export RCU_FAST_NO_HZ parameters to sysfs
    rcu: Distinguish "rcuo" kthreads by RCU flavor
    rcu: Add event tracing for no-CBs CPUs' grace periods
    rcu: Add event tracing for no-CBs CPUs' callback registration
    rcu: Introduce proper blocking to no-CBs kthreads GP waits
    rcu: Provide compile-time control for no-CBs CPUs
    rcu: Tone down debugging during boot-up and shutdown.
    rcu: Add softirq-stall indications to stall-warning messages
    rcu: Documentation update
    rcu: Make bugginess of code sample more evident
    rcu: Fix hlist_bl_set_first_rcu() annotation
    rcu: Delete unused rcu_node "wakemask" field
    ...

    Linus Torvalds
     
  • Pull workqueue updates from Tejun Heo:
    "A lot of activities on workqueue side this time. The changes achieve
    the followings.

    - WQ_UNBOUND workqueues - the workqueues which are per-cpu - are
    updated to be able to interface with multiple backend worker pools.
    This involved a lot of churning but the end result seems actually
    neater as unbound workqueues are now a lot closer to per-cpu ones.

    - The ability to interface with multiple backend worker pools are
    used to implement unbound workqueues with custom attributes.
    Currently the supported attributes are the nice level and CPU
    affinity. It may be expanded to include cgroup association in
    future. The attributes can be specified either by calling
    apply_workqueue_attrs() or through /sys/bus/workqueue/WQ_NAME/* if
    the workqueue in question is exported through sysfs.

    The backend worker pools are keyed by the actual attributes and
    shared by any workqueues which share the same attributes. When
    attributes of a workqueue are changed, the workqueue binds to the
    worker pool with the specified attributes while leaving the work
    items which are already executing in its previous worker pools
    alone.

    This allows converting custom worker pool implementations which
    want worker attribute tuning to use workqueues. The writeback pool
    is already converted in block tree and there are a couple others
    are likely to follow including btrfs io workers.

    - WQ_UNBOUND's ability to bind to multiple worker pools is also used
    to make it NUMA-aware. Because there's no association between work
    item issuer and the specific worker assigned to execute it, before
    this change, using unbound workqueue led to unnecessary cross-node
    bouncing and it couldn't be helped by autonuma as it requires tasks
    to have implicit node affinity and workers are assigned randomly.

    After these changes, an unbound workqueue now binds to multiple
    NUMA-affine worker pools so that queued work items are executed in
    the same node. This is turned on by default but can be disabled
    system-wide or for individual workqueues.

    Crypto was requesting NUMA affinity as encrypting data across
    different nodes can contribute noticeable overhead and doing it
    per-cpu was too limiting for certain cases and IO throughput could
    be bottlenecked by one CPU being fully occupied while others have
    idle cycles.

    While the new features required a lot of changes including
    restructuring locking, it didn't complicate the execution paths much.
    The unbound workqueue handling is now closer to per-cpu ones and the
    new features are implemented by simply associating a workqueue with
    different sets of backend worker pools without changing queue,
    execution or flush paths.

    As such, even though the amount of change is very high, I feel
    relatively safe in that it isn't likely to cause subtle issues with
    basic correctness of work item execution and handling. If something
    is wrong, it's likely to show up as being associated with worker pools
    with the wrong attributes or OOPS while workqueue attributes are being
    changed or during CPU hotplug.

    While this creates more backend worker pools, it doesn't add too many
    more workers unless, of course, there are many workqueues with unique
    combinations of attributes. Assuming everything else is the same,
    NUMA awareness costs an extra worker pool per NUMA node with online
    CPUs.

    There are also a couple things which are being routed outside the
    workqueue tree.

    - block tree pulled in workqueue for-3.10 so that writeback worker
    pool can be converted to unbound workqueue with sysfs control
    exposed. This simplifies the code, makes writeback workers
    NUMA-aware and allows tuning nice level and CPU affinity via sysfs.

    - The conversion to workqueue means that there's no 1:1 association
    between a specific worker, which makes writeback folks unhappy as
    they want to be able to tell which filesystem caused a problem from
    backtrace on systems with many filesystems mounted. This is
    resolved by allowing work items to set debug info string which is
    printed when the task is dumped. As this change involves unifying
    implementations of dump_stack() and friends in arch codes, it's
    being routed through Andrew's -mm tree."

    * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (84 commits)
    workqueue: use kmem_cache_free() instead of kfree()
    workqueue: avoid false negative WARN_ON() in destroy_workqueue()
    workqueue: update sysfs interface to reflect NUMA awareness and a kernel param to disable NUMA affinity
    workqueue: implement NUMA affinity for unbound workqueues
    workqueue: introduce put_pwq_unlocked()
    workqueue: introduce numa_pwq_tbl_install()
    workqueue: use NUMA-aware allocation for pool_workqueues
    workqueue: break init_and_link_pwq() into two functions and introduce alloc_unbound_pwq()
    workqueue: map an unbound workqueues to multiple per-node pool_workqueues
    workqueue: move hot fields of workqueue_struct to the end
    workqueue: make workqueue->name[] fixed len
    workqueue: add workqueue->unbound_attrs
    workqueue: determine NUMA node of workers accourding to the allowed cpumask
    workqueue: drop 'H' from kworker names of unbound worker pools
    workqueue: add wq_numa_tbl_len and wq_numa_possible_cpumask[]
    workqueue: move pwq_pool_locking outside of get/put_unbound_pool()
    workqueue: fix memory leak in apply_workqueue_attrs()
    workqueue: fix unbound workqueue attrs hashing / comparison
    workqueue: fix race condition in unbound workqueue free path
    workqueue: remove pwq_lock which is no longer used
    ...

    Linus Torvalds
     
  • Pull clock framework update from Michael Turquette:
    "The common clock framework changes for 3.10 include many fixes for
    existing platforms, as well as adoption of the framework by new
    platforms and devices.

    Some long-needed fixes to the core framework are here as well as new
    features such as improved initialization of clocks from DT as well as
    framework reentrancy for nested clock operations."

    * tag 'clk-for-linus-3.10' of git://git.linaro.org/people/mturquette/linux: (44 commits)
    clk: add clk_ignore_unused option to keep boot clocks on
    clk: ux500: fix mismatched types
    clk: vexpress: Add separate SP810 driver
    clk: si5351: make clk-si5351 depend on CONFIG_OF
    clk: export __clk_get_flags for modular clock providers
    clk: vt8500: Missing breaks in vtwm_pll_round_rate/_set_rate.
    clk: sunxi: Unify oscillator clock
    clk: composite: allow fixed rates & fixed dividers
    clk: composite: rename 'div' references to 'rate'
    clk: add si5351 i2c common clock driver
    clk: add device tree fixed-factor-clock binding support
    clk: Properly handle notifier return values
    clk: ux500: abx500: Define clock tree for ab850x
    clk: ux500: Add support for sysctrl clocks
    clk: mvebu: Fix valid value range checking for cpu_freq_select
    clk: Fixup locking issues for clk_set_parent
    clk: Fixup errorhandling for clk_set_parent
    clk: Restructure code for __clk_reparent
    clk: sunxi: drop an unnecesary kmalloc
    clk: sunxi: drop CLK_IGNORE_UNUSED
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "Along with the usual minor fixes and clean ups there are a few major
    changes with this pull request.

    1) Multiple buffers for the ftrace facility

    This feature has been requested by many people over the last few
    years. I even heard that Google was about to implement it themselves.
    I finally had time and cleaned up the code such that you can now
    create multiple instances of the ftrace buffer and have different
    events go to different buffers. This way, a low frequency event will
    not be lost in the noise of a high frequency event.

    Note, currently only events can go to different buffers, the tracers
    (ie function, function_graph and the latency tracers) still can only
    be written to the main buffer.

    2) The function tracer triggers have now been extended.

    The function tracer had two triggers. One to enable tracing when a
    function is hit, and one to disable tracing. Now you can record a
    stack trace on a single (or many) function(s), take a snapshot of the
    buffer (copy it to the snapshot buffer), and you can enable or disable
    an event to be traced when a function is hit.

    3) A perf clock has been added.

    A "perf" clock can be chosen to be used when tracing. This will cause
    ftrace to use the same clock as perf uses, and hopefully this will
    make it easier to interleave the perf and ftrace data for analysis."

    * tag 'trace-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (82 commits)
    tracepoints: Prevent null probe from being added
    tracing: Compare to 1 instead of zero for is_signed_type()
    tracing: Remove obsolete macro guard _TRACE_PROFILE_INIT
    ftrace: Get rid of ftrace_profile_bits
    tracing: Check return value of tracing_init_dentry()
    tracing: Get rid of unneeded key calculation in ftrace_hash_move()
    tracing: Reset ftrace_graph_filter_enabled if count is zero
    tracing: Fix off-by-one on allocating stat->pages
    kernel: tracing: Use strlcpy instead of strncpy
    tracing: Update debugfs README file
    tracing: Fix ftrace_dump()
    tracing: Rename trace_event_mutex to trace_event_sem
    tracing: Fix comment about prefix in arch_syscall_match_sym_name()
    tracing: Convert trace_destroy_fields() to static
    tracing: Move find_event_field() into trace_events.c
    tracing: Use TRACE_MAX_PRINT instead of constant
    tracing: Use pr_warn_once instead of open coded implementation
    ring-buffer: Add ring buffer startup selftest
    tracing: Bring Documentation/trace/ftrace.txt up to date
    tracing: Add "perf" trace_clock
    ...

    Conflicts:
    kernel/trace/ftrace.c
    kernel/trace/trace.c

    Linus Torvalds
     

28 Apr, 2013

1 commit

  • This is primarily useful when there's a driver that doesn't claim clocks
    properly, but the bootloader leaves them on. It's not expected to be used
    in normal cases, but for bringup and debug it's very useful to have the
    option to not gate unclaimed clocks that are still on.

    Signed-off-by: Olof Johansson
    Signed-off-by: Mike Turquette
    [mturquette@linaro.org: fixed up trivial merge issue]

    Olof Johansson
     

21 Apr, 2013

1 commit

  • Pull kdump fixes from Peter Anvin:
    "The kexec/kdump people have found several problems with the support
    for loading over 4 GiB that was introduced in this merge cycle. This
    is partly due to a number of design problems inherent in the way the
    various pieces of kdump fit together (it is pretty horrifically manual
    in many places.)

    After a *lot* of iterations this is the patchset that was agreed upon,
    but of course it is now very late in the cycle. However, because it
    changes both the syntax and semantics of the crashkernel option, it
    would be desirable to avoid a stable release with the broken
    interfaces."

    I'm not happy with the timing, since originally the plan was to release
    the final 3.9 tomorrow. But apparently I'm doing an -rc8 instead...

    * 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    kexec: use Crash kernel for Crash kernel low
    x86, kdump: Change crashkernel_high/low= to crashkernel=,high/low
    x86, kdump: Retore crashkernel= to allocate under 896M
    x86, kdump: Set crashkernel_low automatically

    Linus Torvalds
     

20 Apr, 2013

1 commit