mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-30 04:39:06 +00:00
Kernel: Use a separate timer for profiling the system
This updates the profiling subsystem to use a separate timer to trigger CPU sampling. This timer has a higher resolution (1000Hz) and is independent from the scheduler. At a later time the resolution could even be made configurable with an argument for sys$profiling_enable() - but not today.
This commit is contained in:
parent
d6b3513aab
commit
8614d18956
Notes:
sideshowbarker
2024-07-18 18:11:54 +09:00
Author: https://github.com/gunnarbeutner
Commit: 8614d18956
Pull-request: https://github.com/SerenityOS/serenity/pull/7090
Reviewed-by: https://github.com/awesomekling
5 changed files with 46 additions and 8 deletions
|
@ -16,6 +16,7 @@
|
|||
namespace Kernel {
|
||||
|
||||
#define OPTIMAL_TICKS_PER_SECOND_RATE 250
|
||||
#define OPTIMAL_PROFILE_TICKS_PER_SECOND_RATE 1000
|
||||
|
||||
class HardwareTimerBase;
|
||||
|
||||
|
@ -55,6 +56,9 @@ public:
|
|||
|
||||
static bool is_hpet_periodic_mode_allowed();
|
||||
|
||||
void enable_profile_timer();
|
||||
void disable_profile_timer();
|
||||
|
||||
u64 uptime_ms() const;
|
||||
static Time now();
|
||||
|
||||
|
@ -90,6 +94,9 @@ private:
|
|||
|
||||
RefPtr<HardwareTimerBase> m_system_timer;
|
||||
RefPtr<HardwareTimerBase> m_time_keeper_timer;
|
||||
|
||||
Atomic<u32> m_profile_enable_count { 0 };
|
||||
RefPtr<HardwareTimerBase> m_profile_timer;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue