1. Mar 30, 2015
    • Linus Torvalds's avatar
      Merge tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 08f41f7c
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "The latest and greatest fixes for ARM platform code.  Worth pointing
        out are:
      
         - Lines-wise, largest is a PXA fix for dealing with interrupts on DT
           that was quite broken.  It's still newish code so while we could
           have held this off, it seemed appropriate to include now
      
         - Some GPIO fixes for OMAP platforms added a few lines.  This was
           also fixes for code recently added (this release).
      
         - Small OMAP timer fix to behave better with partially upstreamed
           platforms, which is quite welcome.
      
         - Allwinner fixes about operating point control, reducing
           overclocking in some cases for better stability.
      
        plus a handful of other smaller fixes across the map"
      
      * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm64: juno: Fix misleading name of UART reference clock
        ARM: dts: sunxi: Remove overclocked/overvoltaged OPP
        ARM: dts: sun4i: a10-lime: Override and remove 1008MHz OPP setting
        ARM: socfpga: dts: fix spi1 interrupt
        ARM: dts: Fix gpio interrupts for dm816x
        ARM: dts: dra7: remove ti,hwmod property from pcie phy
        ARM: OMAP: dmtimer: disable pm runtime on remove
        ARM: OMAP: dmtimer: check for pm_runtime_get_sync() failure
        ARM: OMAP2+: Fix socbus family info for AM33xx devices
        ARM: dts: omap3: Add missing dmas for crypto
        ARM: dts: rockchip: disable gmac by default in rk3288.dtsi
        MAINTAINERS: add rockchip regexp to the ARM/Rockchip entry
        ARM: pxa: fix pxa interrupts handling in DT
        ARM: pxa: Fix typo in zeus.c
        ARM: sunxi: Have ARCH_SUNXI select RESET_CONTROLLER for clock driver usage
      08f41f7c
    • Olof Johansson's avatar
      Merge tag 'sunxi-fixes-for-4.0' of... · 4550bdb0
      Olof Johansson authored
      Merge tag 'sunxi-fixes-for-4.0' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into fixes
      
      Allwinner fixes for 4.0
      
      There's a few fixes to merge for 4.0, one to add a select in the machine
      Kconfig option to fix a potential build failure, and two fixing cpufreq related
      issues.
      
      * tag 'sunxi-fixes-for-4.0' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux
      
      :
        ARM: dts: sunxi: Remove overclocked/overvoltaged OPP
        ARM: dts: sun4i: a10-lime: Override and remove 1008MHz OPP setting
        ARM: sunxi: Have ARCH_SUNXI select RESET_CONTROLLER for clock driver usage
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      4550bdb0
    • Olof Johansson's avatar
      Merge tag 'fixes-v4.0-rc4' of... · b1dae3d8
      Olof Johansson authored
      Merge tag 'fixes-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Fixes for omaps for the -rc cycle:
      
      - Fix a device tree based booting vs legacy booting regression for
        omap3 crypto hardware by adding the missing DMA channels.
      
      - Fix /sys/bus/soc/devices/soc0/family for am33xx devices.
      
      - Fix two timer issues that can cause hangs if the timer related
        hwmod data is missing like it often initially is for new SoCs.
      
      - Remove pcie hwmods entry from dts as that causes runtime PM to
        fail for the PHYs.
      
      - A paper bag type dts configuration fix for dm816x GPIO
        interrupts that I just noticed. This is most of the changes
        diffstat wise, but as it's a basic feature for connecting
        devices and things work otherwise, it should be fixed.
      
      * tag 'fixes-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap
      
      :
        ARM: dts: Fix gpio interrupts for dm816x
        ARM: dts: dra7: remove ti,hwmod property from pcie phy
        ARM: OMAP: dmtimer: disable pm runtime on remove
        ARM: OMAP: dmtimer: check for pm_runtime_get_sync() failure
        ARM: OMAP2+: Fix socbus family info for AM33xx devices
        ARM: dts: omap3: Add missing dmas for crypto
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      b1dae3d8
    • Olof Johansson's avatar
      Merge tag 'socfpga_fix_for_v4.0_2' of git://git.rocketboards.org/linux-socfpga-next into fixes · ebc0aa8f
      Olof Johansson authored
      Late fix for v4.0 on the SoCFPGA platform:
      - Fix interrupt number for SPI1 interface
      
      * tag 'socfpga_fix_for_v4.0_2' of git://git.rocketboards.org/linux-socfpga-next
      
      :
        ARM: socfpga: dts: fix spi1 interrupt
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      ebc0aa8f
    • Dave Martin's avatar
      arm64: juno: Fix misleading name of UART reference clock · 78d84bc3
      Dave Martin authored
      
      
      The UART reference clock speed is 7273.8 kHz, not 72738 kHz.
      
      Dots aren't usually used in node names even though ePAPR permits
      them.  However, this can easily be avoided by expressing the
      frequency in Hz, not kHz.
      
      This patch changes the name to refclk7273800hz, reflecting the
      actual clock speed.
      
      Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
      Acked-by: default avatarLiviu Dudau <Liviu.Dudau@arm.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      78d84bc3
    • Olof Johansson's avatar
      Merge tag 'fixes-for-v4.0-rc5' of https://github.com/rjarzmik/linux into fixes · 53b1a663
      Olof Johansson authored
      arm: pxa: fixes for v4.0-rc5
      
      There are only 2 fixes, one for the zeus board about the regulator changes,
      where a typo prevented the zeus board from having a working can regulator,
      and one regression triggered by the interrupts IRQ shift of 16 affecting all
      boards.
      
      * tag 'fixes-for-v4.0-rc5' of https://github.com/rjarzmik/linux
      
      :
        ARM: pxa: fix pxa interrupts handling in DT
        ARM: pxa: Fix typo in zeus.c
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      53b1a663
  2. Mar 29, 2015
  3. Mar 28, 2015
  4. Mar 27, 2015
  5. Mar 26, 2015
    • Daniel Vetter's avatar
      drm/i915: Fixup legacy plane->crtc link for initial fb config · 5f407751
      Daniel Vetter authored
      This is a very similar bug in the load detect code fixed in
      
      commit 9128b040
      
      
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Tue Mar 3 17:31:21 2015 +0100
      
          drm/i915: Fix modeset state confusion in the load detect code
      
      But this time around it was the initial fb code that forgot to update
      the plane->crtc pointer. Otherwise it's the exact same bug, with the
      exact same restrains (any set_config call/ioctl that doesn't disable
      the pipe papers over the bug for free, so fairly hard to hit in normal
      testing). So if you want the full explanation just go read that one
      over there - it's rather long ...
      
      Cc: Matt Roper <matthew.d.roper@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Josh Boyer <jwboyer@fedoraproject.org>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Reported-and-tested-by: default avatarJosh Boyer <jwboyer@fedoraproject.org>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      [Jani: backported to drm-intel-fixes for v4.0-rc]
      Reference: http://mid.gmane.org/CA+5PVA7ChbtJrknqws1qvZcbrg1CW2pQAFkSMURWWgyASRyGXg@mail.gmail.com
      
      
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      5f407751
    • Damien Lespiau's avatar
      drm/i915: Fix atomic state when reusing the firmware fb · 3164a803
      Damien Lespiau authored
      
      
      Right now, we get a warning when taking over the firmware fb:
      
        [drm:drm_atomic_plane_check] FB set but no CRTC
      
      with the following backtrace:
      
        [<ffffffffa010339d>] drm_atomic_check_only+0x35d/0x510 [drm]
        [<ffffffffa0103567>] drm_atomic_commit+0x17/0x60 [drm]
        [<ffffffffa00a6ccd>] drm_atomic_helper_plane_set_property+0x8d/0xd0 [drm_kms_helper]
        [<ffffffffa00f1fed>] drm_mode_plane_set_obj_prop+0x2d/0x90 [drm]
        [<ffffffffa00a8a1b>] restore_fbdev_mode+0x6b/0xf0 [drm_kms_helper]
        [<ffffffffa00aa969>] drm_fb_helper_restore_fbdev_mode_unlocked+0x29/0x80 [drm_kms_helper]
        [<ffffffffa00aa9e2>] drm_fb_helper_set_par+0x22/0x50 [drm_kms_helper]
        [<ffffffffa050a71a>] intel_fbdev_set_par+0x1a/0x60 [i915]
        [<ffffffff813ad444>] fbcon_init+0x4f4/0x580
      
      That's because we update the plane state with the fb from the firmware, but we
      never associate the plane to that CRTC.
      
      We don't quite have the full DRM take over from HW state just yet, so
      fake enough of the plane atomic state to pass the checks.
      
      v2: Fix the state on which we set the CRTC in the case we're sharing the
          initial fb with another pipe. (Matt)
      
      Signed-off-by: default avatarDamien Lespiau <damien.lespiau@intel.com>
      Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      [Jani: backported to drm-intel-fixes for v4.0-rc]
      Reference: http://mid.gmane.org/CA+5PVA7yXH=U757w8V=Zj2U1URG4nYNav20NpjtQ4svVueyPNw@mail.gmail.com
      Reference: http://lkml.kernel.org/r/CA+55aFweWR=nDzc2Y=rCtL_H8JfdprQiCimN5dwc+TgyD4Bjsg@mail.gmail.com
      
      
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      3164a803
    • Hui Wang's avatar
      ALSA: hda - Add one more node in the EAPD supporting candidate list · af95b414
      Hui Wang authored
      We have a HP machine which use the codec node 0x17 connecting the
      internal speaker, and from the node capability, we saw the EAPD,
      if we don't set the EAPD on for this node, the internal speaker
      can't output any sound.
      
      Cc: <stable@vger.kernel.org>
      BugLink: https://bugs.launchpad.net/bugs/1436745
      
      
      Signed-off-by: default avatarHui Wang <hui.wang@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      af95b414
    • Maxime Ripard's avatar
      clocksource/drivers/sun5i: Fix cpufreq interaction with sched_clock() · 6e206020
      Maxime Ripard authored
      
      
      The sun5i timer is used as the sched-clock on certain systems, and ever
      since we started using cpufreq, the cpu clock (that is one of the
      timer's clock indirect parent) now changes as well, along with the
      actual sched_clock() rate.
      
      This is not accurate and not desirable.
      
      We can safely remove the sun5i sched-clock on those systems, since we
      have other reliable sched_clock() sources in the system.
      
      Tested-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      [ Improved the changelog. ]
      Cc: richard@nod.at
      Link: http://lkml.kernel.org/r/1427362029-6511-4-git-send-email-daniel.lezcano@linaro.org
      
      
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      6e206020
    • Richard Weinberger's avatar
      clocksource/drivers: Fix various !CONFIG_HAS_IOMEM build errors · 11bc26fe
      Richard Weinberger authored
      
      
      Fix !CONFIG_HAS_IOMEM related build failures in three clocksource drivers.
      
      The build failures have the pattern of:
      
        drivers/clocksource/sh_cmt.c: In function ‘sh_cmt_map_memory’: drivers/clocksource/sh_cmt.c:920:2:
        error: implicit declaration of function ‘ioremap_nocache’ [-Werror=implicit-function-declaration]   cmt->mapbase = ioremap_nocache(mem->start, resource_size(mem));
      
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Acked-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: maxime.ripard@free-electrons.com
      Link: http://lkml.kernel.org/r/1427362029-6511-1-git-send-email-daniel.lezcano@linaro.org
      
      
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      11bc26fe
    • Chris Wilson's avatar
      drm/i915: Keep ring->active_list and ring->requests_list consistent · 832a3aad
      Chris Wilson authored
      If we retire requests last, we may use a later seqno and so clear
      the requests lists without clearing the active list, leading to
      confusion. Hence we should retire requests first for consistency with
      the early return. The order used to be important as the lifecycle for
      the object on the active list was determined by request->seqno. However,
      the requests themselves are now reference counted removing the
      constraint from the order of retirement.
      
      Fixes regression from
      
      commit 1b5a433a
      
      
      Author: John Harrison <John.C.Harrison@Intel.com>
      Date:   Mon Nov 24 18:49:42 2014 +0000
      
          drm/i915: Convert 'i915_seqno_passed' calls into 'i915_gem_request_completed
      '
      
      and a
      
      	WARNING: CPU: 0 PID: 1383 at drivers/gpu/drm/i915/i915_gem_evict.c:279 i915_gem_evict_vm+0x10c/0x140()
      	WARN_ON(!list_empty(&vm->active_list))
      
      Identified by updating WATCH_LISTS:
      
      	[drm:i915_verify_lists] *ERROR* blitter ring: active list not empty, but no requests
      	WARNING: CPU: 0 PID: 681 at drivers/gpu/drm/i915/i915_gem.c:2751 i915_gem_retire_requests_ring+0x149/0x230()
      	WARN_ON(i915_verify_lists(ring->dev))
      
      Note that this is only a problem in evict_vm where the following happens
      after a retire_request has cleaned out all requests, but not all active
      bo:
      - intel_ring_idle called from i915_gpu_idle notices that no requests are
        outstanding and immediately returns.
      - i915_gem_retire_requests_ring called from i915_gem_retire_requests also
        immediately returns when there's no request, still leaving the bo on the
        active list.
      - evict_vm hits the WARN_ON(!list_empty(&vm->active_list)) after evicting
        all active objects that there's still stuff left that shouldn't be
        there.
      
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: John Harrison <John.C.Harrison@Intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      832a3aad
    • Libin Yang's avatar
      ALSA: hda_intel: apply the Seperate stream_tag for Sunrise Point · db48abf4
      Libin Yang authored
      
      
      The total stream number of Sunrise Point's input and output stream
      exceeds 15, which will cause some streams do not work because
      of the overflow on SDxCTL.STRM field if using the legacy
      stream tag allocation method.
      
      This patch uses the new stream tag allocation method by add
      the flag AZX_DCAPS_SEPARATE_STREAM_TAG for Skylake platform.
      
      Signed-off-by: default avatarLibin Yang <libin.yang@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      db48abf4
    • Vineet Gupta's avatar
      ARC: signal handling robustify · e4140819
      Vineet Gupta authored
      
      
      A malicious signal handler / restorer can DOS the system by fudging the
      user regs saved on stack, causing weird things such as sigreturn returning
      to user mode PC but cpu state still being kernel mode....
      
      Ensure that in sigreturn path status32 always has U bit; any other bogosity
      (gargbage PC etc) will be taken care of by normal user mode exceptions mechanisms.
      
      Reproducer signal handler:
      
          void handle_sig(int signo, siginfo_t *info, void *context)
          {
      	ucontext_t *uc = context;
      	struct user_regs_struct *regs = &(uc->uc_mcontext.regs);
      
      	regs->scratch.status32 = 0;
          }
      
      Before the fix, kernel would go off to weeds like below:
      
          --------->8-----------
          [ARCLinux]$ ./signal-test
          Path: /signal-test
          CPU: 0 PID: 61 Comm: signal-test Not tainted 4.0.0-rc5+ #65
          task: 8f177880 ti: 5ffe6000 task.ti: 8f15c000
      
          [ECR   ]: 0x00220200 => Invalid Write @ 0x00000010 by insn @ 0x00010698
          [EFA   ]: 0x00000010
          [BLINK ]: 0x2007c1ee
          [ERET  ]: 0x10698
          [STAT32]: 0x00000000 :                                   <--------
          BTA: 0x00010680	 SP: 0x5ffe7e48	 FP: 0x00000000
          LPS: 0x20003c6c	LPE: 0x20003c70	LPC: 0x00000000
          ...
          --------->8-----------
      
      Reported-by: default avatarAlexey Brodkin <abrodkin@synopsys.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      e4140819
    • Vineet Gupta's avatar
      ARC: SA_SIGINFO ucontext regs off-by-one · 6914e1e3
      Vineet Gupta authored
      The regfile provided to SA_SIGINFO signal handler as ucontext was off by
      one due to pt_regs gutter cleanups in 2013.
      
      Before handling signal, user pt_regs are copied onto user_regs_struct and copied
      back later. Both structs are binary compatible. This was all fine until
      commit 2fa91904 (ARC: pt_regs update #2) which removed the empty stack slot
      at top of pt_regs (corresponding to first pad) and made the corresponding
      fixup in struct user_regs_struct (the pad in there was moved out of
      @scratch - not removed altogether as it is part of ptrace ABI)
      
       struct user_regs_struct {
      +       long pad;
              struct {
      -               long pad;
                      long bta, lp_start, lp_end,....
              } scratch;
       ...
       }
      
      This meant that now user_regs_struct was off by 1 reg w.r.t pt_regs and
      signal code needs to user_regs_struct.scratch to reflect it as pt_regs,
      which is what this commit does.
      
      This problem was hidden for 2 years, because both save/restore, despite
      using wrong location, were using the same location. Only an interim
      inspection (reproducer below) exposed the issue.
      
           void handle_segv(int signo, siginfo_t *info, void *context)
           {
       	ucontext_t *uc = context;
      	struct user_regs_struct *regs = &(uc->uc_mcontext.regs);
      
      	printf("regs %x %x\n",               <=== prints 7 8 (vs. 8 9)
                     regs->scratch.r8, regs->scratch.r9);
           }
      
           int main()
           {
      	struct sigaction sa;
      
      	sa.sa_sigaction = handle_segv;
      	sa.sa_flags = SA_SIGINFO;
      	sigemptyset(&sa.sa_mask);
      	sigaction(SIGSEGV, &sa, NULL);
      
      	asm volatile(
      	"mov	r7, 7	\n"
      	"mov	r8, 8	\n"
      	"mov	r9, 9	\n"
      	"mov	r10, 10	\n"
      	:::"r7","r8","r9","r10");
      
      	*((unsigned int*)0x10) = 0;
           }
      
      Fixes: 2fa91904
      
       "ARC: pt_regs update #2: Remove unused gutter at start of pt_regs"
      CC: <stable@vger.kernel.org>
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      6914e1e3
    • Linus Torvalds's avatar
      Merge tag 'metag-fixes-v4.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag · 4c4fe4c2
      Linus Torvalds authored
      Pull arch/metag fix from James Hogan:
       "Another metag architecture fix for v4.0
      
        This is another single fix, for an include dependency problem when
        using ioremap_wc() from asm/io.h without also including asm/pgtable.h"
      
      * tag 'metag-fixes-v4.0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:
        metag: Fix ioremap_wc/ioremap_cached build errors
      4c4fe4c2
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 9c8e30d1
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "15 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        mm: numa: mark huge PTEs young when clearing NUMA hinting faults
        mm: numa: slow PTE scan rate if migration failures occur
        mm: numa: preserve PTE write permissions across a NUMA hinting fault
        mm: numa: group related processes based on VMA flags instead of page table flags
        hfsplus: fix B-tree corruption after insertion at position 0
        MAINTAINERS: add Jan as DMI/SMBIOS support maintainer
        fs/affs/file.c: unlock/release page on error
        mm/page_alloc.c: call kernel_map_pages in unset_migrateype_isolate
        mm/slub: fix lockups on PREEMPT && !SMP kernels
        mm/memory hotplug: postpone the reset of obsolete pgdat
        MAINTAINERS: correct rtc armada38x pattern entry
        mm/pagewalk.c: prevent positive return value of walk_page_test() from being passed to callers
        mm: fix anon_vma->degree underflow in anon_vma endless growing prevention
        drivers/rtc/rtc-mrst: fix suspend/resume
        aoe: update aoe maintainer information
      9c8e30d1
    • Marcelo Tosatti's avatar
      Merge tag 'signed-for-4.0' of git://github.com/agraf/linux-2.6 · 27bfc6cf
      Marcelo Tosatti authored
      Patch queue for 4.0 - 2015-03-25
      
      A few bug fixes for Book3S HV KVM:
      
        - Fix spinlock ordering
        - Fix idle guests on LE hosts
        - Fix instruction emulation
      27bfc6cf
    • Mel Gorman's avatar
      mm: numa: mark huge PTEs young when clearing NUMA hinting faults · b7b04004
      Mel Gorman authored
      
      
      Base PTEs are marked young when the NUMA hinting information is cleared
      but the same does not happen for huge pages which this patch addresses.
      
      Note that migrated pages are not marked young as the base page migration
      code does not assume that migrated pages have been referenced.  This
      could be addressed but beyond the scope of this series which is aimed at
      Dave Chinners shrink workload that is unlikely to be affected by this
      issue.
      
      Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b7b04004
    • Mel Gorman's avatar
      mm: numa: slow PTE scan rate if migration failures occur · 074c2381
      Mel Gorman authored
      Dave Chinner reported the following on https://lkml.org/lkml/2015/3/1/226
      
      
      
        Across the board the 4.0-rc1 numbers are much slower, and the degradation
        is far worse when using the large memory footprint configs. Perf points
        straight at the cause - this is from 4.0-rc1 on the "-o bhash=101073" config:
      
         -   56.07%    56.07%  [kernel]            [k] default_send_IPI_mask_sequence_phys
            - default_send_IPI_mask_sequence_phys
               - 99.99% physflat_send_IPI_mask
                  - 99.37% native_send_call_func_ipi
                       smp_call_function_many
                     - native_flush_tlb_others
                        - 99.85% flush_tlb_page
                             ptep_clear_flush
                             try_to_unmap_one
                             rmap_walk
                             try_to_unmap
                             migrate_pages
                             migrate_misplaced_page
                           - handle_mm_fault
                              - 99.73% __do_page_fault
                                   trace_do_page_fault
                                   do_async_page_fault
                                 + async_page_fault
                    0.63% native_send_call_func_single_ipi
                       generic_exec_single
                       smp_call_function_single
      
      This is showing excessive migration activity even though excessive
      migrations are meant to get throttled.  Normally, the scan rate is tuned
      on a per-task basis depending on the locality of faults.  However, if
      migrations fail for any reason then the PTE scanner may scan faster if
      the faults continue to be remote.  This means there is higher system CPU
      overhead and fault trapping at exactly the time we know that migrations
      cannot happen.  This patch tracks when migration failures occur and
      slows the PTE scanner.
      
      Signed-off-by: default avatarMel Gorman <mgorman@suse.de>
      Reported-by: default avatarDave Chinner <david@fromorbit.com>
      Tested-by: default avatarDave Chinner <david@fromorbit.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      074c2381