27 Jul, 2016

17 commits

  • wait_sb_inodes() currently does a walk of all inodes in the filesystem
    to find dirty one to wait on during sync. This is highly inefficient
    and wastes a lot of CPU when there are lots of clean cached inodes that
    we don't need to wait on.

    To avoid this "all inode" walk, we need to track inodes that are
    currently under writeback that we need to wait for. We do this by
    adding inodes to a writeback list on the sb when the mapping is first
    tagged as having pages under writeback. wait_sb_inodes() can then walk
    this list of "inodes under IO" and wait specifically just for the inodes
    that the current sync(2) needs to wait for.

    Define a couple helpers to add/remove an inode from the writeback list
    and call them when the overall mapping is tagged for or cleared from
    writeback. Update wait_sb_inodes() to walk only the inodes under
    writeback due to the sync.

    With this change, filesystem sync times are significantly reduced for
    fs' with largely populated inode caches and otherwise no other work to
    do. For example, on a 16xcpu 2GHz x86-64 server, 10TB XFS filesystem
    with a ~10m entry inode cache, sync times are reduced from ~7.3s to less
    than 0.1s when the filesystem is fully clean.

    Link: http://lkml.kernel.org/r/1466594593-6757-2-git-send-email-bfoster@redhat.com
    Signed-off-by: Dave Chinner
    Signed-off-by: Josef Bacik
    Signed-off-by: Brian Foster
    Reviewed-by: Jan Kara
    Tested-by: Holger Hoffstätte
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Chinner
     
  • Clean up unnecessary assignment for 'ret'.

    Link: http://lkml.kernel.org/r/578C61F6.4080403@huawei.com
    Signed-off-by: Jun Piao
    Reviewed-by: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    piaojun
     
  • These BUG_ON(!inode) are obscure because we have already used inode to
    get osb. And actually we can guarantee here inode is valid in the
    context. So we can safely remove them.

    Link: http://lkml.kernel.org/r/5776336A.6030104@huawei.com
    Signed-off-by: Joseph Qi
    Reviewed-by: Eric Ren
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Several prototypes in inode.h are just defined but not actually
    implemented and used, so remove them.

    Link: http://lkml.kernel.org/r/57763787.4020706@huawei.com
    Signed-off-by: Joseph Qi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • dlm_debug_ctxt->debug_refcnt is initialized to 1 and then increased to 2
    by dlm_debug_get in dlm_debug_init. But dlm_debug_put is called only
    once in dlm_debug_shutdown during unregister dlm, which leads to
    dlm_debug_ctxt leaked.

    Link: http://lkml.kernel.org/r/577BB755.4030900@huawei.com
    Signed-off-by: Joseph Qi
    Reviewed-by: Jiufei Xue
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • The last goto is unneeded, so remove it.

    Link: http://lkml.kernel.org/r/576213D3.6080002@huawei.com
    Signed-off-by: Joseph Qi
    Reviewed-by: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Journal replay will be run when performing recovery for a dead node. To
    avoid the stale cache impact, all blocks of dead node's journal inode
    were reloaded from disk. This hurts the performance. Check whether one
    block is cached before reloading it can improve performance a lot. In
    my test env, the time doing recovery was improved from 120s to 1s.

    [akpm@linux-foundation.org: clean up the for loop p_blkno handling]
    Link: http://lkml.kernel.org/r/1466155682-24656-1-git-send-email-junxiao.bi@oracle.com
    Signed-off-by: Junxiao Bi
    Reviewed-by: Joseph Qi
    Cc: "Gang He"
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Junxiao Bi
     
  • Obviously, memset() has zeroed the whole struct locking_max_version.
    So, it's no need to zero its two fields individually.

    Link: http://lkml.kernel.org/r/1463970605-18354-1-git-send-email-zren@suse.com
    Signed-off-by: Eric Ren
    Reviewed-by: Joseph Qi
    Reviewed-by: Gang He
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Ren
     
  • Add ':' to fix trivial kernel-doc warning in :

    ..//include/linux/debugobjects.h:63: warning: No description found for parameter 'is_static_object'

    Link: http://lkml.kernel.org/r/575B01B8.5060600@infradead.org
    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • We are having build failure with m32r and the error message being:

    ERROR: "__ucmpdi2" [lib/842/842_decompress.ko] undefined!
    ERROR: "__ucmpdi2" [fs/btrfs/btrfs.ko] undefined!
    ERROR: "__ucmpdi2" [drivers/scsi/sd_mod.ko] undefined!
    ERROR: "__ucmpdi2" [drivers/media/i2c/adv7842.ko] undefined!
    ERROR: "__ucmpdi2" [drivers/md/bcache/bcache.ko] undefined!
    ERROR: "__ucmpdi2" [drivers/iio/imu/inv_mpu6050/inv-mpu6050.ko] undefined!

    __ucmpdi2 is introduced to m32r architecture taking example from other
    architectures like h8300, microblaze, mips.

    Link: http://lkml.kernel.org/r/1465509213-4280-1-git-send-email-sudipm.mukherjee@gmail.com
    Signed-off-by: Sudip Mukherjee
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sudip Mukherjee
     
  • Python divisions are integer divisions unless at least one parameter is
    a float. The current bloat-o-meter fails to print sub-percentage
    changes:

    Total: Before=10515408, After=10604060, chg 0.000000%

    Force float division by using one float and pretty the print to two
    significant decimals:

    Total: Before=10515408, After=10604060, chg +0.84%

    Link: http://lkml.kernel.org/r/1465980311-23814-1-git-send-email-riku.voipio@linaro.org
    Signed-off-by: Riku Voipio
    Reviewed-by: Josh Triplett
    Cc: Vineet Gupta
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Riku Voipio
     
  • Before, the stack protector flag was sanity checked before .config had
    been reprocessed. This meant the build couldn't be aborted early, and
    only a warning could be emitted followed later by the compiler blowing
    up with an unknown flag. This has caused a lot of confusion over time,
    so this splits the flag selection from sanity checking and performs the
    sanity checking after the make has been restarted from a reprocessed
    .config, so builds can be aborted as early as possible now.

    Additionally moves the x86-specific sanity check to the same location,
    since it suffered from the same warn-then-wait-for-compiler-failure
    problem.

    Link: http://lkml.kernel.org/r/20160712223043.GA11664@www.outflux.net
    Signed-off-by: Kees Cook
    Cc: Michal Marek
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • When building with "make W=1", we get a warning about an empty stub
    function that does nothing but reassign its one of its arguments:

    drivers/video/fbdev/core/fbmon.c: In function 'fb_edid_to_monspecs':
    drivers/video/fbdev/core/fbmon.c:1497:67: error: parameter 'specs' set but not used [-Werror=unused-but-set-parameter]

    We can simply make that function completely empty to avoid the warning.

    This prevents a warning which everyone will see after "CFLAGS: add
    -Wunused-but-set-parameter" is merged.

    Link: http://lkml.kernel.org/r/20160715203229.1771162-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann
    Cc: Jean-Christophe Plagniol-Villard
    Cc: Tomi Valkeinen
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • get_hash_bucket() and put_hash_bucket() acquire and release the same
    spinlock, but this confuses static checkers such as sparse

    lib/dma-debug.c:254:27: warning: context imbalance in 'get_hash_bucket' - wrong count at exit
    lib/dma-debug.c:268:13: warning: context imbalance in 'put_hash_bucket' - unexpected unlock

    Add the appropriate acquire and release statements so that checkers can
    properly track the lock state.

    Link: http://lkml.kernel.org/r/20160701191552.24295-1-sboyd@codeaurora.org
    Signed-off-by: Stephen Boyd
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Boyd
     
  • Remove the unused wrappers dax_fault() and dax_pmd_fault(). After this
    removal, rename __dax_fault() and __dax_pmd_fault() to dax_fault() and
    dax_pmd_fault() respectively, and update all callers.

    The dax_fault() and dax_pmd_fault() wrappers were initially intended to
    capture some filesystem independent functionality around page faults
    (calling sb_start_pagefault() & sb_end_pagefault(), updating file mtime
    and ctime).

    However, the following commits:

    5726b27b09cc ("ext2: Add locking for DAX faults")
    ea3d7209ca01 ("ext4: fix races between page faults and hole punching")

    added locking to the ext2 and ext4 filesystems after these common
    operations but before __dax_fault() and __dax_pmd_fault() were called.
    This means that these wrappers are no longer used, and are unlikely to
    be used in the future.

    XFS has had locking analogous to what was recently added to ext2 and
    ext4 since DAX support was initially introduced by:

    6b698edeeef0 ("xfs: add DAX file operations support")

    Link: http://lkml.kernel.org/r/20160714214049.20075-2-ross.zwisler@linux.intel.com
    Signed-off-by: Ross Zwisler
    Cc: "Theodore Ts'o"
    Cc: Alexander Viro
    Cc: Andreas Dilger
    Cc: Dan Williams
    Cc: Dave Chinner
    Reviewed-by: Jan Kara
    Cc: Jonathan Corbet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ross Zwisler
     
  • These are originally from Matthew Wilcox and were part of his huge
    "mm,fs,dax: Change ->pmd_fault to ->huge_fault" patch that was part of
    PUD support.

    I'm breaking these small changes out as they stand on their own and add
    useful information to Documentation/filesystems/dax.txt.

    Link: http://lkml.kernel.org/r/20160714214049.20075-1-ross.zwisler@linux.intel.com
    Signed-off-by: Ross Zwisler
    Cc: "Theodore Ts'o"
    Cc: Alexander Viro
    Cc: Andreas Dilger
    Cc: Dan Williams
    Cc: Dave Chinner
    Cc: Jan Kara
    Cc: Jonathan Corbet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ross Zwisler
     
  • __GFP_REPEAT has a rather weak semantic but since it has been introduced
    around 2.6.12 it has been ignored for low order allocations.

    PGALLOC_GFP uses __GFP_REPEAT but none of the allocation which uses this
    flag is for more than order-2. This means that this flag has never been
    actually useful here because it has always been used only for
    PAGE_ALLOC_COSTLY requests.

    Link: http://lkml.kernel.org/r/1464599699-30131-5-git-send-email-mhocko@kernel.org
    Signed-off-by: Michal Hocko
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     

26 Jul, 2016

19 commits

  • Pull irq updates from Thomas Gleixner:
    "The irq department delivers:

    - new core infrastructure to allow better management of multi-queue
    devices (interrupt spreading, node aware descriptor allocation ...)

    - a new interrupt flow handler to support the new fangled Intel VMD
    devices.

    - yet another new interrupt controller driver.

    - a series of fixes which addresses sparse warnings, missing
    includes, missing static declarations etc from Ben Dooks.

    - a fix for the error handling in the hierarchical domain allocation
    code.

    - the usual pile of small updates to core and driver code"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
    genirq: Fix missing irq allocation affinity hint
    irqdomain: Fix irq_domain_alloc_irqs_recursive() error handling
    irq/Documentation: Correct result of echnoing 5 to smp_affinity
    MAINTAINERS: Remove Jiang Liu from irq domains
    genirq/msi: Fix broken debug output
    genirq: Add a helper to spread an affinity mask for MSI/MSI-X vectors
    genirq/msi: Make use of affinity aware allocations
    genirq: Use affinity hint in irqdesc allocation
    genirq: Add affinity hint to irq allocation
    genirq: Introduce IRQD_AFFINITY_MANAGED flag
    genirq/msi: Remove unused MSI_FLAG_IDENTITY_MAP
    irqchip/s3c24xx: Fixup IO accessors for big endian
    irqchip/exynos-combiner: Fix usage of __raw IO
    irqdomain: Fix disposal of mappings for interrupt hierarchies
    irqchip/aspeed-vic: Add irq controller for Aspeed
    doc/devicetree: Add Aspeed VIC bindings
    x86/PCI/VMD: Use untracked irq handler
    genirq: Add untracked irq handler
    irqchip/mips-gic: Populate irq_domain names
    irqchip/gicv3-its: Implement two-level(indirect) device table support
    ...

    Linus Torvalds
     
  • Pull timer updates from Thomas Gleixner:
    "This update provides the following changes:

    - The rework of the timer wheel which addresses the shortcomings of
    the current wheel (cascading, slow search for next expiring timer,
    etc). That's the first major change of the wheel in almost 20
    years since Finn implemted it.

    - A large overhaul of the clocksource drivers init functions to
    consolidate the Device Tree initialization

    - Some more Y2038 updates

    - A capability fix for timerfd

    - Yet another clock chip driver

    - The usual pile of updates, comment improvements all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (130 commits)
    tick/nohz: Optimize nohz idle enter
    clockevents: Make clockevents_subsys static
    clocksource/drivers/time-armada-370-xp: Fix return value check
    timers: Implement optimization for same expiry time in mod_timer()
    timers: Split out index calculation
    timers: Only wake softirq if necessary
    timers: Forward the wheel clock whenever possible
    timers/nohz: Remove pointless tick_nohz_kick_tick() function
    timers: Optimize collect_expired_timers() for NOHZ
    timers: Move __run_timers() function
    timers: Remove set_timer_slack() leftovers
    timers: Switch to a non-cascading wheel
    timers: Reduce the CPU index space to 256k
    timers: Give a few structs and members proper names
    hlist: Add hlist_is_singular_node() helper
    signals: Use hrtimer for sigtimedwait()
    timers: Remove the deprecated mod_timer_pinned() API
    timers, net/ipv4/inet: Initialize connection request timers as pinned
    timers, drivers/tty/mips_ejtag: Initialize the poll timer as pinned
    timers, drivers/tty/metag_da: Initialize the poll timer as pinned
    ...

    Linus Torvalds
     
  • Pull x86 fix from Ingo Molnar:
    "Leftover fix from the v4.7 cycle: adds a reboot quirk"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/reboot: Add Dell Optiplex 7450 AIO reboot quirk

    Linus Torvalds
     
  • Pull x86 timer updates from Ingo Molnar:
    "The main change in this tree is the reworking, fixing and extension of
    the TSC frequency enumeration code (by Len Brown)"

    * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tsc: Remove the unused check_tsc_disabled()
    x86/tsc: Enumerate BXT tsc_khz via CPUID
    x86/tsc: Enumerate SKL cpu_khz and tsc_khz via CPUID
    x86/tsc_msr: Remove irqoff around MSR-based TSC enumeration
    x86/tsc_msr: Add Airmont reference clock values
    x86/tsc_msr: Correct Silvermont reference clock values
    x86/tsc_msr: Update comments, expand definitions
    x86/tsc_msr: Remove debugging messages
    x86/tsc_msr: Identify Intel-specific code
    Revert "x86/tsc: Add missing Cherrytrail frequency to the table"

    Linus Torvalds
     
  • Pull x86 platform updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Intel-SoC enhancements (Andy Shevchenko)

    - Intel CPU symbolic model definition rework (Dave Hansen)

    - ... other misc changes"

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    x86/sfi: Enable enumeration of SD devices
    x86/pci: Use MRFLD abbreviation for Merrifield
    x86/platform/intel-mid: Make vertical indentation consistent
    x86/platform/intel-mid: Mark regulators explicitly defined
    x86/platform/intel-mid: Rename mrfl.c to mrfld.c
    x86/platform/intel-mid: Enable spidev on Intel Edison boards
    x86/platform/intel-mid: Extend PWRMU to support Penwell
    x86/pci, x86/platform/intel_mid_pci: Remove duplicate power off code
    x86/platform/intel-mid: Add pinctrl for Intel Merrifield
    x86/platform/intel-mid: Enable GPIO expanders on Edison
    x86/platform/intel-mid: Add Power Management Unit driver
    x86/platform/atom/punit: Enable support for Merrifield
    x86/platform/intel_mid_pci: Rework IRQ0 workaround
    x86, thermal: Clean up and fix CPU model detection for intel_soc_dts_thermal
    x86, mmc: Use Intel family name macros for mmc driver
    x86/intel_telemetry: Use Intel family name macros for telemetry driver
    x86/acpi/lss: Use Intel family name macros for the acpi_lpss driver
    x86/cpufreq: Use Intel family name macros for the intel_pstate cpufreq driver
    x86/platform: Use new Intel model number macros
    x86/intel_idle: Use Intel family macros for intel_idle
    ...

    Linus Torvalds
     
  • Pull x86 fpu updates from Ingo Molnar:
    "The main x86 FPU changes in this cycle were:

    - a large series of cleanups, fixes and enhancements to re-enable the
    XSAVES instruction on Intel CPUs - which is the most advanced
    instruction to do FPU context switches (Yu-cheng Yu, Fenghua Yu)

    - Add FPU tracepoints for the FPU state machine (Dave Hansen)"

    * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/fpu: Do not BUG_ON() in early FPU code
    x86/fpu/xstate: Re-enable XSAVES
    x86/fpu/xstate: Fix fpstate_init() for XRSTORS
    x86/fpu/xstate: Return NULL for disabled xstate component address
    x86/fpu/xstate: Fix __fpu_restore_sig() for XSAVES
    x86/fpu/xstate: Fix xstate_offsets, xstate_sizes for non-extended xstates
    x86/fpu/xstate: Fix XSTATE component offset print out
    x86/fpu/xstate: Fix PTRACE frames for XSAVES
    x86/fpu/xstate: Fix supervisor xstate component offset
    x86/fpu/xstate: Align xstate components according to CPUID
    x86/fpu/xstate: Copy xstate registers directly to the signal frame when compacted format is in use
    x86/fpu/xstate: Keep init_fpstate.xsave.header.xfeatures as zero for init optimization
    x86/fpu/xstate: Rename 'xstate_size' to 'fpu_kernel_xstate_size', to distinguish it from 'fpu_user_xstate_size'
    x86/fpu/xstate: Define and use 'fpu_user_xstate_size'
    x86/fpu: Add tracepoints to dump FPU state at key points

    Linus Torvalds
     
  • Pull x86 stackdump update from Ingo Molnar:
    "A number of stackdump enhancements"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/dumpstack: Add show_stack_regs() and use it
    printk: Make the printk*once() variants return a value
    x86/dumpstack: Honor supplied @regs arg

    Linus Torvalds
     
  • Pull x86 cleanups from Ingo Molnar:
    "Three small cleanups"

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    lguest: Read offset of device_cap later
    lguest: Read length of device_cap later
    x86: Do away with ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB

    Linus Torvalds
     
  • Pull x86 build updates from Ingo Molnar:
    "A build system fix and a cleanup"

    * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    kbuild: Remove stale asm-generic wrappers
    kbuild, x86: Track generated headers with generated-y

    Linus Torvalds
     
  • Pull x86 boot updates from Ingo Molnar:
    "The main changes:

    - add initial commits to randomize kernel memory section virtual
    addresses, enabled via a new kernel option: RANDOMIZE_MEMORY
    (Thomas Garnier, Kees Cook, Baoquan He, Yinghai Lu)

    - enhance KASLR (RANDOMIZE_BASE) physical memory randomization (Kees
    Cook)

    - EBDA/BIOS region boot quirk cleanups (Andy Lutomirski, Ingo Molnar)

    - misc cleanups/fixes"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/boot: Simplify EBDA-vs-BIOS reservation logic
    x86/boot: Clarify what x86_legacy_features.reserve_bios_regions does
    x86/boot: Reorganize and clean up the BIOS area reservation code
    x86/mm: Do not reference phys addr beyond kernel
    x86/mm: Add memory hotplug support for KASLR memory randomization
    x86/mm: Enable KASLR for vmalloc memory regions
    x86/mm: Enable KASLR for physical mapping memory regions
    x86/mm: Implement ASLR for kernel memory regions
    x86/mm: Separate variable for trampoline PGD
    x86/mm: Add PUD VA support for physical mapping
    x86/mm: Update physical mapping variable names
    x86/mm: Refactor KASLR entropy functions
    x86/KASLR: Fix boot crash with certain memory configurations
    x86/boot/64: Add forgotten end of function marker
    x86/KASLR: Allow randomization below the load address
    x86/KASLR: Extend kernel image physical address randomization to addresses larger than 4G
    x86/KASLR: Randomize virtual address separately
    x86/KASLR: Clarify identity map interface
    x86/boot: Refuse to build with data relocations
    x86/KASLR, x86/power: Remove x86 hibernation restrictions

    Linus Torvalds
     
  • Pull x86 mm updates from Ingo Molnar:
    "Various x86 low level modifications:

    - preparatory work to support virtually mapped kernel stacks (Andy
    Lutomirski)

    - support for 64-bit __get_user() on 32-bit kernels (Benjamin
    LaHaise)

    - (involved) workaround for Knights Landing CPU erratum (Dave Hansen)

    - MPX enhancements (Dave Hansen)

    - mremap() extension to allow remapping of the special VDSO vma, for
    purposes of user level context save/restore (Dmitry Safonov)

    - hweight and entry code cleanups (Borislav Petkov)

    - bitops code generation optimizations and cleanups with modern GCC
    (H. Peter Anvin)

    - syscall entry code optimizations (Paolo Bonzini)"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits)
    x86/mm/cpa: Add missing comment in populate_pdg()
    x86/mm/cpa: Fix populate_pgd(): Stop trying to deallocate failed PUDs
    x86/syscalls: Add compat_sys_preadv64v2/compat_sys_pwritev64v2
    x86/smp: Remove unnecessary initialization of thread_info::cpu
    x86/smp: Remove stack_smp_processor_id()
    x86/uaccess: Move thread_info::addr_limit to thread_struct
    x86/dumpstack: Rename thread_struct::sig_on_uaccess_error to sig_on_uaccess_err
    x86/uaccess: Move thread_info::uaccess_err and thread_info::sig_on_uaccess_err to thread_struct
    x86/dumpstack: When OOPSing, rewind the stack before do_exit()
    x86/mm/64: In vmalloc_fault(), use CR3 instead of current->active_mm
    x86/dumpstack/64: Handle faults when printing the "Stack: " part of an OOPS
    x86/dumpstack: Try harder to get a call trace on stack overflow
    x86/mm: Remove kernel_unmap_pages_in_pgd() and efi_cleanup_page_tables()
    x86/mm/cpa: In populate_pgd(), don't set the PGD entry until it's populated
    x86/mm/hotplug: Don't remove PGD entries in remove_pagetable()
    x86/mm: Use pte_none() to test for empty PTE
    x86/mm: Disallow running with 32-bit PTEs to work around erratum
    x86/mm: Ignore A/D bits in pte/pmd/pud_none()
    x86/mm: Move swap offset/type up in PTE to work around erratum
    x86/entry: Inline enter_from_user_mode()
    ...

    Linus Torvalds
     
  • Pull x86/apic updates from Ingo Molnar:
    "Misc cleanups and a small fix"

    * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/apic: Remove the unused struct apic::apic_id_mask field
    x86/apic: Fix misspelled APIC
    x86/ioapic: Simplify ioapic_setup_resources()

    Linus Torvalds
     
  • Pull NOHZ updates from Ingo Molnar:

    - fix system/idle cputime leaked on cputime accounting (all nohz
    configs) (Rik van Riel)

    - remove the messy, ad-hoc irqtime account on nohz-full and make it
    compatible with CONFIG_IRQ_TIME_ACCOUNTING=y instead (Rik van Riel)

    - cleanups (Frederic Weisbecker)

    - remove unecessary irq disablement in the irqtime code (Rik van Riel)

    * 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/cputime: Drop local_irq_save/restore from irqtime_account_irq()
    sched/cputime: Reorganize vtime native irqtime accounting headers
    sched/cputime: Clean up the old vtime gen irqtime accounting completely
    sched/cputime: Replace VTIME_GEN irq time code with IRQ_TIME_ACCOUNTING code
    sched/cputime: Count actually elapsed irq & softirq time

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:

    - introduce and use task_rcu_dereference()/try_get_task_struct() to fix
    and generalize task_struct handling (Oleg Nesterov)

    - do various per entity load tracking (PELT) fixes and optimizations
    (Peter Zijlstra)

    - cputime virt-steal time accounting enhancements/fixes (Wanpeng Li)

    - introduce consolidated cputime output file cpuacct.usage_all and
    related refactorings (Zhao Lei)

    - ... plus misc fixes and enhancements

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/core: Panic on scheduling while atomic bugs if kernel.panic_on_warn is set
    sched/cpuacct: Introduce cpuacct.usage_all to show all CPU stats together
    sched/cpuacct: Use loop to consolidate code in cpuacct_stats_show()
    sched/cpuacct: Merge cpuacct_usage_index and cpuacct_stat_index enums
    sched/fair: Rework throttle_count sync
    sched/core: Fix sched_getaffinity() return value kerneldoc comment
    sched/fair: Reorder cgroup creation code
    sched/fair: Apply more PELT fixes
    sched/fair: Fix PELT integrity for new tasks
    sched/cgroup: Fix cpu_cgroup_fork() handling
    sched/fair: Fix PELT integrity for new groups
    sched/fair: Fix and optimize the fork() path
    sched/cputime: Add steal time support to full dynticks CPU time accounting
    sched/cputime: Fix prev steal time accouting during CPU hotplug
    KVM: Fix steal clock warp during guest CPU hotplug
    sched/debug: Always show 'nr_migrations'
    sched/fair: Use task_rcu_dereference()
    sched/api: Introduce task_rcu_dereference() and try_get_task_struct()
    sched/idle: Optimize the generic idle loop
    sched/fair: Fix the wrong throttled clock time for cfs_rq_clock_task()

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "With over 300 commits it's been a busy cycle - with most of the work
    concentrated on the tooling side (as it should).

    The main kernel side enhancements were:

    - Add per event callchain limit: Recently we introduced a sysctl to
    tune the max-stack for all events for which callchains were
    requested:

    $ sysctl kernel.perf_event_max_stack
    kernel.perf_event_max_stack = 127

    Now this patch introduces a way to configure this per event, i.e.
    this becomes possible:

    $ perf record -e sched:*/max-stack=2/ -e block:*/max-stack=10/ -a

    allowing finer tuning of how much buffer space callchains use.

    This uses an u16 from the reserved space at the end, leaving
    another u16 for future use.

    There has been interest in even finer tuning, namely to control the
    max stack for kernel and userspace callchains separately. Further
    discussion is needed, we may for instance use the remaining u16 for
    that and when it is present, assume that the sample_max_stack
    introduced in this patch applies for the kernel, and the u16 left
    is used for limiting the userspace callchain (Arnaldo Carvalho de
    Melo)

    - Optimize AUX event (hardware assisted side-band event) delivery
    (Kan Liang)

    - Rework Intel family name macro usage (this is partially x86 arch
    work) (Dave Hansen)

    - Refine and fix Intel LBR support (David Carrillo-Cisneros)

    - Add support for Intel 'TopDown' events (Andi Kleen)

    - Intel uncore PMU driver fixes and enhancements (Kan Liang)

    - ... other misc changes.

    Here's an incomplete list of the tooling enhancements (but there's
    much more, see the shortlog and the git log for details):

    - Support cross unwinding, i.e. collecting '--call-graph dwarf'
    perf.data files in one machine and then doing analysis in another
    machine of a different hardware architecture. This enables, for
    instance, to do:

    $ perf record -a --call-graph dwarf

    on a x86-32 or aarch64 system and then do 'perf report' on it on a
    x86_64 workstation (He Kuang)

    - Allow reading from a backward ring buffer (one setup via
    sys_perf_event_open() with perf_event_attr.write_backward = 1)
    (Wang Nan)

    - Finish merging initial SDT (Statically Defined Traces) support, see
    cset comments for details about how it all works (Masami Hiramatsu)

    - Support attaching eBPF programs to tracepoints (Wang Nan)

    - Add demangling of symbols in programs written in the Rust language
    (David Tolnay)

    - Add support for tracepoints in the python binding, including an
    example, that sets up and parses sched:sched_switch events,
    tools/perf/python/tracepoint.py (Jiri Olsa)

    - Introduce --stdio-color to set up the color output mode selection
    in 'annotate' and 'report', allowing emit color escape sequences
    when redirecting the output of these tools (Arnaldo Carvalho de
    Melo)

    - Add 'callindent' option to 'perf script -F', to indent the Intel PT
    call stack, making this output more ftrace-like (Adrian Hunter,
    Andi Kleen)

    - Allow dumping the object files generated by llvm when processing
    eBPF scriptlet events (Wang Nan)

    - Add stackcollapse.py script to help generating flame graphs (Paolo
    Bonzini)

    - Add --ldlat option to 'perf mem' to specify load latency for loads
    event (e.g. cpu/mem-loads/ ) (Jiri Olsa)

    - Tooling support for Intel TopDown counters, recently added to the
    kernel (Andi Kleen)"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (303 commits)
    perf tests: Add is_printable_array test
    perf tools: Make is_printable_array global
    perf script python: Fix string vs byte array resolving
    perf probe: Warn unmatched function filter correctly
    perf cpu_map: Add more helpers
    perf stat: Balance opening and reading events
    tools: Copy linux/{hash,poison}.h and check for drift
    perf tools: Remove include/linux/list.h from perf's MANIFEST
    tools: Copy the bitops files accessed from the kernel and check for drift
    Remove: kernel unistd*h files from perf's MANIFEST, not used
    perf tools: Remove tools/perf/util/include/linux/const.h
    perf tools: Remove tools/perf/util/include/asm/byteorder.h
    perf tools: Add missing linux/compiler.h include to perf-sys.h
    perf jit: Remove some no-op error handling
    perf jit: Add missing curly braces
    objtool: Initialize variable to silence old compiler
    objtool: Add -I$(srctree)/tools/arch/$(ARCH)/include/uapi
    perf record: Add --tail-synthesize option
    perf session: Don't warn about out of order event if write_backward is used
    perf tools: Enable overwrite settings
    ...

    Linus Torvalds
     
  • Pull RAS updates from Ingo Molnar:
    "The biggest change in this cycle was an enhancement by Yazen Ghannam
    to reduce the number of MCE error injection related IPIs.

    The rest are smaller fixes"

    * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce: Fix mce_rdmsrl() warning message
    x86/RAS/AMD: Reduce the number of IPIs when prepping error injection
    x86/mce/AMD: Increase size of the bank_map type
    x86/mce: Do not use bank 1 for APEI generated error logs

    Linus Torvalds
     
  • Pull locking updates from Ingo Molnar:
    "The locking tree was busier in this cycle than the usual pattern - a
    couple of major projects happened to coincide.

    The main changes are:

    - implement the atomic_fetch_{add,sub,and,or,xor}() API natively
    across all SMP architectures (Peter Zijlstra)

    - add atomic_fetch_{inc/dec}() as well, using the generic primitives
    (Davidlohr Bueso)

    - optimize various aspects of rwsems (Jason Low, Davidlohr Bueso,
    Waiman Long)

    - optimize smp_cond_load_acquire() on arm64 and implement LSE based
    atomic{,64}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}()
    on arm64 (Will Deacon)

    - introduce smp_acquire__after_ctrl_dep() and fix various barrier
    mis-uses and bugs (Peter Zijlstra)

    - after discovering ancient spin_unlock_wait() barrier bugs in its
    implementation and usage, strengthen its semantics and update/fix
    usage sites (Peter Zijlstra)

    - optimize mutex_trylock() fastpath (Peter Zijlstra)

    - ... misc fixes and cleanups"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (67 commits)
    locking/atomic: Introduce inc/dec variants for the atomic_fetch_$op() API
    locking/barriers, arch/arm64: Implement LDXR+WFE based smp_cond_load_acquire()
    locking/static_keys: Fix non static symbol Sparse warning
    locking/qspinlock: Use __this_cpu_dec() instead of full-blown this_cpu_dec()
    locking/atomic, arch/tile: Fix tilepro build
    locking/atomic, arch/m68k: Remove comment
    locking/atomic, arch/arc: Fix build
    locking/Documentation: Clarify limited control-dependency scope
    locking/atomic, arch/rwsem: Employ atomic_long_fetch_add()
    locking/atomic, arch/qrwlock: Employ atomic_fetch_add_acquire()
    locking/atomic, arch/mips: Convert to _relaxed atomics
    locking/atomic, arch/alpha: Convert to _relaxed atomics
    locking/atomic: Remove the deprecated atomic_{set,clear}_mask() functions
    locking/atomic: Remove linux/atomic.h:atomic_fetch_or()
    locking/atomic: Implement atomic{,64,_long}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}()
    locking/atomic: Fix atomic64_relaxed() bits
    locking/atomic, arch/xtensa: Implement atomic_fetch_{add,sub,and,or,xor}()
    locking/atomic, arch/x86: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()
    locking/atomic, arch/tile: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()
    locking/atomic, arch/sparc: Implement atomic{,64}_fetch_{add,sub,and,or,xor}()
    ...

    Linus Torvalds
     
  • Pull EFI updates from Ingo Molnar:
    "The biggest change in this cycle were SGI/UV related changes that
    clean up and fix UV boot quirks and problems.

    There's also various smaller cleanups and refinements"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    efi: Reorganize the GUID table to make it easier to read
    x86/efi: Remove the unused efi_get_time() function
    x86/efi: Update efi_thunk() to use the the arch_efi_call_virt*() macros
    x86/uv: Update uv_bios_call() to use efi_call_virt_pointer()
    efi: Convert efi_call_virt() to efi_call_virt_pointer()
    x86/efi: Remove unused variable 'efi'
    efi: Document #define FOO_PROTOCOL_GUID layout
    efibc: Report more information in the error messages

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The main changes in this cycle were:

    - documentation updates

    - miscellaneous fixes

    - minor reorganization of code

    - torture-test updates"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
    rcu: Correctly handle sparse possible cpus
    rcu: sysctl: Panic on RCU Stall
    rcu: Fix a typo in a comment
    rcu: Make call_rcu_tasks() tolerate first call with irqs disabled
    rcu: Disable TASKS_RCU for usermode Linux
    rcu: No ordering for rcu_assign_pointer() of NULL
    rcutorture: Fix error return code in rcu_perf_init()
    torture: Inflict default jitter
    rcuperf: Don't treat gp_exp mis-setting as a WARN
    rcutorture: Drop "-soundhw pcspkr" from x86 boot arguments
    rcutorture: Don't specify the cpu type of QEMU on PPC
    rcutorture: Make -soundhw a x86 specific option
    rcutorture: Use vmlinux as the fallback kernel image
    rcutorture/doc: Create initrd using dracut
    torture: Stop onoff task if there is only one cpu
    torture: Add starvation events to error summary
    torture: Break online and offline functions out of torture_onoff()
    torture: Forgive lengthy trace dumps and preemption
    torture: Remove CONFIG_RCU_TORTURE_TEST_RUNNABLE, simplify code
    torture: Simplify code, eliminate RCU_PERF_TEST_RUNNABLE
    ...

    Linus Torvalds
     

25 Jul, 2016

4 commits

  • …t/groeck/linux-staging

    Pull hwmon updates from Guenter Roeck:

    - New drivers for FTS BMC "Teutates", TI INA3221, and Sensirion SHT3x.

    - Added support for Microchip MCP9808 and TI TMP461.

    - Cleanup and minor fixes in various drivers.

    * tag 'hwmon-for-linus-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (37 commits)
    Documentation: dtb: xgene: Add hwmon dts binding documentation
    hwmon: (ftsteutates) Remove unused including <linux/version.h>
    hwmon: (adt7411) set bit 3 in CFG1 register
    hwmon: Add driver for FTS BMC chip "Teutates"
    hwmon: (sht3x) add humidity heater element control
    hwmon: (jc42) Add support for generic JC-42.4 devicetree binding
    dt/bindings: Add bindings for JC-42.4 compatible temperature sensors
    hwmon: (tmp102) Convert to use regmap, and drop local cache
    hwmon: (tmp102) Rework chip configuration
    hwmon: (tmp102) Improve handling of initial read delay
    hwmon: (lm90) Drop unnecessary else statements
    hwmon: (lm90) Use bool for valid flag
    hwmon: (lm90) Read limit registers only once
    hwmon: (lm90) Simplify read functions
    hwmon: (lm90) Use devm_hwmon_device_register_with_groups
    hwmon: (lm90) Use devm_add_action for cleanup
    hwmon: (lm75) Convert to use regmap
    hwmon: (lm75) Add update_interval attribute
    hwmon: (lm75) Drop lm75_read_value and lm75_write_value
    hwmon: (lm75) Handle cleanup with devm_add_action
    ...

    Linus Torvalds
     
  • …rnel/git/horms/renesas

    Pull SH drivers updates from Simon Horman:
    "Drop use of SH Drivers on Renesas ARM Based SoCs.

    I expect this to be my last pull request for these drivers as it
    removes usage of them from Renesas ARM Based SoCs and my
    co-maintenance of them.

    The drivers are still used by some SH SoCs and listed under SUPERH in
    the MAINTAINERS file"

    * tag 'renesas-sh-drivers-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
    MAINTAINERS: Drop drivers/sh/ for Renesas ARM
    drivers: sh: Stop using the legacy clock domain on ARM

    Linus Torvalds
     
  • Pull USB updates from Greg KH:
    "Here's the big USB driver update for 4.8-rc1. Lots of the normal
    stuff in here, musb, gadget, xhci, and other updates and fixes. All
    of the details are in the shortlog.

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

    * tag 'usb-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (169 commits)
    cdc-acm: beautify probe()
    cdc-wdm: use the common CDC parser
    cdc-acm: cleanup error handling
    cdc-acm: use the common parser
    usbnet: move the CDC parser into USB core
    usb: musb: sunxi: Simplify dr_mode handling
    usb: musb: sunxi: make unexported symbols static
    usb: musb: cppi41: add dma channel tracepoints
    usb: musb: cppi41: move struct cppi41_dma_channel to header
    usb: musb: cleanup cppi_dma header
    usb: musb: gadget: add usb-request tracepoints
    usb: musb: host: add urb tracepoints
    usb: musb: add tracepoints to dump interrupt events
    usb: musb: add tracepoints for register access
    usb: musb: dsps: use musb register read/write wrappers instead
    usb: musb: switch dev_dbg to tracepoints
    usb: musb: add tracepoints support for debugging
    usb: quirks: Add no-lpm quirk for Elan
    phy: rcar-gen3-usb2: fix mutex_lock calling in interrupt
    phy: rockhip-usb: use devm_add_action_or_reset()
    ...

    Linus Torvalds
     
  • Pull tty/serial driver updates from Greg KH:
    "Here is the big tty and serial driver update for 4.8-rc1.

    Lots of good cleanups from Jiri on a number of vt and other tty
    related things, and the normal driver updates. Full details are in
    the shortlog.

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

    * tag 'tty-4.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (90 commits)
    tty/serial: atmel: enforce tasklet init and termination sequences
    serial: sh-sci: Stop transfers in sci_shutdown()
    serial: 8250_ingenic: drop #if conditional surrounding earlycon code
    serial: 8250_mtk: drop !defined(MODULE) conditional
    serial: 8250_uniphier: drop !defined(MODULE) conditional
    earlycon: mark earlycon code as __used iif the caller is built-in
    tty/serial/8250: use mctrl_gpio helpers
    serial: mctrl_gpio: enable API usage only for initialized mctrl_gpios struct
    serial: mctrl_gpio: add modem control read routine
    tty/serial/8250: make UART_MCR register access consistent
    serial: 8250_mid: Read RX buffer on RX DMA timeout for DNV
    serial: 8250_dma: Export serial8250_rx_dma_flush()
    dmaengine: hsu: Export hsu_dma_get_status()
    tty: serial: 8250: add CON_CONSDEV to flags
    tty: serial: samsung: add byte-order aware bit functions
    tty: serial: samsung: fixup accessors for endian
    serial: sirf: make fifo functions static
    serial: mps2-uart: make driver explicitly non-modular
    serial: mvebu-uart: free the IRQ in ->shutdown()
    serial/bcm63xx_uart: use correct alias naming
    ...

    Linus Torvalds