fix sys_poll_session performance bug.

This commit is contained in:
TXuian
2024-04-02 10:56:28 +08:00
parent f5ad8437b5
commit a2e5b49b19
15 changed files with 81 additions and 223 deletions
@@ -46,16 +46,14 @@ static void _sys_clock_init()
gpt_counter_enable(kGPTOutputCompare1);
break;
case 1:
gpt_set_compare_event(kGPTOutputCompare2, OUTPUT_CMP_DISABLE, 1000);
gpt_set_compare_event(kGPTOutputCompare2, OUTPUT_CMP_DISABLE, 5000);
gpt_counter_enable(kGPTOutputCompare2);
break;
case 2:
gpt_set_compare_event(kGPTOutputCompare3, OUTPUT_CMP_DISABLE, 1000);
gpt_set_compare_event(kGPTOutputCompare3, OUTPUT_CMP_DISABLE, 10000);
gpt_counter_enable(kGPTOutputCompare3);
break;
case 3:
gpt_set_compare_event(kGPTOutputCompare1, OUTPUT_CMP_DISABLE, 1000);
gpt_counter_enable(kGPTOutputCompare1);
default:
break;
}
}
@@ -77,7 +75,20 @@ static uint64_t _get_second()
static void _clear_clock_intr()
{
gpt_get_compare_event(kGPTOutputCompare1);
switch (cur_cpuid()) {
case 0:
gpt_get_compare_event(kGPTOutputCompare1);
break;
case 1:
gpt_get_compare_event(kGPTOutputCompare2);
break;
case 2:
gpt_get_compare_event(kGPTOutputCompare3);
break;
case 3:
gpt_get_compare_event(kGPTOutputCompare1);
break;
}
}
static bool _is_timer_expired()