[sched/core] cpuacct_charge() problem
Hello! task_pt_regs() always show on the user regs for user thread, even if it's working in kernel mode now. So, index calculation in cpuacct_charge() isn't correct and it's always CPUACCT_STAT_USER for user thread. The time, spent in kernel mode for user task, will be lost: int index = CPUACCT_STAT_SYSTEM; struct pt_regs *regs = task_pt_regs(tsk); if (regs && user_mode(regs)) index = CPUACCT_STAT_USER;
pt_regs usage in cpuacct_charge()
Hello! In cpuacct_charge() function pt_regs of other thread could be used. There is a such call chain: ...-> __schedule -> pick_next_task_fair -> load_balance -> idle_balance -> load_balance -> detach_tasks -> deactivate_task -> dequeue_task_fair -> dequeue_entity -> update_curr -> cpuacct_charge. I think that pt_regs could disappeared or be changed. How it's assumed to syncronize pt_regs usage in this place? Kernel verion 4.9.47-rt47. Best regards, Pavel V. Panteleev
Здарово! Хочу по секрету с тобой кое чем поделиться , нашел тему в которой можно заработать несколько тысяч $, описание курса по заработку, пока в в сети
http://wecare2serve.com/money_order_locations.php