Print this page
XXXX introduce drv_sectohz

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/io/scsi/adapters/scsi_vhci/scsi_vhci.c
          +++ new/usr/src/uts/common/io/scsi/adapters/scsi_vhci/scsi_vhci.c
↓ open down ↓ 2620 lines elided ↑ open up ↑
2621 2621                          if ((skey == KEY_UNIT_ATTENTION) ||
2622 2622                              (skey == KEY_NOT_READY)) {
2623 2623                                  int max_retry;
2624 2624                                  struct scsi_failover_ops *fops;
2625 2625                                  fops = vlun->svl_fops;
2626 2626                                  rval = fops->sfo_analyze_sense(svp->svp_psd,
2627 2627                                      sns, vlun->svl_fops_ctpriv);
2628 2628                                  if (rval == SCSI_SENSE_NOT_READY) {
2629 2629                                          max_retry = vhci_prout_not_ready_retry;
2630 2630                                          retry = nr_retry++;
2631      -                                        delay(1*drv_usectohz(1000000));
     2631 +                                        delay(drv_sectohz(1));
2632 2632                                  } else {
2633 2633                                          /* chk for state change and update */
2634 2634                                          if (rval == SCSI_SENSE_STATE_CHANGED) {
2635 2635                                                  int held;
2636 2636                                                  VHCI_HOLD_LUN(vlun,
2637 2637                                                      VH_NOSLEEP, held);
2638 2638                                                  if (!held) {
2639 2639                                                          rval = TRAN_BUSY;
2640 2640                                                  } else {
2641 2641                                                          /* chk for alua first */
↓ open down ↓ 2688 lines elided ↑ open up ↑
5330 5330  
5331 5331          psd = svp->svp_psd;
5332 5332          ASSERT(psd != NULL);
5333 5333  
5334 5334          mutex_enter(&svp->svp_mutex);
5335 5335  
5336 5336          VHCI_DEBUG(1, (CE_NOTE, vdip, "!vhci_pathinfo_offline: "
5337 5337              "%d cmds pending on path: 0x%p\n", svp->svp_cmds, (void *)pip));
5338 5338          while (svp->svp_cmds != 0) {
5339 5339                  if (cv_reltimedwait(&svp->svp_cv, &svp->svp_mutex,
5340      -                    drv_usectohz(vhci_path_quiesce_timeout * 1000000),
     5340 +                    drv_sectohz(vhci_path_quiesce_timeout),
5341 5341                      TR_CLOCK_TICK) == -1) {
5342 5342                          /*
5343 5343                           * The timeout time reached without the condition
5344 5344                           * being signaled.
5345 5345                           */
5346 5346                          VHCI_DEBUG(1, (CE_NOTE, vdip, "!vhci_pathinfo_offline: "
5347 5347                              "Timeout reached on path 0x%p without the cond\n",
5348 5348                              (void *)pip));
5349 5349                          VHCI_DEBUG(1, (CE_NOTE, vdip, "!vhci_pathinfo_offline: "
5350 5350                              "%d cmds still pending on path: 0x%p\n",
↓ open down ↓ 13 lines elided ↑ open up ↑
5364 5364           * in the stack.
5365 5365           */
5366 5366          if (svp->svp_svl->svl_flags & VLUN_RESERVE_ACTIVE_FLG) {
5367 5367                  if (pip == svp->svp_svl->svl_resrv_pip) {
5368 5368                          if (vhci_recovery_reset(svp->svp_svl,
5369 5369                              &svp->svp_psd->sd_address, TRUE,
5370 5370                              VHCI_DEPTH_TARGET) == 0) {
5371 5371                                  VHCI_DEBUG(1, (CE_NOTE, NULL,
5372 5372                                      "!vhci_pathinfo_offline (pip:%p):"
5373 5373                                      "reset failed, retrying\n", (void *)pip));
5374      -                                delay(1*drv_usectohz(1000000));
     5374 +                                delay(drv_sectohz(1));
5375 5375                                  if (vhci_recovery_reset(svp->svp_svl,
5376 5376                                      &svp->svp_psd->sd_address, TRUE,
5377 5377                                      VHCI_DEPTH_TARGET) == 0) {
5378 5378                                          VHCI_DEBUG(1, (CE_NOTE, NULL,
5379 5379                                              "!vhci_pathinfo_offline "
5380 5380                                              "(pip:%p): reset failed, "
5381 5381                                              "giving up!\n", (void *)pip));
5382 5382                                  }
5383 5383                          }
5384 5384                          svp->svp_svl->svl_flags &= ~VLUN_RESERVE_ACTIVE_FLG;
↓ open down ↓ 2119 lines elided ↑ open up ↑
7504 7504                          spip = pip;
7505 7505                          pip = mdi_get_next_phci_path(cdip, spip);
7506 7506                          continue;
7507 7507                  }
7508 7508                  mdi_hold_path(pip);
7509 7509                  ndi_devi_exit(cdip, circular);
7510 7510                  svp = (scsi_vhci_priv_t *)mdi_pi_get_vhci_private(pip);
7511 7511                  mutex_enter(&svp->svp_mutex);
7512 7512                  while (svp->svp_cmds != 0) {
7513 7513                          if (cv_reltimedwait(&svp->svp_cv, &svp->svp_mutex,
7514      -                            drv_usectohz(vhci_path_quiesce_timeout * 1000000),
     7514 +                            drv_sectohz(vhci_path_quiesce_timeout),
7515 7515                              TR_CLOCK_TICK) == -1) {
7516 7516                                  mutex_exit(&svp->svp_mutex);
7517 7517                                  mdi_rele_path(pip);
7518 7518                                  VHCI_DEBUG(1, (CE_WARN, NULL,
7519 7519                                      "Quiesce of lun is not successful "
7520 7520                                      "vlun: 0x%p.", (void *)vlun));
7521 7521                                  return (0);
7522 7522                          }
7523 7523                  }
7524 7524                  mutex_exit(&svp->svp_mutex);
↓ open down ↓ 827 lines elided ↑ open up ↑
8352 8352          /* get her done */
8353 8353          switch (scsi_transport(rqpkt)) {
8354 8354          case TRAN_ACCEPT:
8355 8355                  VHCI_DEBUG(1, (CE_NOTE, NULL, "vhci_uscsi_send_sense: "
8356 8356                      "transport accepted."));
8357 8357                  break;
8358 8358          case TRAN_BUSY:
8359 8359                  VHCI_DEBUG(1, (CE_NOTE, NULL, "vhci_uscsi_send_sense: "
8360 8360                      "transport busy, setting timeout."));
8361 8361                  vhci_restart_timeid = timeout(vhci_uscsi_restart_sense, rqpkt,
8362      -                    (drv_usectohz(5 * 1000000)));
     8362 +                    drv_sectohz(5));
8363 8363                  break;
8364 8364          default:
8365 8365                  VHCI_DEBUG(1, (CE_NOTE, NULL, "vhci_uscsi_send_sense: "
8366 8366                      "transport failed"));
8367 8367                  scsi_free_consistent_buf(rqbp);
8368 8368                  scsi_destroy_pkt(rqpkt);
8369 8369                  rval = -1;
8370 8370          }
8371 8371  
8372 8372          return (rval);
↓ open down ↓ 448 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX