Проснись спящего процессора для sched_setaffinity на Android
Я работаю над приложением, которое запускает несколько потоков, один из которых является наиболее важным и должен работать на самом мощном процессоре. Я успешно прикрепил этот поток к выбранному процессору с помощью функции C++ sched_setaffinity.
syscallres = syscall(__NR_sched_setaffinity, pid, sizeof(cpu_set), &cpu_set)
;
На моем андроид устройстве первый процессор самый сильный, 3 других слабее и 4 последних энергосберегают. Первый - самый сильный и всегда включен, однако, основываясь на документации, процессор может спать и должен пробудиться, прежде чем я присоединю поток к процессору, и действительно, основываясь на сообщениях здесь о stackru, люди не могли прикрепить поток к процессору, пока он спал. Я не могу смоделировать это на своем устройстве, я всегда успешно присоединяю поток к выбранному процессору, возможно, это зависит от ОС. Итак, мой вопрос: как правильно включить процессор, прежде чем я вызову sched_setaffinity?