Re: [PATCH] Add the memcg print oom info for system oom

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michal
I think the current OOM report is imcomplete. I can get the task which invoked the oom-killer and the task which has been killed by the oom-killer, and memory info when the oom happened. But I cannot infer the certain memcg to which the task killed by oom-killer belongs, because that task has been killed, and the dump_task will print all of the tasks in the system.

mem_cgroup_print_oom_info will print five lines of content including memcg's name , usage, limit. I don't think five lines of content will cause a big problem. Or it at least prints the memcg's name.

Thanks
Wind

Michal Hocko <mhocko@xxxxxxxxxx> 于2018年5月17日周四 下午3:11写道:
On Thu 17-05-18 08:00:28, ufo19890607 wrote:
> From: yuzhoujian <yuzhoujian@xxxxxxxxxxxxxxx>
>
> The dump_header does not print the memcg's name when the system
> oom happened. Some users want to locate the certain container
> which contains the task that has been killed by the oom killer.
> So I add the mem_cgroup_print_oom_info when system oom events
> happened.

The oom report is quite heavy today. Do we really need the full memcg
oom report here. Wouldn't it be sufficient to print the memcg the task
belongs to?

> Signed-off-by: yuzhoujian <yuzhoujian@xxxxxxxxxxxxxxx>
> ---
>  mm/oom_kill.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/mm/oom_kill.c b/mm/oom_kill.c
> index 8ba6cb88cf58..244416c9834a 100644
> --- a/mm/oom_kill.c
> +++ b/mm/oom_kill.c
> @@ -433,6 +433,7 @@ static void dump_header(struct oom_control *oc, struct task_struct *p)
>       if (is_memcg_oom(oc))
>               mem_cgroup_print_oom_info(oc->memcg, p);
>       else {
> +             mem_cgroup_print_oom_info(mem_cgroup_from_task(p), p);
>               show_mem(SHOW_MEM_FILTER_NODES, oc->nodemask);
>               if (is_dump_unreclaim_slabs())
>                       dump_unreclaimable_slab();
> --
> 2.14.1
>

--
Michal Hocko
SUSE Labs

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux