Skip to content
  1. Dec 01, 2019
    • Johannes Weiner's avatar
      mm: memcontrol: try harder to set a new memory.high · 8c8c383c
      Johannes Weiner authored
      
      
      Setting a memory.high limit below the usage makes almost no effort to
      shrink the cgroup to the new target size.
      
      While memory.high is a "soft" limit that isn't supposed to cause OOM
      situations, we should still try harder to meet a user request through
      persistent reclaim.
      
      For example, after setting a 10M memory.high on an 800M cgroup full of
      file cache, the usage shrinks to about 350M:
      
        + cat /cgroup/workingset/memory.current
        841568256
        + echo 10M
        + cat /cgroup/workingset/memory.current
        355729408
      
      This isn't exactly what the user would expect to happen. Setting the
      value a few more times eventually whittles the usage down to what we
      are asking for:
      
        + echo 10M
        + cat /cgroup/workingset/memory.current
        104181760
        + echo 10M
        + cat /cgroup/workingset/memory.current
        31801344
        + echo 10M
        + cat /cgroup/workingset/memory.current
        10440704
      
      To improve this, add reclaim retry loops to the memory.high write()
      callback, similar to what we do for memory.max, to make a reasonable
      effort that the usage meets the requested size after the call returns.
      
      Afterwards, a single write() to memory.high is enough in all but extreme
      cases:
      
        + cat /cgroup/workingset/memory.current
        841609216
        + echo 10M
        + cat /cgroup/workingset/memory.current
        10182656
      
      790M is not a reasonable reclaim target to ask of a single reclaim
      invocation.  And it wouldn't be reasonable to optimize the reclaim code
      for it.  So asking for the full size but retrying is not a bad choice
      here: we express our intent, and benefit if reclaim becomes better at
      handling larger requests, but we also acknowledge that some of the
      deltas we can encounter in memory_high_write() are just too ridiculously
      big for a single reclaim invocation to manage.
      
      Link: http://lkml.kernel.org/r/20191022201518.341216-2-hannes@cmpxchg.org
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8c8c383c
    • Johannes Weiner's avatar
      mm: memcontrol: remove dead code from memory_max_write() · 7249c9f0
      Johannes Weiner authored
      
      
      When the reclaim loop in memory_max_write() is ^C'd or similar, we set err
      to -EINTR.  But we don't return err.  Once the limit is set, we always
      return success (nbytes).  Delete the dead code.
      
      Link: http://lkml.kernel.org/r/20191022201518.341216-1-hannes@cmpxchg.org
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7249c9f0
    • Yafang Shao's avatar
      mm, memcg: clean up reclaim iter array · 9da83f3f
      Yafang Shao authored
      
      
      The mem_cgroup_reclaim_cookie is only used in memcg softlimit reclaim now,
      and the priority of the reclaim is always 0.  We don't need to define the
      iter in struct mem_cgroup_per_node as an array any more.  That could make
      the code more clear and save some space.
      
      Link: http://lkml.kernel.org/r/1569897728-1686-1-git-send-email-laoar.shao@gmail.com
      Signed-off-by: default avatarYafang Shao <laoar.shao@gmail.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9da83f3f
    • Fengguang Wu's avatar
      mm/swap.c: trivial mark_page_accessed() cleanup · a1100a74
      Fengguang Wu authored
      
      
      This avoids duplicated PageReferenced() calls.  No behavior change.
      
      Link: http://lkml.kernel.org/r/20191016225326.GB12497@wfg-t540p.sh.intel.com
      Signed-off-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: Liu Jingqi <jingqi.liu@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a1100a74
    • Naohiro Aota's avatar
      mm, swap: disallow swapon() on zoned block devices · 12d2966d
      Naohiro Aota authored
      
      
      A zoned block device consists of a number of zones.  Zones are either
      conventional and accepting random writes or sequential and requiring
      that writes be issued in LBA order from each zone write pointer
      position.  For the write restriction, zoned block devices are not
      suitable for a swap device.  Disallow swapon on them.
      
      [akpm@linux-foundation.org: reflow and reword comment, per Christoph]
      Link: http://lkml.kernel.org/r/20191015085814.637837-1-naohiro.aota@wdc.com
      Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: "Theodore Y. Ts'o" <tytso@mit.edu>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Hugh Dickins <hughd@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      12d2966d
    • Liu Xiang's avatar
      mm/gup.c: fix comments of __get_user_pages() and get_user_pages_remote() · d2dfbe47
      Liu Xiang authored
      
      
      Fix comments of __get_user_pages() and get_user_pages_remote(), make
      them more clear.
      
      Link: http://lkml.kernel.org/r/1572443533-3118-1-git-send-email-liuxiang_1999@126.com
      Signed-off-by: default avatarLiu Xiang <liuxiang_1999@126.com>
      Suggested-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
      Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
      Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d2dfbe47
    • zhong jiang's avatar
      mm/gup.c: allow CMA migration to propagate errors back to caller · b96cc655
      zhong jiang authored
      
      
      check_and_migrate_cma_pages() was recording the result of
      __get_user_pages_locked() in an unsigned "nr_pages" variable.
      
      Because __get_user_pages_locked() returns a signed value that can
      include negative errno values, this had the effect of hiding errors.
      
      Change check_and_migrate_cma_pages() implementation so that it uses a
      signed variable instead, and propagates the results back to the caller
      just as other gup internal functions do.
      
      This was discovered with the help of unsigned_lesser_than_zero.cocci.
      
      Link: http://lkml.kernel.org/r/1571671030-58029-1-git-send-email-zhongjiang@huawei.com
      Signed-off-by: default avatarzhong jiang <zhongjiang@huawei.com>
      Suggested-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Reviewed-by: default avatarJohn Hubbard <jhubbard@nvidia.com>
      Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b96cc655
    • Konstantin Khlebnikov's avatar
      mm/filemap.c: warn if stale pagecache is left after direct write · 9266a140
      Konstantin Khlebnikov authored
      
      
      generic_file_direct_write() tries to invalidate pagecache after O_DIRECT
      write.  Unlike to similar code in dio_complete() this silently ignores
      error returned from invalidate_inode_pages2_range().
      
      According to comment this code here because not all filesystems call
      dio_complete() to do proper invalidation after O_DIRECT write.  Noticeable
      example is a blkdev_direct_IO().
      
      This patch calls dio_warn_stale_pagecache() if invalidation fails.
      
      Link: http://lkml.kernel.org/r/157270038294.4812.2238891109785106069.stgit@buzz
      Signed-off-by: default avatarKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9266a140
    • Konstantin Khlebnikov's avatar
      fs/direct-io.c: keep dio_warn_stale_pagecache() when CONFIG_BLOCK=n · a92853b6
      Konstantin Khlebnikov authored
      This helper prints warning if direct I/O write failed to invalidate cache,
      and set EIO at inode to warn usersapce about possible data corruption.
      
      See also commit 5a9d929d
      
       ("iomap: report collisions between directio
      and buffered writes to userspace").
      
      Direct I/O is supported by non-disk filesystems, for example NFS.  Thus
      generic code needs this even in kernel without CONFIG_BLOCK.
      
      Link: http://lkml.kernel.org/r/157270038074.4812.7980855544557488880.stgit@buzz
      Signed-off-by: default avatarKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a92853b6
    • Konstantin Khlebnikov's avatar
      mm/filemap.c: remove redundant cache invalidation after async direct-io write · 80c1fe90
      Konstantin Khlebnikov authored
      
      
      generic_file_direct_write() invalidates cache at entry.  Second time this
      should be done when request completes.  But this function calls second
      invalidation at exit unconditionally even for async requests.
      
      This patch skips second invalidation for async requests (-EIOCBQUEUED).
      
      Link: http://lkml.kernel.org/r/157270037850.4812.15036239021726025572.stgit@buzz
      Signed-off-by: default avatarKonstantin Khlebnikov <khlebnikov@yandex-team.ru>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      80c1fe90
    • Yu Zhao's avatar
      mm/slub.c: clean up validate_slab() · dd98afd4
      Yu Zhao authored
      
      
      The function doesn't need to return any value, and the check can be done
      in one pass.
      
      There is a behavior change: before the patch, we stop at the first invalid
      free object; after the patch, we stop at the first invalid object, free or
      in use.  This shouldn't matter because the original behavior isn't
      intended anyway.
      
      Link: http://lkml.kernel.org/r/20191108193958.205102-1-yuzhao@google.com
      Signed-off-by: default avatarYu Zhao <yuzhao@google.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
      Cc: Yu Zhao <yuzhao@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dd98afd4
    • Yu Zhao's avatar
      mm/slub.c: update comments · aed68148
      Yu Zhao authored
      
      
      Slub doesn't use PG_active and PG_error anymore.
      
      Link: http://lkml.kernel.org/r/20191007222023.162256-1-yuzhao@google.com
      Signed-off-by: default avatarYu Zhao <yuzhao@google.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      aed68148
    • Miles Chen's avatar
      mm: slub: print the offset of fault addresses · e1b70dd1
      Miles Chen authored
      With commit ad67b74d
      
       ("printk: hash addresses printed with %p"), it
      is a little bit harder to match the fault addresses printed by
      check_bytes_and_report() or slab_pad_check() in the dump because the
      fault addresses may not show up in the dump.
      
      Print the offset of the fault addresses to make it easier to match the
      incorrect poison or padding values in the dump.
      
      Before: We have to search the "63" in the dump.  If we want to get the
      offset of 63, we have to count it from the start of Object dump.
      
          =============================================================
          BUG kmalloc-128 (Not tainted): Poison overwritten
          -------------------------------------------------------------
      
          Disabling lock debugging due to kernel taint
          INFO: 0x00000000570da294-0x00000000570da294.
          First byte 0x63 instead of 0x6b
          ...
          INFO: Object 0x000000006ebb3b9e @offset=14208 fp=0x0000000065862488
          Redzone 00000000a6abccff: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 00000000741c16f0: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 0000000061ad278f: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 000000000467c1bd: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 000000008812766b: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 000000003d9b8f25: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 0000000000d80c33: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 00000000867b0d90: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Object 000000006ebb3b9e: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 000000005ea59a9f: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 000000003ef8bddc: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 000000008190375d: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 000000006df7fb32: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 0000000069474eae: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 0000000008073b7d: 6b 6b 6b 6b 63 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 00000000b45ae74d: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5
      
      After: We know the fault address is at @offset=1508, and the Object is
      at @offset=1408, so we know the fault address is at offset=100 within
      the object.
      
          =========================================================
          BUG kmalloc-128 (Not tainted): Poison overwritten
          ---------------------------------------------------------
      
          Disabling lock debugging due to kernel taint
          INFO: 0x00000000638ec1d1-0x00000000638ec1d1 @offset=1508.
          First byte 0x63 instead of 0x6b
          ...
          INFO: Object 0x000000008171818d @offset=1408 fp=0x0000000066dae230
          Redzone 00000000e2697ab6: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 0000000064b6a381: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 00000000e413a234: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 0000000004c1dfeb: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 000000009ad24d42: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 000000002a196a23: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 00000000a7b8468a: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Redzone 0000000088db6da3: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
          Object 000000008171818d: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 000000007c4035d4: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 000000004dd281a4: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 0000000079121dff: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 00000000756682a9: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 0000000053b7e541: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 0000000091f8d530: 6b 6b 6b 6b 63 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
          Object 000000009c76035c: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5
      
      Link: http://lkml.kernel.org/r/20190925140807.20490-1-miles.chen@mediatek.com
      Signed-off-by: default avatarMiles Chen <miles.chen@mediatek.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: David Rientjes <rientjes@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e1b70dd1
    • Pengfei Li's avatar
      mm, slab_common: use enum kmalloc_cache_type to iterate over kmalloc caches · 13657d0a
      Pengfei Li authored
      
      
      The type of local variable *type* of new_kmalloc_cache() should be enum
      kmalloc_cache_type instead of int, so correct it.
      
      Link: http://lkml.kernel.org/r/1569241648-26908-4-git-send-email-lpf.vector@gmail.com
      Signed-off-by: default avatarPengfei Li <lpf.vector@gmail.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarRoman Gushchin <guro@fb.com>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      13657d0a
    • Pengfei Li's avatar
      mm, slab: remove unused kmalloc_size() · dc0a7f75
      Pengfei Li authored
      
      
      The size of kmalloc can be obtained from kmalloc_info[], so remove
      kmalloc_size() that will not be used anymore.
      
      Link: http://lkml.kernel.org/r/1569241648-26908-3-git-send-email-lpf.vector@gmail.com
      Signed-off-by: default avatarPengfei Li <lpf.vector@gmail.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarRoman Gushchin <guro@fb.com>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dc0a7f75
    • Pengfei Li's avatar
      mm, slab: make kmalloc_info[] contain all types of names · cb5d9fb3
      Pengfei Li authored
      
      
      Patch series "mm, slab: Make kmalloc_info[] contain all types of names", v6.
      
      There are three types of kmalloc, KMALLOC_NORMAL, KMALLOC_RECLAIM
      and KMALLOC_DMA.
      
      The name of KMALLOC_NORMAL is contained in kmalloc_info[].name,
      but the names of KMALLOC_RECLAIM and KMALLOC_DMA are dynamically
      generated by kmalloc_cache_name().
      
      Patch1 predefines the names of all types of kmalloc to save
      the time spent dynamically generating names.
      
      These changes make sense, and the time spent by new_kmalloc_cache()
      has been reduced by approximately 36.3%.
      
                               Time spent by new_kmalloc_cache()
                                        (CPU cycles)
      5.3-rc7                              66264
      5.3-rc7+patch                        42188
      
      This patch (of 3):
      
      There are three types of kmalloc, KMALLOC_NORMAL, KMALLOC_RECLAIM and
      KMALLOC_DMA.
      
      The name of KMALLOC_NORMAL is contained in kmalloc_info[].name, but the
      names of KMALLOC_RECLAIM and KMALLOC_DMA are dynamically generated by
      kmalloc_cache_name().
      
      This patch predefines the names of all types of kmalloc to save the time
      spent dynamically generating names.
      
      Besides, remove the kmalloc_cache_name() that is no longer used.
      
      Link: http://lkml.kernel.org/r/1569241648-26908-2-git-send-email-lpf.vector@gmail.com
      Signed-off-by: default avatarPengfei Li <lpf.vector@gmail.com>
      Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
      Acked-by: default avatarRoman Gushchin <guro@fb.com>
      Acked-by: default avatarDavid Rientjes <rientjes@google.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cb5d9fb3
    • Ben Dooks's avatar
      fs/buffer.c: include internal.h for missing declarations · 2b211dc0
      Ben Dooks authored
      
      
      The declarations of __block_write_begin_int and guard_bio_eod are needed
      from internal.h so include it to fix the following sparse warnings:
      
        fs/buffer.c:1930:5: warning: symbol '__block_write_begin_int' was not declared. Should it be static?
        fs/buffer.c:2994:6: warning: symbol 'guard_bio_eod' was not declared. Should it be static?
      
      Link: http://lkml.kernel.org/r/20191011170039.16100-1-ben.dooks@codethink.co.uk
      Signed-off-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2b211dc0
    • Saurav Girepunje's avatar
      fs/buffer.c: fix use true/false for bool type · 1d706679
      Saurav Girepunje authored
      
      
      Use true/false for bool return type of has_bh_in_lru().
      
      Link: http://lkml.kernel.org/r/20191029040529.GA7625@saurav
      Signed-off-by: default avatarSaurav Girepunje <saurav.girepunje@gmail.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1d706679
    • Ding Xiang's avatar
      ocfs2: fix passing zero to 'PTR_ERR' warning · 188c523e
      Ding Xiang authored
      Fix a static code checker warning:
      fs/ocfs2/acl.c:331
      	ocfs2_acl_chmod() warn: passing zero to 'PTR_ERR'
      
      Link: http://lkml.kernel.org/r/1dee278b-6c96-eec2-ce76-fe6e07c6e20f@linux.alibaba.com
      Fixes: 5ee0fbd5
      
       ("ocfs2: revert using ocfs2_acl_chmod to avoid inode cluster lock hang")
      Signed-off-by: default avatarDing Xiang <dingxiang@cmss.chinamobile.com>
      Reviewed-by: default avatarJoseph Qi <joseph.qi@linux.alibaba.com>
      Cc: Mark Fasheh <mark@fasheh.com>
      Cc: Joel Becker <jlbec@evilplan.org>
      Cc: Junxiao Bi <junxiao.bi@oracle.com>
      Cc: Changwei Ge <gechangwei@live.cn>
      Cc: Gang He <ghe@suse.com>
      Cc: Jun Piao <piaojun@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      188c523e
    • Colin Ian King's avatar
      scripts/spelling.txt: add more spellings to spelling.txt · 2d216b23
      Colin Ian King authored
      
      
      Here are some of the more common spelling mistakes and typos that I've
      found while fixing up spelling mistakes in the kernel since July 2019.
      
      Link: http://lkml.kernel.org/r/20191112092142.97989-1-colin.king@canonical.com
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2d216b23
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 32ef9553
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "Three fsnotify cleanups"
      
      * tag 'fsnotify_for_v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fsnotify: Add git tree reference to MAINTAINERS
        fsnotify/fdinfo: exportfs_encode_inode_fh() takes pointer as 4th argument
        fsnotify: move declaration of fsnotify_mark_connector_cachep to fsnotify.h
      32ef9553
    • Linus Torvalds's avatar
      Merge tag 'for_v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · b8072d5b
      Linus Torvalds authored
      Pull ext2, quota, reiserfs cleanups and fixes from Jan Kara:
      
       - Refactor the quota on/off kernel internal interfaces (mostly for
         ubifs quota support as ubifs does not want to have inodes holding
         quota information)
      
       - A few other small quota fixes and cleanups
      
       - Various small ext2 fixes and cleanups
      
       - Reiserfs xattr fix and one cleanup
      
      * tag 'for_v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: (28 commits)
        ext2: code cleanup for descriptor_loc()
        fs/quota: handle overflows of sysctl fs.quota.* and report as unsigned long
        ext2: fix improper function comment
        ext2: code cleanup for ext2_try_to_allocate()
        ext2: skip unnecessary operations in ext2_try_to_allocate()
        ext2: Simplify initialization in ext2_try_to_allocate()
        ext2: code cleanup by calling ext2_group_last_block_no()
        ext2: introduce new helper ext2_group_last_block_no()
        reiserfs: replace open-coded atomic_dec_and_mutex_lock()
        ext2: check err when partial != NULL
        quota: Handle quotas without quota inodes in dquot_get_state()
        quota: Make dquot_disable() work without quota inodes
        quota: Drop dquot_enable()
        fs: Use dquot_load_quota_inode() from filesystems
        quota: Rename vfs_load_quota_inode() to dquot_load_quota_inode()
        quota: Simplify dquot_resume()
        quota: Factor out setup of quota inode
        quota: Check that quota is not dirty before release
        quota: fix livelock in dquot_writeback_dquots
        ext2: don't set *count in the case of failure in ext2_try_to_allocate()
        ...
      b8072d5b
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · e2d73c30
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "No major kernel updates for this round since I'm fully diving into
        LZMA algorithm internals now to provide high CR XZ algorihm support.
        That needs more work and time for me to get a better compression time.
      
        Summary:
      
         - Introduce superblock checksum support
      
         - Set iowait when waiting I/O for sync decompression path
      
         - Several code cleanups"
      
      * tag 'erofs-for-5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: remove unnecessary output in erofs_show_options()
        erofs: drop all vle annotations for runtime names
        erofs: support superblock checksum
        erofs: set iowait for sync decompression
        erofs: clean up decompress queue stuffs
        erofs: get rid of __stagingpage_alloc helper
        erofs: remove dead code since managed cache is now built-in
        erofs: clean up collection handling routines
      e2d73c30
    • Linus Torvalds's avatar
      Merge tag '5.5-rc-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 21b26d26
      Linus Torvalds authored
      Pull cifs updates from Steve French:
       "Various smb3 fixes (including 12 for stable) and also features
        (addition of multichannel support)"
      
      * tag '5.5-rc-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6: (41 commits)
        CIFS: fix a white space issue in cifs_get_inode_info()
        cifs: update internal module version number
        cifs: Always update signing key of first channel
        cifs: Fix retrieval of DFS referrals in cifs_mount()
        cifs: Fix potential softlockups while refreshing DFS cache
        cifs: Fix lookup of root ses in DFS referral cache
        cifs: Fix use-after-free bug in cifs_reconnect()
        cifs: dump channel info in DebugData
        smb3: dump in_send and num_waiters stats counters by default
        cifs: try harder to open new channels
        CIFS: Properly process SMB3 lease breaks
        cifs: move cifsFileInfo_put logic into a work-queue
        cifs: try opening channels after mounting
        CIFS: refactor cifs_get_inode_info()
        cifs: switch servers depending on binding state
        cifs: add server param
        cifs: add multichannel mount options and data structs
        cifs: sort interface list by speed
        CIFS: Fix SMB2 oplock break processing
        cifs: don't use 'pre:' for MODULE_SOFTDEP
        ...
      21b26d26
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 8f45533e
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we've introduced fairly small number of patches as below.
      
        Enhancements:
         - improve the in-place-update IO flow
         - allocate segment to guarantee no GC for pinned files
      
        Bug fixes:
         - fix updatetime in lazytime mode
         - potential memory leak in f2fs_listxattr
         - record parent inode number in rename2 correctly
         - fix deadlock in f2fs_gc along with atomic writes
         - avoid needless data migration in GC"
      
      * tag 'f2fs-for-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs:
        f2fs: stop GC when the victim becomes fully valid
        f2fs: expose main_blkaddr in sysfs
        f2fs: choose hardlimit when softlimit is larger than hardlimit in f2fs_statfs_project()
        f2fs: Fix deadlock in f2fs_gc() context during atomic files handling
        f2fs: show f2fs instance in printk_ratelimited
        f2fs: fix potential overflow
        f2fs: fix to update dir's i_pino during cross_rename
        f2fs: support aligned pinned file
        f2fs: avoid kernel panic on corruption test
        f2fs: fix wrong description in document
        f2fs: cache global IPU bio
        f2fs: fix to avoid memory leakage in f2fs_listxattr
        f2fs: check total_segments from devices in raw_super
        f2fs: update multi-dev metadata in resize_fs
        f2fs: mark recovery flag correctly in read_raw_super_block()
        f2fs: fix to update time in lazytime mode
      8f45533e
    • Linus Torvalds's avatar
      Merge tag 'afs-next-20191121' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 4a55d362
      Linus Torvalds authored
      Pull AFS updates from David Howells:
       "Minor cleanups and fix:
      
         - Minor fix to make some debugging statements display information
           from the correct iov_iter.
      
         - Rename some members and variables to make things more obvious or
           consistent.
      
         - Provide a helper to wrap increments of the usage count on the
           afs_read struct.
      
         - Use scnprintf() to print into a stack buffer rather than sprintf().
      
         - Remove some set but unused variables"
      
      * tag 'afs-next-20191121' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Remove set but not used variable 'ret'
        afs: Remove set but not used variables 'before', 'after'
        afs: xattr: use scnprintf
        afs: Introduce an afs_get_read() refcount helper
        afs: Rename desc -> req in afs_fetch_data()
        afs: Switch the naming of call->iter and call->_iter
        afs: Use call->_iter not &call->iter in debugging statements
      4a55d362
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 50b8b3f8
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "This merge window saw the the following new featuers added to ext4:
      
         - Direct I/O via iomap (required the iomap-for-next branch from
           Darrick as a prereq).
      
         - Support for using dioread-nolock where the block size < page size.
      
         - Support for encryption for file systems where the block size < page
           size.
      
         - Rework of journal credits handling so a revoke-heavy workload will
           not cause the journal to run out of space.
      
         - Replace bit-spinlocks with spinlocks in jbd2
      
        Also included were some bug fixes and cleanups, mostly to clean up
        corner cases from fuzzed file systems and error path handling"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (59 commits)
        ext4: work around deleting a file with i_nlink == 0 safely
        ext4: add more paranoia checking in ext4_expand_extra_isize handling
        jbd2: make jbd2_handle_buffer_credits() handle reserved handles
        ext4: fix a bug in ext4_wait_for_tail_page_commit
        ext4: bio_alloc with __GFP_DIRECT_RECLAIM never fails
        ext4: code cleanup for get_next_id
        ext4: fix leak of quota reservations
        ext4: remove unused variable warning in parse_options()
        ext4: Enable encryption for subpage-sized blocks
        fs/buffer.c: support fscrypt in block_read_full_page()
        ext4: Add error handling for io_end_vec struct allocation
        jbd2: Fine tune estimate of necessary descriptor blocks
        jbd2: Provide trace event for handle restarts
        ext4: Reserve revoke credits for freed blocks
        jbd2: Make credit checking more strict
        jbd2: Rename h_buffer_credits to h_total_credits
        jbd2: Reserve space for revoke descriptor blocks
        jbd2: Drop jbd2_space_needed()
        jbd2: Account descriptor blocks into t_outstanding_credits
        jbd2: Factor out common parts of stopping and restarting a handle
        ...
      50b8b3f8
    • Linus Torvalds's avatar
      Merge tag 'vfs-5.5-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · f112a2fd
      Linus Torvalds authored
      Pull splice fix from Darrick Wong:
       "Fix another place in the splice code where a pipe could ask a
        filesystem for a longer read than the pipe actually has free buffer
        space"
      
      * tag 'vfs-5.5-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        splice: only read in as much information as there is pipe buffer space
      f112a2fd
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.5-merge-11' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 3b266a52
      Linus Torvalds authored
      Pull iomap updates from Darrick Wong:
       "In this release, we hoisted as much of XFS' writeback code into iomap
        as was practicable, refactored the unshare file data function, added
        the ability to perform buffered io copy on write, and tweaked various
        parts of the directio implementation as needed to port ext4's directio
        code (that will be a separate pull).
      
        Summary:
      
         - Make iomap_dio_rw callers explicitly tell us if they want us to
           wait
      
         - Port the xfs writeback code to iomap to complete the buffered io
           library functions
      
         - Refactor the unshare code to share common pieces
      
         - Add support for performing copy on write with buffered writes
      
         - Other minor fixes
      
         - Fix unchecked return in iomap_bmap
      
         - Fix a type casting bug in a ternary statement in
           iomap_dio_bio_actor
      
         - Improve tracepoints for easier diagnostic ability
      
         - Fix pipe page leakage in directio reads"
      
      * tag 'iomap-5.5-merge-11' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (31 commits)
        iomap: Fix pipe page leakage during splicing
        iomap: trace iomap_appply results
        iomap: fix return value of iomap_dio_bio_actor on 32bit systems
        iomap: iomap_bmap should check iomap_apply return value
        iomap: Fix overflow in iomap_page_mkwrite
        fs/iomap: remove redundant check in iomap_dio_rw()
        iomap: use a srcmap for a read-modify-write I/O
        iomap: renumber IOMAP_HOLE to 0
        iomap: use write_begin to read pages to unshare
        iomap: move the zeroing case out of iomap_read_page_sync
        iomap: ignore non-shared or non-data blocks in xfs_file_dirty
        iomap: always use AOP_FLAG_NOFS in iomap_write_begin
        iomap: remove the unused iomap argument to __iomap_write_end
        iomap: better document the IOMAP_F_* flags
        iomap: enhance writeback error message
        iomap: pass a struct page to iomap_finish_page_writeback
        iomap: cleanup iomap_ioend_compare
        iomap: move struct iomap_page out of iomap.h
        iomap: warn on inline maps in iomap_writepage_map
        iomap: lift the xfs writeback code to iomap
        ...
      3b266a52
    • Linus Torvalds's avatar
      Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · aa32f116
      Linus Torvalds authored
      Pull hmm updates from Jason Gunthorpe:
       "This is another round of bug fixing and cleanup. This time the focus
        is on the driver pattern to use mmu notifiers to monitor a VA range.
        This code is lifted out of many drivers and hmm_mirror directly into
        the mmu_notifier core and written using the best ideas from all the
        driver implementations.
      
        This removes many bugs from the drivers and has a very pleasing
        diffstat. More drivers can still be converted, but that is for another
        cycle.
      
         - A shared branch with RDMA reworking the RDMA ODP implementation
      
         - New mmu_interval_notifier API. This is focused on the use case of
           monitoring a VA and simplifies the process for drivers
      
         - A common seq-count locking scheme built into the
           mmu_interval_notifier API usable by drivers that call
           get_user_pages() or hmm_range_fault() with the VA range
      
         - Conversion of mlx5 ODP, hfi1, radeon, nouveau, AMD GPU,...
      aa32f116
    • Linus Torvalds's avatar
      Merge tag 'drm-vmwgfx-coherent-2019-11-29' of git://anongit.freedesktop.org/drm/drm · d5bb349d
      Linus Torvalds authored
      Pull drm coherent memory support for vmwgfx from Dave Airlie:
       "This is a separate pull for the mm pagewalking + drm/vmwgfx work
        Thomas did and you were involved in, I've left it separate in case you
        don't feel as comfortable with it as the other stuff.
      
        It has mm acks/r-b in the right places from what I can see"
      
      * tag 'drm-vmwgfx-coherent-2019-11-29' of git://anongit.freedesktop.org/drm/drm:
        drm/vmwgfx: Add surface dirty-tracking callbacks
        drm/vmwgfx: Implement an infrastructure for read-coherent resources
        drm/vmwgfx: Use an RBtree instead of linked list for MOB resources
        drm/vmwgfx: Implement an infrastructure for write-coherent resources
        mm: Add write-protect and clean utilities for address space ranges
        mm: Add a walk_page_mapping() function to the pagewalk code
        mm: pagewalk: Take the pagetable lock in walk_pte_range()
        mm: Remove BUG_ON mmap_sem not held from xxx_trans_huge_lock()
        drm/ttm: Convert vm callbacks to helpers
        drm/ttm: Remove explicit typecasts of vm_private_data
      d5bb349d
  2. Nov 29, 2019
    • Linus Torvalds's avatar
      Merge branch 'master' of... · 81b6b964
      Linus Torvalds authored
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux; tag 'dma-mapping-5.5' of git://git.infradead.org/users/hch/dma-mapping
      
      Pull dma-mapping updates from Christoph Hellwig:
      
       - improve dma-debug scalability (Eric Dumazet)
      
       - tiny dma-debug cleanup (Dan Carpenter)
      
       - check for vmap memory in dma_map_single (Kees Cook)
      
       - check for dma_addr_t overflows in dma-direct when using DMA offsets
         (Nicolas Saenz Julienne)
      
       - switch the x86 sta2x11 SOC to use more generic DMA code (Nicolas
         Saenz Julienne)
      
       - fix arm-nommu dma-ranges handling (Vladimir Murzin)
      
       - use __initdata in CMA (Shyam Saini)
      
       - replace the bus dma mask with a limit (Nicolas Saenz Julienne)
      
       - merge the remapping helpers into the main dma-direct flow (me)
      
       - switch xtensa to the generic dma remap handling (me)
      
       - various cleanups around dma_capable (me)
      
       - remove unused dev arguments to various dma-noncoherent helpers (me)
      
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux:
      
      * tag 'dma-mapping-5.5' of git://git.infradead.org/users/hch/dma-mapping: (22 commits)
        dma-mapping: treat dev->bus_dma_mask as a DMA limit
        dma-direct: exclude dma_direct_map_resource from the min_low_pfn check
        dma-direct: don't check swiotlb=force in dma_direct_map_resource
        dma-debug: clean up put_hash_bucket()
        powerpc: remove support for NULL dev in __phys_to_dma / __dma_to_phys
        dma-direct: avoid a forward declaration for phys_to_dma
        dma-direct: unify the dma_capable definitions
        dma-mapping: drop the dev argument to arch_sync_dma_for_*
        x86/PCI: sta2x11: use default DMA address translation
        dma-direct: check for overflows on 32 bit DMA addresses
        dma-debug: increase HASH_SIZE
        dma-debug: reorder struct dma_debug_entry fields
        xtensa: use the generic uncached segment support
        dma-mapping: merge the generic remapping helpers into dma-direct
        dma-direct: provide mmap and get_sgtable method overrides
        dma-direct: remove the dma_handle argument to __dma_direct_alloc_pages
        dma-direct: remove __dma_direct_free_pages
        usb: core: Remove redundant vmap checks
        kernel: dma-contiguous: mark CMA parameters __initdata/__initconst
        dma-debug: add a schedule point in debug_dma_dump_mappings()
        ...
      81b6b964
    • Linus Torvalds's avatar
      Merge tag 'ioremap-5.5' of git://git.infradead.org/users/hch/ioremap · a308a710
      Linus Torvalds authored
      Pull generic ioremap support from Christoph Hellwig:
       "This adds the remaining bits for an entirely generic ioremap and
        iounmap to lib/ioremap.c. To facilitate that, it cleans up the giant
        mess of weird ioremap variants we had with no users outside the arch
        code.
      
        For now just the three newest ports use the code, but there is more
        than a handful others that can be converted without too much work.
      
        Summary:
      
         - clean up various obsolete ioremap and iounmap variants
      
         - add a new generic ioremap implementation and switch csky, nds32 and
           riscv over to it"
      
      * tag 'ioremap-5.5' of git://git.infradead.org/users/hch/ioremap: (21 commits)
        nds32: use generic ioremap
        csky: use generic ioremap
        csky: remove ioremap_cache
        riscv: use the generic ioremap code
        lib: provide a simple generic ioremap implementation
        sh: remove __iounmap
        nios2: remove __iounmap
        hexagon: remove __iounmap
        m68k: rename __iounmap and mark it static
        arch: rely on asm-generic/io.h for default ioremap_* definitions
        asm-generic: don't provide ioremap for CONFIG_MMU
        asm-generic: ioremap_uc should behave the same with and without MMU
        xtensa: clean up ioremap
        x86: Clean up ioremap()
        parisc: remove __ioremap
        nios2: remove __ioremap
        alpha: remove the unused __ioremap wrapper
        hexagon: clean up ioremap
        ia64: rename ioremap_nocache to ioremap_uc
        unicore32: remove ioremap_cached
        ...
      a308a710
    • Linus Torvalds's avatar
      Merge tag 'for-5.5/io_uring-post-20191128' of git://git.kernel.dk/linux-block · 05bd375b
      Linus Torvalds authored
      Pull more io_uring updates from Jens Axboe:
       "As mentioned in the first pull request, there was a later batch as
        well. This contains fixes to the stuff that already went in, cleanups,
        and a few later additions. In particular, this contains:
      
         - Cleanups/fixes/unification of the submission and completion path
           (Pavel,me)
      
         - Linked timeouts improvements (Pavel,me)
      
         - Error path fixes (me)
      
         - Fix lookup window where cancellations wouldn't work (me)
      
         - Improve DRAIN support (Pavel)
      
         - Fix backlog flushing -EBUSY on submit (me)
      
         - Add support for connect(2) (me)
      
         - Fix for non-iter based fixed IO (Pavel)
      
         - creds inheritance for async workers (me)
      
         - Disable cmsg/ancillary data for sendmsg/recvmsg (me)
      
         - Shrink io_kiocb to 3 cachelines (me)
      
         - NUMA fix for io-wq (Jann)"
      
      * tag 'for-5.5/io_uring-post-20191128' of git://git.kernel.dk/linux-block: (42 commits)
        io_uring: make poll->wait dynam...
      05bd375b
  3. Nov 28, 2019
    • Dave Airlie's avatar
      Merge branch 'vmwgfx-coherent' of git://people.freedesktop.org/~thomash/linux into drm-next · 0a6cad5d
      Dave Airlie authored
      
      
      Graphics APIs like OpenGL 4.4 and Vulkan require the graphics driver
      to provide coherent graphics memory, meaning that the GPU sees any
      content written to the coherent memory on the next GPU operation that
      touches that memory, and the CPU sees any content written by the GPU
      to that memory immediately after any fence object trailing the GPU
      operation is signaled.
      
      Paravirtual drivers that otherwise require explicit synchronization
      needs to do this by hooking up dirty tracking to pagefault handlers
      and buffer object validation.
      
      Provide mm helpers needed for this and that also allow for huge pmd-
      and pud entries (patch 1-3), and the associated vmwgfx code (patch 4-7).
      
      The code has been tested and exercised by a tailored version of mesa
      where we disable all explicit synchronization and assume graphics memory
      is coherent. The performance loss varies of course; a typical number is
      around 5%.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Thomas Hellstrom <thomas_os@shipmail.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20191113131639.4653-1-thomas_os@shipmail.org
      0a6cad5d
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2019-11-27' of git://anongit.freedesktop.org/drm/drm · a6ed68d6
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Lots of stuff in here, though it hasn't been too insane this merge
        apart from dealing with the security fun.
      
        uapi:
         - export different colorspace properties on DP vs HDMI
         - new fourcc for ARM 16x16 block format
         - syncobj: allow querying last submitted timeline value
         - DRM_FORMAT_BIG_ENDIAN defined as unsigned
      
        core:
         - allow using gem vma manager in ttm
         - connector/encoder/bridge doc fixes
         - allow more than 3 encoders for a connector
         - displayport mst suspend/resume reprobing support
         - vram lazy unmapping, uniform vram mm and gem vram
         - edid cleanups + AVI informframe bar info
         - displayport helpers - dpcd parser added
      
        dp_cec:
         - Allow a connector to be associated with a cec device
      
        ttm:
         - pipelining with no_gpu_wait fix
         - always keep BOs on the LRU
      
        sched:
         - allow free_job routine to sleep
      
        i915:
         - Block userptr from mappable GTT
         - i915 perf uapi versioning
         - OA stream dynamic reconfiguration
         - make context persistence optional
         - introduce DRM_I915_UNSTABLE Kconfig
         - add fake lmem testing under unstable
         - BT.2020 support for DP MSA
         - struct mutex elimination
         - Tigerlake display/PLL/power management improvements
         - Jasper Lake PCH support
         - refactor PMU for multiple GPUs
         - Icelake firmware update
         - Split out vga + switcheroo code
      
        amdgpu:
         - implement dma-buf import/export without helpers
         - vega20 RAS enablement
         - DC i2c over aux fixes
         - renoir GPU reset
         - DC HDCP support
         - BACO support for CI/VI asics
         - MSI-X support
         - Arcturus EEPROM support
         - Arcturus VCN encode support
         - VCN dynamic powergating on RV/RV2
      
        amdkfd:
         - add navi12/14/renoir support to kfd
      
        radeon:
         - SI dpm fix ported from amdgpu
         - fix bad DMA on ppc platforms
      
        gma500:
         - memory leak fixes
      
        qxl:
         - convert to new gem mmap
      
        exynos:
         - build warning fix
      
        komeda:
         - add aclk sysfs attribute
      
        v3d:
         - userspace cleanup uapi change
      
        i810:
         - fix for underflow in dispatch ioctls
      
        ast:
         - refactor show_cursor
      
        mgag200:
         - refactor show_cursor
      
        arcgpu:
         - encoder finding improvements
      
        mediatek:
         - mipi_tx, dsi and partial crtc support for MT8183 SoC
         - rotation support
      
        meson:
         - add suspend/resume support
      
        omap:
         - misc refactors
      
        tegra:
         - DisplayPort support for Tegra 210, 186 and 194.
         - IOMMU-backed DMA API fixes
      
        panfrost:
         - fix lockdep issue
         - simplify devfreq integration
      
        rcar-du:
         - R8A774B1 SoC support
         - fixes for H2 ES2.0
      
        sun4i:
         - vcc-dsi regulator support
      
        virtio-gpu:
         - vmexit vs spinlock fix
         - move to gem shmem helpers
         - handle large command buffers with cma"
      
      * tag 'drm-next-2019-11-27' of git://anongit.freedesktop.org/drm/drm: (1855 commits)
        drm/amdgpu: invalidate mmhub semaphore workaround in gmc9/gmc10
        drm/amdgpu: initialize vm_inv_eng0_sem for gfxhub and mmhub
        drm/amd/amdgpu/sriov skip RLCG s/r list for arcturus VF.
        drm/amd/amdgpu/sriov temporarily skip ras,dtm,hdcp for arcturus VF
        drm/amdgpu/gfx10: re-init clear state buffer after gpu reset
        merge fix for "ftrace: Rework event_create_dir()"
        drm/amdgpu: Update Arcturus golden registers
        drm/amdgpu/gfx10: fix out-of-bound mqd_backup array access
        drm/amdgpu/gfx10: explicitly wait for cp idle after halt/unhalt
        Revert "drm/amd/display: enable S/G for RAVEN chip"
        drm/amdgpu: disable gfxoff on original raven
        drm/amdgpu: remove experimental flag for Navi14
        drm/amdgpu: disable gfxoff when using register read interface
        drm/amdgpu/powerplay: properly set PP_GFXOFF_MASK (v2)
        drm/amdgpu: fix bad DMA from INTERRUPT_CNTL2
        drm/radeon: fix bad DMA from INTERRUPT_CNTL2
        drm/amd/display: Fix debugfs on MST connectors
        drm/amdgpu/nv: add asic func for fetching vbios from rom directly
        drm/amdgpu: put flush_delayed_work at first
        drm/amdgpu/vcn2.5: fix the enc loop with hw fini
        ...
      a6ed68d6
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 8c39f71e
      Linus Torvalds authored
      Pull networking fixes from David Miller:
       "This is mostly to fix the iwlwifi regression:
      
        1) Flush GRO state properly in iwlwifi driver, from Alexander Lobakin.
      
        2) Validate TIPC link name with properly length macro, from John
           Rutherford.
      
        3) Fix completion init and device query timeouts in ibmvnic, from
           Thomas Falcon.
      
        4) Fix SKB size calculation for netlink messages in psample, from
           Nikolay Aleksandrov.
      
        5) Similar kind of fix for OVS flow dumps, from Paolo Abeni.
      
        6) Handle queue allocation failure unwind properly in gve driver, we
           could try to release pages we didn't allocate. From Jeroen de
           Borst.
      
        7) Serialize TX queue SKB list accesses properly in mscc ocelot
           driver. From Yangbo Lu"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net:
        net: usb: aqc111: Use the correct style for SPDX License Identifier
        net: phy: Use the correct style for SPDX License Identifier
        net: wireless: intel: iwlwifi: fix GRO_NORMAL packet stalling
        net: mscc: ocelot: use skb queue instead of skbs list
        net: mscc: ocelot: avoid incorrect consuming in skbs list
        gve: Fix the queue page list allocated pages count
        net: inet_is_local_reserved_port() port arg should be unsigned short
        openvswitch: fix flow command message size
        net: phy: dp83869: Fix return paths to return proper values
        net: psample: fix skb_over_panic
        net: usbnet: Fix -Wcast-function-type
        net: hso: Fix -Wcast-function-type
        net: port < inet_prot_sock(net) --> inet_port_requires_bind_service(net, port)
        ibmvnic: Serialize device queries
        ibmvnic: Bound waits for device queries
        ibmvnic: Terminate waiting device threads after loss of service
        ibmvnic: Fix completion structure initialization
        net-sctp: replace some sock_net(sk) with just 'net'
        net: Fix a documentation bug wrt. ip_unprivileged_port_start
        tipc: fix link name length check
      8c39f71e
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 95f1fa9e
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
       "New tracing features:
      
         - New PERMANENT flag to ftrace_ops when attaching a callback to a
           function.
      
           As /proc/sys/kernel/ftrace_enabled when set to zero will disable
           all attached callbacks in ftrace, this has a detrimental impact on
           live kernel tracing, as it disables all that it patched. If a
           ftrace_ops is registered to ftrace with the PERMANENT flag set, it
           will prevent ftrace_enabled from being disabled, and if
           ftrace_enabled is already disabled, it will prevent a ftrace_ops
           with PREMANENT flag set from being registered.
      
         - New register_ftrace_direct().
      
           As eBPF would like to register its own trampolines to be called by
           the ftrace nop locations directly, without going through the ftrace
           trampoline, this function has been added. This allows for eBPF
           trampolines to live along side of ftrace, perf, kprobe and live
           patching. It also utilizes the ftrace enabled_functions file that
           keeps track of functions that have been modified in the kernel, to
           allow for security auditing.
      
         - Allow for kernel internal use of ftrace instances.
      
           Subsystems in the kernel can now create and destroy their own
           tracing instances which allows them to have their own tracing
           buffer, and be able to record events without worrying about other
           users from writing over their data.
      
         - New seq_buf_hex_dump() that lets users use the hex_dump() in their
           seq_buf usage.
      
         - Notifications now added to tracing_max_latency to allow user space
           to know when a new max latency is hit by one of the latency
           tracers.
      
         - Wider spread use of generic compare operations for use of bsearch
           and friends.
      
         - More synthetic event fields may be defined (32 up from 16)
      
         - Use of xarray for architectures with sparse system calls, for the
           system call trace events.
      
        This along with small clean ups and fixes"
      
      * tag 'trace-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (51 commits)
        tracing: Enable syscall optimization for MIPS
        tracing: Use xarray for syscall trace events
        tracing: Sample module to demonstrate kernel access to Ftrace instances.
        tracing: Adding new functions for kernel access to Ftrace instances
        tracing: Fix Kconfig indentation
        ring-buffer: Fix typos in function ring_buffer_producer
        ftrace: Use BIT() macro
        ftrace: Return ENOTSUPP when DYNAMIC_FTRACE_WITH_DIRECT_CALLS is not configured
        ftrace: Rename ftrace_graph_stub to ftrace_stub_graph
        ftrace: Add a helper function to modify_ftrace_direct() to allow arch optimization
        ftrace: Add helper find_direct_entry() to consolidate code
        ftrace: Add another check for match in register_ftrace_direct()
        ftrace: Fix accounting bug with direct->count in register_ftrace_direct()
        ftrace/selftests: Fix spelling mistake "wakeing" -> "waking"
        tracing: Increase SYNTH_FIELDS_MAX for synthetic_events
        ftrace/samples: Add a sample module that implements modify_ftrace_direct()
        ftrace: Add modify_ftrace_direct()
        tracing: Add missing "inline" in stub function of latency_fsnotify()
        tracing: Remove stray tab in TRACE_EVAL_MAP_FILE's help text
        tracing: Use seq_buf_hex_dump() to dump buffers
        ...
      95f1fa9e
    • Linus Torvalds's avatar
      Merge tag 'microblaze-v5.5-rc1' of git://git.monstr.eu/linux-2.6-microblaze · 477093b3
      Linus Torvalds authored
      Pull Microblaze updates from Michal Simek:
      
       - extend DTB space
      
       - defconfig update
      
       - clean up rescheduling logic
      
       - enable SPARSE_IRQ
      
      * tag 'microblaze-v5.5-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Increase max dtb size to 64K from 32K
        microblaze: Enable SPARSE_IRQ
        microblaze: defconfig: Enable devtmps and tmpfs
        microblaze: entry: Remove unneeded need_resched() loop
      477093b3
    • Linus Torvalds's avatar
      Merge tag 'riscv/for-v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 6a0e20cd
      Linus Torvalds authored
      Pull RISC-V updates from Paul Walmsley:
       "New features:
         - SECCOMP support
         - nommu support
         - SBI-less system support
         - M-Mode support
         - TLB flush optimizations
      
        Other improvements:
         - Pass the complete RISC-V ISA string supported by the CPU cores to
           userspace, rather than redacting parts of it in the kernel
         - Add platform DMA IP block data to the HiFive Unleashed board DT
           file
         - Add Makefile support for BZ2, LZ4, LZMA, LZO kernel image
           compression formats, in line with other architectures
      
        Cleanups:
         - Remove unnecessary PTE_PARENT_SIZE macro
         - Standardize include guard naming across arch/riscv"
      
      * tag 'riscv/for-v5.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (22 commits)
        riscv: provide a flat image loader
        riscv: add nommu support
        riscv: clear the instruction cache and all registers when booting
        riscv: read the hart ID from mhartid on boot
        riscv: provide native clint access for M-mode
        riscv: dts: add support for PDMA device of HiFive Unleashed Rev A00
        riscv: add support for MMIO access to the timer registers
        riscv: implement remote sfence.i using IPIs
        riscv: cleanup the default power off implementation
        riscv: poison SBI calls for M-mode
        riscv: don't allow selecting SBI based drivers for M-mode
        RISC-V: Add multiple compression image format.
        riscv: clean up the macro format in each header file
        riscv: Use PMD_SIZE to replace PTE_PARENT_SIZE
        riscv: abstract out CSR names for supervisor vs machine mode
        riscv: separate MMIO functions into their own header file
        riscv: enter WFI in default_power_off() if SBI does not shutdown
        RISC-V: Issue a tlb page flush if possible
        RISC-V: Issue a local tlbflush if possible.
        RISC-V: Do not invoke SBI call if cpumask is empty
        ...
      6a0e20cd