Lines Matching full:tc
44 ThreadContext *tc = opaque; in thread_context_run() local
46 tc->thread_id = qemu_get_thread_id(); in thread_context_run()
47 qemu_sem_post(&tc->sem); in thread_context_run()
60 switch (tc->thread_cmd) { in thread_context_run()
64 tc->thread_cmd = TC_CMD_NONE; in thread_context_run()
65 qemu_sem_post(&tc->sem); in thread_context_run()
68 ThreadContextCmdNew *cmd_new = tc->thread_cmd_data; in thread_context_run()
73 tc->thread_cmd = TC_CMD_NONE; in thread_context_run()
74 tc->thread_cmd_data = NULL; in thread_context_run()
75 qemu_sem_post(&tc->sem); in thread_context_run()
81 qemu_sem_wait(&tc->sem_thread); in thread_context_run()
89 ThreadContext *tc = THREAD_CONTEXT(obj); in thread_context_set_cpu_affinity() local
94 if (tc->init_cpu_bitmap) { in thread_context_set_cpu_affinity()
116 if (tc->thread_id != -1) { in thread_context_set_cpu_affinity()
121 ret = qemu_thread_set_affinity(&tc->thread, bitmap, nbits); in thread_context_set_cpu_affinity()
126 tc->init_cpu_bitmap = bitmap; in thread_context_set_cpu_affinity()
128 tc->init_cpu_nbits = nbits; in thread_context_set_cpu_affinity()
140 ThreadContext *tc = THREAD_CONTEXT(obj); in thread_context_get_cpu_affinity() local
145 if (tc->thread_id == -1) { in thread_context_get_cpu_affinity()
150 ret = qemu_thread_get_affinity(&tc->thread, &bitmap, &nbits); in thread_context_get_cpu_affinity()
174 ThreadContext *tc = THREAD_CONTEXT(obj); in thread_context_set_node_affinity() local
180 if (tc->init_cpu_bitmap) { in thread_context_set_node_affinity()
216 if (tc->thread_id != -1) { in thread_context_set_node_affinity()
221 ret = qemu_thread_set_affinity(&tc->thread, bitmap, nbits); in thread_context_set_node_affinity()
226 tc->init_cpu_bitmap = bitmap; in thread_context_set_node_affinity()
228 tc->init_cpu_nbits = nbits; in thread_context_set_node_affinity()
242 ThreadContext *tc = THREAD_CONTEXT(obj); in thread_context_get_thread_id() local
243 uint64_t value = tc->thread_id; in thread_context_get_thread_id()
250 ThreadContext *tc = THREAD_CONTEXT(uc); in thread_context_instance_complete() local
254 thread_name = g_strdup_printf("TC %s", in thread_context_instance_complete()
256 qemu_thread_create(&tc->thread, thread_name, thread_context_run, tc, in thread_context_instance_complete()
261 while (tc->thread_id == -1) { in thread_context_instance_complete()
262 qemu_sem_wait(&tc->sem); in thread_context_instance_complete()
265 if (tc->init_cpu_bitmap) { in thread_context_instance_complete()
266 ret = qemu_thread_set_affinity(&tc->thread, tc->init_cpu_bitmap, in thread_context_instance_complete()
267 tc->init_cpu_nbits); in thread_context_instance_complete()
271 g_free(tc->init_cpu_bitmap); in thread_context_instance_complete()
272 tc->init_cpu_bitmap = NULL; in thread_context_instance_complete()
293 ThreadContext *tc = THREAD_CONTEXT(obj); in thread_context_instance_init() local
295 tc->thread_id = -1; in thread_context_instance_init()
296 qemu_sem_init(&tc->sem, 0); in thread_context_instance_init()
297 qemu_sem_init(&tc->sem_thread, 0); in thread_context_instance_init()
298 qemu_mutex_init(&tc->mutex); in thread_context_instance_init()
303 ThreadContext *tc = THREAD_CONTEXT(obj); in thread_context_instance_finalize() local
305 if (tc->thread_id != -1) { in thread_context_instance_finalize()
306 tc->thread_cmd = TC_CMD_STOP; in thread_context_instance_finalize()
307 qemu_sem_post(&tc->sem_thread); in thread_context_instance_finalize()
308 qemu_thread_join(&tc->thread); in thread_context_instance_finalize()
310 qemu_sem_destroy(&tc->sem); in thread_context_instance_finalize()
311 qemu_sem_destroy(&tc->sem_thread); in thread_context_instance_finalize()
312 qemu_mutex_destroy(&tc->mutex); in thread_context_instance_finalize()
334 void thread_context_create_thread(ThreadContext *tc, QemuThread *thread, in type_init()
347 qemu_mutex_lock(&tc->mutex); in type_init()
348 tc->thread_cmd = TC_CMD_NEW; in type_init()
349 tc->thread_cmd_data = &data; in type_init()
350 qemu_sem_post(&tc->sem_thread); in type_init()
352 while (tc->thread_cmd != TC_CMD_NONE) { in type_init()
353 qemu_sem_wait(&tc->sem); in type_init()
355 qemu_mutex_unlock(&tc->mutex); in type_init()