From: Vasily Averin <vvs@openvz.org> To: "Shakeel Butt" <shakeelb@google.com>, "Michal Koutný" <mkoutny@suse.com>, "Michal Hocko" <mhocko@suse.com> Cc: kernel@openvz.org, linux-kernel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>, linux-mm@kvack.org, Roman Gushchin <roman.gushchin@linux.dev>, Vlastimil Babka <vbabka@suse.cz>, Muchun Song <songmuchun@bytedance.com>, cgroups@vger.kernel.org Subject: [PATCH RFC] memcg: avoid idr ids space depletion Date: Sat, 25 Jun 2022 12:43:59 +0300 [thread overview] Message-ID: <b3225994-2a71-f38c-75b2-5366df848419@openvz.org> (raw) In-Reply-To: <YrXDV7uPpmDigh3G@dhcp22.suse.cz> I tried to increase MEM_CGROUP_ID_MAX to INT_MAX and found no significant difficulties. What do you think about following patch? I did not tested it, just checked its compilation. I hope it allows: - to avoid memcg id space depletion on normal nodes - to set up per-container cgroup limit to USHRT_MAX to prevent possible misuse and in general use memcg accounting for allocated resources. Thank you, Vasily Averin --- Michal Hocko pointed that memory controller depends on idr ids which have a space that is rather limited #define MEM_CGROUP_ID_MAX USHRT_MAX The limit can be reached on nodes hosted several hundred OS containers with new distributions running hundreds of services in their own memory cgroups. This patch increases the space up to INT_MAX. --- include/linux/memcontrol.h | 15 +++++++++------ include/linux/swap_cgroup.h | 14 +++++--------- mm/memcontrol.c | 6 +++--- mm/swap_cgroup.c | 10 ++++------ 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 744cde2b2368..e3468550ba20 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -59,10 +59,13 @@ struct mem_cgroup_reclaim_cookie { }; #ifdef CONFIG_MEMCG - +#ifdef CONFIG_64BIT +#define MEM_CGROUP_ID_SHIFT 31 +#define MEM_CGROUP_ID_MAX INT_MAX - 1 +#else #define MEM_CGROUP_ID_SHIFT 16 #define MEM_CGROUP_ID_MAX USHRT_MAX - +#endif struct mem_cgroup_id { int id; refcount_t ref; @@ -852,14 +855,14 @@ void mem_cgroup_iter_break(struct mem_cgroup *, struct mem_cgroup *); int mem_cgroup_scan_tasks(struct mem_cgroup *, int (*)(struct task_struct *, void *), void *); -static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) +static inline int mem_cgroup_id(struct mem_cgroup *memcg) { if (mem_cgroup_disabled()) return 0; return memcg->id.id; } -struct mem_cgroup *mem_cgroup_from_id(unsigned short id); +struct mem_cgroup *mem_cgroup_from_id(int id); #ifdef CONFIG_SHRINKER_DEBUG static inline unsigned long mem_cgroup_ino(struct mem_cgroup *memcg) @@ -1374,12 +1377,12 @@ static inline int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, return 0; } -static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) +static inline int mem_cgroup_id(struct mem_cgroup *memcg) { return 0; } -static inline struct mem_cgroup *mem_cgroup_from_id(unsigned short id) +static inline struct mem_cgroup *mem_cgroup_from_id(int id) { WARN_ON_ONCE(id); /* XXX: This should always return root_mem_cgroup */ diff --git a/include/linux/swap_cgroup.h b/include/linux/swap_cgroup.h index a12dd1c3966c..711dd18380ed 100644 --- a/include/linux/swap_cgroup.h +++ b/include/linux/swap_cgroup.h @@ -6,25 +6,21 @@ #ifdef CONFIG_MEMCG_SWAP -extern unsigned short swap_cgroup_cmpxchg(swp_entry_t ent, - unsigned short old, unsigned short new); -extern unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, - unsigned int nr_ents); -extern unsigned short lookup_swap_cgroup_id(swp_entry_t ent); +extern int swap_cgroup_cmpxchg(swp_entry_t ent, int old, int new); +extern int swap_cgroup_record(swp_entry_t ent, int id, unsigned int nr_ents); +extern int lookup_swap_cgroup_id(swp_entry_t ent); extern int swap_cgroup_swapon(int type, unsigned long max_pages); extern void swap_cgroup_swapoff(int type); #else static inline -unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, - unsigned int nr_ents) +unsigned short swap_cgroup_record(swp_entry_t ent, int id, unsigned int nr_ents) { return 0; } -static inline -unsigned short lookup_swap_cgroup_id(swp_entry_t ent) +static inline int lookup_swap_cgroup_id(swp_entry_t ent) { return 0; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 275d0c847f05..d4c606a06bcd 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5224,7 +5224,7 @@ static inline void mem_cgroup_id_put(struct mem_cgroup *memcg) * * Caller must hold rcu_read_lock(). */ -struct mem_cgroup *mem_cgroup_from_id(unsigned short id) +struct mem_cgroup *mem_cgroup_from_id(int id) { WARN_ON_ONCE(!rcu_read_lock_held()); return idr_find(&mem_cgroup_idr, id); @@ -7021,7 +7021,7 @@ int mem_cgroup_swapin_charge_page(struct page *page, struct mm_struct *mm, { struct folio *folio = page_folio(page); struct mem_cgroup *memcg; - unsigned short id; + int id; int ret; if (mem_cgroup_disabled()) @@ -7541,7 +7541,7 @@ int __mem_cgroup_try_charge_swap(struct folio *folio, swp_entry_t entry) void __mem_cgroup_uncharge_swap(swp_entry_t entry, unsigned int nr_pages) { struct mem_cgroup *memcg; - unsigned short id; + int id; id = swap_cgroup_record(entry, 0, nr_pages); rcu_read_lock(); diff --git a/mm/swap_cgroup.c b/mm/swap_cgroup.c index 5a9442979a18..76fa5c42e03f 100644 --- a/mm/swap_cgroup.c +++ b/mm/swap_cgroup.c @@ -15,7 +15,7 @@ struct swap_cgroup_ctrl { static struct swap_cgroup_ctrl swap_cgroup_ctrl[MAX_SWAPFILES]; struct swap_cgroup { - unsigned short id; + int id; }; #define SC_PER_PAGE (PAGE_SIZE/sizeof(struct swap_cgroup)) @@ -94,8 +94,7 @@ static struct swap_cgroup *lookup_swap_cgroup(swp_entry_t ent, * Returns old id at success, 0 at failure. * (There is no mem_cgroup using 0 as its id) */ -unsigned short swap_cgroup_cmpxchg(swp_entry_t ent, - unsigned short old, unsigned short new) +int swap_cgroup_cmpxchg(swp_entry_t ent, int old, int new) { struct swap_cgroup_ctrl *ctrl; struct swap_cgroup *sc; @@ -123,8 +122,7 @@ unsigned short swap_cgroup_cmpxchg(swp_entry_t ent, * Returns old value at success, 0 at failure. * (Of course, old value can be 0.) */ -unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, - unsigned int nr_ents) +int swap_cgroup_record(swp_entry_t ent, int id, unsigned int nr_ents) { struct swap_cgroup_ctrl *ctrl; struct swap_cgroup *sc; @@ -159,7 +157,7 @@ unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, * * Returns ID of mem_cgroup at success. 0 at failure. (0 is invalid ID) */ -unsigned short lookup_swap_cgroup_id(swp_entry_t ent) +int lookup_swap_cgroup_id(swp_entry_t ent) { return lookup_swap_cgroup(ent, NULL)->id; } -- 2.36.1
WARNING: multiple messages have this Message-ID (diff)
From: Vasily Averin <vvs-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org> To: "Shakeel Butt" <shakeelb-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>, "Michal Koutný" <mkoutny-IBi9RG/b67k@public.gmane.org>, "Michal Hocko" <mhocko-IBi9RG/b67k@public.gmane.org> Cc: kernel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, Roman Gushchin <roman.gushchin-fxUVXftIFDnyG1zEObXtfA@public.gmane.org>, Vlastimil Babka <vbabka-AlSwsSmVLrQ@public.gmane.org>, Muchun Song <songmuchun-EC8Uxl6Npydl57MIdRCFDg@public.gmane.org>, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Subject: [PATCH RFC] memcg: avoid idr ids space depletion Date: Sat, 25 Jun 2022 12:43:59 +0300 [thread overview] Message-ID: <b3225994-2a71-f38c-75b2-5366df848419@openvz.org> (raw) In-Reply-To: <YrXDV7uPpmDigh3G-2MMpYkNvuYDjFM9bn6wA6Q@public.gmane.org> I tried to increase MEM_CGROUP_ID_MAX to INT_MAX and found no significant difficulties. What do you think about following patch? I did not tested it, just checked its compilation. I hope it allows: - to avoid memcg id space depletion on normal nodes - to set up per-container cgroup limit to USHRT_MAX to prevent possible misuse and in general use memcg accounting for allocated resources. Thank you, Vasily Averin --- Michal Hocko pointed that memory controller depends on idr ids which have a space that is rather limited #define MEM_CGROUP_ID_MAX USHRT_MAX The limit can be reached on nodes hosted several hundred OS containers with new distributions running hundreds of services in their own memory cgroups. This patch increases the space up to INT_MAX. --- include/linux/memcontrol.h | 15 +++++++++------ include/linux/swap_cgroup.h | 14 +++++--------- mm/memcontrol.c | 6 +++--- mm/swap_cgroup.c | 10 ++++------ 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 744cde2b2368..e3468550ba20 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -59,10 +59,13 @@ struct mem_cgroup_reclaim_cookie { }; #ifdef CONFIG_MEMCG - +#ifdef CONFIG_64BIT +#define MEM_CGROUP_ID_SHIFT 31 +#define MEM_CGROUP_ID_MAX INT_MAX - 1 +#else #define MEM_CGROUP_ID_SHIFT 16 #define MEM_CGROUP_ID_MAX USHRT_MAX - +#endif struct mem_cgroup_id { int id; refcount_t ref; @@ -852,14 +855,14 @@ void mem_cgroup_iter_break(struct mem_cgroup *, struct mem_cgroup *); int mem_cgroup_scan_tasks(struct mem_cgroup *, int (*)(struct task_struct *, void *), void *); -static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) +static inline int mem_cgroup_id(struct mem_cgroup *memcg) { if (mem_cgroup_disabled()) return 0; return memcg->id.id; } -struct mem_cgroup *mem_cgroup_from_id(unsigned short id); +struct mem_cgroup *mem_cgroup_from_id(int id); #ifdef CONFIG_SHRINKER_DEBUG static inline unsigned long mem_cgroup_ino(struct mem_cgroup *memcg) @@ -1374,12 +1377,12 @@ static inline int mem_cgroup_scan_tasks(struct mem_cgroup *memcg, return 0; } -static inline unsigned short mem_cgroup_id(struct mem_cgroup *memcg) +static inline int mem_cgroup_id(struct mem_cgroup *memcg) { return 0; } -static inline struct mem_cgroup *mem_cgroup_from_id(unsigned short id) +static inline struct mem_cgroup *mem_cgroup_from_id(int id) { WARN_ON_ONCE(id); /* XXX: This should always return root_mem_cgroup */ diff --git a/include/linux/swap_cgroup.h b/include/linux/swap_cgroup.h index a12dd1c3966c..711dd18380ed 100644 --- a/include/linux/swap_cgroup.h +++ b/include/linux/swap_cgroup.h @@ -6,25 +6,21 @@ #ifdef CONFIG_MEMCG_SWAP -extern unsigned short swap_cgroup_cmpxchg(swp_entry_t ent, - unsigned short old, unsigned short new); -extern unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, - unsigned int nr_ents); -extern unsigned short lookup_swap_cgroup_id(swp_entry_t ent); +extern int swap_cgroup_cmpxchg(swp_entry_t ent, int old, int new); +extern int swap_cgroup_record(swp_entry_t ent, int id, unsigned int nr_ents); +extern int lookup_swap_cgroup_id(swp_entry_t ent); extern int swap_cgroup_swapon(int type, unsigned long max_pages); extern void swap_cgroup_swapoff(int type); #else static inline -unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, - unsigned int nr_ents) +unsigned short swap_cgroup_record(swp_entry_t ent, int id, unsigned int nr_ents) { return 0; } -static inline -unsigned short lookup_swap_cgroup_id(swp_entry_t ent) +static inline int lookup_swap_cgroup_id(swp_entry_t ent) { return 0; } diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 275d0c847f05..d4c606a06bcd 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5224,7 +5224,7 @@ static inline void mem_cgroup_id_put(struct mem_cgroup *memcg) * * Caller must hold rcu_read_lock(). */ -struct mem_cgroup *mem_cgroup_from_id(unsigned short id) +struct mem_cgroup *mem_cgroup_from_id(int id) { WARN_ON_ONCE(!rcu_read_lock_held()); return idr_find(&mem_cgroup_idr, id); @@ -7021,7 +7021,7 @@ int mem_cgroup_swapin_charge_page(struct page *page, struct mm_struct *mm, { struct folio *folio = page_folio(page); struct mem_cgroup *memcg; - unsigned short id; + int id; int ret; if (mem_cgroup_disabled()) @@ -7541,7 +7541,7 @@ int __mem_cgroup_try_charge_swap(struct folio *folio, swp_entry_t entry) void __mem_cgroup_uncharge_swap(swp_entry_t entry, unsigned int nr_pages) { struct mem_cgroup *memcg; - unsigned short id; + int id; id = swap_cgroup_record(entry, 0, nr_pages); rcu_read_lock(); diff --git a/mm/swap_cgroup.c b/mm/swap_cgroup.c index 5a9442979a18..76fa5c42e03f 100644 --- a/mm/swap_cgroup.c +++ b/mm/swap_cgroup.c @@ -15,7 +15,7 @@ struct swap_cgroup_ctrl { static struct swap_cgroup_ctrl swap_cgroup_ctrl[MAX_SWAPFILES]; struct swap_cgroup { - unsigned short id; + int id; }; #define SC_PER_PAGE (PAGE_SIZE/sizeof(struct swap_cgroup)) @@ -94,8 +94,7 @@ static struct swap_cgroup *lookup_swap_cgroup(swp_entry_t ent, * Returns old id at success, 0 at failure. * (There is no mem_cgroup using 0 as its id) */ -unsigned short swap_cgroup_cmpxchg(swp_entry_t ent, - unsigned short old, unsigned short new) +int swap_cgroup_cmpxchg(swp_entry_t ent, int old, int new) { struct swap_cgroup_ctrl *ctrl; struct swap_cgroup *sc; @@ -123,8 +122,7 @@ unsigned short swap_cgroup_cmpxchg(swp_entry_t ent, * Returns old value at success, 0 at failure. * (Of course, old value can be 0.) */ -unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, - unsigned int nr_ents) +int swap_cgroup_record(swp_entry_t ent, int id, unsigned int nr_ents) { struct swap_cgroup_ctrl *ctrl; struct swap_cgroup *sc; @@ -159,7 +157,7 @@ unsigned short swap_cgroup_record(swp_entry_t ent, unsigned short id, * * Returns ID of mem_cgroup at success. 0 at failure. (0 is invalid ID) */ -unsigned short lookup_swap_cgroup_id(swp_entry_t ent) +int lookup_swap_cgroup_id(swp_entry_t ent) { return lookup_swap_cgroup(ent, NULL)->id; } -- 2.36.1
next prev parent reply other threads:[~2022-06-25 9:44 UTC|newest] Thread overview: 267+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-04-27 10:37 [PATCH] memcg: accounting for objects allocated for new netdevice Vasily Averin 2022-04-27 10:37 ` Vasily Averin 2022-04-27 14:01 ` Michal Koutný 2022-04-27 14:01 ` Michal Koutný 2022-04-27 16:52 ` Shakeel Butt 2022-04-27 16:52 ` Shakeel Butt 2022-04-27 22:35 ` Vasily Averin 2022-04-27 22:35 ` Vasily Averin 2022-05-02 12:15 ` [PATCH memcg v2] " Vasily Averin 2022-05-04 20:50 ` Luis Chamberlain 2022-05-04 20:50 ` Luis Chamberlain 2022-05-05 3:50 ` patchwork-bot+netdevbpf 2022-05-05 3:50 ` patchwork-bot+netdevbpf-DgEjT+Ai2ygdnm+yROfE0A 2022-05-11 2:51 ` Roman Gushchin 2022-05-11 2:51 ` Roman Gushchin 2022-05-02 19:37 ` kernfs memcg accounting Vasily Averin 2022-05-02 19:37 ` Vasily Averin 2022-05-02 21:22 ` Michal Koutný 2022-05-02 21:22 ` Michal Koutný 2022-05-04 9:00 ` Vasily Averin 2022-05-04 9:00 ` Vasily Averin 2022-05-04 14:10 ` Michal Koutný 2022-05-04 14:10 ` Michal Koutný 2022-05-04 21:16 ` Vasily Averin 2022-05-04 21:16 ` Vasily Averin 2022-05-05 9:47 ` Michal Koutný 2022-05-05 9:47 ` Michal Koutný 2022-05-06 8:37 ` Vasily Averin 2022-05-06 8:37 ` Vasily Averin 2022-05-11 3:06 ` Roman Gushchin 2022-05-11 3:06 ` Roman Gushchin 2022-05-11 6:01 ` Vasily Averin 2022-05-11 6:01 ` Vasily Averin 2022-05-11 16:49 ` Michal Koutný 2022-05-11 16:49 ` Michal Koutný 2022-05-11 17:46 ` Roman Gushchin 2022-05-11 17:46 ` Roman Gushchin 2022-05-11 16:34 ` Michal Koutný 2022-05-11 16:34 ` Michal Koutný 2022-05-11 18:10 ` Roman Gushchin 2022-05-11 18:10 ` Roman Gushchin 2022-05-13 15:51 ` [PATCH 0/4] memcg: accounting for objects allocated by mkdir cgroup Vasily Averin 2022-05-13 15:51 ` Vasily Averin 2022-05-13 17:49 ` Roman Gushchin 2022-05-13 17:49 ` Roman Gushchin 2022-05-21 16:37 ` [PATCH mm v2 0/9] " Vasily Averin 2022-05-21 16:37 ` Vasily Averin 2022-05-30 11:25 ` [PATCH mm v3 " Vasily Averin 2022-05-30 11:25 ` Vasily Averin 2022-05-30 11:55 ` Michal Hocko 2022-05-30 11:55 ` Michal Hocko 2022-05-30 13:09 ` Vasily Averin 2022-05-30 13:09 ` Vasily Averin 2022-05-30 14:22 ` Michal Hocko 2022-05-30 14:22 ` Michal Hocko 2022-05-30 19:58 ` Vasily Averin 2022-05-30 19:58 ` Vasily Averin 2022-05-31 7:16 ` Michal Hocko 2022-05-31 7:16 ` Michal Hocko 2022-06-01 3:43 ` Vasily Averin 2022-06-01 3:43 ` Vasily Averin 2022-06-01 9:15 ` Michal Koutný 2022-06-01 9:15 ` Michal Koutný 2022-06-01 9:32 ` Michal Hocko 2022-06-01 9:32 ` Michal Hocko 2022-06-01 13:05 ` Michal Hocko 2022-06-01 13:05 ` Michal Hocko 2022-06-01 14:22 ` Roman Gushchin 2022-06-01 14:22 ` Roman Gushchin 2022-06-01 15:24 ` Michal Hocko 2022-06-01 15:24 ` Michal Hocko 2022-06-01 9:26 ` Michal Hocko 2022-06-13 5:34 ` [PATCH mm v4 " Vasily Averin 2022-06-13 5:34 ` Vasily Averin 2022-06-23 14:50 ` [PATCH mm v5 0/9] memcg: accounting for objects allocated by mkdir, cgroup Vasily Averin 2022-06-23 14:50 ` Vasily Averin 2022-06-23 15:03 ` Vasily Averin 2022-06-23 15:03 ` Vasily Averin 2022-06-23 16:07 ` Michal Hocko 2022-06-23 16:07 ` Michal Hocko 2022-06-23 16:55 ` Shakeel Butt 2022-06-23 16:55 ` Shakeel Butt 2022-06-24 10:40 ` Vasily Averin 2022-06-24 10:40 ` Vasily Averin 2022-06-24 12:26 ` Michal Koutný 2022-06-24 12:26 ` Michal Koutný 2022-06-24 13:59 ` Michal Hocko 2022-06-24 13:59 ` Michal Hocko 2022-06-25 9:43 ` Vasily Averin [this message] 2022-06-25 9:43 ` [PATCH RFC] memcg: avoid idr ids space depletion Vasily Averin 2022-06-25 14:04 ` [PATCH RFC] memcg: notify about global mem_cgroup_id " Vasily Averin 2022-06-25 14:04 ` Vasily Averin 2022-06-26 1:56 ` Roman Gushchin 2022-06-26 1:56 ` Roman Gushchin 2022-06-26 7:11 ` Vasily Averin 2022-06-26 7:11 ` Vasily Averin 2022-06-27 2:12 ` [PATCH cgroup] cgroup: set the correct return code if hierarchy limits are reached Vasily Averin 2022-06-27 2:12 ` Vasily Averin 2022-06-27 3:33 ` Muchun Song 2022-06-27 3:33 ` Muchun Song 2022-06-27 9:07 ` Tejun Heo 2022-06-27 9:07 ` Tejun Heo 2022-06-28 0:44 ` Roman Gushchin 2022-06-28 0:44 ` Roman Gushchin 2022-06-28 3:59 ` Vasily Averin 2022-06-28 3:59 ` Vasily Averin 2022-06-28 9:16 ` Michal Koutný 2022-06-28 9:16 ` Michal Koutný 2022-06-28 9:22 ` Tejun Heo 2022-06-29 6:13 ` Vasily Averin 2022-06-29 6:13 ` Vasily Averin 2022-06-29 19:25 ` Tejun Heo 2022-06-29 19:25 ` Tejun Heo 2022-07-01 2:42 ` Roman Gushchin 2022-07-01 2:42 ` Roman Gushchin 2022-06-27 2:11 ` [PATCH mm v2] memcg: notify about global mem_cgroup_id space depletion Vasily Averin 2022-06-27 3:23 ` Muchun Song 2022-06-27 3:23 ` Muchun Song 2022-06-27 6:49 ` Vasily Averin 2022-06-27 6:49 ` Vasily Averin 2022-06-28 1:11 ` Roman Gushchin 2022-06-28 1:11 ` Roman Gushchin 2022-06-28 3:43 ` Vasily Averin 2022-06-28 3:43 ` Vasily Averin 2022-06-28 9:08 ` Michal Koutný 2022-06-28 9:08 ` Michal Koutný 2022-06-27 16:37 ` [PATCH mm v5 0/9] memcg: accounting for objects allocated by mkdir, cgroup Shakeel Butt 2022-06-27 16:37 ` Shakeel Butt 2022-07-01 11:03 ` Michal Hocko 2022-07-10 18:53 ` Vasily Averin 2022-07-10 18:53 ` Vasily Averin 2022-07-11 16:24 ` Michal Hocko 2022-07-11 16:24 ` Michal Hocko 2022-06-23 14:50 ` [PATCH mm v5 1/9] memcg: enable accounting for struct cgroup Vasily Averin 2022-06-23 14:50 ` Vasily Averin 2022-06-23 14:50 ` [PATCH mm v5 2/9] memcg: enable accounting for kernfs nodes Vasily Averin 2022-06-23 14:50 ` Vasily Averin 2022-06-23 14:51 ` [PATCH mm v5 3/9] memcg: enable accounting for kernfs iattrs Vasily Averin 2022-06-23 14:51 ` Vasily Averin 2022-06-23 14:51 ` [PATCH mm v5 4/9] memcg: enable accounting for struct simple_xattr Vasily Averin 2022-06-23 14:51 ` Vasily Averin 2022-06-23 14:51 ` [PATCH mm v5 5/9] memcg: enable accounting for percpu allocation of struct psi_group_cpu Vasily Averin 2022-06-23 14:51 ` Vasily Averin 2022-06-23 14:51 ` [PATCH mm v5 6/9] memcg: enable accounting for percpu allocation of struct cgroup_rstat_cpu Vasily Averin 2022-06-23 14:51 ` Vasily Averin 2022-06-23 14:51 ` [PATCH mm v5 7/9] memcg: enable accounting for large allocations in mem_cgroup_css_alloc Vasily Averin 2022-06-23 14:51 ` Vasily Averin 2022-06-23 14:51 ` [PATCH mm v5 8/9] memcg: enable accounting for allocations in alloc_fair_sched_group Vasily Averin 2022-06-23 14:51 ` Vasily Averin 2022-06-23 14:52 ` [PATCH mm v5 9/9] memcg: enable accounting for perpu allocation of struct rt_rq Vasily Averin 2022-06-23 14:52 ` Vasily Averin 2022-06-13 5:34 ` [PATCH mm v4 1/9] memcg: enable accounting for struct cgroup Vasily Averin 2022-06-13 5:34 ` Vasily Averin 2022-06-13 5:34 ` [PATCH mm v4 2/9] memcg: enable accounting for kernfs nodes Vasily Averin 2022-06-13 5:34 ` Vasily Averin 2022-06-13 5:34 ` [PATCH mm v4 3/9] memcg: enable accounting for kernfs iattrs Vasily Averin 2022-06-13 5:34 ` Vasily Averin 2022-06-13 5:35 ` [PATCH mm v4 4/9] memcg: enable accounting for struct simple_xattr Vasily Averin 2022-06-13 5:35 ` Vasily Averin 2022-06-13 5:35 ` [PATCH mm v4 5/9] memcg: enable accounting for percpu allocation of struct psi_group_cpu Vasily Averin 2022-06-13 5:35 ` Vasily Averin 2022-06-13 5:35 ` [PATCH mm v4 6/9] memcg: enable accounting for percpu allocation of struct cgroup_rstat_cpu Vasily Averin 2022-06-13 5:35 ` Vasily Averin 2022-06-13 5:35 ` [PATCH mm v4 7/9] memcg: enable accounting for large allocations in mem_cgroup_css_alloc Vasily Averin 2022-06-13 5:35 ` Vasily Averin 2022-06-13 5:35 ` [PATCH mm v4 8/9] memcg: enable accounting for allocations in alloc_fair_sched_group Vasily Averin 2022-06-13 5:35 ` Vasily Averin 2022-06-13 5:35 ` [PATCH mm v4 9/9] memcg: enable accounting for perpu allocation of struct rt_rq Vasily Averin [not found] ` <cover.1653899364.git.vvs@openvz.org> 2022-05-30 11:25 ` [PATCH mm v3 1/9] memcg: enable accounting for struct cgroup Vasily Averin 2022-05-30 11:25 ` Vasily Averin 2022-05-30 11:26 ` [PATCH mm v3 2/9] memcg: enable accounting for kernfs nodes Vasily Averin 2022-05-30 11:26 ` Vasily Averin 2022-05-30 11:26 ` [PATCH mm v3 3/9] memcg: enable accounting for kernfs iattrs Vasily Averin 2022-05-30 11:26 ` Vasily Averin 2022-05-30 11:26 ` [PATCH mm v3 4/9] memcg: enable accounting for struct simple_xattr Vasily Averin 2022-05-30 11:26 ` Vasily Averin 2022-05-30 11:26 ` [PATCH mm v3 5/9] memcg: enable accounting for percpu allocation of struct psi_group_cpu Vasily Averin 2022-05-30 11:26 ` [PATCH mm v3 6/9] memcg: enable accounting for percpu allocation of struct cgroup_rstat_cpu Vasily Averin 2022-05-30 15:04 ` Muchun Song 2022-05-30 15:04 ` Muchun Song 2022-05-30 11:26 ` [PATCH mm v3 7/9] memcg: enable accounting for large allocations in mem_cgroup_css_alloc Vasily Averin 2022-05-30 11:26 ` Vasily Averin 2022-05-30 11:26 ` [PATCH mm v3 8/9] memcg: enable accounting for allocations in alloc_fair_sched_group Vasily Averin 2022-05-30 11:26 ` Vasily Averin 2022-05-30 11:27 ` [PATCH mm v3 9/9] memcg: enable accounting for perpu allocation of struct rt_rq Vasily Averin 2022-05-30 11:27 ` Vasily Averin 2022-05-30 15:06 ` Muchun Song 2022-05-21 16:37 ` [PATCH mm v2 1/9] memcg: enable accounting for struct cgroup Vasily Averin 2022-05-21 16:37 ` Vasily Averin 2022-05-22 6:37 ` Muchun Song 2022-05-22 6:37 ` Muchun Song 2022-05-21 16:37 ` [PATCH mm v2 2/9] memcg: enable accounting for kernfs nodes Vasily Averin 2022-05-21 16:37 ` Vasily Averin 2022-05-22 6:37 ` Muchun Song 2022-05-22 6:37 ` Muchun Song 2022-05-21 16:37 ` [PATCH mm v2 3/9] memcg: enable accounting for kernfs iattrs Vasily Averin 2022-05-21 16:37 ` Vasily Averin 2022-05-22 6:38 ` Muchun Song 2022-05-22 6:38 ` Muchun Song 2022-05-21 16:38 ` [PATCH mm v2 4/9] memcg: enable accounting for struct simple_xattr Vasily Averin 2022-05-21 16:38 ` Vasily Averin 2022-05-22 6:38 ` Muchun Song 2022-05-22 6:38 ` Muchun Song 2022-05-21 16:38 ` [PATCH mm v2 5/9] memcg: enable accounting for percpu allocation of struct psi_group_cpu Vasily Averin 2022-05-21 16:38 ` Vasily Averin 2022-05-21 21:34 ` Shakeel Butt 2022-05-21 21:34 ` Shakeel Butt 2022-05-22 6:40 ` Muchun Song 2022-05-22 6:40 ` Muchun Song 2022-05-25 1:30 ` Roman Gushchin 2022-05-25 1:30 ` Roman Gushchin 2022-05-21 16:38 ` [PATCH mm v2 6/9] memcg: enable accounting for percpu allocation of struct cgroup_rstat_cpu Vasily Averin 2022-05-21 16:38 ` Vasily Averin 2022-05-21 17:58 ` Vasily Averin 2022-05-21 17:58 ` Vasily Averin 2022-05-21 21:35 ` Shakeel Butt 2022-05-21 21:35 ` Shakeel Butt 2022-05-21 22:05 ` kernel test robot 2022-05-21 22:05 ` kernel test robot 2022-05-25 1:31 ` Roman Gushchin 2022-05-25 1:31 ` Roman Gushchin 2022-05-21 16:38 ` [PATCH mm v2 7/9] memcg: enable accounting for large allocations in mem_cgroup_css_alloc Vasily Averin 2022-05-21 16:38 ` Vasily Averin 2022-05-22 6:47 ` Muchun Song 2022-05-22 6:47 ` Muchun Song 2022-05-21 16:38 ` [PATCH mm v2 8/9] memcg: enable accounting for allocations in alloc_fair_sched_group Vasily Averin 2022-05-21 16:38 ` Vasily Averin 2022-05-22 6:49 ` Muchun Song 2022-05-21 16:39 ` [PATCH mm v2 9/9] memcg: enable accounting for percpu allocation of struct rt_rq Vasily Averin 2022-05-21 16:39 ` Vasily Averin 2022-05-21 21:37 ` Shakeel Butt 2022-05-21 21:37 ` Shakeel Butt 2022-05-25 1:31 ` Roman Gushchin 2022-05-25 1:31 ` Roman Gushchin 2022-05-13 15:51 ` [PATCH 1/4] memcg: enable accounting for large allocations in mem_cgroup_css_alloc Vasily Averin 2022-05-13 15:51 ` Vasily Averin 2022-05-19 16:46 ` Michal Koutný 2022-05-19 16:46 ` Michal Koutný 2022-05-20 1:07 ` Shakeel Butt 2022-05-20 1:07 ` Shakeel Butt 2022-05-13 15:51 ` [PATCH 2/4] memcg: enable accounting for kernfs nodes and iattrs Vasily Averin 2022-05-13 15:51 ` Vasily Averin 2022-05-19 16:33 ` Michal Koutný 2022-05-19 16:33 ` Michal Koutný 2022-05-20 1:12 ` Shakeel Butt 2022-05-20 1:12 ` Shakeel Butt 2022-05-13 15:52 ` [PATCH 3/4] memcg: enable accounting for struct cgroup Vasily Averin 2022-05-13 15:52 ` Vasily Averin 2022-05-19 16:53 ` Michal Koutný 2022-05-19 16:53 ` Michal Koutný 2022-05-20 7:24 ` Vasily Averin 2022-05-20 7:24 ` Vasily Averin 2022-05-20 20:16 ` Vasily Averin 2022-05-20 20:16 ` Vasily Averin 2022-05-21 0:55 ` Roman Gushchin 2022-05-21 0:55 ` Roman Gushchin 2022-05-21 7:28 ` Vasily Averin 2022-05-21 7:28 ` Vasily Averin 2022-05-23 13:52 ` Michal Koutný 2022-05-23 13:52 ` Michal Koutný 2022-05-20 1:31 ` Shakeel Butt 2022-05-13 15:52 ` [PATCH 4/4] memcg: enable accounting for allocations in alloc_fair_sched_group Vasily Averin 2022-05-13 15:52 ` Vasily Averin 2022-05-19 16:45 ` Michal Koutný 2022-05-19 16:45 ` Michal Koutný 2022-05-20 1:18 ` Shakeel Butt 2022-05-20 1:18 ` Shakeel Butt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=b3225994-2a71-f38c-75b2-5366df848419@openvz.org \ --to=vvs@openvz.org \ --cc=akpm@linux-foundation.org \ --cc=cgroups@vger.kernel.org \ --cc=kernel@openvz.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@suse.com \ --cc=mkoutny@suse.com \ --cc=roman.gushchin@linux.dev \ --cc=shakeelb@google.com \ --cc=songmuchun@bytedance.com \ --cc=vbabka@suse.cz \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.