]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/kern/task.c
xnu-2782.10.72.tar.gz
[apple/xnu.git] / osfmk / kern / task.c
index 049701dff80729271d554b1db33f16a57127979b..999dfefcf89c0df40050ec72ca85afee189a52a9 100644 (file)
 extern int kpc_force_all_ctrs(task_t, int);
 #endif
 
+uint32_t qos_override_mode;
+
 task_t                 kernel_task;
 zone_t                 task_zone;
 lck_attr_t      task_lck_attr;
@@ -440,6 +442,12 @@ task_init(void)
                hwm_user_cores = 0;
        }
 
+       if (PE_parse_boot_argn("qos_override_mode", &qos_override_mode, sizeof(qos_override_mode))) {
+               printf("QOS override mode: 0x%08x\n", qos_override_mode);
+       } else {
+               qos_override_mode = QOS_OVERRIDE_MODE_FINE_GRAINED_OVERRIDE_BUT_SINGLE_MUTEX_OVERRIDE;
+       }
+
        proc_init_cpumon_params();
 
        if (!PE_parse_boot_argn("task_wakeups_monitor_rate", &task_wakeups_monitor_rate, sizeof (task_wakeups_monitor_rate))) {
@@ -1289,6 +1297,9 @@ task_terminate_internal(
 
        task_unlock(task);
 
+       proc_set_task_policy(task, THREAD_NULL, TASK_POLICY_ATTRIBUTE,
+                            TASK_POLICY_TERMINATED, TASK_POLICY_ENABLE);
+
         /* Early object reap phase */
 
 // PR-17045188: Revisit implementation