]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
updated 4.4 memcontrol patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 Aug 2016 19:08:36 +0000 (21:08 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 Aug 2016 19:08:36 +0000 (21:08 +0200)
queue-4.4/mm-memcontrol-fix-cgroup-creation-failure-after-many-small-jobs.patch
queue-4.4/mm-memcontrol-fix-memcg-id-ref-counter-on-swap-charge-move.patch
queue-4.4/mm-memcontrol-fix-swap-counter-leak-on-swapout-from-offline-cgroup.patch
queue-4.4/series

index 84b87406e4abd9cb83dad8ea4bff71849dabb61f..6b592dd3a527cd083ee5371314b768df79435e86 100644 (file)
@@ -74,9 +74,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 ---
  include/linux/memcontrol.h |    8 +++
- mm/memcontrol.c            |   95 ++++++++++++++++++++++++++++++++++++---------
+ mm/memcontrol.c            |   91 ++++++++++++++++++++++++++++++++++++---------
  mm/slab_common.c           |    4 -
- 3 files changed, 86 insertions(+), 21 deletions(-)
+ 3 files changed, 83 insertions(+), 20 deletions(-)
 
 --- a/include/linux/memcontrol.h
 +++ b/include/linux/memcontrol.h
@@ -188,36 +188,32 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  static int alloc_mem_cgroup_per_zone_info(struct mem_cgroup *memcg, int node)
  {
        struct mem_cgroup_per_node *pn;
-@@ -4171,17 +4211,27 @@ static struct mem_cgroup *mem_cgroup_all
-       if (!memcg)
-               return NULL;
+@@ -4178,6 +4218,12 @@ static struct mem_cgroup *mem_cgroup_all
+       if (memcg_wb_domain_init(memcg, GFP_KERNEL))
+               goto out_free_stat;
  
 +      memcg->id.id = idr_alloc(&mem_cgroup_idr, NULL,
 +                               1, MEM_CGROUP_ID_MAX,
 +                               GFP_KERNEL);
 +      if (memcg->id.id < 0)
-+              goto out_free;
++              goto out_free_stat;
 +
-       memcg->stat = alloc_percpu(struct mem_cgroup_stat_cpu);
-       if (!memcg->stat)
--              goto out_free;
-+              goto out_idr;
-       if (memcg_wb_domain_init(memcg, GFP_KERNEL))
-               goto out_free_stat;
-+      idr_replace(&mem_cgroup_idr, memcg, memcg->id.id);
        return memcg;
  
  out_free_stat:
-       free_percpu(memcg->stat);
-+out_idr:
-+      if (memcg->id.id > 0)
-+              idr_remove(&mem_cgroup_idr, memcg->id.id);
- out_free:
-       kfree(memcg);
-       return NULL;
-@@ -4277,8 +4327,9 @@ mem_cgroup_css_online(struct cgroup_subs
+@@ -4263,9 +4309,11 @@ mem_cgroup_css_alloc(struct cgroup_subsy
+ #ifdef CONFIG_CGROUP_WRITEBACK
+       INIT_LIST_HEAD(&memcg->cgwb_list);
+ #endif
++      idr_replace(&mem_cgroup_idr, memcg, memcg->id.id);
+       return &memcg->css;
+ free_out:
++      idr_remove(&mem_cgroup_idr, memcg->id.id);
+       __mem_cgroup_free(memcg);
+       return ERR_PTR(error);
+ }
+@@ -4277,8 +4325,9 @@ mem_cgroup_css_online(struct cgroup_subs
        struct mem_cgroup *parent = mem_cgroup_from_css(css->parent);
        int ret;
  
@@ -229,7 +225,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
        if (!parent)
                return 0;
-@@ -4352,6 +4403,8 @@ static void mem_cgroup_css_offline(struc
+@@ -4352,6 +4401,8 @@ static void mem_cgroup_css_offline(struc
        memcg_deactivate_kmem(memcg);
  
        wb_memcg_offline(memcg);
@@ -238,7 +234,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  }
  
  static void mem_cgroup_css_released(struct cgroup_subsys_state *css)
-@@ -5685,6 +5738,7 @@ void mem_cgroup_swapout(struct page *pag
+@@ -5685,6 +5736,7 @@ void mem_cgroup_swapout(struct page *pag
        if (!memcg)
                return;
  
@@ -246,7 +242,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        oldid = swap_cgroup_record(entry, mem_cgroup_id(memcg));
        VM_BUG_ON_PAGE(oldid, page);
        mem_cgroup_swap_statistics(memcg, true);
-@@ -5703,6 +5757,9 @@ void mem_cgroup_swapout(struct page *pag
+@@ -5703,6 +5755,9 @@ void mem_cgroup_swapout(struct page *pag
        VM_BUG_ON(!irqs_disabled());
        mem_cgroup_charge_statistics(memcg, page, -1);
        memcg_check_events(memcg, page);
@@ -256,7 +252,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  }
  
  /**
-@@ -5726,7 +5783,7 @@ void mem_cgroup_uncharge_swap(swp_entry_
+@@ -5726,7 +5781,7 @@ void mem_cgroup_uncharge_swap(swp_entry_
                if (!mem_cgroup_is_root(memcg))
                        page_counter_uncharge(&memcg->memsw, 1);
                mem_cgroup_swap_statistics(memcg, false);
index c20f2017aeffdef06a682c36f09a6476012bdffe..3b3382b8fb0fd097765088937ab2ead2ae8caf79 100644 (file)
@@ -17,11 +17,11 @@ Link: http://lkml.kernel.org/r/9ce297c64954a42dc90b543bc76106c4a94f07e8.14702198
 Signed-off-by: Vladimir Davydov <vdavydov@virtuozzo.com>
 Acked-by: Michal Hocko <mhocko@suse.com>
 Acked-by: Johannes Weiner <hannes@cmpxchg.org>
-Cc: <stable@vger.kernel.org>   [3.19+]
 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 Signed-off-by: Michal Hocko <mhocko@suse.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
 ---
  mm/memcontrol.c |   24 ++++++++++++++++++------
  1 file changed, 18 insertions(+), 6 deletions(-)
@@ -69,7 +69,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  /**
   * mem_cgroup_from_id - look up a memcg from a memcg id
   * @id: the memcg id to look up
-@@ -4856,6 +4866,8 @@ static void __mem_cgroup_clear_mc(void)
+@@ -4854,6 +4864,8 @@ static void __mem_cgroup_clear_mc(void)
                if (!mem_cgroup_is_root(mc.from))
                        page_counter_uncharge(&mc.from->memsw, mc.moved_swap);
  
@@ -78,7 +78,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
                /*
                 * we charged both to->memory and to->memsw, so we
                 * should uncharge to->memory.
-@@ -4863,9 +4875,9 @@ static void __mem_cgroup_clear_mc(void)
+@@ -4861,9 +4873,9 @@ static void __mem_cgroup_clear_mc(void)
                if (!mem_cgroup_is_root(mc.to))
                        page_counter_uncharge(&mc.to->memory, mc.moved_swap);
  
index 520271946234617a1af93cc5d8b318726bbfb927..0a47bc51799b908ff5d769df950347555bde2e6e 100644 (file)
@@ -30,6 +30,7 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 Signed-off-by: Michal Hocko <mhocko@suse.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
 ---
  mm/memcontrol.c |   37 +++++++++++++++++++++++++++++++++----
  1 file changed, 33 insertions(+), 4 deletions(-)
@@ -61,7 +62,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  static void mem_cgroup_id_put(struct mem_cgroup *memcg)
  {
        if (atomic_dec_and_test(&memcg->id.ref)) {
-@@ -5723,7 +5741,7 @@ subsys_initcall(mem_cgroup_init);
+@@ -5721,7 +5739,7 @@ subsys_initcall(mem_cgroup_init);
   */
  void mem_cgroup_swapout(struct page *page, swp_entry_t entry)
  {
@@ -70,7 +71,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        unsigned short oldid;
  
        VM_BUG_ON_PAGE(PageLRU(page), page);
-@@ -5738,16 +5756,27 @@ void mem_cgroup_swapout(struct page *pag
+@@ -5736,16 +5754,27 @@ void mem_cgroup_swapout(struct page *pag
        if (!memcg)
                return;
  
index 1ffd0b1cff54e499ee354c92509c6af3a78cca8e..7059f87fba80f2c00c4976204a2508564b7aa9e9 100644 (file)
@@ -29,9 +29,6 @@ x86-xen-pat-remove-pat-table-init-code-from-xen.patch
 x86-pat-document-the-pat-initialization-sequence.patch
 x86-mm-pat-fix-bug_on-in-mmap_mem-on-qemu-i386.patch
 drm-i915-pretend-cursor-is-always-on-for-ilk-style-wm-calculations-v2.patch
-mm-memcontrol-fix-cgroup-creation-failure-after-many-small-jobs.patch
-mm-memcontrol-fix-swap-counter-leak-on-swapout-from-offline-cgroup.patch
-mm-memcontrol-fix-memcg-id-ref-counter-on-swap-charge-move.patch
 x86-syscalls-64-add-compat_sys_keyctl-for-32-bit-userspace.patch
 block-fix-use-after-free-in-seq-file.patch
 sysv-ipc-fix-security-layer-leaking.patch
@@ -47,3 +44,6 @@ ext4-don-t-call-ext4_should_journal_data-on-the-journal-inode.patch
 ext4-validate-s_reserved_gdt_blocks-on-mount.patch
 ext4-short-cut-orphan-cleanup-on-error.patch
 ext4-fix-reference-counting-bug-on-block-allocation-error.patch
+mm-memcontrol-fix-cgroup-creation-failure-after-many-small-jobs.patch
+mm-memcontrol-fix-swap-counter-leak-on-swapout-from-offline-cgroup.patch
+mm-memcontrol-fix-memcg-id-ref-counter-on-swap-charge-move.patch