Print this page
XXXX introduce drv_sectohz

*** 563,573 **** /* FALLTHRU */ case RDSV3_WQ_THREAD_FLUSHING: /* already flushing, wait until the flushing is complete */ do { mutex_exit(&wq->wq_lock); ! delay(drv_usectohz(1000000)); mutex_enter(&wq->wq_lock); } while (wq->wq_state == RDSV3_WQ_THREAD_FLUSHING); break; case RDSV3_WQ_THREAD_EXITING: mutex_exit(&wq->wq_lock); --- 563,573 ---- /* FALLTHRU */ case RDSV3_WQ_THREAD_FLUSHING: /* already flushing, wait until the flushing is complete */ do { mutex_exit(&wq->wq_lock); ! delay(drv_sectohz(1)); mutex_enter(&wq->wq_lock); } while (wq->wq_state == RDSV3_WQ_THREAD_FLUSHING); break; case RDSV3_WQ_THREAD_EXITING: mutex_exit(&wq->wq_lock);
*** 600,610 **** break; case RDSV3_WQ_THREAD_FLUSHING: do { mutex_exit(&wq->wq_lock); ! delay(drv_usectohz(1000000)); mutex_enter(&wq->wq_lock); } while (wq->wq_state == RDSV3_WQ_THREAD_FLUSHING); if (wq->wq_state == RDSV3_WQ_THREAD_RUNNING) { list_insert_tail(&wq->wq_queue, wp); --- 600,610 ---- break; case RDSV3_WQ_THREAD_FLUSHING: do { mutex_exit(&wq->wq_lock); ! delay(drv_sectohz(1)); mutex_enter(&wq->wq_lock); } while (wq->wq_state == RDSV3_WQ_THREAD_FLUSHING); if (wq->wq_state == RDSV3_WQ_THREAD_RUNNING) { list_insert_tail(&wq->wq_queue, wp);
*** 734,744 **** mutex_enter(&wq->wq_lock); wq->wq_state = RDSV3_WQ_THREAD_EXITING; while (wq->wq_pending > 0) { mutex_exit(&wq->wq_lock); ! delay(drv_usectohz(1000000)); mutex_enter(&wq->wq_lock); }; mutex_exit(&wq->wq_lock); rdsv3_flush_workqueue(wq); --- 734,744 ---- mutex_enter(&wq->wq_lock); wq->wq_state = RDSV3_WQ_THREAD_EXITING; while (wq->wq_pending > 0) { mutex_exit(&wq->wq_lock); ! delay(drv_sectohz(1)); mutex_enter(&wq->wq_lock); }; mutex_exit(&wq->wq_lock); rdsv3_flush_workqueue(wq);
*** 790,800 **** list_create(&wq->wq_queue, sizeof (struct rdsv3_work_s), offsetof(struct rdsv3_work_s, work_item)); mutex_init(&wq->wq_lock, NULL, MUTEX_DRIVER, NULL); wq->wq_state = RDSV3_WQ_THREAD_IDLE; wq->wq_pending = 0; ! rdsv3_one_sec_in_hz = drv_usectohz(1000000); RDSV3_DPRINTF2("create_singlethread_workqueue", "Return"); return (wq); } --- 790,800 ---- list_create(&wq->wq_queue, sizeof (struct rdsv3_work_s), offsetof(struct rdsv3_work_s, work_item)); mutex_init(&wq->wq_lock, NULL, MUTEX_DRIVER, NULL); wq->wq_state = RDSV3_WQ_THREAD_IDLE; wq->wq_pending = 0; ! rdsv3_one_sec_in_hz = drv_sectohz(1); RDSV3_DPRINTF2("create_singlethread_workqueue", "Return"); return (wq); }