Of the user, system, and idle readings provided by "top", which would reflect the time spent in a blocking system call?
I have read that blocking disk i/o calls are reflected as idle time, but not so for blocking network i/o calls. But then where?
Not CPU time is spent while code waits for some event to occur so just like with I/Os, a blocking network system call is essentially idle time.
It is shown as
top. That does not reflect the involved wait time but the CPU effort in dealing with the operation.
If a process were to read a large file from a slow disk, the kernel's scheduler would have to more frequently assign CPU to deal with the I/O operation and would therefore also waste scheduler time in dealing with it.
Unfortunately, even kernel developers can not give a more straight-forward answer because the real wait time does not require CPU, but dealing with it does.