Scanning a long list of dynamic timers at every tick would be too costly so kernel group events into 512 lists by their expiration time