exclude kernel processes

and filter process directly in parent loop, to save useless function calls.
use logger to report warnings
pass logger to called functions