@@ -67,8 +67,6 @@
#include <linux/lnet/lib-lnet.h>
#define IBLND_PEER_HASH_SIZE 101 /* # peer_ni lists */
-/* # scheduler loops before reschedule */
-#define IBLND_RESCHED 100
#define IBLND_N_SCHED 2
#define IBLND_N_SCHED_HIGH 4
@@ -3605,7 +3605,6 @@ static int kiblnd_resolve_addr(struct rdma_cm_id *cmid,
unsigned long flags;
struct ib_wc wc;
int did_something;
- int busy_loops = 0;
int rc;
init_waitqueue_entry(&wait, current);
@@ -3621,11 +3620,10 @@ static int kiblnd_resolve_addr(struct rdma_cm_id *cmid,
spin_lock_irqsave(&sched->ibs_lock, flags);
while (!kiblnd_data.kib_shutdown) {
- if (busy_loops++ >= IBLND_RESCHED) {
+ if (need_resched()) {
spin_unlock_irqrestore(&sched->ibs_lock, flags);
cond_resched();
- busy_loops = 0;
spin_lock_irqsave(&sched->ibs_lock, flags);
}
@@ -3718,7 +3716,6 @@ static int kiblnd_resolve_addr(struct rdma_cm_id *cmid,
spin_unlock_irqrestore(&sched->ibs_lock, flags);
schedule();
- busy_loops = 0;
remove_wait_queue(&sched->ibs_waitq, &wait);
spin_lock_irqsave(&sched->ibs_lock, flags);