+++ /dev/null
-From 23250aec43b05632c5aa65fc4a8c7061677e49e2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 10 Mar 2025 16:09:34 -0700
-Subject: memcg: drain obj stock on cpu hotplug teardown
-
-From: Shakeel Butt <shakeel.butt@linux.dev>
-
-[ Upstream commit 9f01b4954490d4ccdbcc2b9be34a9921ceee9cbb ]
-
-Currently on cpu hotplug teardown, only memcg stock is drained but we
-need to drain the obj stock as well otherwise we will miss the stats
-accumulated on the target cpu as well as the nr_bytes cached. The stats
-include MEMCG_KMEM, NR_SLAB_RECLAIMABLE_B & NR_SLAB_UNRECLAIMABLE_B. In
-addition we are leaking reference to struct obj_cgroup object.
-
-Link: https://lkml.kernel.org/r/20250310230934.2913113-1-shakeel.butt@linux.dev
-Fixes: bf4f059954dc ("mm: memcg/slab: obj_cgroup API")
-Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
-Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
-Acked-by: Johannes Weiner <hannes@cmpxchg.org>
-Cc: Michal Hocko <mhocko@kernel.org>
-Cc: Muchun Song <muchun.song@linux.dev>
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- mm/memcontrol.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index 3f7cab196eb62..8c586133abb7c 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -2368,9 +2368,18 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
- static int memcg_hotplug_cpu_dead(unsigned int cpu)
- {
- struct memcg_stock_pcp *stock;
-+ struct obj_cgroup *old;
-+ unsigned long flags;
-
- stock = &per_cpu(memcg_stock, cpu);
-+
-+ /* drain_obj_stock requires stock_lock */
-+ local_lock_irqsave(&memcg_stock.stock_lock, flags);
-+ old = drain_obj_stock(stock);
-+ local_unlock_irqrestore(&memcg_stock.stock_lock, flags);
-+
- drain_stock(stock);
-+ obj_cgroup_put(old);
-
- return 0;
- }
---
-2.39.5
-
revert-drm-meson-vclk-fix-calculation-of-59.94-fract.patch
irqchip-gic-v2m-mark-a-few-functions-__init.patch
irqchip-gic-v2m-prevent-use-after-free-of-gicv2m_get.patch
-memcg-drain-obj-stock-on-cpu-hotplug-teardown.patch
riscv-uprobes-add-missing-fence.i-after-building-the.patch
dm-fix-copying-after-src-array-boundaries.patch
iommu-arm-smmu-v3-use-the-new-rb-tree-helpers.patch
+++ /dev/null
-From 9c1fc2f90d2440c11a4a7b8c8940a953c427448c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 10 Mar 2025 16:09:34 -0700
-Subject: memcg: drain obj stock on cpu hotplug teardown
-
-From: Shakeel Butt <shakeel.butt@linux.dev>
-
-[ Upstream commit 9f01b4954490d4ccdbcc2b9be34a9921ceee9cbb ]
-
-Currently on cpu hotplug teardown, only memcg stock is drained but we
-need to drain the obj stock as well otherwise we will miss the stats
-accumulated on the target cpu as well as the nr_bytes cached. The stats
-include MEMCG_KMEM, NR_SLAB_RECLAIMABLE_B & NR_SLAB_UNRECLAIMABLE_B. In
-addition we are leaking reference to struct obj_cgroup object.
-
-Link: https://lkml.kernel.org/r/20250310230934.2913113-1-shakeel.butt@linux.dev
-Fixes: bf4f059954dc ("mm: memcg/slab: obj_cgroup API")
-Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
-Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
-Acked-by: Johannes Weiner <hannes@cmpxchg.org>
-Cc: Michal Hocko <mhocko@kernel.org>
-Cc: Muchun Song <muchun.song@linux.dev>
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- mm/memcontrol.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index 9bf5a69e20d87..ab9afcd372a93 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -2378,9 +2378,18 @@ static void drain_all_stock(struct mem_cgroup *root_memcg)
- static int memcg_hotplug_cpu_dead(unsigned int cpu)
- {
- struct memcg_stock_pcp *stock;
-+ struct obj_cgroup *old;
-+ unsigned long flags;
-
- stock = &per_cpu(memcg_stock, cpu);
-+
-+ /* drain_obj_stock requires stock_lock */
-+ local_lock_irqsave(&memcg_stock.stock_lock, flags);
-+ old = drain_obj_stock(stock);
-+ local_unlock_irqrestore(&memcg_stock.stock_lock, flags);
-+
- drain_stock(stock);
-+ obj_cgroup_put(old);
-
- return 0;
- }
---
-2.39.5
-
usb-xhci-check-if-requested-segments-exceeds-erst-ca.patch
xhci-support-setting-interrupt-moderation-imod-for-s.patch
xhci-limit-time-spent-with-xhc-interrupts-disabled-d.patch
-memcg-drain-obj-stock-on-cpu-hotplug-teardown.patch
riscv-uprobes-add-missing-fence.i-after-building-the.patch
kernel-param-rename-locate_module_kobject.patch
kernel-globalize-lookup_or_create_module_kobject.patch