Lines Matching refs:ne_cpu_pool
119 struct ne_cpu_pool { struct
127 static struct ne_cpu_pool ne_cpu_pool; argument
192 mutex_lock(&ne_cpu_pool.mutex); in ne_setup_cpu_pool()
293 ne_cpu_pool.nr_threads_per_core++; in ne_setup_cpu_pool()
295 ne_cpu_pool.nr_parent_vm_cores = nr_cpu_ids / ne_cpu_pool.nr_threads_per_core; in ne_setup_cpu_pool()
297 ne_cpu_pool.avail_threads_per_core = kzalloc_objs(*ne_cpu_pool.avail_threads_per_core, in ne_setup_cpu_pool()
298 ne_cpu_pool.nr_parent_vm_cores); in ne_setup_cpu_pool()
299 if (!ne_cpu_pool.avail_threads_per_core) { in ne_setup_cpu_pool()
305 for (i = 0; i < ne_cpu_pool.nr_parent_vm_cores; i++) in ne_setup_cpu_pool()
306 if (!zalloc_cpumask_var(&ne_cpu_pool.avail_threads_per_core[i], GFP_KERNEL)) { in ne_setup_cpu_pool()
318 if (core_id < 0 || core_id >= ne_cpu_pool.nr_parent_vm_cores) { in ne_setup_cpu_pool()
327 cpumask_set_cpu(cpu, ne_cpu_pool.avail_threads_per_core[core_id]); in ne_setup_cpu_pool()
352 ne_cpu_pool.numa_node = numa_node; in ne_setup_cpu_pool()
354 mutex_unlock(&ne_cpu_pool.mutex); in ne_setup_cpu_pool()
362 for (i = 0; i < ne_cpu_pool.nr_parent_vm_cores; i++) in ne_setup_cpu_pool()
363 cpumask_clear(ne_cpu_pool.avail_threads_per_core[i]); in ne_setup_cpu_pool()
365 for (i = 0; i < ne_cpu_pool.nr_parent_vm_cores; i++) in ne_setup_cpu_pool()
366 free_cpumask_var(ne_cpu_pool.avail_threads_per_core[i]); in ne_setup_cpu_pool()
367 kfree(ne_cpu_pool.avail_threads_per_core); in ne_setup_cpu_pool()
370 ne_cpu_pool.nr_parent_vm_cores = 0; in ne_setup_cpu_pool()
371 ne_cpu_pool.nr_threads_per_core = 0; in ne_setup_cpu_pool()
372 ne_cpu_pool.numa_node = -1; in ne_setup_cpu_pool()
373 mutex_unlock(&ne_cpu_pool.mutex); in ne_setup_cpu_pool()
391 mutex_lock(&ne_cpu_pool.mutex); in ne_teardown_cpu_pool()
393 if (!ne_cpu_pool.nr_parent_vm_cores) { in ne_teardown_cpu_pool()
394 mutex_unlock(&ne_cpu_pool.mutex); in ne_teardown_cpu_pool()
399 for (i = 0; i < ne_cpu_pool.nr_parent_vm_cores; i++) { in ne_teardown_cpu_pool()
400 for_each_cpu(cpu, ne_cpu_pool.avail_threads_per_core[i]) { in ne_teardown_cpu_pool()
407 cpumask_clear(ne_cpu_pool.avail_threads_per_core[i]); in ne_teardown_cpu_pool()
409 free_cpumask_var(ne_cpu_pool.avail_threads_per_core[i]); in ne_teardown_cpu_pool()
412 kfree(ne_cpu_pool.avail_threads_per_core); in ne_teardown_cpu_pool()
413 ne_cpu_pool.nr_parent_vm_cores = 0; in ne_teardown_cpu_pool()
414 ne_cpu_pool.nr_threads_per_core = 0; in ne_teardown_cpu_pool()
415 ne_cpu_pool.numa_node = -1; in ne_teardown_cpu_pool()
417 mutex_unlock(&ne_cpu_pool.mutex); in ne_teardown_cpu_pool()
503 for (i = 0; i < ne_cpu_pool.nr_parent_vm_cores; i++) in ne_get_unused_core_from_cpu_pool()
504 if (!cpumask_empty(ne_cpu_pool.avail_threads_per_core[i])) { in ne_get_unused_core_from_cpu_pool()
552 for_each_cpu(cpu, ne_cpu_pool.avail_threads_per_core[core_id]) in ne_set_enclave_threads_per_core()
555 cpumask_clear(ne_cpu_pool.avail_threads_per_core[core_id]); in ne_set_enclave_threads_per_core()
592 mutex_lock(&ne_cpu_pool.mutex); in ne_get_cpu_from_cpu_pool()
609 mutex_unlock(&ne_cpu_pool.mutex); in ne_get_cpu_from_cpu_pool()
630 for (i = 0; i < ne_cpu_pool.nr_parent_vm_cores; i++) in ne_get_vcpu_core_from_cpu_pool()
631 if (cpumask_test_cpu(vcpu_id, ne_cpu_pool.avail_threads_per_core[i])) { in ne_get_vcpu_core_from_cpu_pool()
672 mutex_lock(&ne_cpu_pool.mutex); in ne_check_cpu_in_cpu_pool()
688 mutex_unlock(&ne_cpu_pool.mutex); in ne_check_cpu_in_cpu_pool()
1419 mutex_lock(&ne_cpu_pool.mutex); in ne_enclave_remove_all_vcpu_id_entries()
1424 cpumask_set_cpu(cpu, ne_cpu_pool.avail_threads_per_core[i]); in ne_enclave_remove_all_vcpu_id_entries()
1429 mutex_unlock(&ne_cpu_pool.mutex); in ne_enclave_remove_all_vcpu_id_entries()
1600 mutex_lock(&ne_cpu_pool.mutex); in ne_create_vm_ioctl()
1602 for (i = 0; i < ne_cpu_pool.nr_parent_vm_cores; i++) in ne_create_vm_ioctl()
1603 if (!cpumask_empty(ne_cpu_pool.avail_threads_per_core[i])) in ne_create_vm_ioctl()
1606 if (i == ne_cpu_pool.nr_parent_vm_cores) { in ne_create_vm_ioctl()
1610 mutex_unlock(&ne_cpu_pool.mutex); in ne_create_vm_ioctl()
1615 mutex_unlock(&ne_cpu_pool.mutex); in ne_create_vm_ioctl()
1621 mutex_lock(&ne_cpu_pool.mutex); in ne_create_vm_ioctl()
1623 ne_enclave->nr_parent_vm_cores = ne_cpu_pool.nr_parent_vm_cores; in ne_create_vm_ioctl()
1624 ne_enclave->nr_threads_per_core = ne_cpu_pool.nr_threads_per_core; in ne_create_vm_ioctl()
1625 ne_enclave->numa_node = ne_cpu_pool.numa_node; in ne_create_vm_ioctl()
1627 mutex_unlock(&ne_cpu_pool.mutex); in ne_create_vm_ioctl()
1762 mutex_init(&ne_cpu_pool.mutex); in ne_init()