Lines Matching refs:trace_buffer
132 } trace_buffer; variable
152 static int hyp_trace_buffer_alloc_bpages_backing(struct hyp_trace_buffer *trace_buffer, size_t size) in hyp_trace_buffer_alloc_bpages_backing() argument
172 trace_buffer->desc->bpages_backing_start = (unsigned long)start; in hyp_trace_buffer_alloc_bpages_backing()
173 trace_buffer->desc->bpages_backing_size = backing_size; in hyp_trace_buffer_alloc_bpages_backing()
178 static void hyp_trace_buffer_free_bpages_backing(struct hyp_trace_buffer *trace_buffer) in hyp_trace_buffer_free_bpages_backing() argument
180 free_pages_exact((void *)trace_buffer->desc->bpages_backing_start, in hyp_trace_buffer_free_bpages_backing()
181 trace_buffer->desc->bpages_backing_size); in hyp_trace_buffer_free_bpages_backing()
184 static void hyp_trace_buffer_unshare_hyp(struct hyp_trace_buffer *trace_buffer, int last_cpu) in hyp_trace_buffer_unshare_hyp() argument
189 for_each_ring_buffer_desc(rb_desc, cpu, &trace_buffer->desc->trace_buffer_desc) { in hyp_trace_buffer_unshare_hyp()
199 static int hyp_trace_buffer_share_hyp(struct hyp_trace_buffer *trace_buffer) in hyp_trace_buffer_share_hyp() argument
204 for_each_ring_buffer_desc(rb_desc, cpu, &trace_buffer->desc->trace_buffer_desc) { in hyp_trace_buffer_share_hyp()
224 hyp_trace_buffer_unshare_hyp(trace_buffer, --cpu); in hyp_trace_buffer_share_hyp()
231 struct hyp_trace_buffer *trace_buffer = priv; in hyp_trace_load() local
236 if (WARN_ON(trace_buffer->desc)) in hyp_trace_load()
256 trace_buffer->desc = desc; in hyp_trace_load()
257 trace_buffer->desc_size = desc_size; in hyp_trace_load()
259 ret = hyp_trace_buffer_alloc_bpages_backing(trace_buffer, size); in hyp_trace_load()
268 ret = hyp_trace_buffer_share_hyp(trace_buffer); in hyp_trace_load()
279 hyp_trace_buffer_unshare_hyp(trace_buffer, INT_MAX); in hyp_trace_load()
285 hyp_trace_buffer_free_bpages_backing(trace_buffer); in hyp_trace_load()
289 trace_buffer->desc = NULL; in hyp_trace_load()
296 struct hyp_trace_buffer *trace_buffer = priv; in hyp_trace_unload() local
298 if (WARN_ON(desc != &trace_buffer->desc->trace_buffer_desc)) in hyp_trace_unload()
302 hyp_trace_buffer_unshare_hyp(trace_buffer, INT_MAX); in hyp_trace_unload()
304 hyp_trace_buffer_free_bpages_backing(trace_buffer); in hyp_trace_unload()
305 free_pages_exact(trace_buffer->desc, trace_buffer->desc_size); in hyp_trace_unload()
306 trace_buffer->desc = NULL; in hyp_trace_unload()
307 trace_buffer->desc_size = 0; in hyp_trace_unload()
455 return trace_remote_register("hypervisor", &trace_remote_callbacks, &trace_buffer, in kvm_hyp_trace_init()