Skip to content

Commit 6cf1c97

Browse files
pizhenweimstsirkin
authored andcommitted
virtio_balloon: introduce oom-kill invocations
When the guest OS runs under critical memory pressure, the guest starts to kill processes. A guest monitor agent may scan 'oom_kill' from /proc/vmstat, and reports the OOM KILL event. However, the agent may be killed and we will loss this critical event(and the later events). For now we can also grep for magic words in guest kernel log from host side. Rather than this unstable way, virtio balloon reports OOM-KILL invocations instead. Acked-by: David Hildenbrand <david@redhat.com> Signed-off-by: zhenwei pi <pizhenwei@bytedance.com> Message-Id: <20240423034109.1552866-3-pizhenwei@bytedance.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
1 parent e25fbcd commit 6cf1c97

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

drivers/virtio/virtio_balloon.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ static inline unsigned int update_balloon_vm_stats(struct virtio_balloon *vb)
363363
pages_to_bytes(events[PSWPOUT]));
364364
update_stat(vb, idx++, VIRTIO_BALLOON_S_MAJFLT, events[PGMAJFAULT]);
365365
update_stat(vb, idx++, VIRTIO_BALLOON_S_MINFLT, events[PGFAULT]);
366+
update_stat(vb, idx++, VIRTIO_BALLOON_S_OOM_KILL, events[OOM_KILL]);
366367

367368
#ifdef CONFIG_HUGETLB_PAGE
368369
update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGALLOC,

include/uapi/linux/virtio_balloon.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ struct virtio_balloon_config {
7171
#define VIRTIO_BALLOON_S_CACHES 7 /* Disk caches */
7272
#define VIRTIO_BALLOON_S_HTLB_PGALLOC 8 /* Hugetlb page allocations */
7373
#define VIRTIO_BALLOON_S_HTLB_PGFAIL 9 /* Hugetlb page allocation failures */
74-
#define VIRTIO_BALLOON_S_NR 10
74+
#define VIRTIO_BALLOON_S_OOM_KILL 10 /* OOM killer invocations */
75+
#define VIRTIO_BALLOON_S_NR 11
7576

7677
#define VIRTIO_BALLOON_S_NAMES_WITH_PREFIX(VIRTIO_BALLOON_S_NAMES_prefix) { \
7778
VIRTIO_BALLOON_S_NAMES_prefix "swap-in", \
@@ -83,7 +84,8 @@ struct virtio_balloon_config {
8384
VIRTIO_BALLOON_S_NAMES_prefix "available-memory", \
8485
VIRTIO_BALLOON_S_NAMES_prefix "disk-caches", \
8586
VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-allocations", \
86-
VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures" \
87+
VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures", \
88+
VIRTIO_BALLOON_S_NAMES_prefix "oom-kills" \
8789
}
8890

8991
#define VIRTIO_BALLOON_S_NAMES VIRTIO_BALLOON_S_NAMES_WITH_PREFIX("")

0 commit comments

Comments
 (0)