I've known the defintion of %iowait
as
Time the CPU spent idling/blocking, because it had to wait on an IO operation to complete.
Now take a simple Linux system with an mdraid1 and two disks.
/proc/mdstat
shows that the resync is running at about 120MB/s which is close to what you'd expect from a regular spinning SATA disk.
So the speed of the disk is the limiting factor in this case and hence the definition from above I would expect the iowait to be at nearly 100% because that is what keeps the process from finishing in less time.
However that is not the case:
avg-cpu: %user %nice %system %iowait %steal %idle
0,51 0,00 5,64 0,00 0,00 93,85
There is no iowait whatsoever and the idle time actually suggests to me that the resync could be much faster but just decided it didn't want to (which is not true).
What am I misunderstanding?