Working on my HPET kernel driver, I found that the comparator wasn't responding to the value I put in it. To would generate an interrupt after about 10000 to 20000 ticks every time. Everything else works - disabling & enabling interrupts, monotonic counter, interrupt routing through IOAPIC (LegacyIRQ Replacement used) too.
Check out this :
https://github.com/SukantPal/Silcos-KernelFiles required:
ExecutionManager > Timer > HPET.cpp
HAL > ACPI > HPET.cpp
What could be the cause of the comparator not responding to my values? (Please check how I grouped the registered in structs and union in the header Interface/Executable/Timer/HPET.hpp)