Print this page
XXXX introduce drv_sectohz

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/sun/io/scsi/adapters/fas.c
          +++ new/usr/src/uts/sun/io/scsi/adapters/fas.c
↓ open down ↓ 986 lines elided ↑ open up ↑
 987  987           * start the watchdog if it hasn't been done yet
 988  988           */
 989  989          mutex_enter(&fas_global_mutex);
 990  990          if (fas_scsi_watchdog_tick == 0) {
 991  991                  fas_scsi_watchdog_tick = ddi_prop_get_int(DDI_DEV_T_ANY,
 992  992                      dip, 0, "scsi-watchdog-tick", DEFAULT_WD_TICK);
 993  993                  if (fas_scsi_watchdog_tick != DEFAULT_WD_TICK) {
 994  994                          fas_log(fas, CE_NOTE, "?scsi-watchdog-tick=%d\n",
 995  995                              fas_scsi_watchdog_tick);
 996  996                  }
 997      -                fas_tick = drv_usectohz((clock_t)
 998      -                    fas_scsi_watchdog_tick * 1000000);
      997 +                fas_tick = drv_sectohz((clock_t)fas_scsi_watchdog_tick);
 999  998                  IPRINTF2("fas scsi watchdog tick=%x, fas_tick=%lx\n",
1000  999                      fas_scsi_watchdog_tick, fas_tick);
1001 1000                  if (fas_timeout_id == 0) {
1002 1001                          fas_timeout_id = timeout(fas_watch, NULL, fas_tick);
1003 1002                          fas_timeout_initted = 1;
1004 1003                  }
1005 1004          }
1006 1005          mutex_exit(&fas_global_mutex);
1007 1006  
1008 1007          ddi_report_dev(dip);
↓ open down ↓ 349 lines elided ↑ open up ↑
1358 1357  fas_quiesce_bus(struct fas *fas)
1359 1358  {
1360 1359          mutex_enter(FAS_MUTEX(fas));
1361 1360          IPRINTF("fas_quiesce: QUIESCEing\n");
1362 1361          IPRINTF3("fas_quiesce: ncmds (%d) ndisc (%d) state (%d)\n",
1363 1362              fas->f_ncmds, fas->f_ndisc, fas->f_softstate);
1364 1363          fas_set_throttles(fas, 0, N_SLOTS, HOLD_THROTTLE);
1365 1364          if (fas_check_outstanding(fas)) {
1366 1365                  fas->f_softstate |= FAS_SS_DRAINING;
1367 1366                  fas->f_quiesce_timeid = timeout(fas_ncmds_checkdrain,
1368      -                    fas, (FAS_QUIESCE_TIMEOUT * drv_usectohz(1000000)));
     1367 +                    fas, drv_sectohz(FAS_QUIESCE_TIMEOUT));
1369 1368                  if (cv_wait_sig(FAS_CV(fas), FAS_MUTEX(fas)) == 0) {
1370 1369                          /*
1371 1370                           * quiesce has been interrupted.
1372 1371                           */
1373 1372                          IPRINTF("fas_quiesce: abort QUIESCE\n");
1374 1373                          fas->f_softstate &= ~FAS_SS_DRAINING;
1375 1374                          fas_set_throttles(fas, 0, N_SLOTS, MAX_THROTTLE);
1376 1375                          (void) fas_istart(fas);
1377 1376                          if (fas->f_quiesce_timeid != 0) {
1378 1377                                  mutex_exit(FAS_MUTEX(fas));
↓ open down ↓ 50 lines elided ↑ open up ↑
1429 1428                          cv_signal(FAS_CV(fas));
1430 1429                  } else {
1431 1430                          /*
1432 1431                           * throttle may have been reset by a bus reset
1433 1432                           * or fas_runpoll()
1434 1433                           * XXX shouldn't be necessary
1435 1434                           */
1436 1435                          fas_set_throttles(fas, 0, N_SLOTS, HOLD_THROTTLE);
1437 1436                          IPRINTF("fas_drain: rescheduling timeout\n");
1438 1437                          fas->f_quiesce_timeid = timeout(fas_ncmds_checkdrain,
1439      -                            fas, (FAS_QUIESCE_TIMEOUT * drv_usectohz(1000000)));
     1438 +                            fas, drv_sectohz(FAS_QUIESCE_TIMEOUT));
1440 1439                  }
1441 1440          }
1442 1441          mutex_exit(FAS_MUTEX(fas));
1443 1442  }
1444 1443  
1445 1444  static int
1446 1445  fas_check_outstanding(struct fas *fas)
1447 1446  {
1448 1447          uint_t slot;
1449 1448          uint_t d = ((fas->f_dslot == 0)? 1 : fas->f_dslot);
↓ open down ↓ 7994 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX