On Thu, 1 Oct 2020 12:52:37 -0700 sa...@kernel.org wrote: > +static int cmd_alloc_index_retry(struct mlx5_cmd *cmd) > +{ > + unsigned long alloc_end = jiffies + msecs_to_jiffies(1000); > + int idx; > + > +retry: > + idx = cmd_alloc_index(cmd); > + if (idx < 0 && time_before(jiffies, alloc_end)) { > + /* Index allocation can fail on heavy load of commands. This is > a temporary > + * situation as the current command already holds the > semaphore, meaning that > + * another command completion is being handled and it is > expected to release > + * the entry index soon. > + */ > + cond_resched(); > + goto retry; > + } > + return idx; > +}
This looks excessive. At least add some cpu_relax(), or udelay()?