Searched refs:percpu (Results 1 - 19 of 19) sorted by relevance

/fuchsia/zircon/kernel/kernel/
H A Dpercpu.cpp7 #include <kernel/percpu.h>
12 struct percpu percpu[SMP_MAX_CPUS] __CPU_ALIGN_EXCLUSIVE;
H A Ddpc.cpp14 #include <kernel/percpu.h>
33 struct percpu* cpu = get_local_percpu();
57 struct percpu* cpu = get_local_percpu();
74 DEBUG_ASSERT(!percpu[cpu_id].dpc_stop);
77 percpu[cpu_id].dpc_stop = true;
80 thread_t* t = percpu[cpu_id].dpc_thread;
81 percpu[cpu_id].dpc_thread = nullptr;
86 event_signal(&percpu[cpu_id].dpc_event, false);
105 DEBUG_ASSERT(percpu[cpu_id].dpc_stop);
106 DEBUG_ASSERT(percpu[cpu_i
[all...]
H A Ddebug.cpp22 #include <kernel/percpu.h>
128 printf("\ttotal idle time: %" PRIi64 "\n", percpu[i].stats.idle_time);
130 zx_time_sub_duration(current_time(), percpu[i].stats.idle_time));
131 printf("\treschedules: %lu\n", percpu[i].stats.reschedules);
132 printf("\treschedule_ipis: %lu\n", percpu[i].stats.reschedule_ipis);
133 printf("\tcontext_switches: %lu\n", percpu[i].stats.context_switches);
134 printf("\tpreempts: %lu\n", percpu[i].stats.preempts);
135 printf("\tyields: %lu\n", percpu[i].stats.yields);
136 printf("\ttimer interrupts: %lu\n", percpu[i].stats.timer_ints);
137 printf("\ttimers: %lu\n", percpu[
[all...]
H A Dtimer.cpp28 #include <kernel/percpu.h>
63 if (new_deadline < percpu[cpu].next_timer_deadline) {
66 percpu[cpu].next_timer_deadline = new_deadline;
91 list_for_every_entry (&percpu[cpu].timer_queue, entry, timer_t, node) {
132 list_next_type(&percpu[cpu].timer_queue, &entry->node, timer_t, node);
180 list_add_tail(&percpu[cpu].timer_queue, &timer->node);
247 if (list_peek_head_type(&percpu[cpu].timer_queue, timer_t, node) == timer) {
260 percpu[cpu].preempt_timer_deadline = deadline;
270 percpu[cpu].preempt_timer_deadline = ZX_TIME_INFINITE;
306 timer_t* oldhead = list_peek_head_type(&percpu[cp
[all...]
H A Dsched.cpp14 #include <kernel/percpu.h>
219 list_add_head(&percpu[cpu].run_queue[t->effec_priority], &t->queue_node);
220 percpu[cpu].run_queue_bitmap |= (1u << t->effec_priority);
229 list_add_tail(&percpu[cpu].run_queue[t->effec_priority], &t->queue_node);
230 percpu[cpu].run_queue_bitmap |= (1u << t->effec_priority);
244 struct percpu* c = &percpu[t->curr_cpu];
251 static uint highest_run_queue(const struct percpu* c) TA_REQ(thread_lock) {
260 struct percpu* c = &percpu[cp
[all...]
H A Drules.mk30 $(LOCAL_DIR)/percpu.cpp \
H A Dthread.cpp29 #include <kernel/percpu.h>
975 thread_t* t = &percpu[0].idle_thread;
981 auto* state = reinterpret_cast<lockdep::ThreadLockState*>(&percpu[cpu].lock_state);
1112 DEBUG_ASSERT(percpu[cpu_num].idle_thread.magic != THREAD_MAGIC);
1118 &percpu[cpu_num].idle_thread, name,
/fuchsia/zircon/kernel/include/kernel/
H A Dpercpu.h20 struct percpu { struct
58 extern struct percpu percpu[SMP_MAX_CPUS];
61 static_assert(NUM_PRIORITIES <= sizeof(percpu[0].run_queue_bitmap) * CHAR_BIT, "");
63 static inline struct percpu* get_local_percpu(void) {
64 return &percpu[arch_curr_cpu_num()];
H A Dstats.h38 // include after the cpu_stats definition above, since it is part of the percpu structure
39 #include <kernel/percpu.h>
/fuchsia/zircon/kernel/arch/x86/
H A Dmp.cpp98 struct x86_percpu* const percpu = local
100 DEBUG_ASSERT(percpu->cpu_num == cpu_num);
101 DEBUG_ASSERT(percpu->direct == percpu);
105 DEBUG_ASSERT(read_msr(X86_MSR_IA32_GS_BASE) == (uintptr_t)percpu);
207 struct x86_percpu* percpu = x86_get_percpu(); local
208 DEBUG_ASSERT(percpu->cpu_num == 0);
209 percpu->apic_id = apic_id;
233 struct x86_percpu* percpu = cpu_id ? &ap_percpus[cpu_id - 1] : &bp_percpu; local
241 uint8_t old_val = *percpu
265 struct x86_percpu* percpu = x86_get_percpu(); local
318 struct x86_percpu* percpu; local
404 struct x86_percpu* percpu = &ap_percpus[cpu_id - 1]; local
[all...]
H A Ddescriptor.cpp37 static void x86_tss_assign_ists(struct x86_percpu* percpu, tss_t* tss);
45 struct x86_percpu* percpu = x86_get_percpu(); local
46 uint cpu_num = percpu->cpu_num;
47 tss_t* tss = &percpu->default_tss;
53 x86_tss_assign_ists(percpu, tss);
62 static void x86_tss_assign_ists(struct x86_percpu* percpu, tss_t* tss) { argument
63 tss->ist1 = (uintptr_t)&percpu->interrupt_stacks[0] + PAGE_SIZE;
64 tss->ist2 = (uintptr_t)&percpu->interrupt_stacks[1] + PAGE_SIZE;
65 tss->ist3 = (uintptr_t)&percpu->interrupt_stacks[2] + PAGE_SIZE;
H A Darch.cpp114 // Ensure the CPU that resumed was assigned the correct percpu object.
186 // Set %gs.base to our percpu struct. This has to be done before
189 struct x86_percpu* const percpu = &ap_percpus[cpu_num - 1]; local
190 write_msr(X86_MSR_IA32_GS_BASE, (uintptr_t)percpu);
193 percpu->stack_guard = bp_percpu.stack_guard;
H A Dfaults.cpp151 struct x86_percpu* percpu = x86_get_percpu(); local
152 if (unlikely(percpu->gpf_return_target)) {
156 frame->ip = percpu->gpf_return_target;
157 percpu->gpf_return_target = 0;
/fuchsia/zircon/kernel/include/lib/
H A Dcounters.h11 #include <kernel/percpu.h>
50 sizeof(((struct percpu){}).counters[0]),
71 // The order of the descriptors is the order of the slots in each percpu array.
/fuchsia/zircon/kernel/arch/arm64/include/arch/arm64/
H A Dmp.h52 static inline void arm64_write_percpu_ptr(struct arm64_percpu* percpu) { argument
53 __arm64_percpu = percpu;
/fuchsia/zircon/kernel/lib/counters/
H A Dcounters.cpp17 #include <kernel/percpu.h>
76 percpu[ix].counters = &kcounters_arena[ix * get_num_counters()];
88 values[ix] = percpu[ix].counters[counter_index];
/fuchsia/zircon/kernel/lib/lockdep/
H A Dlock_dep.cpp10 #include <kernel/percpu.h>
/fuchsia/zircon/kernel/arch/x86/hypervisor/
H A Dvcpu.cpp471 x86_percpu* percpu = x86_get_percpu(); local
483 vmcs.Write(VmcsField16::HOST_TR_SELECTOR, TSS_SELECTOR(percpu->cpu_num));
486 vmcs.Write(VmcsFieldXX::HOST_TR_BASE, reinterpret_cast<uint64_t>(&percpu->default_tss));
/fuchsia/zircon/kernel/syscalls/
H A Dobject.cpp450 const auto cpu = &percpu[i];
452 // copy the per cpu stats from the kernel percpu structure
468 current_time(), percpu[i].idle_thread.last_started_running);

Completed in 51 milliseconds