1. An apparatus comprising: a software-accessible storage to store an indication of a first event occuring within a software program; a selection logic to select between an output of the software-accessible storage or a hardware-specific monitoring logic; an event counter to increment or decrement after the occurrence of a first bit being set in the software-accessible storage and to stop decrementing or incrementing after the occurrence of the first bit being cleared.