• Carlos Galo's avatar
    mm: update mark_victim tracepoints fields · 72ba14de
    Carlos Galo authored
    The current implementation of the mark_victim tracepoint provides only the
    process ID (pid) of the victim process.  This limitation poses challenges
    for userspace tools requiring real-time OOM analysis and intervention. 
    Although this information is available from the kernel logs, it’s not
    the appropriate format to provide OOM notifications.  In Android, BPF
    programs are used with the mark_victim trace events to notify userspace of
    an OOM kill.  For consistency, update the trace event to include the same
    information about the OOMed victim as the kernel logs.
    
    - UID
       In Android each installed application has a unique UID. Including
       the `uid` assists in correlating OOM events with specific apps.
    
    - Process Name (comm)
       Enables identification of the affected process.
    
    - OOM Score
      Will allow userspace to get additional insight of the relative kill
      priority of the OOM victim. In Android, the oom_score_adj is used to
      categorize app state (foreground, background, etc.), which aids in
      analyzing user-perceptible impacts of OOM events [1].
    
    - Total VM, RSS Stats, and pgtables
      Amount of memory used by the victim that will, potentially, be freed up
      by killing it.
    
    [1] https://cs.android.com/android/platform/superproject/main/+/246dc8fc95b6d93afcba5c6d6c133307abb3ac2e:frameworks/base/services/core/java/com/android/server/am/ProcessList.java;l=188-283Signed-off-by: default avatarCarlos Galo <carlosgalo@google.com>
    Reviewed-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    Cc: Suren Baghdasaryan <surenb@google.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: "Masami Hiramatsu (Google)" <mhiramat@kernel.org>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    72ba14de
oom.h 4.95 KB