01 Jul, 2015

14 commits

  • Waiman Long reported that 24TB machines hit OOM during basic setup when
    struct page initialisation was deferred. One approach is to initialise
    memory on demand but it interferes with page allocator paths. This patch
    creates dedicated threads to initialise memory before basic setup. It
    then blocks on a rw_semaphore until completion as a wait_queue and counter
    is overkill. This may be slower to boot but it's simplier overall and
    also gets rid of a section mangling which existed so kswapd could do the
    initialisation.

    [akpm@linux-foundation.org: include rwsem.h, use DECLARE_RWSEM, fix comment, remove unneeded cast]
    Signed-off-by: Mel Gorman
    Cc: Waiman Long
    Cc: Dave Hansen
    Cc: Scott Norton
    Tested-by: Daniel J Blueman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • mminit_verify_page_links() is an extremely paranoid check that was
    introduced when memory initialisation was being heavily reworked.
    Profiles indicated that up to 10% of parallel memory initialisation was
    spent on checking this for every page. The cost could be reduced but in
    practice this check only found problems very early during the
    initialisation rewrite and has found nothing since. This patch removes an
    expensive unnecessary check.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • During parallel sturct page initialisation, ranges are checked for every
    PFN unnecessarily which increases boot times. This patch alters when the
    ranges are checked.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Parallel struct page frees pages one at a time. Try free pages as single
    large pages where possible.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Subject says it all. Other architectures may enable on a case-by-case
    basis after auditing early_pfn_to_nid and testing.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Deferred struct page initialisation is using pfn_to_page() on every PFN
    unnecessarily. This patch minimises the number of lookups and scheduler
    checks.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Only a subset of struct pages are initialised at the moment. When this
    patch is applied kswapd initialise the remaining struct pages in parallel.

    This should boot faster by spreading the work to multiple CPUs and
    initialising data that is local to the CPU. The user-visible effect on
    large machines is that free memory will appear to rapidly increase early
    in the lifetime of the system until kswapd reports that all memory is
    initialised in the kernel log. Once initialised there should be no other
    user-visibile effects.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • This patch initalises all low memory struct pages and 2G of the highest
    zone on each node during memory initialisation if
    CONFIG_DEFERRED_STRUCT_PAGE_INIT is set. That config option cannot be set
    but will be available in a later patch. Parallel initialisation of struct
    page depends on some features from memory hotplug and it is necessary to
    alter alter section annotations.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • early_pfn_in_nid() and meminit_pfn_in_nid() are small functions that are
    unnecessarily visible outside memory initialisation. As well as
    unnecessary visibility, it's unnecessary function call overhead when
    initialising pages. This patch moves the helpers inline.

    [akpm@linux-foundation.org: fix build]
    [mhocko@suse.cz: fix build]
    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • __early_pfn_to_nid() use static variables to cache recent lookups as
    memblock lookups are very expensive but it assumes that memory
    initialisation is single-threaded. Parallel initialisation of struct
    pages will break that assumption so this patch makes __early_pfn_to_nid()
    SMP-safe by requiring the caller to cache recent search information.
    early_pfn_to_nid() keeps the same interface but is only safe to use early
    in boot due to the use of a global static variable. meminit_pfn_in_nid()
    is an SMP-safe version that callers must maintain their own state for.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • __free_pages_bootmem prepares a page for release to the buddy allocator
    and assumes that the struct page is initialised. Parallel initialisation
    of struct pages defers initialisation and __free_pages_bootmem can be
    called for struct pages that cannot yet map struct page to PFN. This
    patch passes PFN to __free_pages_bootmem with no other functional change.

    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Nate Zimmer
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • Currently each page struct is set as reserved upon initialization. This
    patch leaves the reserved bit clear and only sets the reserved bit when it
    is known the memory was allocated by the bootmem allocator. This makes it
    easier to distinguish between uninitialised struct pages and reserved
    struct pages in later patches.

    Signed-off-by: Robin Holt
    Signed-off-by: Nathan Zimmer
    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nathan Zimmer
     
  • Currently, memmap_init_zone() has all the smarts for initializing a single
    page. A subset of this is required for parallel page initialisation and
    so this patch breaks up the monolithic function in preparation.

    Signed-off-by: Robin Holt
    Signed-off-by: Nathan Zimmer
    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     
  • Struct page initialisation had been identified as one of the reasons why
    large machines take a long time to boot. Patches were posted a long time ago
    to defer initialisation until they were first used. This was rejected on
    the grounds it should not be necessary to hurt the fast paths. This series
    reuses much of the work from that time but defers the initialisation of
    memory to kswapd so that one thread per node initialises memory local to
    that node.

    After applying the series and setting the appropriate Kconfig variable I
    see this in the boot log on a 64G machine

    [ 7.383764] kswapd 0 initialised deferred memory in 188ms
    [ 7.404253] kswapd 1 initialised deferred memory in 208ms
    [ 7.411044] kswapd 3 initialised deferred memory in 216ms
    [ 7.411551] kswapd 2 initialised deferred memory in 216ms

    On a 1TB machine, I see

    [ 8.406511] kswapd 3 initialised deferred memory in 1116ms
    [ 8.428518] kswapd 1 initialised deferred memory in 1140ms
    [ 8.435977] kswapd 0 initialised deferred memory in 1148ms
    [ 8.437416] kswapd 2 initialised deferred memory in 1148ms

    Once booted the machine appears to work as normal. Boot times were measured
    from the time shutdown was called until ssh was available again. In the
    64G case, the boot time savings are negligible. On the 1TB machine, the
    savings were 16 seconds.

    Nate Zimmer said:

    : On an older 8 TB box with lots and lots of cpus the boot time, as
    : measure from grub to login prompt, the boot time improved from 1484
    : seconds to exactly 1000 seconds.

    Waiman Long said:

    : I ran a bootup timing test on a 12-TB 16-socket IvyBridge-EX system. From
    : grub menu to ssh login, the bootup time was 453s before the patch and 265s
    : after the patch - a saving of 188s (42%).

    Daniel Blueman said:

    : On a 7TB, 1728-core NumaConnect system with 108 NUMA nodes, we're seeing
    : stock 4.0 boot in 7136s. This drops to 2159s, or a 70% reduction with
    : this patchset. Non-temporal PMD init (https://lkml.org/lkml/2015/4/23/350)
    : drops this to 1045s.

    This patch (of 13):

    As part of initializing struct page's in 2MiB chunks, we noticed that at
    the end of free_all_bootmem(), there was nothing which had forced the
    reserved/allocated 4KiB pages to be initialized.

    This helper function will be used for that expansion.

    Signed-off-by: Robin Holt
    Signed-off-by: Nate Zimmer
    Signed-off-by: Mel Gorman
    Tested-by: Nate Zimmer
    Tested-by: Waiman Long
    Tested-by: Daniel J Blueman
    Acked-by: Pekka Enberg
    Cc: Robin Holt
    Cc: Dave Hansen
    Cc: Waiman Long
    Cc: Scott Norton
    Cc: "Luck, Tony"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robin Holt
     

30 Jun, 2015

6 commits

  • Pull md updates from Neil Brown:
    "A mixed bag

    - a few bug fixes
    - some performance improvement that decrease lock contention
    - some clean-up

    Nothing major"

    * tag 'md/4.2' of git://neil.brown.name/md:
    md: clear Blocked flag on failed devices when array is read-only.
    md: unlock mddev_lock on an error path.
    md: clear mddev->private when it has been freed.
    md: fix a build warning
    md/raid5: ignore released_stripes check
    md/raid5: per hash value and exclusive wait_for_stripe
    md/raid5: split wait_for_stripe and introduce wait_for_quiescent
    wait: introduce wait_event_exclusive_cmd
    md: convert to kstrto*()
    md/raid10: make sync_request_write() call bio_copy_data()

    Linus Torvalds
     
  • This patch restores the slab creation sequence that was broken by commit
    4066c33d0308f8 and also reverts the portions that introduced the
    KMALLOC_LOOP_XXX macros. Those can never really work since the slab creation
    is much more complex than just going from a minimum to a maximum number.

    The latest upstream kernel boots cleanly on my machine with a 64 bit x86
    configuration under KVM using either SLAB or SLUB.

    Fixes: 4066c33d0308f8 ("support the slub_debug boot option")
    Reported-by: Theodore Ts'o
    Signed-off-by: Christoph Lameter
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • Pull libnvdimm subsystem from Dan Williams:
    "The libnvdimm sub-system introduces, in addition to the
    libnvdimm-core, 4 drivers / enabling modules:

    NFIT:
    Instantiates an "nvdimm bus" with the core and registers memory
    devices (NVDIMMs) enumerated by the ACPI 6.0 NFIT (NVDIMM Firmware
    Interface table).

    After registering NVDIMMs the NFIT driver then registers "region"
    devices. A libnvdimm-region defines an access mode and the
    boundaries of persistent memory media. A region may span multiple
    NVDIMMs that are interleaved by the hardware memory controller. In
    turn, a libnvdimm-region can be carved into a "namespace" device and
    bound to the PMEM or BLK driver which will attach a Linux block
    device (disk) interface to the memory.

    PMEM:
    Initially merged in v4.1 this driver for contiguous spans of
    persistent memory address ranges is re-worked to drive
    PMEM-namespaces emitted by the libnvdimm-core.

    In this update the PMEM driver, on x86, gains the ability to assert
    that writes to persistent memory have been flushed all the way
    through the caches and buffers in the platform to persistent media.
    See memcpy_to_pmem() and wmb_pmem().

    BLK:
    This new driver enables access to persistent memory media through
    "Block Data Windows" as defined by the NFIT. The primary difference
    of this driver to PMEM is that only a small window of persistent
    memory is mapped into system address space at any given point in
    time.

    Per-NVDIMM windows are reprogrammed at run time, per-I/O, to access
    different portions of the media. BLK-mode, by definition, does not
    support DAX.

    BTT:
    This is a library, optionally consumed by either PMEM or BLK, that
    converts a byte-accessible namespace into a disk with atomic sector
    update semantics (prevents sector tearing on crash or power loss).

    The sinister aspect of sector tearing is that most applications do
    not know they have a atomic sector dependency. At least today's
    disk's rarely ever tear sectors and if they do one almost certainly
    gets a CRC error on access. NVDIMMs will always tear and always
    silently. Until an application is audited to be robust in the
    presence of sector-tearing the usage of BTT is recommended.

    Thanks to: Ross Zwisler, Jeff Moyer, Vishal Verma, Christoph Hellwig,
    Ingo Molnar, Neil Brown, Boaz Harrosh, Robert Elliott, Matthew Wilcox,
    Andy Rudoff, Linda Knippers, Toshi Kani, Nicholas Moulin, Rafael
    Wysocki, and Bob Moore"

    * tag 'libnvdimm-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm: (33 commits)
    arch, x86: pmem api for ensuring durability of persistent memory updates
    libnvdimm: Add sysfs numa_node to NVDIMM devices
    libnvdimm: Set numa_node to NVDIMM devices
    acpi: Add acpi_map_pxm_to_online_node()
    libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only
    pmem: flag pmem block devices as non-rotational
    libnvdimm: enable iostat
    pmem: make_request cleanups
    libnvdimm, pmem: fix up max_hw_sectors
    libnvdimm, blk: add support for blk integrity
    libnvdimm, btt: add support for blk integrity
    fs/block_dev.c: skip rw_page if bdev has integrity
    libnvdimm: Non-Volatile Devices
    tools/testing/nvdimm: libnvdimm unit test infrastructure
    libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory
    nd_btt: atomic sector updates
    libnvdimm: infrastructure for btt devices
    libnvdimm: write blk label set
    libnvdimm: write pmem label set
    libnvdimm: blk labels and namespace instantiation
    ...

    Linus Torvalds
     
  • Pull dmaengine updates from Vinod Koul:
    "This time we have support for few new devices, few new features and
    odd fixes spread thru the subsystem.

    New devices added:
    - support for CSRatlas7 dma controller
    - Allwinner H3(sun8i) controller
    - TI DMA crossbar driver on DRA7x
    - new pxa driver

    New features added:
    - memset support is bought back now that we have a user in xdmac controller
    - interleaved transfers support different source and destination strides
    - supporting DMA routers and configuration thru DT
    - support for reusing descriptors
    - xdmac memset and interleaved transfer support
    - hdmac support for interleaved transfers
    - omap-dma support for memcpy

    Others:
    - Constify platform_device_id
    - mv_xor fixes and improvements"

    * tag 'dmaengine-4.2-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (46 commits)
    dmaengine: xgene: fix file permission
    dmaengine: fsl-edma: clear pending interrupts on initialization
    dmaengine: xdmac: Add memset support
    Documentation: dmaengine: document DMA_CTRL_ACK
    dmaengine: virt-dma: don't always free descriptor upon completion
    dmaengine: Revert "drivers/dma: remove unused support for MEMSET operations"
    dmaengine: hdmac: Implement interleaved transfers
    dmaengine: Move icg helpers to global header
    dmaengine: mv_xor: improve descriptors list handling and reduce locking
    dmaengine: mv_xor: Enlarge descriptor pool size
    dmaengine: mv_xor: add support for a38x command in descriptor mode
    dmaengine: mv_xor: Rename function for consistent naming
    dmaengine: mv_xor: bug fix for racing condition in descriptors cleanup
    dmaengine: pl330: fix wording in mcbufsz message
    dmaengine: sirf: add CSRatlas7 SoC support
    dmaengine: xgene-dma: Fix "incorrect type in assignement" warnings
    dmaengine: fix kernel-doc documentation
    dmaengine: pxa_dma: add support for legacy transition
    dmaengine: pxa_dma: add debug information
    dmaengine: pxa: add pxa dmaengine driver
    ...

    Linus Torvalds
     
  • Pull ia64 updates from Tony Luck:
    "Pair of ia64 cleanups"

    * tag 'please-pull-misc-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    ia64: Use setup_timer
    ia64: export flush_icache_range for module use

    Linus Torvalds
     
  • …/git/shuah/linux-kselftest

    Pull kselftest update from Shuah Khan:
    "This update adds two new test suites: futex and seccomp.

    In addition, it includes fixes for bugs in timers, other tests, and
    compile framework. It introduces new quicktest feature to enable
    users to choose to run tests that complete in a short time"

    * tag 'linux-kselftest-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests: add quicktest support
    selftests: add seccomp suite
    selftest, x86: fix incorrect comment
    tools selftests: Fix 'clean' target with make 3.81
    selftests/futex: Add .gitignore
    kselftest: Add exit code defines
    selftests: Add futex tests to the top-level Makefile
    selftests/futex: Increment ksft pass and fail counters
    selftests/futex: Update Makefile to use lib.mk
    selftests: Add futex functional tests
    kselftests: timers: Check _ALARM clockids are supported before suspending
    kselftests: timers: Ease alarmtimer-suspend unreasonable latency value
    kselftests: timers: Increase delay between suspends in alarmtimer-suspend
    selftests/exec: do not install subdir as it is already created
    selftests/ftrace: install test.d
    selftests: copy TEST_DIRS to INSTALL_PATH
    Test compaction of mlocked memory
    selftests/mount: output WARN messages when mount test skipped
    selftests/timers: Make git ignore all binaries in timers test suite

    Linus Torvalds
     

29 Jun, 2015

3 commits

  • Pull m68knommu updates from Greg Ungerer:
    "Only a couple of small changes.

    Improved the m68knommu MAINTAINERS entry to make it clearer which m68k
    parts this applies to, and a print format clean up"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68k: improve m68knommu MAINTAINERS entry
    m68k: Use vsprintf %pM extension

    Linus Torvalds
     
  • Pull UML updates from Richard Weinberger:

    - remove hppfs ("HonePot ProcFS")

    - initial support for musl libc

    - uaccess cleanup

    - random cleanups and bug fixes all over the place

    * 'for-linus-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (21 commits)
    um: Don't pollute kernel namespace with uapi
    um: Include sys/types.h for makedev(), major(), minor()
    um: Do not use stdin and stdout identifiers for struct members
    um: Do not use __ptr_t type for stack_t's .ss pointer
    um: Fix mconsole dependency
    um: Handle tracehook_report_syscall_entry() result
    um: Remove copy&paste code from init.h
    um: Stop abusing __KERNEL__
    um: Catch unprotected user memory access
    um: Fix warning in setup_signal_stack_si()
    um: Rework uaccess code
    um: Add uaccess.h to ldt.c
    um: Add uaccess.h to syscalls_64.c
    um: Add asm/elf.h to vma.c
    um: Cleanup mem_32/64.c headers
    um: Remove hppfs
    um: Move syscall() declaration into os.h
    um: kernel: ksyms: Export symbol syscall() for fixing modpost issue
    um/os-Linux: Use char[] for syscall_stub declarations
    um: Use char[] for linker script address declarations
    ...

    Linus Torvalds
     
  • Pull VFIO updates from Alex Williamson:

    - fix race with device reference versus driver release (Alex Williamson)

    - add reset hooks and Calxeda xgmac reset for vfio-platform (Eric Auger)

    - enable vfio-platform for ARM64 (Eric Auger)

    - tag Baptiste Reynal as vfio-platform sub-maintainer (Alex Williamson)

    * tag 'vfio-v4.2-rc1' of git://github.com/awilliam/linux-vfio:
    MAINTAINERS: Add vfio-platform sub-maintainer
    VFIO: platform: enable ARM64 build
    VFIO: platform: Calxeda xgmac reset module
    VFIO: platform: populate the reset function on probe
    VFIO: platform: add reset callback
    VFIO: platform: add reset struct and lookup table
    vfio/pci: Fix racy vfio_device_get_from_dev() call

    Linus Torvalds
     

28 Jun, 2015

6 commits

  • Pull audit updates from Paul Moore:
    "Four small audit patches for v4.2, all bug fixes. Only 10 lines of
    change this time so very unremarkable, the patch subject lines pretty
    much tell the whole story"

    * 'upstream' of git://git.infradead.org/users/pcmoore/audit:
    audit: Fix check of return value of strnlen_user()
    audit: obsolete audit_context check is removed in audit_filter_rules()
    audit: fix for typo in comment to function audit_log_link_denied()
    lsm: rename duplicate labels in LSM_AUDIT_DATA_TASK audit message type

    Linus Torvalds
     
  • Pull security subsystem updates from James Morris:
    "The main change in this kernel is Casey's generalized LSM stacking
    work, which removes the hard-coding of Capabilities and Yama stacking,
    allowing multiple arbitrary "small" LSMs to be stacked with a default
    monolithic module (e.g. SELinux, Smack, AppArmor).

    See
    https://lwn.net/Articles/636056/

    This will allow smaller, simpler LSMs to be incorporated into the
    mainline kernel and arbitrarily stacked by users. Also, this is a
    useful cleanup of the LSM code in its own right"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)
    tpm, tpm_crb: fix le64_to_cpu conversions in crb_acpi_add()
    vTPM: set virtual device before passing to ibmvtpm_reset_crq
    tpm_ibmvtpm: remove unneccessary message level.
    ima: update builtin policies
    ima: extend "mask" policy matching support
    ima: add support for new "euid" policy condition
    ima: fix ima_show_template_data_ascii()
    Smack: freeing an error pointer in smk_write_revoke_subj()
    selinux: fix setting of security labels on NFS
    selinux: Remove unused permission definitions
    selinux: enable genfscon labeling for sysfs and pstore files
    selinux: enable per-file labeling for debugfs files.
    selinux: update netlink socket classes
    signals: don't abuse __flush_signals() in selinux_bprm_committed_creds()
    selinux: Print 'sclass' as string when unrecognized netlink message occurs
    Smack: allow multiple labels in onlycap
    Smack: fix seq operations in smackfs
    ima: pass iint to ima_add_violation()
    ima: wrap event related data to the new ima_event_data structure
    integrity: add validity checks for 'path' parameter
    ...

    Linus Torvalds
     
  • Pull MIPS updates from Ralf Baechle:

    - Improvements to the tlb_dump code
    - KVM fixes
    - Add support for appended DTB
    - Minor improvements to the R12000 support
    - Minor improvements to the R12000 support
    - Various platform improvments for BCM47xx
    - The usual pile of minor cleanups
    - A number of BPF fixes and improvments
    - Some improvments to the support for R3000 and DECstations
    - Some improvments to the ATH79 platform support
    - A major patchset for the JZ4740 SOC adding support for the CI20 platform
    - Add support for the Pistachio SOC
    - Minor BMIPS/BCM63xx platform support improvments.
    - Avoid "SYNC 0" as memory barrier when unlocking spinlocks
    - Add support for the XWR-1750 board.
    - Paul's __cpuinit/__cpuinitdata cleanups.
    - New Malta CPU board support large memory so enable ZONE_DMA32.

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (131 commits)
    MIPS: spinlock: Adjust arch_spin_lock back-off time
    MIPS: asmmacro: Ensure 64-bit FP registers are used with MSA
    MIPS: BCM47xx: Simplify handling SPROM revisions
    MIPS: Cobalt Don't use module_init in non-modular MTD registration.
    MIPS: BCM47xx: Move NVRAM driver to the drivers/firmware/
    MIPS: use for_each_sg()
    MIPS: BCM47xx: Don't select BCMA_HOST_PCI
    MIPS: BCM47xx: Add helper variable for storing NVRAM length
    MIPS: IRQ/IP27: Move IRQ allocation API to platform code.
    MIPS: Replace smp_mb with release barrier function in unlocks.
    MIPS: i8259: DT support
    MIPS: Malta: Basic DT plumbing
    MIPS: include errno.h for ENODEV in mips-cm.h
    MIPS: Define GCR_GIC_STATUS register fields
    MIPS: BPF: Introduce BPF ASM helpers
    MIPS: BPF: Use BPF register names to describe the ABI
    MIPS: BPF: Move register definition to the BPF header
    MIPS: net: BPF: Replace RSIZE with SZREG
    MIPS: BPF: Free up some callee-saved registers
    MIPS: Xtalk: Update xwidget.h with known Xtalk device numbers
    ...

    Linus Torvalds
     
  • Pull nfsd updates from Bruce Fields:
    "A relatively quiet cycle, with a mix of cleanup and smaller bugfixes"

    * 'for-4.2' of git://linux-nfs.org/~bfields/linux: (24 commits)
    sunrpc: use sg_init_one() in krb5_rc4_setup_enc/seq_key()
    nfsd: wrap too long lines in nfsd4_encode_read
    nfsd: fput rd_file from XDR encode context
    nfsd: take struct file setup fully into nfs4_preprocess_stateid_op
    nfsd: refactor nfs4_preprocess_stateid_op
    nfsd: clean up raparams handling
    nfsd: use swap() in sort_pacl_range()
    rpcrdma: Merge svcrdma and xprtrdma modules into one
    svcrdma: Add a separate "max data segs macro for svcrdma
    svcrdma: Replace GFP_KERNEL in a loop with GFP_NOFAIL
    svcrdma: Keep rpcrdma_msg fields in network byte-order
    svcrdma: Fix byte-swapping in svc_rdma_sendto.c
    nfsd: Update callback sequnce id only CB_SEQUENCE success
    nfsd: Reset cb_status in nfsd4_cb_prepare() at retrying
    svcrdma: Remove svc_rdma_xdr_decode_deferred_req()
    SUNRPC: Move EXPORT_SYMBOL for svc_process
    uapi/nfs: Add NFSv4.1 ACL definitions
    nfsd: Remove dead declarations
    nfsd: work around a gcc-5.1 warning
    nfsd: Checking for acl support does not require fetching any acls
    ...

    Linus Torvalds
     
  • Pull GFS2 updates from Bob Peterson:
    "Here are the patches we've accumulated for GFS2 for the current
    upstream merge window. We have a good mixture this time. Here are
    some of the features:

    - Fix a problem with RO mounts writing to the journal.

    - Further improvements to quotas on GFS2.

    - Added support for rename2 and RENAME_EXCHANGE on GFS2.

    - Increase performance by making glock lru_list less of a bottleneck.

    - Increase performance by avoiding unnecessary buffer_head releases.

    - Increase performance by using average glock round trip time from all CPUs.

    - Fixes for some compiler warnings and minor white space issues.

    - Other misc bug fixes"

    * tag 'gfs2-merge-window' of git://git.kernel.org:/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
    GFS2: Don't brelse rgrp buffer_heads every allocation
    GFS2: Don't add all glocks to the lru
    gfs2: Don't support fallocate on jdata files
    gfs2: s64 cast for negative quota value
    gfs2: limit quota log messages
    gfs2: fix quota updates on block boundaries
    gfs2: fix shadow warning in gfs2_rbm_find()
    gfs2: kerneldoc warning fixes
    gfs2: convert simple_str to kstr
    GFS2: make sure S_NOSEC flag isn't overwritten
    GFS2: add support for rename2 and RENAME_EXCHANGE
    gfs2: handle NULL rgd in set_rgrp_preferences
    GFS2: inode.c: indent with TABs, not spaces
    GFS2: mark the journal idle to fix ro mounts
    GFS2: Average in only non-zero round-trip times for congestion stats
    GFS2: Use average srttb value in congestion calculations

    Linus Torvalds
     
  • This reverts commit 2143c1965a761332ae417b22fd477b636e4f54ec.

    This commit seems to be the cause of the following jbd2 assertion
    failure:

    ------------[ cut here ]------------
    kernel BUG at fs/jbd2/transaction.c:1325!
    invalid opcode: 0000 [#1] SMP
    Modules linked in: bnep bluetooth fuse ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 ...
    CPU: 7 PID: 5509 Comm: gcc Not tainted 4.1.0-10944-g2a298679b411 #1
    Hardware name: /DH87RL, BIOS RLH8710H.86A.0327.2014.0924.1645 09/24/2014
    task: ffff8803bf866040 ti: ffff880308528000 task.ti: ffff880308528000
    RIP: jbd2_journal_dirty_metadata+0x237/0x290
    Call Trace:
    __ext4_handle_dirty_metadata+0x43/0x1f0
    ext4_handle_dirty_dirent_node+0xde/0x160
    ? jbd2_journal_get_write_access+0x36/0x50
    ext4_delete_entry+0x112/0x160
    ? __ext4_journal_start_sb+0x52/0xb0
    ext4_unlink+0xfa/0x260
    vfs_unlink+0xec/0x190
    do_unlinkat+0x24a/0x270
    SyS_unlink+0x11/0x20
    entry_SYSCALL_64_fastpath+0x12/0x6a
    ---[ end trace ae033ebde8d080b4 ]---

    which is not easily reproducible (I've seen it just once, and then Ted
    was able to reproduce it once). Revert it while Ted and Jan try to
    figure out what is wrong.

    Cc: Jan Kara
    Acked-by: Theodore Ts'o
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

27 Jun, 2015

11 commits

  • Pull workqueue updates from Tejun Heo:
    "Most of the changes are around implementing and fixing fallouts from
    sysfs and internal interface to limit the CPUs available to all
    unbound workqueues to help isolating CPUs. It needs more work as
    ordered workqueues can roam unrestricted but still is a significant
    improvement"

    * 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: fix typos in comments
    workqueue: move flush_scheduled_work() to workqueue.h
    workqueue: remove the lock from wq_sysfs_prep_attrs()
    workqueue: remove the declaration of copy_workqueue_attrs()
    workqueue: ensure attrs changes are properly synchronized
    workqueue: separate out and refactor the locking of applying attrs
    workqueue: simplify wq_update_unbound_numa()
    workqueue: wq_pool_mutex protects the attrs-installation
    workqueue: fix a typo
    workqueue: function name in the comment differs from the real function name
    workqueue: fix trivial typo in Documentation/workqueue.txt
    workqueue: Allow modifying low level unbound workqueue cpumask
    workqueue: Create low-level unbound workqueues cpumask
    workqueue: split apply_workqueue_attrs() into 3 stages

    Linus Torvalds
     
  • Pull cgroup updates from Tejun Heo:

    - threadgroup_lock got reorganized so that its users can pick the
    actual locking mechanism to use. Its only user - cgroups - is
    updated to use a percpu_rwsem instead of per-process rwsem.

    This makes things a bit lighter on hot paths and allows cgroups to
    perform and fail multi-task (a process) migrations atomically.
    Multi-task migrations are used in several places including the
    unified hierarchy.

    - Delegation rule and documentation added to unified hierarchy. This
    will likely be the last interface update from the cgroup core side
    for unified hierarchy before lifting the devel mask.

    - Some groundwork for the pids controller which is scheduled to be
    merged in the coming devel cycle.

    * 'for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    cgroup: add delegation section to unified hierarchy documentation
    cgroup: require write perm on common ancestor when moving processes on the default hierarchy
    cgroup: separate out cgroup_procs_write_permission() from __cgroup_procs_write()
    kernfs: make kernfs_get_inode() public
    MAINTAINERS: add a cgroup core co-maintainer
    cgroup: fix uninitialised iterator in for_each_subsys_which
    cgroup: replace explicit ss_mask checking with for_each_subsys_which
    cgroup: use bitmask to filter for_each_subsys
    cgroup: add seq_file forward declaration for struct cftype
    cgroup: simplify threadgroup locking
    sched, cgroup: replace signal_struct->group_rwsem with a global percpu_rwsem
    sched, cgroup: reorganize threadgroup locking
    cgroup: switch to unsigned long for bitmasks
    cgroup: reorganize include/linux/cgroup.h
    cgroup: separate out include/linux/cgroup-defs.h
    cgroup: fix some comment typos

    Linus Torvalds
     
  • Caused by commit 843735b788a4 ("power: axp288_charger: axp288 charger
    driver") from the battery tree interacting with commit 046050f6e623
    ("extcon: Update the prototype of extcon_register_notifier() with enum
    extcon") from the extcon tree.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Pull dma-buf updates from Sumit Semwal:
    "Minor changes for 4.2

    - add ref-counting for kernel modules as exporters
    - minor code style fixes"

    * tag 'dma-buf-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sumits/dma-buf:
    dma-buf: Minor coding style fixes
    dma-buf: add ref counting for module as exporter

    Linus Torvalds
     
  • Pull USB updates from Greg KH:
    "Here's the big USB patchset for 4.2-rc1. As is normal these days, the
    majority of changes are in the gadget drivers, with a bunch of other
    small driver changes.

    All of these have been in linux-next with no reported issues"

    * tag 'usb-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (175 commits)
    usb: dwc3: Use ASCII space in Kconfig
    usb: chipidea: add work-around for Marvell HSIC PHY startup
    usb: chipidea: allow multiple instances to use default ci_default_pdata
    dt-bindings: Consolidate ChipIdea USB ci13xxx bindings
    phy: add Marvell HSIC 28nm PHY
    phy: Add Marvell USB 2.0 OTG 28nm PHY
    dt-bindings: Add Marvell PXA1928 USB and HSIC PHY bindings
    USB: ssb: use devm_kzalloc
    USB: ssb: fix error handling in ssb_hcd_create_pdev()
    usb: isp1760: check for null return from kzalloc
    cdc-acm: Add support of ATOL FPrint fiscal printers
    usb: chipidea: usbmisc_imx: Remove unneeded semicolon
    USB: usbtmc: add device quirk for Rigol DS6104
    USB: serial: mos7840: Use setup_timer
    phy: twl4030-usb: add ABI documentation
    phy: twl4030-usb: remove incorrect pm_runtime_get_sync() in probe function.
    phy: twl4030-usb: remove pointless 'suspended' test in 'suspend' callback.
    phy: twl4030-usb: make runtime pm more reliable.
    drivers:usb:fsl: Fix compilation error for fsl ehci drv
    usb: renesas_usbhs: Don't disable the pipe if Control write status stage
    ...

    Linus Torvalds
     
  • Pull tty/serial driver updates from Greg KH:
    "Here's the tty and serial driver patches for 4.2-rc1.

    A number of individual driver updates, some code cleanups, and other
    minor things, full details in the shortlog.

    All have been in linux-next for a while with no reported issues"

    * tag 'tty-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (152 commits)
    Doc: serial-rs485.txt: update RS485 driver interface
    Doc: tty.txt: remove mention of the BKL
    MAINTAINERS: tty: add serial docs directory
    serial: sprd: check for NULL after calling devm_clk_get
    serial: 8250_pci: Correct uartclk for xr17v35x expansion chips
    serial: 8250_pci: Add support for 12 port Exar boards
    serial: 8250_uniphier: add bindings document for UniPhier UART
    serial: core: cleanup in uart_get_baud_rate()
    serial: stm32-usart: Add STM32 USART Driver
    tty/serial: kill off set_irq_flags usage
    tty: move linux/gsmmux.h to uapi
    doc: dt: add documentation for nxp,lpc1850-uart
    serial: 8250: add LPC18xx/43xx UART driver
    serial: 8250_uniphier: add UniPhier serial driver
    serial: 8250_dw: support ACPI platforms with integrated DMA engine
    serial: of_serial: check the return value of clk_prepare_enable()
    serial: of_serial: use devm_clk_get() instead of clk_get()
    serial: earlycon: Add support for big-endian MMIO accesses
    serial: sirf: use hrtimer for data rx
    serial: sirf: correct the fifo empty_bit
    ...

    Linus Torvalds
     
  • Pull staging driver updates from Greg KH:
    "Here's the big, really big, staging tree patches for 4.2-rc1.

    Loads of stuff in here, almost all just coding style fixes / churn,
    and a few new drivers as well, one of which I just disabled from the
    build a few minutes ago due to way too many build warnings.

    Other than the one "disable this driver" patch, all of these have been
    in linux-next for quite a while with no reported issues"

    * tag 'staging-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1163 commits)
    staging: wilc1000: disable driver due to build warnings
    Staging: rts5208: fix CHANGE_LINK_STATE value
    Staging: sm750fb: ddk750_swi2c.c: Insert spaces before parenthesis
    Staging: sm750fb: ddk750_swi2c.c: Place braces on correct lines
    Staging: sm750fb: ddk750_swi2c.c: Insert spaces around operators
    Staging: sm750fb: ddk750_swi2c.c: Replace spaces with tabs
    Staging: sm750fb: ddk750_swi2c.h: Shorten lines to under 80 characters
    Staging: sm750fb: ddk750_swi2c.h: Replace spaces with tabs
    Staging: sm750fb: modedb.h: Shorten lines to under 80 characters
    Staging: sm750fb: modedb.h: Replace spaces with tabs
    staging: comedi: addi_apci_3120: rename 'this_board' variables
    staging: comedi: addi_apci_1516: rename 'this_board' variables
    staging: comedi: ni_atmio: cleanup ni_getboardtype()
    staging: comedi: vmk80xx: sanity check context used to get the boardinfo
    staging: comedi: vmk80xx: rename 'boardinfo' variables
    staging: comedi: dt3000: rename 'this_board' variables
    staging: comedi: adv_pci_dio: rename 'this_board' variables
    staging: comedi: cb_pcidas64: rename 'thisboard' variables
    staging: comedi: cb_pcidas: rename 'thisboard' variables
    staging: comedi: me4000: rename 'thisboard' variables
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here is the driver core / firmware changes for 4.2-rc1.

    A number of small changes all over the place in the driver core, and
    in the firmware subsystem. Nothing really major, full details in the
    shortlog. Some of it is a bit of churn, given that the platform
    driver probing changes was found to not work well, so they were
    reverted.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'driver-core-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (31 commits)
    Revert "base/platform: Only insert MEM and IO resources"
    Revert "base/platform: Continue on insert_resource() error"
    Revert "of/platform: Use platform_device interface"
    Revert "base/platform: Remove code duplication"
    firmware: add missing kfree for work on async call
    fs: sysfs: don't pass count == 0 to bin file readers
    base:dd - Fix for typo in comment to function driver_deferred_probe_trigger().
    base/platform: Remove code duplication
    of/platform: Use platform_device interface
    base/platform: Continue on insert_resource() error
    base/platform: Only insert MEM and IO resources
    firmware: use const for remaining firmware names
    firmware: fix possible use after free on name on asynchronous request
    firmware: check for file truncation on direct firmware loading
    firmware: fix __getname() missing failure check
    drivers: of/base: move of_init to driver_init
    drivers/base: cacheinfo: fix annoying typo when DT nodes are absent
    sysfs: disambiguate between "error code" and "failure" in comments
    driver-core: fix build for !CONFIG_MODULES
    driver-core: make __device_attach() static
    ...

    Linus Torvalds
     
  • Pull char/misc driver updates from Greg KH:
    "Here's the big char/misc driver pull request for 4.2-rc1.

    Lots of mei, extcon, coresight, uio, mic, and other driver updates in
    here. Full details in the shortlog. All of these have been in
    linux-next for some time with no reported problems"

    * tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (176 commits)
    mei: me: wait for power gating exit confirmation
    mei: reset flow control on the last client disconnection
    MAINTAINERS: mei: add mei_cl_bus.h to maintained file list
    misc: sram: sort and clean up included headers
    misc: sram: move reserved block logic out of probe function
    misc: sram: add private struct device and virt_base members
    misc: sram: report correct SRAM pool size
    misc: sram: bump error message level on unclean driver unbinding
    misc: sram: fix device node reference leak on error
    misc: sram: fix enabled clock leak on error path
    misc: mic: Fix reported static checker warning
    misc: mic: Fix randconfig build error by including errno.h
    uio: pruss: Drop depends on ARCH_DAVINCI_DA850 from config
    uio: pruss: Add CONFIG_HAS_IOMEM dependence
    uio: pruss: Include
    extcon: Redefine the unique id of supported external connectors without 'enum extcon' type
    char:xilinx_hwicap:buffer_icap - change 1/0 to true/false for bool type variable in function buffer_icap_set_configuration().
    Drivers: hv: vmbus: Allocate ring buffer memory in NUMA aware fashion
    parport: check exclusive access before register
    w1: use correct lock on error in w1_seq_show()
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "This patch series contains several clean ups and even a new trace
    clock "monitonic raw". Also some enhancements to make the ring buffer
    even faster. But the biggest and most noticeable change is the
    renaming of the ftrace* files, structures and variables that have to
    deal with trace events.

    Over the years I've had several developers tell me about their
    confusion with what ftrace is compared to events. Technically,
    "ftrace" is the infrastructure to do the function hooks, which include
    tracing and also helps with live kernel patching. But the trace
    events are a separate entity altogether, and the files that affect the
    trace events should not be named "ftrace". These include:

    include/trace/ftrace.h -> include/trace/trace_events.h
    include/linux/ftrace_event.h -> include/linux/trace_events.h

    Also, functions that are specific for trace events have also been renamed:

    ftrace_print_*() -> trace_print_*()
    (un)register_ftrace_event() -> (un)register_trace_event()
    ftrace_event_name() -> trace_event_name()
    ftrace_trigger_soft_disabled() -> trace_trigger_soft_disabled()
    ftrace_define_fields_##call() -> trace_define_fields_##call()
    ftrace_get_offsets_##call() -> trace_get_offsets_##call()

    Structures have been renamed:

    ftrace_event_file -> trace_event_file
    ftrace_event_{call,class} -> trace_event_{call,class}
    ftrace_event_buffer -> trace_event_buffer
    ftrace_subsystem_dir -> trace_subsystem_dir
    ftrace_event_raw_##call -> trace_event_raw_##call
    ftrace_event_data_offset_##call-> trace_event_data_offset_##call
    ftrace_event_type_funcs_##call -> trace_event_type_funcs_##call

    And a few various variables and flags have also been updated.

    This has been sitting in linux-next for some time, and I have not
    heard a single complaint about this rename breaking anything. Mostly
    because these functions, variables and structures are mostly internal
    to the tracing system and are seldom (if ever) used by anything
    external to that"

    * tag 'trace-v4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (33 commits)
    ring_buffer: Allow to exit the ring buffer benchmark immediately
    ring-buffer-benchmark: Fix the wrong type
    ring-buffer-benchmark: Fix the wrong param in module_param
    ring-buffer: Add enum names for the context levels
    ring-buffer: Remove useless unused tracing_off_permanent()
    ring-buffer: Give NMIs a chance to lock the reader_lock
    ring-buffer: Add trace_recursive checks to ring_buffer_write()
    ring-buffer: Allways do the trace_recursive checks
    ring-buffer: Move recursive check to per_cpu descriptor
    ring-buffer: Add unlikelys to make fast path the default
    tracing: Rename ftrace_get_offsets_##call() to trace_event_get_offsets_##call()
    tracing: Rename ftrace_define_fields_##call() to trace_event_define_fields_##call()
    tracing: Rename ftrace_event_type_funcs_##call to trace_event_type_funcs_##call
    tracing: Rename ftrace_data_offset_##call to trace_event_data_offset_##call
    tracing: Rename ftrace_raw_##call event structures to trace_event_raw_##call
    tracing: Rename ftrace_trigger_soft_disabled() to trace_trigger_soft_disabled()
    tracing: Rename FTRACE_EVENT_FL_* flags to EVENT_FILE_FL_*
    tracing: Rename struct ftrace_subsystem_dir to trace_subsystem_dir
    tracing: Rename ftrace_event_name() to trace_event_name()
    tracing: Rename FTRACE_MAX_EVENT to TRACE_EVENT_TYPE_MAX
    ...

    Linus Torvalds
     
  • Pull tracing fixes from Steven Rostedt:
    "This isn't my 4.2 pull request (yet). I found a few more bugs that I
    would have sent to fix 4.1, but since 4.1 is already out, I'm sending
    this before sending my 4.2 request (which is ready to go).

    After fixing the previous filter issue reported by Vince Weaver, I
    could not come up with a situation where the operand counter (cnt)
    could go below zero, so I added a WARN_ON_ONCE(cnt < 0). Vince was
    able to trigger that warn on with his fuzzer test, but didn't have a
    filter input that caused it.

    Later, Sasha Levin was able to trigger that same warning, and was able
    to give me the filter string that triggered it. It was simply a
    single operation ">".

    I wrapped the filtering code in a userspace program such that I could
    single step through the logic. With a single operator the operand
    counter can legitimately go below zero, and should be reported to the
    user as an error, but should not produce a kernel warning. The
    WARN_ON_ONCE(cnt < 0) should be just a "if (cnt < 0) break;" and the
    code following it will produce the error message for the user.

    While debugging this, I found that there was another bug that let the
    pointer to the filter string go beyond the filter string. This too
    was fixed.

    Finally, there was a typo in a stub function that only gets compiled
    if trace events is disabled but tracing is enabled (I'm not even sure
    that's possible)"

    * tag 'trace-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Fix typo from "static inlin" to "static inline"
    tracing/filter: Do not allow infix to exceed end of string
    tracing/filter: Do not WARN on operand count going below zero

    Linus Torvalds