X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/6d2010ae8f7a6078e10b361c6962983bab233e0f..39236c6e673c41db228275375ab7fdb0f837b292:/osfmk/kern/processor_data.h diff --git a/osfmk/kern/processor_data.h b/osfmk/kern/processor_data.h index eda5bcce5..da90d7b40 100644 --- a/osfmk/kern/processor_data.h +++ b/osfmk/kern/processor_data.h @@ -51,6 +51,7 @@ struct processor_sched_statistics { uint32_t ipi_count; uint32_t timer_pop_count; uint32_t idle_transitions; + uint32_t quantum_timer_expirations; }; struct processor_data { @@ -80,12 +81,14 @@ struct processor_data { ipc_kmsg_t entries[IKM_STASH]; unsigned int avail; } ikm_cache; - - unsigned long page_grab_count; int start_color; + unsigned long page_grab_count; void *free_pages; - struct processor_sched_statistics sched_stats; + uint64_t timer_call_ttd; /* current timer call time-to-deadline */ + uint64_t wakeups_issued_total; /* Count of thread wakeups issued + * by this processor + */ }; typedef struct processor_data processor_data_t; @@ -124,6 +127,13 @@ MACRO_BEGIN \ } \ MACRO_END +#define SCHED_STATS_QUANTUM_TIMER_EXPIRATION(p) \ +MACRO_BEGIN \ + if (__builtin_expect(sched_stats_active, 0)) { \ + (p)->processor_data.sched_stats.quantum_timer_expirations++; \ + } \ +MACRO_END + #endif /* MACH_KERNEL_PRIVATE */ #endif /* _KERN_PROCESSOR_DATA_H_ */