cond_resched does not necessarily do the process switching. It only means if there are any important task ready then only task switching may happen, exactly at this point.