Re: [-mm patch] Show memcg information during OOM (v3)

From: Li Zefan
Date: Thu Feb 05 2009 - 22:03:38 EST


> + mem_cgrp = memcg->css.cgroup;
> + task_cgrp = mem_cgroup_from_task(p)->css.cgroup;

I just noticed since v2, task's cgroup is also printed. Then 2 issues here:

1. this is better: task_cgrp = task_subsys_state(p, mem_cgroup_subsys_id);
2. getting cgroup from a task should be protected by task_lock or rcu_read_lock,
so we can put the above statement inside rcu_read_lock below.

> +
> + rcu_read_lock();
> + ret = cgroup_path(task_cgrp, task_memcg_name, PATH_MAX);
> + if (ret < 0) {
> + /*
> + * Unfortunately, we are unable to convert to a useful name
> + * But we'll still print out the usage information
> + */
> + rcu_read_unlock();
> + goto done;
> + }
> + ret = cgroup_path(mem_cgrp, memcg_name, PATH_MAX);
> + if (ret < 0) {
> + rcu_read_unlock();
> + goto done;
> + }
> +
> + rcu_read_unlock();
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/