Hello. Right now it seems like the only interface for registering the timer hooks is that one of kernel/profile.c, and it is very limited. The arch-specific timer hooks are provided in an arch-specific headers as a static functions. Since my driver needs the timer hook, I thought it might be a good idea to add an API for registering the timer hooks. The attached patch adds such an API and converts all the relevant places to use it. I changed oprofile to use it, and also converted the arch-specific hooks, which looks like a fair cleanup. The API allows to register, unregister and grab the timer hook. The grabbing hook will always be executed first, and can decide to prevent an execution of the rest ones. The hook can have the "run_always" flag set, in which case it won't be bypassed, regardless of the grabbing hook. Does such an API look viable? As usual, it is needed for the PC-Speaker PCM driver that is currently in an ALSA CVS, awaiting for the proper interface to appear in the kernel.