using kprintf to output debug, which may be redirected to serial, is not a good idea...