Lines Matching refs:chunk
79 struct fd_log_chunk *chunk; in get_chunk() local
83 chunk = list_last_entry(&batch->log_chunks, in get_chunk()
85 if (chunk->num_msgs < msgs_per_chunk) in get_chunk()
86 return chunk; in get_chunk()
90 chunk->last = false; in get_chunk()
94 chunk = calloc(1, sizeof(*chunk)); in get_chunk()
95 chunk->msg_fifo = u_fifo_create(msgs_per_chunk); in get_chunk()
96 chunk->timestamps_bo = fd_bo_new(batch->ctx->screen->dev, bo_size, in get_chunk()
98 chunk->last = true; in get_chunk()
100 list_addtail(&chunk->node, &batch->log_chunks); in get_chunk()
102 return chunk; in get_chunk()
106 free_chunk(struct fd_log_chunk *chunk) in free_chunk() argument
108 assert(chunk->msg_fifo->num == 0); in free_chunk()
109 u_fifo_destroy(chunk->msg_fifo); in free_chunk()
110 fd_bo_del(chunk->timestamps_bo); in free_chunk()
111 list_del(&chunk->node); in free_chunk()
112 free(chunk); in free_chunk()
122 process_chunk(struct fd_context *ctx, struct fd_log_chunk *chunk, struct times *t) in process_chunk() argument
130 uint64_t *timestamps = fd_bo_map(chunk->timestamps_bo); in process_chunk()
134 while (u_fifo_pop(chunk->msg_fifo, (void **)&msg)) { in process_chunk()
159 if (chunk->last) { in process_chunk()
165 if (chunk->eof) in process_chunk()
175 struct fd_log_chunk *chunk = list_first_entry(&ctx->log_chunks, in fd_log_process() local
182 int ret = fd_bo_cpu_prep(chunk->timestamps_bo, ctx->pipe, flags); in fd_log_process()
186 process_chunk(ctx, chunk, ×); in fd_log_process()
187 free_chunk(chunk); in fd_log_process()
213 struct fd_log_chunk *chunk = get_chunk(batch); in _fd_log() local
224 u_fifo_add(chunk->msg_fifo, msg); in _fd_log()
231 if (ring->cur == chunk->ring_cur) { in _fd_log()
232 uint64_t *ts = fd_bo_map(chunk->timestamps_bo); in _fd_log()
236 ts[chunk->num_msgs] = 0; in _fd_log()
238 ctx->record_timestamp(ring, chunk->timestamps_bo, in _fd_log()
239 chunk->num_msgs * sizeof(uint64_t)); in _fd_log()
242 chunk->num_msgs++; in _fd_log()
243 chunk->ring_cur = ring->cur; in _fd_log()