blob: 668cf5259c605e5b134aff5219f56e3c104cff32 [file] [log] [blame]
Alexei Starovoitove3edfde2016-04-06 18:43:31 -07001/* Copyright (c) 2016 Facebook
2 *
3 * This program is free software; you can redistribute it and/or
4 * modify it under the terms of version 2 of the GNU General Public
5 * License as published by the Free Software Foundation.
6 */
Daniel T. Leee8acf8f2023-01-15 16:16:12 +09007#include "vmlinux.h"
Alexei Starovoitove3edfde2016-04-06 18:43:31 -07008#include <linux/version.h>
Toke Høiland-Jørgensen7cf245a2020-01-20 14:06:49 +01009#include <bpf/bpf_helpers.h>
10#include <bpf/bpf_tracing.h>
Daniel T. Lee11430422023-08-18 18:01:15 +090011#include <bpf/bpf_core_read.h>
Alexei Starovoitove3edfde2016-04-06 18:43:31 -070012
13SEC("kprobe/__set_task_comm")
14int prog(struct pt_regs *ctx)
15{
16 struct signal_struct *signal;
17 struct task_struct *tsk;
Yafang Shaod0681442022-01-19 18:08:33 -080018 char oldcomm[TASK_COMM_LEN] = {};
19 char newcomm[TASK_COMM_LEN] = {};
Alexei Starovoitove3edfde2016-04-06 18:43:31 -070020 u16 oom_score_adj;
21 u32 pid;
22
Daniel T. Lee11430422023-08-18 18:01:15 +090023 tsk = (void *)PT_REGS_PARM1_CORE(ctx);
Alexei Starovoitove3edfde2016-04-06 18:43:31 -070024
Daniel T. Lee11430422023-08-18 18:01:15 +090025 pid = BPF_CORE_READ(tsk, pid);
26 bpf_core_read_str(oldcomm, sizeof(oldcomm), &tsk->comm);
27 bpf_core_read_str(newcomm, sizeof(newcomm),
Yafang Shaod0681442022-01-19 18:08:33 -080028 (void *)PT_REGS_PARM2(ctx));
Daniel T. Lee11430422023-08-18 18:01:15 +090029 signal = BPF_CORE_READ(tsk, signal);
30 oom_score_adj = BPF_CORE_READ(signal, oom_score_adj);
Alexei Starovoitove3edfde2016-04-06 18:43:31 -070031 return 0;
32}
33
Daniel T. Lee58e975d2023-01-15 16:16:08 +090034SEC("kprobe/fib_table_lookup")
Alexei Starovoitove3edfde2016-04-06 18:43:31 -070035int prog2(struct pt_regs *ctx)
36{
37 return 0;
38}
39
40char _license[] SEC("license") = "GPL";
41u32 _version SEC("version") = LINUX_VERSION_CODE;