Messages in this thread | | | Date | Wed, 04 Feb 2009 08:53:59 +0800 | From | Li Zefan <> | Subject | Re: [-mm patch] Show memcg information during OOM (v3) |
| |
> @@ -104,6 +104,8 @@ struct zone_reclaim_stat *mem_cgroup_get_reclaim_stat(struct mem_cgroup *memcg, > struct zone *zone); > struct zone_reclaim_stat* > mem_cgroup_get_reclaim_stat_from_page(struct page *page); > +extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, > + struct task_struct *p); > > #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP > extern int do_swap_account; > @@ -270,6 +272,10 @@ mem_cgroup_get_reclaim_stat_from_page(struct page *page) > return NULL; > } > > +void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p) > +{
should be static inline, otherwise it won't compile if CONFIG_CGROUP_MEM_CONT=n
> +} > + > #endif /* CONFIG_CGROUP_MEM_CONT */ >
> +void mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p) > +{ > + struct cgroup *task_cgrp; > + struct cgroup *mem_cgrp; > + /* > + * Need a buffer on stack, can't rely on allocations. The code relies
I think it's in .bss section, but not on stack, and it's better to explain why the static buffer is safe in the comment.
> + * on the assumption that OOM is serialized for memory controller. > + * If this assumption is broken, revisit this code. > + */ > + static char task_memcg_name[PATH_MAX]; > + static char memcg_name[PATH_MAX]; > + int ret;
| |