OCF: use rte_pause in wait loop

Add rte_pause to waiting while loop
This commit also adds spdk_pause as interface for rte_pause

Change-Id: I56e1023731e2e78febaa4f45808d6f07656d290f
Signed-off-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
Reviewed-on: https://review.gerrithub.io/c/436494
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
This commit is contained in:
Vitaliy Mysak 2018-12-07 19:04:03 +00:00 committed by Darek Stojaczyk
parent b45bc79461
commit b2d5bfd0d1
3 changed files with 13 additions and 1 deletions

View File

@ -510,6 +510,11 @@ uint64_t spdk_get_ticks_hz(void);
*/
void spdk_delay_us(unsigned int us);
/**
* Pause CPU execution for a short while
*/
void spdk_pause(void);
struct spdk_ring;
enum spdk_ring_type {

View File

@ -101,7 +101,9 @@ env_completion_init(env_completion *completion)
void
env_completion_wait(env_completion *completion)
{
while (atomic_read(&completion->atom));
while (atomic_read(&completion->atom)) {
spdk_pause();
}
}
void

View File

@ -307,6 +307,11 @@ void spdk_delay_us(unsigned int us)
rte_delay_us(us);
}
void spdk_pause(void)
{
rte_pause();
}
void
spdk_unaffinitize_thread(void)
{