ctl.c (27dcd3d90b41d3c89eac3c2b50b9a6f515e5c89d) ctl.c (883649681528398dc227778882830fc9da0ce58c)
1/*-
2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3 *
4 * Copyright (c) 2003-2009 Silicon Graphics International Corp.
5 * Copyright (c) 2012 The FreeBSD Foundation
6 * Copyright (c) 2014-2017 Alexander Motin <mav@FreeBSD.org>
7 * Copyright (c) 2017 Jakub Wojciech Klama <jceel@FreeBSD.org>
8 * Copyright (c) 2018 Marcelo Araujo <araujo@FreeBSD.org>

--- 1443 unchanged lines hidden (view full) ---

1452 * want to go through full done processing. Thus
1453 * the COPY flag.
1454 *
1455 * XXX KDM add another flag that is more specific.
1456 */
1457 if (softc->ha_mode != CTL_HA_MODE_XFER)
1458 io->io_hdr.flags |= CTL_FLAG_INT_COPY;
1459 io->io_hdr.nexus = msg->hdr.nexus;
1/*-
2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3 *
4 * Copyright (c) 2003-2009 Silicon Graphics International Corp.
5 * Copyright (c) 2012 The FreeBSD Foundation
6 * Copyright (c) 2014-2017 Alexander Motin <mav@FreeBSD.org>
7 * Copyright (c) 2017 Jakub Wojciech Klama <jceel@FreeBSD.org>
8 * Copyright (c) 2018 Marcelo Araujo <araujo@FreeBSD.org>

--- 1443 unchanged lines hidden (view full) ---

1452 * want to go through full done processing. Thus
1453 * the COPY flag.
1454 *
1455 * XXX KDM add another flag that is more specific.
1456 */
1457 if (softc->ha_mode != CTL_HA_MODE_XFER)
1458 io->io_hdr.flags |= CTL_FLAG_INT_COPY;
1459 io->io_hdr.nexus = msg->hdr.nexus;
1460 io->scsiio.priority = msg->scsi.priority;
1460 io->scsiio.tag_num = msg->scsi.tag_num;
1461 io->scsiio.tag_type = msg->scsi.tag_type;
1462#ifdef CTL_TIME_IO
1463 io->io_hdr.start_time = time_uptime;
1464 getbinuptime(&io->io_hdr.start_bt);
1465#endif /* CTL_TIME_IO */
1466 io->scsiio.cdb_len = msg->scsi.cdb_len;
1467 memcpy(io->scsiio.cdb, msg->scsi.cdb,

--- 10130 unchanged lines hidden (view full) ---

11598 mtx_unlock(&lun->lun_lock);
11599
11600 msg_info.hdr.msg_type = CTL_MSG_SERIALIZE;
11601 msg_info.hdr.original_sc = (union ctl_io *)ctsio;
11602 msg_info.hdr.serializing_sc = NULL;
11603 msg_info.hdr.nexus = ctsio->io_hdr.nexus;
11604 msg_info.scsi.tag_num = ctsio->tag_num;
11605 msg_info.scsi.tag_type = ctsio->tag_type;
1461 io->scsiio.tag_num = msg->scsi.tag_num;
1462 io->scsiio.tag_type = msg->scsi.tag_type;
1463#ifdef CTL_TIME_IO
1464 io->io_hdr.start_time = time_uptime;
1465 getbinuptime(&io->io_hdr.start_bt);
1466#endif /* CTL_TIME_IO */
1467 io->scsiio.cdb_len = msg->scsi.cdb_len;
1468 memcpy(io->scsiio.cdb, msg->scsi.cdb,

--- 10130 unchanged lines hidden (view full) ---

11599 mtx_unlock(&lun->lun_lock);
11600
11601 msg_info.hdr.msg_type = CTL_MSG_SERIALIZE;
11602 msg_info.hdr.original_sc = (union ctl_io *)ctsio;
11603 msg_info.hdr.serializing_sc = NULL;
11604 msg_info.hdr.nexus = ctsio->io_hdr.nexus;
11605 msg_info.scsi.tag_num = ctsio->tag_num;
11606 msg_info.scsi.tag_type = ctsio->tag_type;
11606 msg_info.scsi.cdb_len = ctsio->cdb_len;
11607 memcpy(msg_info.scsi.cdb, ctsio->cdb, CTL_MAX_CDBLEN);
11607 memcpy(msg_info.scsi.cdb, ctsio->cdb, CTL_MAX_CDBLEN);
11608 msg_info.scsi.cdb_len = ctsio->cdb_len;
11609 msg_info.scsi.priority = ctsio->priority;
11608
11609 if ((isc_retval = ctl_ha_msg_send(CTL_HA_CHAN_CTL, &msg_info,
11610 sizeof(msg_info.scsi) - sizeof(msg_info.scsi.sense_data),
11611 M_WAITOK)) > CTL_HA_STATUS_SUCCESS) {
11612 ctl_set_busy(ctsio);
11613 ctl_done((union ctl_io *)ctsio);
11614 return (retval);
11615 }

--- 859 unchanged lines hidden (view full) ---

12475 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN);
12476
12477 sbuf_cat(&sb, path_str);
12478 switch (io->io_hdr.io_type) {
12479 case CTL_IO_SCSI:
12480 ctl_scsi_command_string(&io->scsiio, NULL, &sb);
12481 sbuf_printf(&sb, "\n");
12482 sbuf_cat(&sb, path_str);
11610
11611 if ((isc_retval = ctl_ha_msg_send(CTL_HA_CHAN_CTL, &msg_info,
11612 sizeof(msg_info.scsi) - sizeof(msg_info.scsi.sense_data),
11613 M_WAITOK)) > CTL_HA_STATUS_SUCCESS) {
11614 ctl_set_busy(ctsio);
11615 ctl_done((union ctl_io *)ctsio);
11616 return (retval);
11617 }

--- 859 unchanged lines hidden (view full) ---

12477 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN);
12478
12479 sbuf_cat(&sb, path_str);
12480 switch (io->io_hdr.io_type) {
12481 case CTL_IO_SCSI:
12482 ctl_scsi_command_string(&io->scsiio, NULL, &sb);
12483 sbuf_printf(&sb, "\n");
12484 sbuf_cat(&sb, path_str);
12483 sbuf_printf(&sb, "Tag: 0x%04x, type %d\n",
12484 io->scsiio.tag_num, io->scsiio.tag_type);
12485 sbuf_printf(&sb, "Tag: 0x%04x/%d, Prio: %d\n",
12486 io->scsiio.tag_num, io->scsiio.tag_type,
12487 io->scsiio.priority);
12485 break;
12486 case CTL_IO_TASK:
12488 break;
12489 case CTL_IO_TASK:
12487 sbuf_printf(&sb, "Task I/O type: %d, Tag: 0x%04x, "
12488 "Tag Type: %d\n", io->taskio.task_action,
12490 sbuf_printf(&sb, "Task Action: %d Tag: 0x%04x/%d\n",
12491 io->taskio.task_action,
12489 io->taskio.tag_num, io->taskio.tag_type);
12490 break;
12491 default:
12492 panic("%s: Invalid CTL I/O type %d\n",
12493 __func__, io->io_hdr.io_type);
12494 }
12495 sbuf_cat(&sb, path_str);
12496 sbuf_printf(&sb, "ctl_datamove: %jd seconds\n",

--- 476 unchanged lines hidden (view full) ---

12973 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN);
12974
12975 sbuf_cat(&sb, path_str);
12976 switch (io->io_hdr.io_type) {
12977 case CTL_IO_SCSI:
12978 ctl_scsi_command_string(&io->scsiio, NULL, &sb);
12979 sbuf_printf(&sb, "\n");
12980 sbuf_cat(&sb, path_str);
12492 io->taskio.tag_num, io->taskio.tag_type);
12493 break;
12494 default:
12495 panic("%s: Invalid CTL I/O type %d\n",
12496 __func__, io->io_hdr.io_type);
12497 }
12498 sbuf_cat(&sb, path_str);
12499 sbuf_printf(&sb, "ctl_datamove: %jd seconds\n",

--- 476 unchanged lines hidden (view full) ---

12976 sbuf_new(&sb, str, sizeof(str), SBUF_FIXEDLEN);
12977
12978 sbuf_cat(&sb, path_str);
12979 switch (io->io_hdr.io_type) {
12980 case CTL_IO_SCSI:
12981 ctl_scsi_command_string(&io->scsiio, NULL, &sb);
12982 sbuf_printf(&sb, "\n");
12983 sbuf_cat(&sb, path_str);
12981 sbuf_printf(&sb, "Tag: 0x%04x, type %d\n",
12982 io->scsiio.tag_num, io->scsiio.tag_type);
12984 sbuf_printf(&sb, "Tag: 0x%04x/%d, Prio: %d\n",
12985 io->scsiio.tag_num, io->scsiio.tag_type,
12986 io->scsiio.priority);
12983 break;
12984 case CTL_IO_TASK:
12987 break;
12988 case CTL_IO_TASK:
12985 sbuf_printf(&sb, "Task I/O type: %d, Tag: 0x%04x, "
12986 "Tag Type: %d\n", io->taskio.task_action,
12989 sbuf_printf(&sb, "Task Action: %d Tag: 0x%04x/%d\n",
12990 io->taskio.task_action,
12987 io->taskio.tag_num, io->taskio.tag_type);
12988 break;
12989 default:
12990 panic("%s: Invalid CTL I/O type %d\n",
12991 __func__, io->io_hdr.io_type);
12992 }
12993 sbuf_cat(&sb, path_str);
12994 sbuf_printf(&sb, "ctl_process_done: %jd seconds\n",

--- 573 unchanged lines hidden ---
12991 io->taskio.tag_num, io->taskio.tag_type);
12992 break;
12993 default:
12994 panic("%s: Invalid CTL I/O type %d\n",
12995 __func__, io->io_hdr.io_type);
12996 }
12997 sbuf_cat(&sb, path_str);
12998 sbuf_printf(&sb, "ctl_process_done: %jd seconds\n",

--- 573 unchanged lines hidden ---