1. 31 8月, 2019 7 次提交
    • R
      mm, memcg: partially revert "mm/memcontrol.c: keep local VM counters in sync... · b4c46484
      Roman Gushchin 提交于
      mm, memcg: partially revert "mm/memcontrol.c: keep local VM counters in sync with the hierarchical ones"
      
      Commit 766a4c19 ("mm/memcontrol.c: keep local VM counters in sync
      with the hierarchical ones") effectively decreased the precision of
      per-memcg vmstats_local and per-memcg-per-node lruvec percpu counters.
      
      That's good for displaying in memory.stat, but brings a serious
      regression into the reclaim process.
      
      One issue I've discovered and debugged is the following:
      lruvec_lru_size() can return 0 instead of the actual number of pages in
      the lru list, preventing the kernel to reclaim last remaining pages.
      Result is yet another dying memory cgroups flooding.  The opposite is
      also happening: scanning an empty lru list is the waste of cpu time.
      
      Also, inactive_list_is_low() can return incorrect values, preventing the
      active lru from being scanned and freed.  It can fail both because the
      size of active and inactive lists are inaccurate, and because the number
      of workingset refaults isn't precise.  In other words, the result is
      pretty random.
      
      I'm not sure, if using the approximate number of slab pages in
      count_shadow_number() is acceptable, but issues described above are
      enough to partially revert the patch.
      
      Let's keep per-memcg vmstat_local batched (they are only used for
      displaying stats to the userspace), but keep lruvec stats precise.  This
      change fixes the dead memcg flooding on my setup.
      
      Link: http://lkml.kernel.org/r/20190817004726.2530670-1-guro@fb.com
      Fixes: 766a4c19 ("mm/memcontrol.c: keep local VM counters in sync with the hierarchical ones")
      Signed-off-by: NRoman Gushchin <guro@fb.com>
      Acked-by: NYafang Shao <laoar.shao@gmail.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b4c46484
    • A
      mm/zsmalloc.c: fix build when CONFIG_COMPACTION=n · 441e254c
      Andrew Morton 提交于
      Fixes: 701d6785 ("mm/zsmalloc.c: fix race condition in zs_destroy_pool")
      Link: http://lkml.kernel.org/r/201908251039.5oSbEEUT%25lkp@intel.comReported-by: Nkbuild test robot <lkp@intel.com>
      Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
      Cc: Henry Burns <henrywolfeburns@gmail.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Shakeel Butt <shakeelb@google.com>
      Cc: Jonathan Adams <jwadams@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      441e254c
    • R
      mm: memcontrol: flush percpu slab vmstats on kmem offlining · bee07b33
      Roman Gushchin 提交于
      I've noticed that the "slab" value in memory.stat is sometimes 0, even
      if some children memory cgroups have a non-zero "slab" value.  The
      following investigation showed that this is the result of the kmem_cache
      reparenting in combination with the per-cpu batching of slab vmstats.
      
      At the offlining some vmstat value may leave in the percpu cache, not
      being propagated upwards by the cgroup hierarchy.  It means that stats
      on ancestor levels are lower than actual.  Later when slab pages are
      released, the precise number of pages is substracted on the parent
      level, making the value negative.  We don't show negative values, 0 is
      printed instead.
      
      To fix this issue, let's flush percpu slab memcg and lruvec stats on
      memcg offlining.  This guarantees that numbers on all ancestor levels
      are accurate and match the actual number of outstanding slab pages.
      
      Link: http://lkml.kernel.org/r/20190819202338.363363-3-guro@fb.com
      Fixes: fb2f2b0a ("mm: memcg/slab: reparent memcg kmem_caches on cgroup removal")
      Signed-off-by: NRoman Gushchin <guro@fb.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      bee07b33
    • E
      keys: ensure that ->match_free() is called in request_key_and_link() · 846d2db3
      Eric Biggers 提交于
      If check_cached_key() returns a non-NULL value, we still need to call
      key_type::match_free() to undo key_type::match_preparse().
      
      Fixes: 7743c48e ("keys: Cache result of request_key*() temporarily in task_struct")
      Signed-off-by: NEric Biggers <ebiggers@google.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      846d2db3
    • L
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · e8d6766f
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Arnd Bergmann:
       "The majority of the fixes this time are for OMAP hardware, here is a
        breakdown of the significant changes:
      
        Various device tree bug fixes:
         - TI am57xx boards need a voltage level fix to avoid damaging SD
           cards
         - vf610-bk4 fails to detect its flash due to an incorrect description
         - meson-g12a USB phy configuration fails
         - meson-g12b reboot should not power off the SD card
         - Some corrections for apparently harmless differences from the
           documentation.
      
        Regression fixes:
         - ams-delta FIQ interrupts broke in 5.3
         - TI am3/am4 mmc controllers broke in 5.2
      
        The logic_pio driver (used on some Huawei ARM servers) got a few bug
        fixes for reliability.
      
        And a couple of compile-time warning fixes"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (26 commits)
        soc: ixp4xx: Protect IXP4xx SoC drivers by ARCH_IXP4XX || COMPILE_TEST
        soc: ti: pm33xx: Make two symbols static
        soc: ti: pm33xx: Fix static checker warnings
        ARM: OMAP: dma: Mark expected switch fall-throughs
        ARM: dts: Fix incomplete dts data for am3 and am4 mmc
        bus: ti-sysc: Simplify cleanup upon failures in sysc_probe()
        ARM: OMAP1: ams-delta-fiq: Fix missing irq_ack
        ARM: dts: dra74x: Fix iodelay configuration for mmc3
        ARM: dts: am335x: Fix UARTs length
        ARM: OMAP2+: Fix omap4 errata warning on other SoCs
        bus: hisi_lpc: Add .remove method to avoid driver unbind crash
        bus: hisi_lpc: Unregister logical PIO range to avoid potential use-after-free
        lib: logic_pio: Add logic_pio_unregister_range()
        lib: logic_pio: Avoid possible overlap for unregistering regions
        lib: logic_pio: Fix RCU usage
        arm64: dts: amlogic: odroid-n2: keep SD card regulator always on
        arm64: dts: meson-g12a-sei510: enable IR controller
        arm64: dts: meson-g12a: add missing dwc2 phy-names
        ARM: dts: vf610-bk4: Fix qspi node description
        ARM: dts: Fix incorrect dcan register mapping for am3, am4 and dra7
        ...
      e8d6766f
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 8fb8e9e4
      Linus Torvalds 提交于
      Pull rdma fix from Doug Ledford:
       "Much calmer week this week.  Just one patch queued up:
      
        The way the siw driver was locking around the traversal of the list of
        ipv6 addresses on a device was causing a scheduling while atomic
        issue. Bernard straightened it out by using the rtnl_lock"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/siw: Fix IPv6 addr_list locking
      8fb8e9e4
    • L
      Merge tag 'ceph-for-5.3-rc7' of git://github.com/ceph/ceph-client · fbcb0b4f
      Linus Torvalds 提交于
      Pull two ceph fixes from Ilya Dryomov:
       "A fix for a -rc1 regression in rbd and a trivial static checker fix"
      
      * tag 'ceph-for-5.3-rc7' of git://github.com/ceph/ceph-client:
        rbd: restore zeroing past the overlap when reading from parent
        libceph: don't call crypto_free_sync_skcipher() on a NULL tfm
      fbcb0b4f
  2. 30 8月, 2019 17 次提交
  3. 29 8月, 2019 6 次提交
  4. 28 8月, 2019 10 次提交