25 #ifndef _DOCKER_DRIVER_H 26 #define _DOCKER_DRIVER_H 28 #include <linux/limits.h> 30 #include <sys/types.h> 37 #define DOCKER_ID_LEN 65 46 #define docker_info_list_traverse(ptr, head) \ 47 for (ptr = head; ptr != NULL; ptr = ptr->next) 56 #define docker_json_field_traverse(ptr, begin, end) \ 57 for (ptr = begin; ptr != end; ptr++) 60 #define docker_print_info(info) \ 63 "\t\t[[ current %p ]]\n" \ 67 "\t\tnr_thread: %u\n" \ 69 "\t\ttrace_repeat: %u\n" \ 71 "\t\tutilization: %u\n" \ 76 "\t\tprefix_cgroup_name: %s\n" \ 77 "\t\tscheduler: %s\n" \ 79 "\t\ttrace_replay_path: %s\n" \ 80 "\t\ttrace_data_path: %s\n" \ 82 "\t\tglobal_config: %p\n" \ 84 (info), (info)->pid, (info)->time, (info)->q_depth, \ 85 (info)->nr_thread, (info)->weight, (info)->trace_repeat, \ 86 (info)->wss, (info)->utilization, (info)->iosize, \ 87 (info)->mqid, (info)->shmid, (info)->semid, \ 88 (info)->prefix_cgroup_name, (info)->scheduler, \ 89 (info)->cgroup_id, (info)->trace_replay_path, \ 90 (info)->trace_data_path, (info)->device, \ 91 (info)->global_config, (info)->next); 120 struct json_object *per_trace
152 char prefix_cgroup_name
154 char device[NAME_MAX];
155 char scheduler[NAME_MAX];
158 char trace_replay_path[PATH_MAX];
159 char trace_data_path[PATH_MAX];
const void * member
Definition: docker-driver.h:111
This structure has the major information of the each process.
Definition: docker-driver.h:131
static const char * key[]
Definition: docker-driver-test.c:55
int semid
Definition: docker-driver.h:145
int shmid
Definition: docker-driver.h:144
pid_t ppid
Definition: docker-driver.h:132
int docker_mq_get(const struct docker_info *info, void *buffer)
Retrieve the data from Message Queue.
Definition: docker-mq.c:130
Definition: docker-driver.h:95
unsigned int trace_repeat
Definition: docker-driver.h:147
int docker_shm_get(const struct docker_info *info, void *buffer)
Retrieve the data from Shared Memory.
Definition: docker-shm.c:244
int docker_init(void *object)
Initialize the global configuration and per processes configuration.
Definition: docker-driver.c:253
const char * name
Definition: docker-driver.h:110
int docker_get_total(const char *key, char *buffer)
Get end-time results from trace-replay.
Definition: docker-driver.c:581
int docker_runner(void)
Run all processes' trace-replay part.
Definition: docker-driver.c:454
int docker_has_weight_scheduler(const int scheduler_index)
Check the parameter's scheduler_index supports weight.
Definition: docker-driver.c:163
Definition: trace_replay.h:193
int docker_valid_scheduler_test(const char *scheduler)
Check the current inputted scheduler text can be supported by the driver.
Definition: docker-driver.c:142
void * global_config
Definition: docker-driver.h:161
unsigned int time
Definition: docker-driver.h:136
Definition: trace_replay.h:239
void docker_shm_free(struct docker_info *info, int flags)
Deallocate the Shared Memory resources.
Definition: docker-shm.c:269
void docker_total_serializer(const struct docker_info *info, const struct total_results *total, char *buffer)
Converts total_results to JSON string.
Definition: docker-serializer.c:433
int docker_get_interval(const char *key, char *buffer)
Get execution-time results from trace-replay.
Definition: docker-driver.c:540
unsigned int q_depth
Definition: docker-driver.h:138
void docker_free(void)
Deallocate resources of this driver.
Definition: docker-driver.c:615
unsigned int nr_thread
Definition: docker-driver.h:139
unsigned int wss
Definition: docker-driver.h:148
Definition: docker-driver.h:103
void docker_realtime_serializer(const struct docker_info *info, const struct realtime_log *log, char *buffer)
Converts realtime_log to JSON string.
Definition: docker-serializer.c:404
Definition: docker-driver.h:102
Definition: trace_replay.h:160
#define MAX_THREADS
Definition: trace_replay.h:34
unsigned int weight
Definition: docker-driver.h:141
pid_t pid
Definition: docker-driver.h:133
Support structure of the total_results structures which located in include/trace_replay.h.
Definition: docker-driver.h:117
Support structure of the docker_stats_serializer() function.
Definition: docker-driver.h:109
int docker_shm_init(struct docker_info *info)
Do the __docker_shm_init() and __docker_sem_init()
Definition: docker-shm.c:201
char trace_data_path[PATH_MAX]
Definition: docker-driver.h:159
unsigned int utilization
Definition: docker-driver.h:149
char scheduler[NAME_MAX]
Definition: docker-driver.h:155
void docker_mq_free(struct docker_info *info, int flags)
Deallocate the Message Queue resources.
Definition: docker-mq.c:153
int mqid
Definition: docker-driver.h:143
Definition: docker-driver.h:98
#define DOCKER_ID_LEN
Definition: docker-driver.h:37
Definition: docker-driver.h:94
char container_id[DOCKER_ID_LEN]
Definition: docker-driver.h:163
Definition: trace_replay.h:176
unsigned int iosize
Definition: docker-driver.h:150
def info()
Definition: routes.py:6
int docker_mq_init(struct docker_info *info)
Wrapping function of __docker_mq_init()
Definition: docker-mq.c:98
Definition: docker-driver.h:99
int docker_is_synth_type(const char *trace_data_path)
Check the trace_data_path value form is synthetic from.
Definition: docker-info.c:107
struct docker_info * docker_info_init(struct json_object *setting, int index)
Generate and construct the per processes info object and return it.
Definition: docker-info.c:247
struct docker_info * next
Definition: docker-driver.h:162
This header maintain the driver's mapping information. It's definition in runner/generic.c.