I think you should first try the userland solution, but if that seems too limiting, then you should move on to the full kernel hack.