Skip to content
  1. Aug 14, 2020
  2. Aug 13, 2020
    • Linus Torvalds's avatar
      Merge tag 'rtc-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · dc06fe51
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "Not much this cycle - mostly non urgent driver fixes:
      
         - ds1374: use watchdog core
      
         - pcf2127: add alarm and pcf2129 support"
      
      * tag 'rtc-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
        rtc: pcf2127: fix alarm handling
        rtc: pcf2127: add alarm support
        rtc: pcf2127: add pca2129 device id
        rtc: max77686: Fix wake-ups for max77620
        rtc: ds1307: provide an indication that the watchdog has fired
        rtc: ds1374: remove unused define
        rtc: ds1374: fix RTC_DRV_DS1374_WDT dependencies
        rtc: cleanup obsolete comment about struct rtc_class_ops
        rtc: pl031: fix set_alarm by adding back call to alarm_irq_enable
        rtc: ds1374: wdt: Use watchdog core for watchdog part
        rtc: Replace HTTP links with HTTPS ones
        rtc: goldfish: Enable interrupt in set_alarm() when necessary
        rtc: max77686: Do not allow interrupt to fire before system resume
        rtc: imxdi: fix trivial typos
        rtc: cpcap: fix range
      dc06fe51
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.9-rc1' of git://github.com/ceph/ceph-client · 7c2a69f6
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "Xiubo has completed his work on filesystem client metrics, they are
        sent to all available MDSes once per second now.
      
        Other than that, we have a lot of fixes and cleanups all around the
        filesystem, including a tweak to cut down on MDS request resends in
        multi-MDS setups from Yanhu and fixups for SELinux symlink labeling
        and MClientSession message decoding from Jeff"
      
      * tag 'ceph-for-5.9-rc1' of git://github.com/ceph/ceph-client: (22 commits)
        ceph: handle zero-length feature mask in session messages
        ceph: use frag's MDS in either mode
        ceph: move sb->wb_pagevec_pool to be a global mempool
        ceph: set sec_context xattr on symlink creation
        ceph: remove redundant initialization of variable mds
        ceph: fix use-after-free for fsc->mdsc
        ceph: remove unused variables in ceph_mdsmap_decode()
        ceph: delete repeated words in fs/ceph/
        ceph: send client provided metric flags in client metadata
        ceph: periodically send perf metrics to MDSes
        ceph: check the sesion state and return false in case it is closed
        libceph: replace HTTP links with HTTPS ones
        ceph: remove unnecessary cast in kfree()
        libceph: just have osd_req_op_init() return a pointer
        ceph: do not access the kiocb after aio requests
        ceph: clean up and optimize ceph_check_delayed_caps()
        ceph: fix potential mdsc use-after-free crash
        ceph: switch to WARN_ON_ONCE in encode_supported_features()
        ceph: add global total_caps to count the mdsc's total caps number
        ceph: add check_session_state() helper and make it global
        ...
      7c2a69f6
    • Linus Torvalds's avatar
      Merge branch 'parisc-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 7a02c8d4
      Linus Torvalds authored
      Pull more parisc updates from Helge Deller:
      
       - Oscar Carter contributed a patch which fixes parisc's usage of
         dereference_function_descriptor() and thus will allow using the
         -Wcast-function-type compiler option in the top-level Makefile
      
       - Sven Schnelle fixed a bug in the SBA code to prevent crashes during
         kexec
      
       - John David Anglin provided implementations for __smp_store_release()
         and __smp_load_acquire barriers() which avoids using the sync
         assembler instruction and thus speeds up barrier paths
      
       - Some whitespace cleanups in parisc's atomic.h header file
      
      * 'parisc-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Implement __smp_store_release and __smp_load_acquire barriers
        parisc: mask out enable and reserved bits from sba imask
        parisc: Whitespace cleanups in atomic.h
        parisc/kernel/ftrace: Remove function callback casts
        sections.h: dereference_function_descriptor() returns void pointer
      7a02c8d4
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 8cd84b70
      Linus Torvalds authored
      Pull more KVM updates from Paolo Bonzini:
       "PPC:
         - Improvements and bugfixes for secure VM support, giving reduced
           startup time and memory hotplug support.
      
         - Locking fixes in nested KVM code
      
         - Increase number of guests supported by HV KVM to 4094
      
         - Preliminary POWER10 support
      
        ARM:
         - Split the VHE and nVHE hypervisor code bases, build the EL2 code
           separately, allowing for the VHE code to now be built with
           instrumentation
      
         - Level-based TLB invalidation support
      
         - Restructure of the vcpu register storage to accomodate the NV code
      
         - Pointer Authentication available for guests on nVHE hosts
      
         - Simplification of the system register table parsing
      
         - MMU cleanups and fixes
      
         - A number of post-32bit cleanups and other fixes
      
        MIPS:
         - compilation fixes
      
        x86:
         - bugfixes
      
         - support for the SERIALIZE instruction"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (70 commits)
        KVM: MIPS/VZ: Fix build error caused by 'kvm_run' cleanup
        x86/kvm/hyper-v: Synic default SCONTROL MSR needs to be enabled
        MIPS: KVM: Convert a fallthrough comment to fallthrough
        MIPS: VZ: Only include loongson_regs.h for CPU_LOONGSON64
        x86: Expose SERIALIZE for supported cpuid
        KVM: x86: Don't attempt to load PDPTRs when 64-bit mode is enabled
        KVM: arm64: Move S1PTW S2 fault logic out of io_mem_abort()
        KVM: arm64: Don't skip cache maintenance for read-only memslots
        KVM: arm64: Handle data and instruction external aborts the same way
        KVM: arm64: Rename kvm_vcpu_dabt_isextabt()
        KVM: arm: Add trace name for ARM_NISV
        KVM: arm64: Ensure that all nVHE hyp code is in .hyp.text
        KVM: arm64: Substitute RANDOMIZE_BASE for HARDEN_EL2_VECTORS
        KVM: arm64: Make nVHE ASLR conditional on RANDOMIZE_BASE
        KVM: PPC: Book3S HV: Rework secure mem slot dropping
        KVM: PPC: Book3S HV: Move kvmppc_svm_page_out up
        KVM: PPC: Book3S HV: Migrate hot plugged memory
        KVM: PPC: Book3S HV: In H_SVM_INIT_DONE, migrate remaining normal-GFNs to secure-GFNs
        KVM: PPC: Book3S HV: Track the state GFNs associated with secure VMs
        KVM: PPC: Book3S HV: Disable page merging in H_SVM_INIT_START
        ...
      8cd84b70
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 05a5b5d8
      Linus Torvalds authored
      Pull more clk updates from Stephen Boyd:
       "Here's some more updates that missed the last pull request because I
        happened to tag the tree at an earlier point in the history of
        clk-next. I must have fat fingered it and checked out an older version
        of clk-next on this second computer I'm using.
      
        This time it actually includes more code for Qualcomm SoCs, the AT91
        major updates, and some Rockchip SoC clk driver updates as well. I've
        corrected this flow so this shouldn't happen again"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (83 commits)
        clk: bcm2835: Do not use prediv with bcm2711's PLLs
        clk: drop unused function __clk_get_flags
        clk: hsdk: Fix bad dependency on IOMEM
        dt-bindings: clock: Fix YAML schemas for LPASS clocks on SC7180
        clk: mmp: avoid missing prototype warning
        clk: sparx5: Add Sparx5 SoC DPLL clock driver
        dt-bindings: clock: sparx5: Add bindings include file
        clk: qoriq: add LS1021A core pll mux options
        clk: clk-atlas6: fix return value check in atlas6_clk_init()
        clk: tegra: pll: Improve PLLM enable-state detection
        clk: X1000: Add support for calculat REFCLK of USB PHY.
        clk: JZ4780: Reformat the code to align it.
        clk: JZ4780: Add functions for enable and disable USB PHY.
        clk: Ingenic: Add RTC related clocks for Ingenic SoCs.
        dt-bindings: clock: Add tabs to align code.
        dt-bindings: clock: Add RTC related clocks for Ingenic SoCs.
        clk: davinci: Use fallthrough pseudo-keyword
        clk: imx: Use fallthrough pseudo-keyword
        clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk
        clk: qcom: gcc-sdm660: Add missing modem reset
        ...
      05a5b5d8
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-5.9-rc1' of git://www.linux-watchdog.org/linux-watchdog · 45860394
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - f71808e_wdt imporvements
      
       - dw_wdt improvements
      
       - mlx-wdt: support new watchdog type with longer timeout period
      
       - fallthrough pseudo-keyword replacements
      
       - overall small fixes and improvements
      
      * tag 'linux-watchdog-5.9-rc1' of git://www.linux-watchdog.org/linux-watchdog: (35 commits)
        watchdog: rti-wdt: balance pm runtime enable calls
        watchdog: rti-wdt: attach to running watchdog during probe
        watchdog: add support for adjusting last known HW keepalive time
        watchdog: use __watchdog_ping in startup
        watchdog: softdog: Add options 'soft_reboot_cmd' and 'soft_active_on_boot'
        watchdog: pcwd_usb: remove needless check before usb_free_coherent()
        watchdog: Replace HTTP links with HTTPS ones
        dt-bindings: watchdog: renesas,wdt: Document r8a774e1 support
        watchdog: initialize device before misc_register
        watchdog: booke_wdt: Add common nowayout parameter driver
        watchdog: scx200_wdt: Use fallthrough pseudo-keyword
        watchdog: Use fallthrough pseudo-keyword
        watchdog: f71808e_wdt: do stricter parameter validation
        watchdog: f71808e_wdt: clear watchdog timeout occurred flag
        watchdog: f71808e_wdt: remove use of wrong watchdog_info option
        watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in watchdog_info.options
        docs: watchdog: codify ident.options as superset of possible status flags
        dt-bindings: watchdog: Add compatible for QCS404, SC7180, SDM845, SM8150
        dt-bindings: watchdog: Convert QCOM watchdog timer bindings to YAML
        watchdog: dw_wdt: Add DebugFS files
        ...
      45860394
    • Linus Torvalds's avatar
      Merge tag 'vfio-v5.9-rc1' of git://github.com/awilliam/linux-vfio · 407bc8d8
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Inclusive naming updates (Alex Williamson)
      
       - Intel X550 INTx quirk (Alex Williamson)
      
       - Error path resched between unmaps (Xiang Zheng)
      
       - SPAPR IOMMU pin_user_pages() conversion (John Hubbard)
      
       - Trivial mutex simplification (Alex Williamson)
      
       - QAT device denylist (Giovanni Cabiddu)
      
       - type1 IOMMU ioctl refactor (Liu Yi L)
      
      * tag 'vfio-v5.9-rc1' of git://github.com/awilliam/linux-vfio:
        vfio/type1: Refactor vfio_iommu_type1_ioctl()
        vfio/pci: Add QAT devices to denylist
        vfio/pci: Add device denylist
        PCI: Add Intel QuickAssist device IDs
        vfio/pci: Hold igate across releasing eventfd contexts
        vfio/spapr_tce: convert get_user_pages() --> pin_user_pages()
        vfio/type1: Add conditional rescheduling after iommu map failed
        vfio/pci: Add Intel X550 to hidden INTx devices
        vfio: Cleanup allowed driver naming
      407bc8d8
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2020-08-12' of git://anongit.freedesktop.org/drm/drm · ea6ec774
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This has a few vmwgfx regression fixes we hit from the merge window
        (one in TTM), it also has a bunch of amdgpu fixes along with a
        scattering everywhere else.
      
        core:
         - Fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
         - Remove null check for kfree in drm_dev_release.
         - Fix DRM_FORMAT_MOD_AMLOGIC_FBC definition.
         - re-added docs for drm_gem_flink_ioctl()
         - add orientation quirk for ASUS T103HAF
      
        ttm:
         - ttm: fix page-offset calculation within TTM
         - revert patch causing vmwgfx regressions
      
        fbcon:
         - Fix a fbcon OOB read in fbdev, found by syzbot.
      
        vga:
         - Mark vga_tryget static as it's not used elsewhere.
      
        amdgpu:
         - Re-add spelling typo fix
         - Sienna Cichlid fixes
         - Navy Flounder fixes
         - DC fixes
         - SMU i2c fix
         - Power fixes
      
        vmwgfx:
         - regression fixes for modesetting crashes
         - misc fixes
      
        xlnx:
         - Small fixes to xlnx.
      
        omap:
         - Fix mode initialization in omap_connector_mode_valid().
         - force runtime PM suspend on system suspend
      
        tidss:
         - fix modeset init for DPI panels"
      
      * tag 'drm-next-2020-08-12' of git://anongit.freedesktop.org/drm/drm: (70 commits)
        drm/ttm: revert "drm/ttm: make TT creation purely optional v3"
        drm/vmwgfx: fix spelling mistake "Cant" -> "Can't"
        drm/vmwgfx: fix spelling mistake "Cound" -> "Could"
        drm/vmwgfx/ldu: Use drm_mode_config_reset
        drm/vmwgfx/sou: Use drm_mode_config_reset
        drm/vmwgfx/stdu: Use drm_mode_config_reset
        drm/vmwgfx: Fix two list_for_each loop exit tests
        drm/vmwgfx: Use correct vmw_legacy_display_unit pointer
        drm/vmwgfx: Use struct_size() helper
        drm/amdgpu: Fix bug where DPM is not enabled after hibernate and resume
        drm/amd/powerplay: put VCN/JPEG into PG ungate state before dpm table setup(V3)
        drm/amd/powerplay: update swSMU VCN/JPEG PG logics
        drm/amdgpu: use mode1 reset by default for sienna_cichlid
        drm/amdgpu/smu: rework i2c adpater registration
        drm/amd/display: Display goes blank after inst
        drm/amd/display: Change null plane state swizzle mode to 4kb_s
        drm/amd/display: Use helper function to check for HDMI signal
        drm/amd/display: AMD OUI (DPCD 0x00300) skipped on some sink
        drm/amd/display: Fix logger context
        drm/amd/display: populate new dml variable
        ...
      ea6ec774
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 9ad57f6d
      Linus Torvalds authored
      Merge more updates from Andrew Morton:
      
       - most of the rest of MM (memcg, hugetlb, vmscan, proc, compaction,
         mempolicy, oom-kill, hugetlbfs, migration, thp, cma, util,
         memory-hotplug, cleanups, uaccess, migration, gup, pagemap),
      
       - various other subsystems (alpha, misc, sparse, bitmap, lib, bitops,
         checkpatch, autofs, minix, nilfs, ufs, fat, signals, kmod, coredump,
         exec, kdump, rapidio, panic, kcov, kgdb, ipc).
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (164 commits)
        mm/gup: remove task_struct pointer for all gup code
        mm: clean up the last pieces of page fault accountings
        mm/xtensa: use general page fault accounting
        mm/x86: use general page fault accounting
        mm/sparc64: use general page fault accounting
        mm/sparc32: use general page fault accounting
        mm/sh: use general page fault accounting
        mm/s390: use general page fault accounting
        mm/riscv: use general page fault accounting
        mm/powerpc: use general page fault accounting
        mm/parisc: use general page fault accounting
        mm/openrisc: use general page fault accounting
        mm/nios2: use general page fault accounting
        mm/nds32: use general page fault accounting
        mm/mips: use general page fault accounting
        mm/microblaze: use general page fault accounting
        mm/m68k: use general page fault accounting
        mm/ia64: use general page fault accounting
        mm/hexagon: use general page fault accounting
        mm/csky: use general page fault accounting
        ...
      9ad57f6d
    • Peter Xu's avatar
      mm/gup: remove task_struct pointer for all gup code · 64019a2e
      Peter Xu authored
      
      
      After the cleanup of page fault accounting, gup does not need to pass
      task_struct around any more.  Remove that parameter in the whole gup
      stack.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-26-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      64019a2e
    • Peter Xu's avatar
      mm: clean up the last pieces of page fault accountings · a2beb5f1
      Peter Xu authored
      
      
      Here're the last pieces of page fault accounting that were still done
      outside handle_mm_fault() where we still have regs==NULL when calling
      handle_mm_fault():
      
      arch/powerpc/mm/copro_fault.c:   copro_handle_mm_fault
      arch/sparc/mm/fault_32.c:        force_user_fault
      arch/um/kernel/trap.c:           handle_page_fault
      mm/gup.c:                        faultin_page
                                       fixup_user_fault
      mm/hmm.c:                        hmm_vma_fault
      mm/ksm.c:                        break_ksm
      
      Some of them has the issue of duplicated accounting for page fault
      retries.  Some of them didn't do the accounting at all.
      
      This patch cleans all these up by letting handle_mm_fault() to do per-task
      page fault accounting even if regs==NULL (though we'll still skip the perf
      event accountings).  With that, we can safely remove all the outliers now.
      
      There's another functional change in that now we account the page faults
      to the caller of gup, rather than the task_struct that passed into the gup
      code.  More information of this can be found at [1].
      
      After this patch, below things should never be touched again outside
      handle_mm_fault():
      
        - task_struct.[maj|min]_flt
        - PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]
      
      [1] https://lore.kernel.org/lkml/CAHk-=wj_V2Tps2QrMn20_W0OJF9xqNh52XSGA42s-ZJ8Y+GyKw@mail.gmail.com/
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Alexander Gordeev <agordeev@linux.ibm.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Cain <bcain@codeaurora.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Guo Ren <guoren@kernel.org>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: John Hubbard <jhubbard@nvidia.com>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Ley Foon Tan <ley.foon.tan@intel.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Nick Hu <nickhu@andestech.com>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Rich Felker <dalias@libc.org>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Stafford Horne <shorne@gmail.com>
      Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
      Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: http://lkml.kernel.org/r/20200707225021.200906-25-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a2beb5f1
    • Peter Xu's avatar
      mm/xtensa: use general page fault accounting · 484e51e4
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Remove the PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN] perf events because it's
      now also done in handle_mm_fault().
      
      Move the PERF_COUNT_SW_PAGE_FAULTS event higher before taking mmap_sem for
      the fault, then it'll match with the rest of the archs.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
      Cc: Chris Zankel <chris@zankel.net>
      Link: http://lkml.kernel.org/r/20200707225021.200906-24-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      484e51e4
    • Peter Xu's avatar
      mm/x86: use general page fault accounting · 968614fc
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-23-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      968614fc
    • Peter Xu's avatar
      mm/sparc64: use general page fault accounting · f08147df
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Link: http://lkml.kernel.org/r/20200707225021.200906-22-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f08147df
    • Peter Xu's avatar
      mm/sparc32: use general page fault accounting · 56e10e6a
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Link: http://lkml.kernel.org/r/20200707225021.200906-21-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56e10e6a
    • Peter Xu's avatar
      mm/sh: use general page fault accounting · 105f8862
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Rich Felker <dalias@libc.org>
      Link: http://lkml.kernel.org/r/20200707225021.200906-20-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      105f8862
    • Peter Xu's avatar
      mm/s390: use general page fault accounting · 35e45f3e
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
      Acked-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
      Cc: Alexander Gordeev <agordeev@linux.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-19-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      35e45f3e
    • Peter Xu's avatar
      mm/riscv: use general page fault accounting · 5ac365a4
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarPekka Enberg <penberg@kernel.org>
      Acked-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Link: http://lkml.kernel.org/r/20200707225021.200906-18-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5ac365a4
    • Peter Xu's avatar
      mm/powerpc: use general page fault accounting · 428fdc09
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Link: http://lkml.kernel.org/r/20200707225021.200906-17-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      428fdc09
    • Peter Xu's avatar
      mm/parisc: use general page fault accounting · af8a7926
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: Helge Deller <deller@gmx.de>
      Link: http://lkml.kernel.org/r/20200707225021.200906-16-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      af8a7926
    • Peter Xu's avatar
      mm/openrisc: use general page fault accounting · 38caa902
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarStafford Horne <shorne@gmail.com>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
      Link: http://lkml.kernel.org/r/20200707225021.200906-15-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      38caa902
    • Peter Xu's avatar
      mm/nios2: use general page fault accounting · 4487dcf9
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Ley Foon Tan <ley.foon.tan@intel.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-14-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4487dcf9
    • Peter Xu's avatar
      mm/nds32: use general page fault accounting · daf7bf5d
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Fix PERF_COUNT_SW_PAGE_FAULTS perf event manually for page fault retries,
      by moving it before taking mmap_sem.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarGreentime Hu <green.hu@gmail.com>
      Cc: Nick Hu <nickhu@andestech.com>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-13-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      daf7bf5d
    • Peter Xu's avatar
      mm/mips: use general page fault accounting · 2558fd7f
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Fix PERF_COUNT_SW_PAGE_FAULTS perf event manually for page fault retries,
      by moving it before taking mmap_sem.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      Link: http://lkml.kernel.org/r/20200707225021.200906-12-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2558fd7f
    • Peter Xu's avatar
      mm/microblaze: use general page fault accounting · aeb6aefc
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Michal Simek <monstr@monstr.eu>
      Link: http://lkml.kernel.org/r/20200707225021.200906-11-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aeb6aefc
    • Peter Xu's avatar
      mm/m68k: use general page fault accounting · e1c17f62
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Link: http://lkml.kernel.org/r/20200707225021.200906-10-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e1c17f62
    • Peter Xu's avatar
      mm/ia64: use general page fault accounting · b444eed8
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-9-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b444eed8
    • Peter Xu's avatar
      mm/hexagon: use general page fault accounting · e08157c3
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarBrian Cain <bcain@codeaurora.org>
      Link: http://lkml.kernel.org/r/20200707225021.200906-8-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e08157c3
    • Peter Xu's avatar
      mm/csky: use general page fault accounting · a2a9e439
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarGuo Ren <guoren@kernel.org>
      Link: http://lkml.kernel.org/r/20200707225021.200906-7-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a2a9e439
    • Peter Xu's avatar
      mm/arm64: use general page fault accounting · 6a1bb025
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.  To do this, we pass pt_regs
      pointer into __do_page_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarWill Deacon <will@kernel.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-6-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6a1bb025
    • Peter Xu's avatar
      mm/arm: use general page fault accounting · 79fea6c6
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.  To do this, we need to pass
      the pt_regs pointer into __do_page_fault().
      
      Fix PERF_COUNT_SW_PAGE_FAULTS perf event manually for page fault retries,
      by moving it before taking mmap_sem.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Will Deacon <will@kernel.org>
      Link: http://lkml.kernel.org/r/20200707225021.200906-5-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      79fea6c6
    • Peter Xu's avatar
      mm/arc: use general page fault accounting · 52e3f8d0
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().  It naturally solve the issue of multiple page fault
      accounting when page fault retry happened.
      
      Fix PERF_COUNT_SW_PAGE_FAULTS perf event manually for page fault retries,
      by moving it before taking mmap_sem.
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-4-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      52e3f8d0
    • Peter Xu's avatar
      mm/alpha: use general page fault accounting · c0f6eda4
      Peter Xu authored
      
      
      Use the general page fault accounting by passing regs into
      handle_mm_fault().
      
      Add the missing PERF_COUNT_SW_PAGE_FAULTS perf events too.  Note, the
      other two perf events (PERF_COUNT_SW_PAGE_FAULTS_[MAJ|MIN]) were done in
      handle_mm_fault().
      
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Matt Turner <mattst88@gmail.com>
      Link: http://lkml.kernel.org/r/20200707225021.200906-3-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c0f6eda4
    • Peter Xu's avatar
      mm: do page fault accounting in handle_mm_fault · bce617ed
      Peter Xu authored
      Patch series "mm: Page fault accounting cleanups", v5.
      
      This is v5 of the pf accounting cleanup series.  It originates from Gerald
      Schaefer's report on an issue a week ago regarding to incorrect page fault
      accountings for retried page fault after commit 4064b982
      
       ("mm: allow
      VM_FAULT_RETRY for multiple times"):
      
        https://lore.kernel.org/lkml/20200610174811.44b94525@thinkpad/
      
      What this series did:
      
        - Correct page fault accounting: we do accounting for a page fault
          (no matter whether it's from #PF handling, or gup, or anything else)
          only with the one that completed the fault.  For example, page fault
          retries should not be counted in page fault counters.  Same to the
          perf events.
      
        - Unify definition of PERF_COUNT_SW_PAGE_FAULTS: currently this perf
          event is used in an adhoc way across different archs.
      
          Case (1): for many archs it's done at the entry of a page fault
          handler, so that it will also cover e.g.  errornous faults.
      
          Case (2): for some other archs, it is only accounted when the page
          fault is resolved successfully.
      
          Case (3): there're still quite some archs that have not enabled
          this perf event.
      
          Since this series will touch merely all the archs, we unify this
          perf event to always follow case (1), which is the one that makes most
          sense.  And since we moved the accounting into handle_mm_fault, the
          other two MAJ/MIN perf events are well taken care of naturally.
      
        - Unify definition of "major faults": the definition of "major
          fault" is slightly changed when used in accounting (not
          VM_FAULT_MAJOR).  More information in patch 1.
      
        - Always account the page fault onto the one that triggered the page
          fault.  This does not matter much for #PF handlings, but mostly for
          gup.  More information on this in patch 25.
      
      Patchset layout:
      
      Patch 1:     Introduced the accounting in handle_mm_fault(), not enabled.
      Patch 2-23:  Enable the new accounting for arch #PF handlers one by one.
      Patch 24:    Enable the new accounting for the rest outliers (gup, iommu, etc.)
      Patch 25:    Cleanup GUP task_struct pointer since it's not needed any more
      
      This patch (of 25):
      
      This is a preparation patch to move page fault accountings into the
      general code in handle_mm_fault().  This includes both the per task
      flt_maj/flt_min counters, and the major/minor page fault perf events.  To
      do this, the pt_regs pointer is passed into handle_mm_fault().
      
      PERF_COUNT_SW_PAGE_FAULTS should still be kept in per-arch page fault
      handlers.
      
      So far, all the pt_regs pointer that passed into handle_mm_fault() is
      NULL, which means this patch should have no intented functional change.
      
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Alexander Gordeev <agordeev@linux.ibm.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Cain <bcain@codeaurora.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
      Cc: Greentime Hu <green.hu@gmail.com>
      Cc: Guo Ren <guoren@kernel.org>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
      Cc: John Hubbard <jhubbard@nvidia.com>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: Ley Foon Tan <ley.foon.tan@intel.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Max Filippov <jcmvbkbc@gmail.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Nick Hu <nickhu@andestech.com>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Rich Felker <dalias@libc.org>
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Stafford Horne <shorne@gmail.com>
      Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
      Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Vincent Chen <deanbo422@gmail.com>
      Cc: Vineet Gupta <vgupta@synopsys.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Link: http://lkml.kernel.org/r/20200707225021.200906-1-peterx@redhat.com
      Link: http://lkml.kernel.org/r/20200707225021.200906-2-peterx@redhat.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bce617ed
    • Joonsoo Kim's avatar
      mm/gup: use a standard migration target allocation callback · ed03d924
      Joonsoo Kim authored
      
      
      There is a well-defined migration target allocation callback. Use it.
      
      Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Mike Kravetz <mike.kravetz@oracle.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Roman Gushchin <guro@fb.com>
      Link: http://lkml.kernel.org/r/1596180906-8442-3-git-send-email-iamjoonsoo.kim@lge.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed03d924
    • Joonsoo Kim's avatar
      mm/hugetlb: make hugetlb migration callback CMA aware · bbe88753
      Joonsoo Kim authored
      
      
      new_non_cma_page() in gup.c requires to allocate the new page that is not
      on the CMA area.  new_non_cma_page() implements it by using allocation
      scope APIs.
      
      However, there is a work-around for hugetlb.  Normal hugetlb page
      allocation API for migration is alloc_huge_page_nodemask().  It consists
      of two steps.  First is dequeing from the pool.  Second is, if there is no
      available page on the queue, allocating by using the page allocator.
      
      new_non_cma_page() can't use this API since first step (deque) isn't aware
      of scope API to exclude CMA area.  So, new_non_cma_page() exports hugetlb
      internal function for the second step, alloc_migrate_huge_page(), to
      global scope and uses it directly.  This is suboptimal since hugetlb pages
      on the queue cannot be utilized.
      
      This patch tries to fix this situation by making the deque function on
      hugetlb CMA aware.  In the deque function, CMA memory is skipped if
      PF_MEMALLOC_NOCMA flag is found.
      
      Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Roman Gushchin <guro@fb.com>
      Link: http://lkml.kernel.org/r/1596180906-8442-2-git-send-email-iamjoonsoo.kim@lge.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bbe88753
    • Joonsoo Kim's avatar
      mm/gup: restrict CMA region by using allocation scope API · 41b4dc14
      Joonsoo Kim authored
      We have well defined scope API to exclude CMA region.  Use it rather than
      manipulating gfp_mask manually.  With this change, we can now restore
      __GFP_MOVABLE for gfp_mask like as usual migration target allocation.  It
      would result in that the ZONE_MOVABLE is also searched by page allocator.
      For hugetlb, gfp_mask is redefined since it has a regular allocation mask
      filter for migration target.  __GPF_NOWARN is added to hugetlb gfp_mask
      filter since a new user for gfp_mask filter, gup, want to be silent when
      allocation fails.
      
      Note that this can be considered as a fix for the commit 9a4e9f3b
      
      
      ("mm: update get_user_pages_longterm to migrate pages allocated from CMA
      region").  However, "Fixes" tag isn't added here since it is just
      suboptimal but it doesn't cause any problem.
      
      Suggested-by: default avatarMichal Hocko <mhocko@suse.com>
      Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Roman Gushchin <guro@fb.com>
      Cc: Mike Kravetz <mike.kravetz@oracle.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.ibm.com>
      Link: http://lkml.kernel.org/r/1596180906-8442-1-git-send-email-iamjoonsoo.kim@lge.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      41b4dc14
    • Joonsoo Kim's avatar
      mm/page_alloc: remove a wrapper for alloc_migration_target() · 8b94e0b8
      Joonsoo Kim authored
      
      
      There is a well-defined standard migration target callback.  Use it
      directly.
      
      Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Mike Kravetz <mike.kravetz@oracle.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Roman Gushchin <guro@fb.com>
      Link: http://lkml.kernel.org/r/1594622517-20681-8-git-send-email-iamjoonsoo.kim@lge.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8b94e0b8
    • Joonsoo Kim's avatar
      mm/mempolicy: use a standard migration target allocation callback · a0976311
      Joonsoo Kim authored
      
      
      There is a well-defined migration target allocation callback.  Use it.
      
      Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Mike Kravetz <mike.kravetz@oracle.com>
      Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: Roman Gushchin <guro@fb.com>
      Link: http://lkml.kernel.org/r/1594622517-20681-7-git-send-email-iamjoonsoo.kim@lge.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a0976311