Lines Matching defs:softs

36 static void pqisrc_increment_io_counters(pqisrc_softstate_t *softs, rcb_t *rcb);
37 static int fill_lba_for_scsi_rw(pqisrc_softstate_t *softs, uint8_t *cdb, aio_req_locator_t *l);
88 pqisrc_num_elem_needed(pqisrc_softstate_t *softs, uint32_t SG_Count,
107 if(SG_Count > softs->max_sg_per_spanning_cmd ||
177 pqisrc_show_raid_req(pqisrc_softstate_t *softs, pqisrc_raid_req_t *raid_req)
204 pqisrc_build_raid_io(pqisrc_softstate_t *softs, rcb_t *rcb,
211 raid_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb);
276 pqisrc_show_raid_req(softs, raid_req);
291 pqisrc_show_aio_req(pqisrc_softstate_t *softs, pqi_aio_req_t *aio_req)
336 pqisrc_build_aio_common(pqisrc_softstate_t *softs, pqi_aio_req_t *aio_req,
342 aio_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb);
407 pqisrc_show_aio_common(pqisrc_softstate_t *softs, rcb_t *rcb,
432 pqisrc_show_cdb(softs, "AIOC", rcb, aio_req->cdb);
450 pqisrc_build_aio_R1_write(pqisrc_softstate_t *softs,
466 aio_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb);
525 pqisrc_show_aio_R1_write(pqisrc_softstate_t *softs, rcb_t *rcb,
552 pqisrc_show_cdb(softs, "AIOR1W", rcb, aio_req->cdb);
572 pqisrc_build_aio_R5or6_write(pqisrc_softstate_t *softs,
602 aio_req->response_queue_id = OS_GET_IO_RESP_QID(softs, rcb);
677 pqisrc_show_aio_R5or6_write(pqisrc_softstate_t *softs, rcb_t *rcb,
706 pqisrc_show_cdb(softs, "AIOR56W", rcb, aio_req->cdb);
750 pqisrc_show_aio_io(pqisrc_softstate_t *softs, rcb_t *rcb,
759 pqisrc_show_aio_common(softs, rcb, aio_req);
765 pqisrc_show_aio_common(softs, rcb, aio_req);
769 pqisrc_show_aio_R1_write(softs, rcb,
774 pqisrc_show_aio_R5or6_write(softs, rcb,
786 pqisrc_build_aio_io(pqisrc_softstate_t *softs, rcb_t *rcb,
797 pqisrc_build_aio_common(softs, aio_req,
802 pqisrc_build_aio_R1_write(softs,
809 pqisrc_build_aio_R5or6_write(softs,
815 pqisrc_build_aio_common(softs, aio_req, rcb, num_elem_alloted);
818 pqisrc_show_aio_io(softs, rcb, aio_req, num_elem_alloted);
829 pqisrc_is_parity_write_stream(pqisrc_softstate_t *softs, rcb_t *rcb)
841 rc = fill_lba_for_scsi_rw(softs, rcb->cdbp , &loc);
851 if (!softs->enable_stream_detection) {
871 if ((device->raid_level == SA_RAID_5 && !softs->aio_raid5_write_bypass) ||
872 (device->raid_level == SA_RAID_6 && !softs->aio_raid6_write_bypass)) {
926 determine_io_path_build_bypass(pqisrc_softstate_t *softs,rcb_t *rcb)
945 if (devp->offload_enabled && !pqisrc_is_parity_write_stream(softs, rcb)) {
946 ret = pqisrc_build_scsi_cmd_raidbypass(softs, devp, rcb);
986 pqisrc_build_send_io(pqisrc_softstate_t *softs,rcb_t *rcb)
988 ib_queue_t *ib_q_array = softs->op_aio_ib_q;
993 int first_qindex = OS_GET_IO_REQ_QINDEX(softs, rcb);
995 uint32_t num_op_ib_q = softs->num_op_aio_ibq;
1004 io_path = determine_io_path_build_bypass(softs, rcb);
1010 num_op_ib_q = softs->num_op_raid_ibq;
1011 ib_q_array = softs->op_raid_ib_q;
1022 num_elem_needed = pqisrc_num_elem_needed(softs,
1056 pqisrc_increment_device_active_io(softs,devp);
1063 pqisrc_build_aio_io(softs, rcb, (pqi_aio_req_t *)ib_iu,
1067 pqisrc_build_raid_io(softs, rcb, (pqisrc_raid_req_t *)ib_iu,
1075 pqisrc_increment_io_counters(softs, rcb);
1084 PCI_MEM_PUT32(softs, ib_q->pi_register_abs, ib_q->pi_register_offset, ib_q->pi_local);
1130 fill_lba_for_scsi_rw(pqisrc_softstate_t *softs, uint8_t *cdb, aio_req_locator_t *l)
1184 pqisrc_is_supported_write(pqisrc_softstate_t *softs,
1198 if (!softs->adv_aio_capable)
1207 if (softs->aio_raid1_write_bypass)
1211 if (softs->aio_raid5_write_bypass)
1215 if (softs->aio_raid6_write_bypass)
1228 pqisrc_is_invalid_block(pqisrc_softstate_t *softs, aio_req_locator_t *l)
1252 pqisrc_calc_disk_params(pqisrc_softstate_t *softs, aio_req_locator_t *l, rcb_t *rcb)
1289 pqisrc_is_single_row_column(pqisrc_softstate_t *softs, aio_req_locator_t *l)
1304 pqisrc_set_map_row_and_idx(pqisrc_softstate_t *softs, aio_req_locator_t *l, rcb_t *rcb)
1327 pqisrc_set_read_mirror(pqisrc_softstate_t *softs,
1348 pqisrc_softstate_t *softs,
1371 pqisrc_is_r5or6_single_group(pqisrc_softstate_t *softs, aio_req_locator_t *l)
1394 pqisrc_is_r5or6_single_row(pqisrc_softstate_t *softs, aio_req_locator_t *l)
1417 pqisrc_is_r5or6_single_column(pqisrc_softstate_t *softs, aio_req_locator_t *l)
1496 pqisrc_aio_req_too_big(pqisrc_softstate_t *softs,
1507 if (softs->max_aio_rw_xfer_crypto_nvme != 0) {
1508 dev_max = MIN(dev_max,softs->max_aio_rw_xfer_crypto_nvme);
1517 if (softs->max_aio_write_raid5_6 != 0) {
1518 dev_max = MIN(dev_max,softs->max_aio_write_raid5_6);
1525 (softs->max_aio_write_raid1_10_3drv != 0)) {
1527 softs->max_aio_write_raid1_10_3drv);
1533 (softs->max_aio_write_raid1_10_2drv != 0)) {
1535 softs->max_aio_write_raid1_10_2drv);
1550 pqisrc_aio_show_raid_map(pqisrc_softstate_t *softs, struct raid_map *m)
1585 pqisrc_aio_show_locator_info(pqisrc_softstate_t *softs,
1589 pqisrc_aio_show_raid_map(softs, l->raid_map);
1668 pqisrc_print_buffer(pqisrc_softstate_t *softs, char *msg, void *user_buf,
1716 pqisrc_show_cdb(pqisrc_softstate_t *softs, char *msg, rcb_t *rcb, uint8_t *cdb)
1719 pqisrc_print_buffer(softs, msg, cdb, rcb->cmdlen, PRINT_FLAG_HDR_COLUMN);
1723 pqisrc_show_rcb_details(pqisrc_softstate_t *softs, rcb_t *rcb, char *msg, void *err_info)
1738 pqisrc_print_buffer(softs, "host cdb", OS_GET_CDBP(rcb), rcb->cmdlen, PRINT_FLAG_HDR_COLUMN);
1740 pqisrc_print_buffer(softs, "aio mapped cdb", rcb->cdbp, rcb->cmdlen, 0);
1755 pqisrc_show_aio_error_info(softs, rcb, err_info);
1761 pqisrc_show_raid_error_info(softs, rcb, err_info);
1773 pqisrc_build_scsi_cmd_raidbypass(pqisrc_softstate_t *softs,
1795 rc = fill_lba_for_scsi_rw(softs, OS_GET_CDBP(rcb), l);
1799 if (l->is_write && !pqisrc_is_supported_write(softs, device))
1806 if (pqisrc_is_invalid_block(softs, l))
1809 if (!pqisrc_calc_disk_params(softs, l, rcb))
1812 if (!pqisrc_is_single_row_column(softs, l))
1815 if (!pqisrc_set_map_row_and_idx(softs, l, rcb))
1825 if (!pqisrc_set_write_mirrors(softs, device, l, rcb))
1828 pqisrc_set_read_mirror(softs, device, l);
1834 if (!pqisrc_is_r5or6_single_group(softs, l))
1837 if (!pqisrc_is_r5or6_single_row(softs, l))
1840 if (!pqisrc_is_r5or6_single_column(softs, l))
1871 if (pqisrc_aio_req_too_big(softs, device, rcb, l, disk_blk_cnt))
1880 pqisrc_aio_show_locator_info(softs, l, disk_blk_cnt, rcb);
1892 pqisrc_send_aio_tmf(pqisrc_softstate_t *softs, pqi_scsi_dev_t *devp,
1911 tmf_req.resp_qid = OS_GET_TMF_RESP_QID(softs, rcb);
1912 op_ib_q = &softs->op_aio_ib_q[0];
1945 rval = pqisrc_submit_cmnd(softs, op_ib_q, &tmf_req);
1951 rval = pqisrc_wait_on_condition(softs, rcb, PQISRC_TMF_TIMEOUT);
1969 pqisrc_send_raid_tmf(pqisrc_softstate_t *softs, pqi_scsi_dev_t *devp,
1988 tmf_req.resp_qid = OS_GET_TMF_RESP_QID(softs, rcb);
1996 if (softs->timeout_in_tmf &&
2005 op_ib_q = &softs->op_raid_ib_q[0];
2015 rval = pqisrc_submit_cmnd(softs, op_ib_q, &tmf_req);
2021 rval = pqisrc_wait_on_condition(softs, rcb, PQISRC_TMF_TIMEOUT);
2038 dump_tmf_details(pqisrc_softstate_t *softs, rcb_t *rcb, char *msg)
2048 pqisrc_send_tmf(pqisrc_softstate_t *softs, pqi_scsi_dev_t *devp,
2056 softs->max_outstanding_io - softs->taglist.num_elem);
2059 rcb->softs = softs;
2065 dump_tmf_details(softs, rcb_to_manage, "rcb_to_manage");
2069 dump_tmf_details(softs, rcb, "rcb");
2075 ret = pqisrc_send_aio_tmf(softs, devp, rcb, rcb_to_manage, tmf_type);
2083 ret = pqisrc_send_raid_tmf(softs, devp, rcb, rcb_to_manage, tmf_type);
2087 ret = pqisrc_send_aio_tmf(softs, devp, rcb, rcb_to_manage, tmf_type);
2089 ret = pqisrc_send_raid_tmf(softs, devp, rcb, rcb_to_manage, tmf_type);
2097 /* return index into the global (softs) counters based on raid level */
2214 pqisrc_increment_io_counters(pqisrc_softstate_t *softs, rcb_t *rcb)
2218 io_counters_t *pcounter = &softs->counters[type_index];
2241 print_this_counter(pqisrc_softstate_t *softs, io_counters_t *pcounter, char *msg)
2247 if (!softs->log_io_counters)
2299 print_all_counters(pqisrc_softstate_t *softs, uint32_t flags)
2307 pcounter = &softs->counters[ii];
2316 print_this_counter(softs, pcounter, raid_type);
2322 memset(softs->counters, 0, sizeof(softs->counters));