1. 26 Sep, 2019 30 commits
  2. 24 Sep, 2019 10 commits
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 351c8a09
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
      
       - new driver for ICY, an Amiga Zorro card :)
      
       - axxia driver gained slave mode support, NXP driver gained ACPI
      
       - the slave EEPROM backend gained 16 bit address support
      
       - and lots of regular driver updates and reworks
      
      * 'i2c/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (52 commits)
        i2c: tegra: Move suspend handling to NOIRQ phase
        i2c: imx: ACPI support for NXP i2c controller
        i2c: uniphier(-f): remove all dev_dbg()
        i2c: uniphier(-f): use devm_platform_ioremap_resource()
        i2c: slave-eeprom: Add comment about address handling
        i2c: exynos5: Remove IRQF_ONESHOT
        i2c: stm32f7: Make structure stm32f7_i2c_algo constant
        i2c: cht-wc: drop check because i2c_unregister_device() is NULL safe
        i2c-eeprom_slave: Add support for more eeprom models
        i2c: fsi: Add of_put_node() before break
        i2c: synquacer: Make synquacer_i2c_ops constant
        i2c: hix5hd2: Remove IRQF_ONESHOT
        i2c: i801: Use iTCO version 6 in Cannon Lake PCH and beyond
        watchdog: iTCO: Add support for Cannon Lake PCH iTCO
        i2c: iproc: Make bcm_iproc_i2c_quirks constant
        i2c: iproc: Add full name of devicetree node to adapter name
        i2c: piix4: Add ACPI support
        i2c: piix4: Fix probing of reserved ports on AMD Family 16h Model 30h
        i2c: ocores: use request_any_context_irq() to register IRQ handler
        i2c: designware: Fix optional reset error handling
        ...
      351c8a09
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3cf7487c
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A few small remaining wrap-up for this merge window.
      
        Most of patches are device-specific (HD-audio and USB-audio quirks,
        FireWire, pcm316a, fsl, rsnd, Atmel, and TI fixes), while there is a
        simple fix (actually two commits) for ASoC core"
      
      * tag 'sound-fix-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: usb-audio: Add DSD support for EVGA NU Audio
        ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
        ASoC: ti: fix SND_SOC_DM365_VOICE_CODEC dependencies
        ASoC: pcm3168a: The codec does not support S32_LE
        ASoC: core: use list_del_init and move it back to soc_cleanup_component
        ALSA: hda/realtek - PCI quirk for Medion E4254
        ALSA: hda - Apply AMD controller workaround for Raven platform
        ASoC: rsnd: do error check after rsnd_channel_normalization()
        ASoC: atmel_ssc_dai: Remove wrong spinlock usage
        ASoC: core: delete component->card_list in soc_remove_component only
        ASoC: fsl_sai: Fix noise when using EDMA
        ALSA: usb-audio: Add Hiby device family to quirks for native DSD support
        ALSA: hda/realtek - Fix alienware headset mic
        ALSA: dice: fix wrong packet parameter for Alesis iO26
      3cf7487c
    • Linus Torvalds's avatar
      Merge tag 'for-5.4/io_uring-2019-09-24' of git://git.kernel.dk/linux-block · b6cb84b4
      Linus Torvalds authored
      Pull more io_uring updates from Jens Axboe:
       "A collection of later fixes and additions, that weren't quite ready
        for pushing out with the initial pull request.
      
        This contains:
      
         - Fix potential use-after-free of shadow requests (Jackie)
      
         - Fix potential OOM crash in request allocation (Jackie)
      
         - kmalloc+memcpy -> kmemdup cleanup (Jackie)
      
         - Fix poll crash regression (me)
      
         - Fix SQ thread not being nice and giving up CPU for !PREEMPT (me)
      
         - Add support for timeouts, making it easier to do epoll_wait()
           conversions, for instance (me)
      
         - Ensure io_uring works without f_ops->read_iter() and
           f_ops->write_iter() (me)"
      
      * tag 'for-5.4/io_uring-2019-09-24' of git://git.kernel.dk/linux-block:
        io_uring: correctly handle non ->{read,write}_iter() file_operations
        io_uring: IORING_OP_TIMEOUT support
        io_uring: use cond_resched() in sqthread
        io_uring: fix potential crash issue due to io_get_req failure
        io_uring: ensure poll commands clear ->sqe
        io_uring: fix use-after-free of shadow_req
        io_uring: use kmemdup instead of kmalloc and memcpy
      b6cb84b4
    • Linus Torvalds's avatar
      Merge tag 'for-5.4/post-2019-09-24' of git://git.kernel.dk/linux-block · 2e959dd8
      Linus Torvalds authored
      Pull more block updates from Jens Axboe:
       "Some later additions that weren't quite done for the first pull
        request, and also a few fixes that have arrived since.
      
        This contains:
      
         - Kill silly pktcdvd warning on attempting to register a non-scsi
           passthrough device (me)
      
         - Use symbolic constants for the block t10 protection types, and
           switch to handling it in core rather than in the drivers (Max)
      
         - libahci platform missing node put fix (Nishka)
      
         - Small series of fixes for BFQ (Paolo)
      
         - Fix possible nbd crash (Xiubo)"
      
      * tag 'for-5.4/post-2019-09-24' of git://git.kernel.dk/linux-block:
        block: drop device references in bsg_queue_rq()
        block: t10-pi: fix -Wswitch warning
        pktcdvd: remove warning on attempting to register non-passthrough dev
        ata: libahci_platform: Add of_node_put() before loop exit
        nbd: fix possible page fault for nbd disk
        nbd: rename the runtime flags as NBD_RT_ prefixed
        block, bfq: push up injection only after setting service time
        block, bfq: increase update frequency of inject limit
        block, bfq: reduce upper bound for inject limit to max_rq_in_driver+1
        block, bfq: update inject limit only after injection occurred
        block: centralize PI remapping logic to the block layer
        block: use symbolic constants for t10_pi type
      2e959dd8
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 9c9fa97a
      Linus Torvalds authored
      Merge updates from Andrew Morton:
      
       - a few hot fixes
      
       - ocfs2 updates
      
       - almost all of -mm (slab-generic, slab, slub, kmemleak, kasan,
         cleanups, debug, pagecache, memcg, gup, pagemap, memory-hotplug,
         sparsemem, vmalloc, initialization, z3fold, compaction, mempolicy,
         oom-kill, hugetlb, migration, thp, mmap, madvise, shmem, zswap,
         zsmalloc)
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (132 commits)
        mm/zsmalloc.c: fix a -Wunused-function warning
        zswap: do not map same object twice
        zswap: use movable memory if zpool support allocate movable memory
        zpool: add malloc_support_movable to zpool_driver
        shmem: fix obsolete comment in shmem_getpage_gfp()
        mm/madvise: reduce code duplication in error handling paths
        mm: mmap: increase sockets maximum memory size pgoff for 32bits
        mm/mmap.c: refine find_vma_prev() with rb_last()
        riscv: make mmap allocation top-down by default
        mips: use generic mmap top-down layout and brk randomization
        mips: replace arch specific way to determine 32bit task with generic version
        mips: adjust brk randomization offset to fit generic version
        mips: use STACK_TOP when computing mmap base address
        mips: properly account for stack randomization and stack guard gap
        arm: use generic mmap top-down layout and brk randomization
        arm: use STACK_TOP when computing mmap base address
        arm: properly account for stack randomization and stack guard gap
        arm64, mm: make randomization selected by generic topdown mmap layout
        arm64, mm: move generic mmap layout functions to mm
        arm64: consider stack randomization for mmap base only when necessary
        ...
      9c9fa97a
    • Qian Cai's avatar
      mm/zsmalloc.c: fix a -Wunused-function warning · 2b38d01b
      Qian Cai authored
      set_zspage_inuse() was introduced in the commit 4f42047b ("zsmalloc:
      use accessor") but all the users of it were removed later by the commits,
      
      bdb0af7c ("zsmalloc: factor page chain functionality out")
      3783689a ("zsmalloc: introduce zspage structure")
      
      so the function can be safely removed now.
      
      Link: http://lkml.kernel.org/r/1568658408-19374-1-git-send-email-cai@lca.pwSigned-off-by: default avatarQian Cai <cai@lca.pw>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2b38d01b
    • Vitaly Wool's avatar
      zswap: do not map same object twice · 068619e3
      Vitaly Wool authored
      zswap_writeback_entry() maps a handle to read swpentry first, and
      then in the most common case it would map the same handle again.
      This is ok when zbud is the backend since its mapping callback is
      plain and simple, but it slows things down for z3fold.
      
      Since there's hardly a point in unmapping a handle _that_ fast as
      zswap_writeback_entry() does when it reads swpentry, the
      suggestion is to keep the handle mapped till the end.
      
      Link: http://lkml.kernel.org/r/20190916004640.b453167d3556c4093af4cf7d@gmail.comSigned-off-by: default avatarVitaly Wool <vitalywool@gmail.com>
      Reviewed-by: default avatarDan Streetman <ddstreet@ieee.org>
      Cc: Shakeel Butt <shakeelb@google.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Cc: Seth Jennings <sjenning@redhat.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      068619e3
    • Hui Zhu's avatar
      zswap: use movable memory if zpool support allocate movable memory · d2fcd82b
      Hui Zhu authored
      This is the third version that was updated according to the comments from
      Sergey Senozhatsky https://lkml.org/lkml/2019/5/29/73 and Shakeel Butt
      https://lkml.org/lkml/2019/6/4/973
      
      zswap compresses swap pages into a dynamically allocated RAM-based memory
      pool.  The memory pool should be zbud, z3fold or zsmalloc.  All of them
      will allocate unmovable pages.  It will increase the number of unmovable
      page blocks that will bad for anti-fragment.
      
      zsmalloc support page migration if request movable page:
              handle = zs_malloc(zram->mem_pool, comp_len,
                      GFP_NOIO | __GFP_HIGHMEM |
                      __GFP_MOVABLE);
      
      And commit "zpool: Add malloc_support_movable to zpool_driver" add
      zpool_malloc_support_movable check malloc_support_movable to make sure if
      a zpool support allocate movable memory.
      
      This commit let zswap allocate block with gfp
      __GFP_HIGHMEM | __GFP_MOVABLE if zpool support allocate movable memory.
      
      Following part is test log in a pc that has 8G memory and 2G swap.
      
      Without this commit:
      ~# echo lz4 > /sys/module/zswap/parameters/compressor
      ~# echo zsmalloc > /sys/module/zswap/parameters/zpool
      ~# echo 1 > /sys/module/zswap/parameters/enabled
      ~# swapon /swapfile
      ~# cd /home/teawater/kernel/vm-scalability/
      /home/teawater/kernel/vm-scalability# export unit_size=$((9 * 1024 * 1024 * 1024))
      /home/teawater/kernel/vm-scalability# ./case-anon-w-seq
      2717908992 bytes / 4826062 usecs = 549973 KB/s
      2717908992 bytes / 4864201 usecs = 545661 KB/s
      2717908992 bytes / 4867015 usecs = 545346 KB/s
      2717908992 bytes / 4915485 usecs = 539968 KB/s
      397853 usecs to free memory
      357820 usecs to free memory
      421333 usecs to free memory
      420454 usecs to free memory
      /home/teawater/kernel/vm-scalability# cat /proc/pagetypeinfo
      Page block order: 9
      Pages per block:  512
      
      Free pages count per migrate type at order       0      1      2      3      4      5      6      7      8      9     10
      Node    0, zone      DMA, type    Unmovable      1      1      1      0      2      1      1      0      1      0      0
      Node    0, zone      DMA, type      Movable      0      0      0      0      0      0      0      0      0      1      3
      Node    0, zone      DMA, type  Reclaimable      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone      DMA, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone      DMA, type          CMA      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone      DMA, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone    DMA32, type    Unmovable      6      5      8      6      6      5      4      1      1      1      0
      Node    0, zone    DMA32, type      Movable     25     20     20     19     22     15     14     11     11      5    767
      Node    0, zone    DMA32, type  Reclaimable      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone    DMA32, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone    DMA32, type          CMA      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone    DMA32, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone   Normal, type    Unmovable   4753   5588   5159   4613   3712   2520   1448    594    188     11      0
      Node    0, zone   Normal, type      Movable     16      3    457   2648   2143   1435    860    459    223    224    296
      Node    0, zone   Normal, type  Reclaimable      0      0     44     38     11      2      0      0      0      0      0
      Node    0, zone   Normal, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone   Normal, type          CMA      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone   Normal, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
      
      Number of blocks type     Unmovable      Movable  Reclaimable   HighAtomic          CMA      Isolate
      Node 0, zone      DMA            1            7            0            0            0            0
      Node 0, zone    DMA32            4         1652            0            0            0            0
      Node 0, zone   Normal          931         1485           15            0            0            0
      
      With this commit:
      ~# echo lz4 > /sys/module/zswap/parameters/compressor
      ~# echo zsmalloc > /sys/module/zswap/parameters/zpool
      ~# echo 1 > /sys/module/zswap/parameters/enabled
      ~# swapon /swapfile
      ~# cd /home/teawater/kernel/vm-scalability/
      /home/teawater/kernel/vm-scalability# export unit_size=$((9 * 1024 * 1024 * 1024))
      /home/teawater/kernel/vm-scalability# ./case-anon-w-seq
      2717908992 bytes / 4689240 usecs = 566020 KB/s
      2717908992 bytes / 4760605 usecs = 557535 KB/s
      2717908992 bytes / 4803621 usecs = 552543 KB/s
      2717908992 bytes / 5069828 usecs = 523530 KB/s
      431546 usecs to free memory
      383397 usecs to free memory
      456454 usecs to free memory
      224487 usecs to free memory
      /home/teawater/kernel/vm-scalability# cat /proc/pagetypeinfo
      Page block order: 9
      Pages per block:  512
      
      Free pages count per migrate type at order       0      1      2      3      4      5      6      7      8      9     10
      Node    0, zone      DMA, type    Unmovable      1      1      1      0      2      1      1      0      1      0      0
      Node    0, zone      DMA, type      Movable      0      0      0      0      0      0      0      0      0      1      3
      Node    0, zone      DMA, type  Reclaimable      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone      DMA, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone      DMA, type          CMA      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone      DMA, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone    DMA32, type    Unmovable     10      8     10      9     10      4      3      2      3      0      0
      Node    0, zone    DMA32, type      Movable     18     12     14     16     16     11      9      5      5      6    775
      Node    0, zone    DMA32, type  Reclaimable      0      0      0      0      0      0      0      0      0      0      1
      Node    0, zone    DMA32, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone    DMA32, type          CMA      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone    DMA32, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone   Normal, type    Unmovable   2669   1236    452    118     37     14      4      1      2      3      0
      Node    0, zone   Normal, type      Movable   3850   6086   5274   4327   3510   2494   1520    934    438    220    470
      Node    0, zone   Normal, type  Reclaimable     56     93    155    124     47     31     17      7      3      0      0
      Node    0, zone   Normal, type   HighAtomic      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone   Normal, type          CMA      0      0      0      0      0      0      0      0      0      0      0
      Node    0, zone   Normal, type      Isolate      0      0      0      0      0      0      0      0      0      0      0
      
      Number of blocks type     Unmovable      Movable  Reclaimable   HighAtomic          CMA      Isolate
      Node 0, zone      DMA            1            7            0            0            0            0
      Node 0, zone    DMA32            4         1650            2            0            0            0
      Node 0, zone   Normal           79         2326           26            0            0            0
      
      You can see that the number of unmovable page blocks is decreased
      when the kernel has this commit.
      
      Link: http://lkml.kernel.org/r/20190605100630.13293-2-teawaterz@linux.alibaba.comSigned-off-by: default avatarHui Zhu <teawaterz@linux.alibaba.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Cc: Dan Streetman <ddstreet@ieee.org>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Cc: Seth Jennings <sjenning@redhat.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d2fcd82b
    • Hui Zhu's avatar
      zpool: add malloc_support_movable to zpool_driver · c165f25d
      Hui Zhu authored
      As a zpool_driver, zsmalloc can allocate movable memory because it support
      migate pages.  But zbud and z3fold cannot allocate movable memory.
      
      Add malloc_support_movable to zpool_driver.  If a zpool_driver support
      allocate movable memory, set it to true.  And add
      zpool_malloc_support_movable check malloc_support_movable to make sure if
      a zpool support allocate movable memory.
      
      Link: http://lkml.kernel.org/r/20190605100630.13293-1-teawaterz@linux.alibaba.comSigned-off-by: default avatarHui Zhu <teawaterz@linux.alibaba.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Cc: Dan Streetman <ddstreet@ieee.org>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Nitin Gupta <ngupta@vflare.org>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Cc: Seth Jennings <sjenning@redhat.com>
      Cc: Vitaly Wool <vitalywool@gmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c165f25d
    • Miles Chen's avatar
      shmem: fix obsolete comment in shmem_getpage_gfp() · 28eb3c80
      Miles Chen authored
      Replace "fault_mm" with "vmf" in code comment because commit cfda0526
      ("userfaultfd: shmem: add userfaultfd hook for shared memory faults") has
      changed the prototpye of shmem_getpage_gfp() - pass vmf instead of
      fault_mm to the function.
      
      Before:
      static int shmem_getpage_gfp(struct inode *inode, pgoff_t index,
      		struct page **pagep, enum sgp_type sgp,
      		gfp_t gfp, struct mm_struct *fault_mm, int *fault_type);
      After:
      static int shmem_getpage_gfp(struct inode *inode, pgoff_t index,
      		struct page **pagep, enum sgp_type sgp,
      		gfp_t gfp, struct vm_area_struct *vma,
      		struct vm_fault *vmf, vm_fault_t *fault_type);
      
      Link: http://lkml.kernel.org/r/20190816100204.9781-1-miles.chen@mediatek.comSigned-off-by: default avatarMiles Chen <miles.chen@mediatek.com>
      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>
      28eb3c80