| /kernel/include/kernel/ |
| A D | percpu.h | 20 struct percpu { struct 58 extern struct percpu percpu[SMP_MAX_CPUS]; argument 61 static_assert(NUM_PRIORITIES <= sizeof(percpu[0].run_queue_bitmap) * CHAR_BIT, ""); 63 static inline struct percpu* get_local_percpu(void) { in get_local_percpu() 64 return &percpu[arch_curr_cpu_num()]; in get_local_percpu()
|
| /kernel/kernel/ |
| A D | debug.cpp | 131 printf("\treschedules: %lu\n", percpu[i].stats.reschedules); in cmd_threadstats() 134 printf("\tpreempts: %lu\n", percpu[i].stats.preempts); in cmd_threadstats() 135 printf("\tyields: %lu\n", percpu[i].stats.yields); in cmd_threadstats() 137 printf("\ttimers: %lu\n", percpu[i].stats.timers); in cmd_threadstats() 217 zx_duration_t idle_time = percpu[i].stats.idle_time; in cmd_threadload() 246 percpu[i].stats.yields - old_stats[i].yields, in cmd_threadload() 247 percpu[i].stats.preempts - old_stats[i].preempts, in cmd_threadload() 249 percpu[i].stats.syscalls - old_stats[i].syscalls, in cmd_threadload() 252 percpu[i].stats.timers - old_stats[i].timers, in cmd_threadload() 256 old_stats[i] = percpu[i].stats; in cmd_threadload() [all …]
|
| A D | dpc.cpp | 33 struct percpu* cpu = get_local_percpu(); in dpc_queue() 57 struct percpu* cpu = get_local_percpu(); in dpc_queue_thread_locked() 74 DEBUG_ASSERT(!percpu[cpu_id].dpc_stop); in dpc_shutdown() 77 percpu[cpu_id].dpc_stop = true; in dpc_shutdown() 80 thread_t* t = percpu[cpu_id].dpc_thread; in dpc_shutdown() 81 percpu[cpu_id].dpc_thread = nullptr; in dpc_shutdown() 105 DEBUG_ASSERT(percpu[cpu_id].dpc_stop); in dpc_shutdown_transition_off_cpu() 118 percpu[cpu_id].dpc_stop = false; in dpc_shutdown_transition_off_cpu() 119 event_destroy(&percpu[cpu_id].dpc_event); in dpc_shutdown_transition_off_cpu() 130 struct percpu* cpu = get_local_percpu(); in dpc_thread() [all …]
|
| A D | timer.cpp | 77 if (new_deadline < percpu[cpu].next_timer_deadline) { in update_platform_timer() 80 percpu[cpu].next_timer_deadline = new_deadline; in update_platform_timer() 196 list_add_tail(&percpu[cpu].timer_queue, &timer->node); in insert_timer_in_queue() 277 percpu[cpu].preempt_timer_deadline = deadline; in timer_preempt_reset() 287 percpu[cpu].preempt_timer_deadline = ZX_TIME_INFINITE; in timer_preempt_cancel() 376 percpu[cpu].next_timer_deadline = ZX_TIME_INFINITE; in timer_tick() 379 if (now >= percpu[cpu].preempt_timer_deadline) { in timer_tick() 443 if (percpu[cpu].preempt_timer_deadline < deadline) { in timer_tick() 444 deadline = percpu[cpu].preempt_timer_deadline; in timer_tick() 502 percpu[cpu].next_timer_deadline = ZX_TIME_INFINITE; in timer_thaw_percpu() [all …]
|
| A D | percpu.cpp | 12 struct percpu percpu[SMP_MAX_CPUS] __CPU_ALIGN_EXCLUSIVE; variable
|
| A D | sched.cpp | 219 list_add_head(&percpu[cpu].run_queue[t->effec_priority], &t->queue_node); in insert_in_run_queue_head() 220 percpu[cpu].run_queue_bitmap |= (1u << t->effec_priority); in insert_in_run_queue_head() 229 list_add_tail(&percpu[cpu].run_queue[t->effec_priority], &t->queue_node); in insert_in_run_queue_tail() 230 percpu[cpu].run_queue_bitmap |= (1u << t->effec_priority); in insert_in_run_queue_tail() 244 struct percpu* c = &percpu[t->curr_cpu]; in remove_from_run_queue() 251 static uint highest_run_queue(const struct percpu* c) TA_REQ(thread_lock) { in highest_run_queue() 260 struct percpu* c = &percpu[cpu]; in sched_get_top_thread() 851 percpu[cpu].stats.idle_time = zx_duration_add_duration(percpu[cpu].stats.idle_time, delta); in sched_resched_internal() 905 list_initialize(&percpu[cpu].run_queue[i]); in sched_init_early()
|
| A D | rules.mk | 30 $(LOCAL_DIR)/percpu.cpp \
|
| A D | thread.cpp | 999 thread_t* t = &percpu[0].idle_thread; in thread_init_early() 1005 auto* state = reinterpret_cast<lockdep::ThreadLockState*>(&percpu[cpu].lock_state); in thread_init_early() 1136 DEBUG_ASSERT(percpu[cpu_num].idle_thread.magic != THREAD_MAGIC); in thread_create_idle_thread() 1142 &percpu[cpu_num].idle_thread, name, in thread_create_idle_thread()
|
| /kernel/arch/x86/ |
| A D | mp.cpp | 134 struct x86_percpu* const percpu = in x86_init_percpu() local 136 DEBUG_ASSERT(percpu->cpu_num == cpu_num); in x86_init_percpu() 137 DEBUG_ASSERT(percpu->direct == percpu); in x86_init_percpu() 244 DEBUG_ASSERT(percpu->cpu_num == 0); in x86_set_local_apic_id() 245 percpu->apic_id = apic_id; in x86_set_local_apic_id() 278 *percpu->monitor = 0; in arch_mp_reschedule() 303 while (*percpu->monitor) { in arch_idle_thread_routine() 304 x86_monitor(percpu->monitor); in arch_idle_thread_routine() 308 if (*percpu->monitor) { in arch_idle_thread_routine() 354 struct x86_percpu* percpu; in arch_mp_send_ipi() local [all …]
|
| A D | descriptor.cpp | 38 static void x86_tss_assign_ists(struct x86_percpu* percpu, tss_t* tss); 46 struct x86_percpu* percpu = x86_get_percpu(); in x86_initialize_percpu_tss() local 47 uint cpu_num = percpu->cpu_num; in x86_initialize_percpu_tss() 48 tss_t* tss = &percpu->default_tss; in x86_initialize_percpu_tss() 54 x86_tss_assign_ists(percpu, tss); in x86_initialize_percpu_tss() 63 static void x86_tss_assign_ists(struct x86_percpu* percpu, tss_t* tss) { in x86_tss_assign_ists() argument 64 tss->ist1 = (uintptr_t)&percpu->interrupt_stacks[0] + PAGE_SIZE; in x86_tss_assign_ists() 65 tss->ist2 = (uintptr_t)&percpu->interrupt_stacks[1] + PAGE_SIZE; in x86_tss_assign_ists() 66 tss->ist3 = (uintptr_t)&percpu->interrupt_stacks[2] + PAGE_SIZE; in x86_tss_assign_ists()
|
| A D | arch.cpp | 184 struct x86_percpu* const percpu = &ap_percpus[cpu_num - 1]; in x86_secondary_entry() local 185 write_msr(X86_MSR_IA32_GS_BASE, (uintptr_t)percpu); in x86_secondary_entry() 188 percpu->stack_guard = bp_percpu.stack_guard; in x86_secondary_entry()
|
| A D | faults.cpp | 163 struct x86_percpu* percpu = x86_get_percpu(); in x86_gpf_handler() local 164 if (unlikely(percpu->gpf_return_target)) { in x86_gpf_handler() 168 frame->ip = percpu->gpf_return_target; in x86_gpf_handler() 169 percpu->gpf_return_target = 0; in x86_gpf_handler()
|
| /kernel/arch/arm64/include/arch/arm64/ |
| A D | mp.h | 52 static inline void arm64_write_percpu_ptr(struct arm64_percpu* percpu) { in arm64_write_percpu_ptr() argument 53 __arm64_percpu = percpu; in arm64_write_percpu_ptr()
|
| /kernel/lib/counters/ |
| A D | counters.cpp | 75 percpu[ix].counters = &kcounters_arena[ix * get_num_counters()]; in counters_init() 157 values[ix] = percpu[ix].counters[counter_index]; in dump_counter() 166 values[ix] = percpu[ix].counters[counter_index]; in dump_counter()
|
| /kernel/arch/x86/hypervisor/ |
| A D | vcpu.cpp | 474 x86_percpu* percpu = x86_get_percpu(); in vmcs_init() local 486 vmcs.Write(VmcsField16::HOST_TR_SELECTOR, TSS_SELECTOR(percpu->cpu_num)); in vmcs_init() 489 vmcs.Write(VmcsFieldXX::HOST_TR_BASE, reinterpret_cast<uint64_t>(&percpu->default_tss)); in vmcs_init()
|
| /kernel/syscalls/ |
| A D | object.cpp | 449 const auto cpu = &percpu[i]; in sys_object_get_info() 467 current_time(), percpu[i].idle_thread.last_started_running); in sys_object_get_info()
|