Lines Matching refs:ctx
17 EnqueueFreeBuffer(log_thread_context *ctx, log_buff *free_bp) in EnqueueFreeBuffer() argument
19 pthread_mutex_lock(&ctx->free_mutex); in EnqueueFreeBuffer()
20 TAILQ_INSERT_TAIL(&ctx->free_queue, free_bp, buff_link); in EnqueueFreeBuffer()
21 ctx->free_buff_cnt++; in EnqueueFreeBuffer()
23 assert(ctx->free_buff_cnt <= NUM_LOG_BUFF); in EnqueueFreeBuffer()
24 assert(ctx->free_buff_cnt + ctx->job_buff_cnt <= NUM_LOG_BUFF); in EnqueueFreeBuffer()
25 pthread_mutex_unlock(&ctx->free_mutex); in EnqueueFreeBuffer()
29 DequeueFreeBuffer(log_thread_context *ctx) in DequeueFreeBuffer() argument
31 pthread_mutex_lock(&ctx->free_mutex); in DequeueFreeBuffer()
32 log_buff *free_bp = TAILQ_FIRST(&ctx->free_queue); in DequeueFreeBuffer()
34 TAILQ_REMOVE(&ctx->free_queue, free_bp, buff_link); in DequeueFreeBuffer()
35 ctx->free_buff_cnt--; in DequeueFreeBuffer()
38 assert(ctx->free_buff_cnt >= 0); in DequeueFreeBuffer()
39 assert(ctx->free_buff_cnt + ctx->job_buff_cnt <= NUM_LOG_BUFF); in DequeueFreeBuffer()
40 pthread_mutex_unlock(&ctx->free_mutex); in DequeueFreeBuffer()
45 EnqueueJobBuffer(log_thread_context *ctx, log_buff *working_bp) in EnqueueJobBuffer() argument
47 TAILQ_INSERT_TAIL(&ctx->working_queue, working_bp, buff_link); in EnqueueJobBuffer()
48 ctx->job_buff_cnt++; in EnqueueJobBuffer()
49 ctx->state = ACTIVE_LOGT; in EnqueueJobBuffer()
50 assert(ctx->job_buff_cnt <= NUM_LOG_BUFF); in EnqueueJobBuffer()
51 if (ctx->free_buff_cnt + ctx->job_buff_cnt > NUM_LOG_BUFF) { in EnqueueJobBuffer()
53 ctx->free_buff_cnt, ctx->job_buff_cnt, NUM_LOG_BUFF); in EnqueueJobBuffer()
55 assert(ctx->free_buff_cnt + ctx->job_buff_cnt <= NUM_LOG_BUFF); in EnqueueJobBuffer()
59 DequeueJobBuffer(log_thread_context *ctx) in DequeueJobBuffer() argument
61 pthread_mutex_lock(&ctx->mutex); in DequeueJobBuffer()
62 log_buff *working_bp = TAILQ_FIRST(&ctx->working_queue); in DequeueJobBuffer()
64 TAILQ_REMOVE(&ctx->working_queue, working_bp, buff_link); in DequeueJobBuffer()
65 ctx->job_buff_cnt--; in DequeueJobBuffer()
67 ctx->state = IDLE_LOGT; in DequeueJobBuffer()
70 assert(ctx->job_buff_cnt >= 0); in DequeueJobBuffer()
71 assert(ctx->free_buff_cnt + ctx->job_buff_cnt <= NUM_LOG_BUFF); in DequeueJobBuffer()
72 pthread_mutex_unlock(&ctx->mutex); in DequeueJobBuffer()
77 InitLogThreadContext(struct log_thread_context *ctx, int cpu) in InitLogThreadContext() argument
83 memset(ctx, 0, sizeof(struct log_thread_context)); in InitLogThreadContext()
84 ctx->cpu = cpu; in InitLogThreadContext()
85 ctx->state = IDLE_LOGT; in InitLogThreadContext()
86 ctx->done = 0; in InitLogThreadContext()
93 ctx->sp_fd = sv[0]; in InitLogThreadContext()
94 ctx->pair_sp_fd = sv[1]; in InitLogThreadContext()
96 pthread_mutex_init(&ctx->mutex, NULL); in InitLogThreadContext()
97 pthread_mutex_init(&ctx->free_mutex, NULL); in InitLogThreadContext()
99 TAILQ_INIT(&ctx->working_queue); in InitLogThreadContext()
100 TAILQ_INIT(&ctx->free_queue); in InitLogThreadContext()
106 EnqueueFreeBuffer(ctx, &w_buff[i]); in InitLogThreadContext()
114 log_thread_context* ctx = (log_thread_context *) arg; in ThreadLogMain() local
118 mtcp_core_affinitize(ctx->cpu); in ThreadLogMain()
122 TRACE_LOG("Log thread %d is starting.\n", ctx->cpu); in ThreadLogMain()
124 while (!ctx->done) { in ThreadLogMain()
127 while ((w_buff = DequeueJobBuffer(ctx))){ in ThreadLogMain()
130 ctx->cpu, cnt); in ThreadLogMain()
136 ctx->cpu, w_buff->buff_len, len); in ThreadLogMain()
139 EnqueueFreeBuffer(ctx, w_buff); in ThreadLogMain()
143 while (ctx->state == IDLE_LOGT && !ctx->done) { in ThreadLogMain()
145 int ret = read(ctx->sp_fd, temp, 1); in ThreadLogMain()
151 TRACE_LOG("Log thread %d out of first loop.\n", ctx->cpu); in ThreadLogMain()
154 while ((w_buff = DequeueJobBuffer(ctx))){ in ThreadLogMain()
157 "Exceed NUM_LOG_BUFF %d in final loop.\n", ctx->cpu, cnt); in ThreadLogMain()
162 EnqueueFreeBuffer(ctx, w_buff); in ThreadLogMain()
165 TRACE_LOG("Log thread %d finished.\n", ctx->cpu); in ThreadLogMain()