12 Jun, 2014

2 commits

  • do_posix_clock_monotonic_gettime() is a leftover from the initial
    posix timer implementation which maps to ktime_get_ts(). Remove the
    silly wrapper while at it.

    Signed-off-by: Thomas Gleixner
    Cc: John Stultz
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20140611234606.931409215@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • do_posix_clock_monotonic_gettime() is a leftover from the initial
    posix timer implementation which maps to ktime_get_ts()

    Signed-off-by: Thomas Gleixner
    Cc: John Stultz
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20140611234606.764810535@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

09 Jun, 2014

9 commits

  • Pull 9p fixes from Eric Van Hensbergen:
    "Two bug fixes, one in xattr error path and the other in parsing
    major/minor numbers from devices"

    * tag 'for-linus-3.16-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
    9P: fix return value in v9fs_fid_xattr_set
    fs/9p: adjust sscanf parameters accordingly to the variable types

    Linus Torvalds
     
  • This function is supposed to return true if the new load imbalance is
    worse than the old one. It didn't. I can only hope brown paper bags
    are in style.

    Now things converge much better on both the 4 node and 8 node systems.

    I am not sure why this did not seem to impact specjbb performance on the
    4 node system, which is the system I have full-time access to.

    This bug was introduced recently, with commit e63da03639cc ("sched/numa:
    Allow task switch if load imbalance improves")

    Signed-off-by: Rik van Riel
    Signed-off-by: Linus Torvalds

    Rik van Riel
     
  • shrink_inactive_list() used to wait 0.1s to avoid congestion when all
    the pages that were isolated from the inactive list were dirty but not
    under active writeback. That makes no real sense, and apparently causes
    major interactivity issues under some loads since 3.11.

    The ostensible reason for it was to wait for kswapd to start writing
    pages, but that seems questionable as well, since the congestion wait
    code seems to trigger for kswapd itself as well. Also, the logic behind
    delaying anything when we haven't actually started writeback is not
    clear - it only delays actually starting that writeback.

    We'll still trigger the congestion waiting if

    (a) the process is kswapd, and we hit pages flagged for immediate
    reclaim

    (b) the process is not kswapd, and the zone backing dev writeback is
    actually congested.

    This probably needs to be revisited, but as it is this fixes a reported
    regression.

    Reported-by: Felipe Contreras
    Pinpointed-by: Hillf Danton
    Cc: Michal Hocko
    Cc: Andrew Morton
    Cc: Mel Gorman
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull ext4 updates from Ted Ts'o:
    "Clean ups and miscellaneous bug fixes, in particular for the new
    collapse_range and zero_range fallocate functions. In addition,
    improve the scalability of adding and remove inodes from the orphan
    list"

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits)
    ext4: handle symlink properly with inline_data
    ext4: fix wrong assert in ext4_mb_normalize_request()
    ext4: fix zeroing of page during writeback
    ext4: remove unused local variable "stored" from ext4_readdir(...)
    ext4: fix ZERO_RANGE test failure in data journalling
    ext4: reduce contention on s_orphan_lock
    ext4: use sbi in ext4_orphan_{add|del}()
    ext4: use EXT_MAX_BLOCKS in ext4_es_can_be_merged()
    ext4: add missing BUFFER_TRACE before ext4_journal_get_write_access
    ext4: remove unnecessary double parentheses
    ext4: do not destroy ext4_groupinfo_caches if ext4_mb_init() fails
    ext4: make local functions static
    ext4: fix block bitmap validation when bigalloc, ^flex_bg
    ext4: fix block bitmap initialization under sparse_super2
    ext4: find the group descriptors on a 1k-block bigalloc,meta_bg filesystem
    ext4: avoid unneeded lookup when xattr name is invalid
    ext4: fix data integrity sync in ordered mode
    ext4: remove obsoleted check
    ext4: add a new spinlock i_raw_lock to protect the ext4's raw inode
    ext4: fix locking for O_APPEND writes
    ...

    Linus Torvalds
     
  • Pull LLVM patches from Behan Webster:
    "Next set of patches to support compiling the kernel with clang.
    They've been soaking in linux-next since the last merge window.

    More still in the works for the next merge window..."

    * tag 'llvmlinux-for-v3.16' of git://git.linuxfoundation.org/llvmlinux/kernel:
    arm, unwind, LLVMLinux: Enable clang to be used for unwinding the stack
    ARM: LLVMLinux: Change "extern inline" to "static inline" in glue-cache.h
    all: LLVMLinux: Change DWARF flag to support gcc and clang
    net: netfilter: LLVMLinux: vlais-netfilter
    crypto: LLVMLinux: aligned-attribute.patch

    Linus Torvalds
     
  • Pull x86 vdso build fix from Peter Anvin:
    "This fixes building the vdso code on older Linux systems, and probably
    some non-Linux systems"

    * 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, vdso: Use for littleendian access

    Linus Torvalds
     
  • Now that 3.15 is released, this merges the 'next' branch into 'master',
    bringing us to the normal situation where my 'master' branch is the
    merge window.

    * accumulated work in next: (6809 commits)
    ufs: sb mutex merge + mutex_destroy
    powerpc: update comments for generic idle conversion
    cris: update comments for generic idle conversion
    idle: remove cpu_idle() forward declarations
    nbd: zero from and len fields in NBD_CMD_DISCONNECT.
    mm: convert some level-less printks to pr_*
    MAINTAINERS: adi-buildroot-devel is moderated
    MAINTAINERS: add linux-api for review of API/ABI changes
    mm/kmemleak-test.c: use pr_fmt for logging
    fs/dlm/debug_fs.c: replace seq_printf by seq_puts
    fs/dlm/lockspace.c: convert simple_str to kstr
    fs/dlm/config.c: convert simple_str to kstr
    mm: mark remap_file_pages() syscall as deprecated
    mm: memcontrol: remove unnecessary memcg argument from soft limit functions
    mm: memcontrol: clean up memcg zoneinfo lookup
    mm/memblock.c: call kmemleak directly from memblock_(alloc|free)
    mm/mempool.c: update the kmemleak stack trace for mempool allocations
    lib/radix-tree.c: update the kmemleak stack trace for radix tree allocations
    mm: introduce kmemleak_update_trace()
    mm/kmemleak.c: use %u to print ->checksum
    ...

    Linus Torvalds
     
  • Linus Torvalds
     
  • This reverts commit 3e1a878b7ccdb31da6d9d2b855c72ad87afeba3f.

    It came in very late, and already has one reported failure: Sitsofe
    reports that the current tree fails to boot on his EeePC, and bisected
    it down to this. Rather than waste time trying to figure out what's
    wrong, just revert it.

    Reported-by: Sitsofe Wheeler
    Cc: Igor Mammedov
    Cc: Toshi Kani
    Cc: Thomas Gleixner
    Acked-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

08 Jun, 2014

13 commits

  • Pull clock framework updates from Mike Turquette:
    "The clock framework changes for 3.16 are pretty typical: mostly clock
    driver additions and fixes. There are additions to the clock core
    code for some of the basic types (e.g. the common divider type has
    some fixes and featured added to it).

    One minor annoyance is a last-minute dependency that wasn't handled
    quite right. Commit ba0fae3b06a6 ("clk: berlin: add core clock driver
    for BG2/BG2CD") in this pull request depends on
    include/dt-bindings/clock/berlin2.h, which is already in your tree via
    the arm-soc pull request. Building for the berlin platform will break
    when the clk tree is built on it's own, but merged into your master
    branch everything should be fine"

    * tag 'clk-for-linus-3.16' of git://git.linaro.org/people/mike.turquette/linux: (75 commits)
    mmc: sunxi: Add driver for SD/MMC hosts found on Allwinner sunxi SoCs
    clk: export __clk_round_rate for providers
    clk: versatile: free icst on error return
    clk: qcom: Return error pointers for unimplemented clocks
    clk: qcom: Support msm8974pro global clock control hardware
    clk: qcom: Properly support display clocks on msm8974
    clk: qcom: Support display RCG clocks
    clk: qcom: Return highest rate when round_rate() exceeds plan
    clk: qcom: Fix mmcc-8974's PLL configurations
    clk: qcom: Fix clk_rcg2_is_enabled() check
    clk: berlin: add core clock driver for BG2Q
    clk: berlin: add core clock driver for BG2/BG2CD
    clk: berlin: add driver for BG2x complex divider cells
    clk: berlin: add driver for BG2x simple PLLs
    clk: berlin: add driver for BG2x audio/video PLL
    clk: st: Terminate of match table
    clk/exynos4: Fix compilation warning
    ARM: shmobile: r8a7779: Add clock index macros for DT sources
    clk: divider: Fix overflow in clk_divider_bestdiv
    clk: u300: Terminate of match table
    ...

    Linus Torvalds
     
  • Pull VFIO updates from Alex Williamson:
    "A handful of VFIO bug fixes for v3.16"

    * tag 'vfio-v3.16-rc1' of git://github.com/awilliam/linux-vfio:
    drivers/vfio/pci: Fix wrong MSI interrupt count
    drivers/vfio: Rework offsetofend()
    vfio/iommu_type1: Avoid overflow
    vfio/pci: Fix unchecked return value
    vfio/pci: Fix sizing of DPA and THP express capabilities

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "Here is the crypto update for 3.16:

    - Added test vectors for SHA/AES-CCM/DES-CBC/3DES-CBC.
    - Fixed a number of error-path memory leaks in tcrypt.
    - Fixed error-path memory leak in caam.
    - Removed unnecessary global mutex from mxs-dcp.
    - Added ahash walk interface that can actually be asynchronous.
    - Cleaned up caam error reporting.
    - Allow crypto_user get operation to be used by non-root users.
    - Add support for SSS module on Exynos.
    - Misc fixes"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6: (60 commits)
    crypto: testmgr - add aead cbc des, des3_ede tests
    crypto: testmgr - Fix DMA-API warning
    crypto: cesa - tfm->__crt_alg->cra_type directly
    crypto: sahara - tfm->__crt_alg->cra_name directly
    crypto: padlock - tfm->__crt_alg->cra_name directly
    crypto: n2 - tfm->__crt_alg->cra_name directly
    crypto: dcp - tfm->__crt_alg->cra_name directly
    crypto: cesa - tfm->__crt_alg->cra_name directly
    crypto: ccp - tfm->__crt_alg->cra_name directly
    crypto: geode - Don't use tfm->__crt_alg->cra_name directly
    crypto: geode - Weed out printk() from probe()
    crypto: geode - Consistently use AES_KEYSIZE_128
    crypto: geode - Kill AES_IV_LENGTH
    crypto: geode - Kill AES_MIN_BLOCK_SIZE
    crypto: mxs-dcp - Remove global mutex
    crypto: hash - Add real ahash walk interface
    hwrng: n2-drv - Introduce the use of the managed version of kzalloc
    crypto: caam - reinitialize keys_fit_inline for decrypt and givencrypt
    crypto: s5p-sss - fix multiplatform build
    hwrng: timeriomem - remove unnecessary OOM messages
    ...

    Linus Torvalds
     
  • Pull exofs raid6 support from Boaz Harrosh:
    "These simple patches will enable raid6 using the kernel's raid6_pq
    engine for support under exofs and pnfs-objects.

    There is nothing needed to do at exofs and pnfs-obj. Just fire your
    mkfs.exofs with --raid=6 (that was already supported before) and off
    you go as usual. The ORE will pick up the new map and will start
    writing two devices of redundancy bits. The patches are so simple
    because most of the ORE was already for the general raid case, only a
    few bug fixes were needed and the actual wiring into the raid6_pq
    engine"

    * 'for-linus' of git://git.open-osd.org/linux-open-osd:
    ore: Support for raid 6
    ore: Remove redundant dev_order(), more cleanups
    ore: (trivial) reformat some code

    Linus Torvalds
     
  • Pull btrfs fix from Chris Mason:
    "I had this in my 3.16 merge window queue, but it is small and obvious
    enough for 3.15. I cherry-picked and retested against current rc8"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: send, fix corrupted path strings for long paths

    Linus Torvalds
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "Here are the remaining fixes for v3.15.

    This series includes:

    - iser-target fix for ImmediateData exception reference count bug
    (Sagi + nab)
    - iscsi-target fix for MC/S login + potential iser-target MRDSL
    buffer overrun (Santosh + Roland)
    - iser-target fix for v3.15-rc multi network portal shutdown
    regression (nab)
    - target fix for allowing READ_CAPCITY during ALUA Standby access
    state (Chris + nab)
    - target fix for NULL pointer dereference of alua_access_state for
    un-configured devices (Chris + nab)"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: Fix alua_access_state attribute OOPs for un-configured devices
    target: Allow READ_CAPACITY opcode in ALUA Standby access state
    iser-target: Fix multi network portal shutdown regression
    iscsi-target: Fix wrong buffer / buffer overrun in iscsi_change_param_value()
    iser-target: Add missing target_put_sess_cmd for ImmedateData failure

    Linus Torvalds
     
  • Pull x86 fixes from Peter Anvin:
    "A significantly larger than I'd like set of patches for just below the
    wire. All of these, however, fix real problems.

    The one thing that is genuinely scary in here is the change of SMP
    initialization, but that *does* fix a confirmed hang when booting
    virtual machines.

    There is also a patch to actually do the right thing about not
    offlining a CPU when there are not enough interrupt vectors available
    in the system; the accounting was done incorrectly. The worst case
    for that patch is that we fail to offline CPUs when we should (the new
    code is strictly more conservative than the old), so is not
    particularly risky.

    Most of the rest is minor stuff; the EFI patches are all about
    exporting correct information to boot loaders and kexec"

    * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/boot: EFI_MIXED should not prohibit loading above 4G
    x86/smpboot: Initialize secondary CPU only if master CPU will wait for it
    x86/smpboot: Log error on secondary CPU wakeup failure at ERR level
    x86: Fix list/memory corruption on CPU hotplug
    x86: irq: Get correct available vectors for cpu disable
    x86/efi: Do not export efi runtime map in case old map
    x86/efi: earlyprintk=efi,keep fix

    Linus Torvalds
     
  • Patch to prevent warning of a buggy compiler when using clang and
    the ARM_UNWIND option.

    Clang defines (at least on the current trunk) GNUC, GNUC_MINOR, and
    GNUC_PATCHLEVEL to 4, 2, and 1 respectively.

    This version of GCC gets flagged as buggy, but it isn't actually an
    issue with clang so the patch will do what it did before unless clang
    is defined and then it will not report the GCC version as an issue.

    Signed-off-by: Mark Charlebois
    Signed-off-by: Behan Webster

    Mark Charlebois
     
  • With compilers which follow the C99 standard (like modern versions of gcc and
    clang), "extern inline" does the wrong thing (emits code for an externally
    linkable version of the inline function). "static inline" is the correct choice
    instead.

    Author: Behan Webster
    Signed-off-by: Behan Webster
    Reviewed-by: Mark Charlebois

    Behan Webster
     
  • Both gcc (well, actually gnu as) and clang support the "-Wa,-gdwarf-2" option
    (though clang does not support "-Wa,--gdwarf-2"). Since these flags are equivalent
    in meaning, this patch uses the one which is better supported across compilers.

    Signed-off-by: Behan Webster

    Behan Webster
     
  • Replaced non-standard C use of Variable Length Arrays In Structs (VLAIS) in
    xt_repldata.h with a C99 compliant flexible array member and then calculated
    offsets to the other struct members. These other members aren't referenced by
    name in this code, however this patch maintains the same memory layout and
    padding as was previously accomplished using VLAIS.

    Had the original structure been ordered differently, with the entries VLA at
    the end, then it could have been a flexible member, and this patch would have
    been a lot simpler. However since the data stored in this structure is
    ultimately exported to userspace, the order of this structure can't be changed.

    This patch makes no attempt to change the existing behavior, merely the way in
    which the current layout is accomplished using standard C99 constructs. As such
    the code can now be compiled with either gcc or clang.

    This version of the patch removes the trailing alignment that the VLAIS
    structure would allocate in order to simplify the patch.

    Author: Mark Charlebois
    Signed-off-by: Mark Charlebois
    Signed-off-by: Behan Webster
    Signed-off-by: Vinícius Tinti

    Mark Charlebois
     
  • __attribute__((aligned)) applies the default alignment for the largest scalar
    type for the target ABI. gcc allows it to be applied inline to a defined type.
    Clang only allows it to be applied to a type definition (PR11071).

    Making it into 2 lines makes it more readable and works with both compilers.

    Author: Mark Charlebois
    Signed-off-by: Mark Charlebois
    Signed-off-by: Behan Webster

    Mark Charlebois
     
  • commit 7d453eee36ae ("x86/efi: Wire up CONFIG_EFI_MIXED") introduced a
    regression for the functionality to load kernels above 4G. The relevant
    (incorrect) reasoning behind this change can be seen in the commit
    message,

    "The xloadflags field in the bzImage header is also updated to reflect
    that the kernel supports both entry points by setting both of
    XLF_EFI_HANDOVER_32 and XLF_EFI_HANDOVER_64 when CONFIG_EFI_MIXED=y.
    XLF_CAN_BE_LOADED_ABOVE_4G is disabled so that the kernel text is
    guaranteed to be addressable with 32-bits."

    This is obviously bogus since 32-bit EFI loaders will never place the
    kernel above the 4G mark. So this restriction is entirely unnecessary.

    But things are worse than that - since we want to encourage people to
    always compile with CONFIG_EFI_MIXED=y so that their kernels work out of
    the box for both 32-bit and 64-bit firmware, commit 7d453eee36ae
    effectively disables XLF_CAN_BE_LOADED_ABOVE_4G completely.

    Remove the overzealous and superfluous restriction and restore the
    XLF_CAN_BE_LOADED_ABOVE_4G functionality.

    Cc: "H. Peter Anvin"
    Cc: Dave Young
    Cc: Vivek Goyal
    Signed-off-by: Matt Fleming
    Link: http://lkml.kernel.org/r/1402140380-15377-1-git-send-email-matt@console-pimps.org
    Signed-off-by: H. Peter Anvin

    Matt Fleming
     

07 Jun, 2014

16 commits

  • Merge more updates from Andrew Morton:

    - Most of the rest of MM.

    This includes "mark remap_file_pages syscall as deprecated" but the
    actual "replace remap_file_pages syscall with emulation" is held
    back. I guess we'll need to work out when to pull the trigger on
    that one.

    - various minor cleanups to obscure filesystems

    - the drivers/rtc queue

    - hfsplus updates

    - ufs, hpfs, fatfs, affs, reiserfs

    - Documentation/

    - signals

    - procfs

    - cpu hotplug

    - lib/idr.c

    - rapidio

    - sysctl

    - ipc updates

    * emailed patches from Andrew Morton : (171 commits)
    ufs: sb mutex merge + mutex_destroy
    powerpc: update comments for generic idle conversion
    cris: update comments for generic idle conversion
    idle: remove cpu_idle() forward declarations
    nbd: zero from and len fields in NBD_CMD_DISCONNECT.
    mm: convert some level-less printks to pr_*
    MAINTAINERS: adi-buildroot-devel is moderated
    MAINTAINERS: add linux-api for review of API/ABI changes
    mm/kmemleak-test.c: use pr_fmt for logging
    fs/dlm/debug_fs.c: replace seq_printf by seq_puts
    fs/dlm/lockspace.c: convert simple_str to kstr
    fs/dlm/config.c: convert simple_str to kstr
    mm: mark remap_file_pages() syscall as deprecated
    mm: memcontrol: remove unnecessary memcg argument from soft limit functions
    mm: memcontrol: clean up memcg zoneinfo lookup
    mm/memblock.c: call kmemleak directly from memblock_(alloc|free)
    mm/mempool.c: update the kmemleak stack trace for mempool allocations
    lib/radix-tree.c: update the kmemleak stack trace for radix tree allocations
    mm: introduce kmemleak_update_trace()
    mm/kmemleak.c: use %u to print ->checksum
    ...

    Linus Torvalds
     
  • Commit 788257d6101d ("ufs: remove the BKL") replaced BKL with mutex
    protection using functions lock_ufs, unlock_ufs and struct mutex 'mutex'
    in sb_info.

    Commit b6963327e052 ("ufs: drop lock/unlock super") removed lock/unlock
    super and added struct mutex 's_lock' in sb_info.

    Those 2 mutexes are generally locked/unlocked at the same time except in
    allocation (balloc, ialloc).

    This patch merges the 2 mutexes and propagates first commit solution.
    It also adds mutex destruction before kfree during ufs_fill_super
    failure and ufs_put_super.

    [akpm@linux-foundation.org: avoid ifdefs, return -EROFS not -EINVAL]
    Signed-off-by: Fabian Frederick
    Cc: Evgeniy Dushistov
    Cc: "Chen, Jet"
    Cc: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • As of commit 799fef06123f ("powerpc: Use generic idle loop"), this
    applies to arch_cpu_idle() instead of cpu_idle().

    Signed-off-by: Geert Uytterhoeven
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • As of commit 8dc7c5ecd8d0 ("cris: Use generic idle loop"), cris no
    longer provides cpu_idle().

    - On cris-v10, etrax_gpio_wake_up_check() is called from default_idle()
    instead of cpu_idle(),

    - On cris-v32, etrax_gpio_wake_up_check() is not called from
    default_idle(), so remove this (copy-and-paste?) part.

    Signed-off-by: Geert Uytterhoeven
    Reviewed-by: Jesper Nilsson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • After all architectures were converted to the generic idle framework,
    commit d190e8195b90 ("idle: Remove GENERIC_IDLE_LOOP config switch")
    removed the last caller of cpu_idle(). The forward declarations in
    header files were forgotten.

    Signed-off-by: Geert Uytterhoeven
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Len field is already set to zero, but not the from field which is sent
    as 0xfffffffffffffe00. This makes no sense, and may cause confuse
    server implementations doing sanity checks (qemu-nbd is an example.)

    Signed-off-by: Hani Benhabiles
    Cc: Paul Clements
    Cc: Paul Clements
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hani Benhabiles
     
  • printk is meant to be used with an associated log level. There are some
    instances of printk scattered around the mm code where the log level is
    missing. Add a log level and adhere to suggestions by
    scripts/checkpatch.pl by moving to the pr_* macros.

    Also add the typical pr_fmt definition so that print statements can be
    easily traced back to the modules where they occur, correlated one with
    another, etc. This will require the removal of some (now redundant)
    prefixes on a few print statements.

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

    Mitchel Humpherys
     
  • Signed-off-by: Richard Weinberger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Weinberger
     
  • This makes it more likely that patch submitters will CC API/ABI changes to
    the linux-api list, and tools like get_maintainer.pl will do so
    automatically.

    Signed-off-by: Josh Triplett
    Acked-by: Steven Rostedt
    Acked-by: Michael Kerrisk
    Cc: Joe Perches
    Cc: "David S. Miller"
    Cc: Greg Kroah-Hartman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Josh Triplett
     
  • Signed-off-by: Fabian Frederick
    Acked-by: Catalin Marinas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Replace seq_printf where possible. This patch also fixes the following
    checkpatch warning "unnecessary whitespace before a quoted newline"

    Signed-off-by: Fabian Frederick
    Cc: Christine Caulfield
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Replace obsolete functions.

    Signed-off-by: Fabian Frederick
    Cc: Christine Caulfield
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Replace obsolete functions

    simple_strtoul/kstrtouint
    simple_strtol/kstrtoint
    (kstr __must_check requires the right function to be applied)

    Signed-off-by: Fabian Frederick
    Cc: Christine Caulfield
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • The remap_file_pages() system call is used to create a nonlinear
    mapping, that is, a mapping in which the pages of the file are mapped
    into a nonsequential order in memory. The advantage of using
    remap_file_pages() over using repeated calls to mmap(2) is that the
    former approach does not require the kernel to create additional VMA
    (Virtual Memory Area) data structures.

    Supporting of nonlinear mapping requires significant amount of
    non-trivial code in kernel virtual memory subsystem including hot paths.
    Also to get nonlinear mapping work kernel need a way to distinguish
    normal page table entries from entries with file offset (pte_file).
    Kernel reserves flag in PTE for this purpose. PTE flags are scarce
    resource especially on some CPU architectures. It would be nice to free
    up the flag for other usage.

    Fortunately, there are not many users of remap_file_pages() in the wild.
    It's only known that one enterprise RDBMS implementation uses the
    syscall on 32-bit systems to map files bigger than can linearly fit into
    32-bit virtual address space. This use-case is not critical anymore
    since 64-bit systems are widely available.

    The plan is to deprecate the syscall and replace it with an emulation.
    The emulation will create new VMAs instead of nonlinear mappings. It's
    going to work slower for rare users of remap_file_pages() but ABI is
    preserved.

    One side effect of emulation (apart from performance) is that user can
    hit vm.max_map_count limit more easily due to additional VMAs. See
    comment for DEFAULT_MAX_MAP_COUNT for more details on the limit.

    [akpm@linux-foundation.org: fix spello]
    Signed-off-by: Kirill A. Shutemov
    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Dave Jones
    Cc: Armin Rigo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Signed-off-by: Johannes Weiner
    Acked-by: Michal Hocko
    Cc: Jianyu Zhan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Memcg zoneinfo lookup sites have either the page, the zone, or the node
    id and zone index, but sites that only have the zone have to look up the
    node id and zone index themselves, whereas sites that already have those
    two integers use a function for a simple pointer chase.

    Provide mem_cgroup_zone_zoneinfo() that takes a zone pointer and let
    sites that already have node id and zone index - all for each node, for
    each zone iterators - use &memcg->nodeinfo[nid]->zoneinfo[zid].

    Rename page_cgroup_zoneinfo() to mem_cgroup_page_zoneinfo() to match.

    Signed-off-by: Jianyu Zhan
    Signed-off-by: Johannes Weiner
    Acked-by: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jianyu Zhan