It would be useful to translate gfp_flags into string representation when
printing in case of an OOM, especially as the flags have been undergoing some
changes recently and the script ./scripts/gfp-translate needs a matching source
version to be accurate.

Example output:

a.out invoked oom-killer: gfp_mask=0x24280ca(GFP_HIGHUSER_MOVABLE|GFP_ZERO), 
order=0, om_score_adj=0

Signed-off-by: Vlastimil Babka <[email protected]>
Cc: Joonsoo Kim <[email protected]>
Cc: Minchan Kim <[email protected]>
Cc: Sasha Levin <[email protected]>
Cc: "Kirill A. Shutemov" <[email protected]>
Cc: Mel Gorman <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Cc: David Rientjes <[email protected]>
---
 mm/oom_kill.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/mm/oom_kill.c b/mm/oom_kill.c
index 6ebc03511807..ce0d2c21e698 100644
--- a/mm/oom_kill.c
+++ b/mm/oom_kill.c
@@ -388,10 +388,11 @@ static void dump_tasks(struct mem_cgroup *memcg, const 
nodemask_t *nodemask)
 static void dump_header(struct oom_control *oc, struct task_struct *p,
                        struct mem_cgroup *memcg)
 {
-       pr_warning("%s invoked oom-killer: gfp_mask=0x%x, order=%d, "
-               "oom_score_adj=%hd\n",
-               current->comm, oc->gfp_mask, oc->order,
+       pr_warn("%s invoked oom-killer: gfp_mask=%#x(%pGg), order=%d, "
+                       "oom_score_adj=%hd\n",
+               current->comm, oc->gfp_mask, &oc->gfp_mask, oc->order,
                current->signal->oom_score_adj);
+
        cpuset_print_current_mems_allowed();
        dump_stack();
        if (memcg)
-- 
2.7.0

Reply via email to