Intel Audio DSP ACE needs to use arch_spin_relax() to give the bus more time to propagate the RCW transactions among CPUs, and to avoid sending too many requests to the bus after failing to lock spinlocks. However, the number of NOPs results in a very big arch_spin_relax() that spans multiple instruction cache lines, and requires evicting them just for NOPs. With 5 CPUs, it can span 6 cache lines (if using nop.n instead of nop). That's a waste of space and cache. So instead, we do a tight loop instead. Since the SoC supports zero-overhead loops, this should have minimal performance impact. Signed-off-by: Daniel Leung <daniel.leung@intel.com> |
||
---|---|---|
.. | ||
alder_lake | ||
apollo_lake | ||
atom | ||
common | ||
elkhart_lake | ||
intel_adsp | ||
intel_ish | ||
intel_niosv | ||
intel_socfpga | ||
intel_socfpga_std | ||
lakemont | ||
raptor_lake |