summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzy <[email protected]>2023-12-18 12:46:39 -0500
committerzy <[email protected]>2023-12-18 12:46:39 -0500
commit357df1be9c0c614fe8b2f0d288a500ed37d66916 (patch)
tree870465679543c42cb6879ee44d4b1174c3c80184
parentfa0eb8b3e777560caf814980428125fb892d913e (diff)
monitor_user: tgid -> tid
-rw-r--r--source/module/monitor_timer.h25
-rw-r--r--source/uapi/monitor_user.h1
2 files changed, 15 insertions, 11 deletions
diff --git a/source/module/monitor_timer.h b/source/module/monitor_timer.h
index c62c463..c8b5df5 100644
--- a/source/module/monitor_timer.h
+++ b/source/module/monitor_timer.h
@@ -3,7 +3,7 @@
#define MAX_TIMER_NUM (128) // max timer number
#define TIMER_MAX_WATCH_NUM (32) // A timer max watch number at once time
-#define MAX_NAME_LEN (127) // max name length
+#define MAX_NAME_LEN (127) // max name length
typedef struct {
pid_t task_id; // current process id
@@ -11,9 +11,9 @@ typedef struct {
void *ptr; // virtual address
int length_byte; // byte
long long threshold; // threshold value
- unsigned char is_unsigned; // unsigned flag (true: unsigned, false: signed)
- unsigned char above_threshold; // reverse flag (true: >, false: <)
- unsigned long time_ns; // timer interval (ns)
+ unsigned char is_unsigned; // unsigned flag (true: unsigned, false: signed)
+ unsigned char above_threshold; // reverse flag (true: >, false: <)
+ unsigned long time_ns; // timer interval (ns)
} watch_arg;
typedef struct {
@@ -23,9 +23,9 @@ typedef struct {
void *kptr; // kernel address + offset
int length_byte; // byte
long long threshold; // threshold value
- long long true_value; // target true value | available after reach threshold
+ long long true_value; // target true value | available after reach threshold
unsigned char is_unsigned; // unsigned flag (true: unsigned, false: signed)
- unsigned char above_threshold; // reverse flag (true: >, false: <)
+ unsigned char above_threshold; // reverse flag (true: >, false: <)
} kernel_watch_arg;
typedef struct {
@@ -34,18 +34,20 @@ typedef struct {
ktime_t kt; // hrTimer time
unsigned sentinel; // sentinel
kernel_watch_arg
- k_watch_args[TIMER_MAX_WATCH_NUM]; // all watched kernel_watch_arg
- int threshold_over_count; // all over threshold number,
- // 0 means no handle needed
+ k_watch_args[TIMER_MAX_WATCH_NUM]; // all watched kernel_watch_arg
+ int threshold_over_count; // all over threshold number,
+ // 0 means no handle needed
int threshold_buffer[TIMER_MAX_WATCH_NUM]; //
struct work_struct wk; // for handle
unsigned long long tv; // time
+ struct task_struct *task; // task pointer
+ // one timer one task(process)
} kernel_watch_timer;
// Global variable
extern kernel_watch_timer
kernel_wtimer_list[MAX_TIMER_NUM]; // all kernel_watch_timer
-extern volatile int kernel_wtimer_num; // current kernel_watch_timer number
+extern volatile int kernel_wtimer_num; // current kernel_watch_timer number
// EXPORT_SYMBOL(kernel_wtimer_list); // export kernel_watch_timer_list
// EXPORT_SYMBOL(kernel_wtimer_num); // export kernel_watch_timer_num
@@ -62,7 +64,8 @@ unsigned char timer_add_watch(kernel_watch_timer *timer,
kernel_watch_arg k_watch_arg);
unsigned char timer_del_watch_by_pid(kernel_watch_timer *timer, pid_t pid);
-extern enum hrtimer_restart check_variable_cb(struct hrtimer *timer); // callback
+extern enum hrtimer_restart
+check_variable_cb(struct hrtimer *timer); // callback
void start_all_hrTimer(void);
void cancel_all_hrTimer(void);
diff --git a/source/uapi/monitor_user.h b/source/uapi/monitor_user.h
index be17819..afa4cc3 100644
--- a/source/uapi/monitor_user.h
+++ b/source/uapi/monitor_user.h
@@ -7,6 +7,7 @@
#include <unistd.h>
#define MAX_NAME_LEN (127) // max name length
+#define gettid() (unsigned long)syscall(SYS_gettid)
typedef struct {
pid_t task_id; // current process id