| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | #ifndef NETDATA_EBPF_SYNC_H |
| 4 | #define NETDATA_EBPF_SYNC_H 1 |
| 5 | |
| 6 | #include "libbpf_api/ebpf.h" |
| 7 | |
| 8 | // Module name & description |
| 9 | #define NETDATA_EBPF_MODULE_NAME_SYNC "sync" |
| 10 | #define NETDATA_EBPF_SYNC_MODULE_DESC \ |
| 11 | "Monitor calls to syscalls sync(2), fsync(2), fdatasync(2), syncfs(2), msync(2), and sync_file_range(2)." |
| 12 | |
| 13 | // charts |
| 14 | #define NETDATA_EBPF_SYNC_CHART "sync" |
| 15 | #define NETDATA_EBPF_MSYNC_CHART "memory_map" |
| 16 | #define NETDATA_EBPF_FILE_SYNC_CHART "file_sync" |
| 17 | #define NETDATA_EBPF_FILE_SEGMENT_CHART "file_segment" |
| 18 | #define NETDATA_EBPF_SYNC_SUBMENU "synchronization (eBPF)" |
| 19 | |
| 20 | #define NETDATA_SYSCALLS_SYNC "sync" |
| 21 | #define NETDATA_SYSCALLS_SYNCFS "syncfs" |
| 22 | #define NETDATA_SYSCALLS_MSYNC "msync" |
| 23 | #define NETDATA_SYSCALLS_FSYNC "fsync" |
| 24 | #define NETDATA_SYSCALLS_FDATASYNC "fdatasync" |
| 25 | #define NETDATA_SYSCALLS_SYNC_FILE_RANGE "sync_file_range" |
| 26 | |
| 27 | #define NETDATA_EBPF_SYNC_SLEEP_MS 800000ULL |
| 28 | |
| 29 | #define NETDATA_EBPF_FILE_SYNC_CHART_ORDER 21300 |
| 30 | #define NETDATA_EBPF_MSYNC_CHART_ORDER 21301 |
| 31 | #define NETDATA_EBPF_SYNC_CHART_ORDER 21302 |
| 32 | #define NETDATA_EBPF_FILE_SEGMENT_CHART_ORDER 21303 |
| 33 | |
| 34 | // configuration file |
| 35 | #define NETDATA_SYNC_CONFIG_FILE "sync.conf" |
| 36 | #define NETDATA_SYNC_CONFIG_NAME "syscalls" |
| 37 | |
| 38 | typedef enum sync_syscalls_index { |
| 39 | NETDATA_SYNC_SYNC_IDX, |
| 40 | NETDATA_SYNC_SYNCFS_IDX, |
| 41 | NETDATA_SYNC_MSYNC_IDX, |
| 42 | NETDATA_SYNC_FSYNC_IDX, |
| 43 | NETDATA_SYNC_FDATASYNC_IDX, |
| 44 | NETDATA_SYNC_SYNC_FILE_RANGE_IDX, |
| 45 | |
| 46 | NETDATA_SYNC_IDX_END |
| 47 | } sync_syscalls_index_t; |
| 48 | |
| 49 | enum netdata_sync_charts { |
| 50 | NETDATA_SYNC_CALL, |
| 51 | |
| 52 | // Keep this as last and don't skip numbers as it is used as element counter |
| 53 | NETDATA_SYNC_END |
| 54 | }; |
| 55 | |
| 56 | enum netdata_sync_table { NETDATA_SYNC_GLOBAL_TABLE }; |
| 57 | |
| 58 | void ebpf_sync_thread(void *ptr); |
| 59 | extern struct config sync_config; |
| 60 | extern netdata_ebpf_targets_t sync_targets[]; |
| 61 | |
| 62 | #endif /* NETDATA_EBPF_SYNC_H */ |