X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lnet%2Fselftest%2Fworkitem.c;h=c63818866ded0facb25c5f94fc7a931185a53142;hp=cd65f5df620ffb880c28bc33c6e28c11483c60c7;hb=d8bb34d0c1e8c3f768161a1281ee52f8361380bc;hpb=6869932b552ac705f411de3362f01bd50c1f6f7d diff --git a/lnet/selftest/workitem.c b/lnet/selftest/workitem.c index cd65f5d..c638188 100644 --- a/lnet/selftest/workitem.c +++ b/lnet/selftest/workitem.c @@ -147,7 +147,7 @@ swi_schedule_serial_workitem (swi_workitem_t *wi) int swi_scheduler_main (void *arg) { - int id = (long) arg; + int id = (int)(long_ptr_t) arg; char name[16]; snprintf(name, sizeof(name), "swi_sd%03d", id); @@ -189,9 +189,9 @@ swi_scheduler_main (void *arg) spin_unlock(&swi_data.wi_lock); if (nloops < SWI_RESCHED) - wait_event_interruptible_exclusive( + cfs_wait_event_interruptible_exclusive( swi_data.wi_waitq, - !swi_sched_cansleep(&swi_data.wi_runq)); + !swi_sched_cansleep(&swi_data.wi_runq), rc); else our_cond_resched(); @@ -218,14 +218,15 @@ swi_serial_scheduler_main (void *arg) int rc; swi_workitem_t *wi; - while (!list_empty(&swi_data.wi_serial_runq) && + while (!list_empty(&swi_data.wi_serial_runq) && nloops < SWI_RESCHED) { wi = list_entry(swi_data.wi_serial_runq.next, swi_workitem_t, wi_list); list_del_init(&wi->wi_list); - LASSERT (!wi->wi_running); - LASSERT (wi->wi_scheduled); + LASSERTF (!wi->wi_running && wi->wi_scheduled, + "wi %p running %d scheduled %d\n", + wi, wi->wi_running, wi->wi_scheduled); nloops++; wi->wi_running = 1; @@ -242,9 +243,9 @@ swi_serial_scheduler_main (void *arg) spin_unlock(&swi_data.wi_lock); if (nloops < SWI_RESCHED) - wait_event_interruptible_exclusive( - swi_data.wi_serial_waitq, - !swi_sched_cansleep(&swi_data.wi_serial_runq)); + cfs_wait_event_interruptible_exclusive( + swi_data.wi_serial_waitq, + !swi_sched_cansleep(&swi_data.wi_serial_runq), rc); else our_cond_resched(); @@ -334,7 +335,8 @@ swi_startup (void) } for (i = 0; i < num_online_cpus(); i++) { - rc = swi_start_thread(swi_scheduler_main, (void *) (long) i); + rc = swi_start_thread(swi_scheduler_main, + (void *) (long_ptr_t) i); if (rc != 0) { CERROR ("Can't spawn workitem scheduler: %d\n", rc); swi_shutdown();