- ri->ri_cpu_time_qos_default = task->cpu_time_qos_stats.cpu_time_qos_default;
- ri->ri_cpu_time_qos_maintenance = task->cpu_time_qos_stats.cpu_time_qos_maintenance;
- ri->ri_cpu_time_qos_background = task->cpu_time_qos_stats.cpu_time_qos_background;
- ri->ri_cpu_time_qos_utility = task->cpu_time_qos_stats.cpu_time_qos_utility;
- ri->ri_cpu_time_qos_legacy = task->cpu_time_qos_stats.cpu_time_qos_legacy;
- ri->ri_cpu_time_qos_user_initiated = task->cpu_time_qos_stats.cpu_time_qos_user_initiated;
- ri->ri_cpu_time_qos_user_interactive = task->cpu_time_qos_stats.cpu_time_qos_user_interactive;
+ ri->ri_cpu_time_qos_default = task->cpu_time_eqos_stats.cpu_time_qos_default;
+ ri->ri_cpu_time_qos_maintenance = task->cpu_time_eqos_stats.cpu_time_qos_maintenance;
+ ri->ri_cpu_time_qos_background = task->cpu_time_eqos_stats.cpu_time_qos_background;
+ ri->ri_cpu_time_qos_utility = task->cpu_time_eqos_stats.cpu_time_qos_utility;
+ ri->ri_cpu_time_qos_legacy = task->cpu_time_eqos_stats.cpu_time_qos_legacy;
+ ri->ri_cpu_time_qos_user_initiated = task->cpu_time_eqos_stats.cpu_time_qos_user_initiated;
+ ri->ri_cpu_time_qos_user_interactive = task->cpu_time_eqos_stats.cpu_time_qos_user_interactive;
+
+ task_unlock(task);
+ return 0;
+}
+
+void
+fill_task_monotonic_rusage(task_t task, rusage_info_current *ri)
+{
+#if MONOTONIC
+ if (!mt_core_supported) {
+ return;
+ }
+
+ assert(task != TASK_NULL);
+
+ uint64_t counts[MT_CORE_NFIXED] = { 0 };
+ mt_fixed_task_counts(task, counts);
+#ifdef MT_CORE_INSTRS
+ ri->ri_instructions = counts[MT_CORE_INSTRS];
+#endif /* defined(MT_CORE_INSTRS) */
+ ri->ri_cycles = counts[MT_CORE_CYCLES];
+#else /* MONOTONIC */
+#pragma unused(task, ri)
+#endif /* !MONOTONIC */
+}
+
+uint64_t
+get_task_logical_writes(task_t task, boolean_t external)
+{
+ assert(task != TASK_NULL);
+ struct ledger_entry_info lei;
+
+ task_lock(task);
+
+ if (external == FALSE) {
+ ledger_get_entry_info(task->ledger, task_ledgers.logical_writes, &lei);
+ } else {
+ ledger_get_entry_info(task->ledger, task_ledgers.logical_writes_to_external, &lei);
+ }
+
+ ledger_get_entry_info(task->ledger, task_ledgers.logical_writes, &lei);