Re: [PATCH] mm/vmstat: add oom_kill counter
On 19.05.2017 12:05, Vlastimil Babka wrote: On 05/19/2017 08:59 AM, Konstantin Khlebnikov wrote: Show count of global oom killer invocations in /proc/vmstat Maybe some more rationale why is that useful? Currently the only way to detect oom kill is grepping kernel logs. This counter makes such monitoring much easier. Vlastimil Signed-off-by: Konstantin Khlebnikov--- include/linux/vm_event_item.h |1 + mm/oom_kill.c |1 + mm/vmstat.c |1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index d84ae90ccd5c..1707e0a7d943 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, PAGEOUTRUN, PGROTATED, DROP_PAGECACHE, DROP_SLAB, + OOM_KILL, #ifdef CONFIG_NUMA_BALANCING NUMA_PTE_UPDATES, NUMA_HUGE_PTE_UPDATES, diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 04c9143a8625..c734c42826cf 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) */ do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); mark_oom_victim(victim); + count_vm_event(OOM_KILL); pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB, shmem-rss:%lukB\n", task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), K(get_mm_counter(victim->mm, MM_ANONPAGES)), diff --git a/mm/vmstat.c b/mm/vmstat.c index 76f73670200a..fe80b81a86e0 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { "drop_pagecache", "drop_slab", + "oom_kill", #ifdef CONFIG_NUMA_BALANCING "numa_pte_updates", -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majord...@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: mailto:"d...@kvack.org;> em...@kvack.org
Re: [PATCH] mm/vmstat: add oom_kill counter
On 19.05.2017 12:05, Vlastimil Babka wrote: On 05/19/2017 08:59 AM, Konstantin Khlebnikov wrote: Show count of global oom killer invocations in /proc/vmstat Maybe some more rationale why is that useful? Currently the only way to detect oom kill is grepping kernel logs. This counter makes such monitoring much easier. Vlastimil Signed-off-by: Konstantin Khlebnikov --- include/linux/vm_event_item.h |1 + mm/oom_kill.c |1 + mm/vmstat.c |1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index d84ae90ccd5c..1707e0a7d943 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, PAGEOUTRUN, PGROTATED, DROP_PAGECACHE, DROP_SLAB, + OOM_KILL, #ifdef CONFIG_NUMA_BALANCING NUMA_PTE_UPDATES, NUMA_HUGE_PTE_UPDATES, diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 04c9143a8625..c734c42826cf 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) */ do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); mark_oom_victim(victim); + count_vm_event(OOM_KILL); pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB, shmem-rss:%lukB\n", task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), K(get_mm_counter(victim->mm, MM_ANONPAGES)), diff --git a/mm/vmstat.c b/mm/vmstat.c index 76f73670200a..fe80b81a86e0 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { "drop_pagecache", "drop_slab", + "oom_kill", #ifdef CONFIG_NUMA_BALANCING "numa_pte_updates", -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majord...@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: mailto:"d...@kvack.org;> em...@kvack.org
Re: [PATCH] mm/vmstat: add oom_kill counter
On 05/19/2017 08:59 AM, Konstantin Khlebnikov wrote: > Show count of global oom killer invocations in /proc/vmstat Maybe some more rationale why is that useful? Vlastimil > Signed-off-by: Konstantin Khlebnikov> --- > include/linux/vm_event_item.h |1 + > mm/oom_kill.c |1 + > mm/vmstat.c |1 + > 3 files changed, 3 insertions(+) > > diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h > index d84ae90ccd5c..1707e0a7d943 100644 > --- a/include/linux/vm_event_item.h > +++ b/include/linux/vm_event_item.h > @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, > KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, > PAGEOUTRUN, PGROTATED, > DROP_PAGECACHE, DROP_SLAB, > + OOM_KILL, > #ifdef CONFIG_NUMA_BALANCING > NUMA_PTE_UPDATES, > NUMA_HUGE_PTE_UPDATES, > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > index 04c9143a8625..c734c42826cf 100644 > --- a/mm/oom_kill.c > +++ b/mm/oom_kill.c > @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, > const char *message) >*/ > do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); > mark_oom_victim(victim); > + count_vm_event(OOM_KILL); > pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, > file-rss:%lukB, shmem-rss:%lukB\n", > task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), > K(get_mm_counter(victim->mm, MM_ANONPAGES)), > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 76f73670200a..fe80b81a86e0 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { > > "drop_pagecache", > "drop_slab", > + "oom_kill", > > #ifdef CONFIG_NUMA_BALANCING > "numa_pte_updates", > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majord...@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: mailto:"d...@kvack.org;> em...@kvack.org >
Re: [PATCH] mm/vmstat: add oom_kill counter
On 05/19/2017 08:59 AM, Konstantin Khlebnikov wrote: > Show count of global oom killer invocations in /proc/vmstat Maybe some more rationale why is that useful? Vlastimil > Signed-off-by: Konstantin Khlebnikov > --- > include/linux/vm_event_item.h |1 + > mm/oom_kill.c |1 + > mm/vmstat.c |1 + > 3 files changed, 3 insertions(+) > > diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h > index d84ae90ccd5c..1707e0a7d943 100644 > --- a/include/linux/vm_event_item.h > +++ b/include/linux/vm_event_item.h > @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, > KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, > PAGEOUTRUN, PGROTATED, > DROP_PAGECACHE, DROP_SLAB, > + OOM_KILL, > #ifdef CONFIG_NUMA_BALANCING > NUMA_PTE_UPDATES, > NUMA_HUGE_PTE_UPDATES, > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > index 04c9143a8625..c734c42826cf 100644 > --- a/mm/oom_kill.c > +++ b/mm/oom_kill.c > @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, > const char *message) >*/ > do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); > mark_oom_victim(victim); > + count_vm_event(OOM_KILL); > pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, > file-rss:%lukB, shmem-rss:%lukB\n", > task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), > K(get_mm_counter(victim->mm, MM_ANONPAGES)), > diff --git a/mm/vmstat.c b/mm/vmstat.c > index 76f73670200a..fe80b81a86e0 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { > > "drop_pagecache", > "drop_slab", > + "oom_kill", > > #ifdef CONFIG_NUMA_BALANCING > "numa_pte_updates", > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majord...@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: mailto:"d...@kvack.org;> em...@kvack.org >
Re: [PATCH] mm/vmstat: add oom_kill counter
On 19.05.2017 09:59, Konstantin Khlebnikov wrote: Show count of global oom killer invocations in /proc/vmstat Oops, this actually counts memcg kills too. Will redo. Signed-off-by: Konstantin Khlebnikov--- include/linux/vm_event_item.h |1 + mm/oom_kill.c |1 + mm/vmstat.c |1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index d84ae90ccd5c..1707e0a7d943 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, PAGEOUTRUN, PGROTATED, DROP_PAGECACHE, DROP_SLAB, + OOM_KILL, #ifdef CONFIG_NUMA_BALANCING NUMA_PTE_UPDATES, NUMA_HUGE_PTE_UPDATES, diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 04c9143a8625..c734c42826cf 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) */ do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); mark_oom_victim(victim); + count_vm_event(OOM_KILL); pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB, shmem-rss:%lukB\n", task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), K(get_mm_counter(victim->mm, MM_ANONPAGES)), diff --git a/mm/vmstat.c b/mm/vmstat.c index 76f73670200a..fe80b81a86e0 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { "drop_pagecache", "drop_slab", + "oom_kill", #ifdef CONFIG_NUMA_BALANCING "numa_pte_updates",
Re: [PATCH] mm/vmstat: add oom_kill counter
On 19.05.2017 09:59, Konstantin Khlebnikov wrote: Show count of global oom killer invocations in /proc/vmstat Oops, this actually counts memcg kills too. Will redo. Signed-off-by: Konstantin Khlebnikov --- include/linux/vm_event_item.h |1 + mm/oom_kill.c |1 + mm/vmstat.c |1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index d84ae90ccd5c..1707e0a7d943 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, PAGEOUTRUN, PGROTATED, DROP_PAGECACHE, DROP_SLAB, + OOM_KILL, #ifdef CONFIG_NUMA_BALANCING NUMA_PTE_UPDATES, NUMA_HUGE_PTE_UPDATES, diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 04c9143a8625..c734c42826cf 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) */ do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); mark_oom_victim(victim); + count_vm_event(OOM_KILL); pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB, shmem-rss:%lukB\n", task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), K(get_mm_counter(victim->mm, MM_ANONPAGES)), diff --git a/mm/vmstat.c b/mm/vmstat.c index 76f73670200a..fe80b81a86e0 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { "drop_pagecache", "drop_slab", + "oom_kill", #ifdef CONFIG_NUMA_BALANCING "numa_pte_updates",
[PATCH] mm/vmstat: add oom_kill counter
Show count of global oom killer invocations in /proc/vmstat Signed-off-by: Konstantin Khlebnikov--- include/linux/vm_event_item.h |1 + mm/oom_kill.c |1 + mm/vmstat.c |1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index d84ae90ccd5c..1707e0a7d943 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, PAGEOUTRUN, PGROTATED, DROP_PAGECACHE, DROP_SLAB, + OOM_KILL, #ifdef CONFIG_NUMA_BALANCING NUMA_PTE_UPDATES, NUMA_HUGE_PTE_UPDATES, diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 04c9143a8625..c734c42826cf 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) */ do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); mark_oom_victim(victim); + count_vm_event(OOM_KILL); pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB, shmem-rss:%lukB\n", task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), K(get_mm_counter(victim->mm, MM_ANONPAGES)), diff --git a/mm/vmstat.c b/mm/vmstat.c index 76f73670200a..fe80b81a86e0 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { "drop_pagecache", "drop_slab", + "oom_kill", #ifdef CONFIG_NUMA_BALANCING "numa_pte_updates",
[PATCH] mm/vmstat: add oom_kill counter
Show count of global oom killer invocations in /proc/vmstat Signed-off-by: Konstantin Khlebnikov --- include/linux/vm_event_item.h |1 + mm/oom_kill.c |1 + mm/vmstat.c |1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index d84ae90ccd5c..1707e0a7d943 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -41,6 +41,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, PAGEOUTRUN, PGROTATED, DROP_PAGECACHE, DROP_SLAB, + OOM_KILL, #ifdef CONFIG_NUMA_BALANCING NUMA_PTE_UPDATES, NUMA_HUGE_PTE_UPDATES, diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 04c9143a8625..c734c42826cf 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -883,6 +883,7 @@ static void oom_kill_process(struct oom_control *oc, const char *message) */ do_send_sig_info(SIGKILL, SEND_SIG_FORCED, victim, true); mark_oom_victim(victim); + count_vm_event(OOM_KILL); pr_err("Killed process %d (%s) total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB, shmem-rss:%lukB\n", task_pid_nr(victim), victim->comm, K(victim->mm->total_vm), K(get_mm_counter(victim->mm, MM_ANONPAGES)), diff --git a/mm/vmstat.c b/mm/vmstat.c index 76f73670200a..fe80b81a86e0 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1018,6 +1018,7 @@ const char * const vmstat_text[] = { "drop_pagecache", "drop_slab", + "oom_kill", #ifdef CONFIG_NUMA_BALANCING "numa_pte_updates",