diff options
author | mav <mav@FreeBSD.org> | 2014-07-17 21:16:52 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2014-07-17 21:16:52 +0000 |
commit | c253b272de56534871290ca33584d683c8cfa16d (patch) | |
tree | fc4be5f3b6e4b9743e280f46c8be2a6398ea6dc4 | |
parent | b324b7bdb5795179d4a19f90251bb9e4cf9029e1 (diff) | |
download | FreeBSD-src-c253b272de56534871290ca33584d683c8cfa16d.zip FreeBSD-src-c253b272de56534871290ca33584d683c8cfa16d.tar.gz |
Increase maximal number of SCSI ports in CTL from 32 to 128.
After I gave each iSCSI target its own port, the old limit appeared to be
not so big. This change almost proportionally increases per-LUN memory
use, but it is still three times better then it was before r268807.
MFC after: 2 weeks
-rw-r--r-- | sys/cam/ctl/ctl.c | 3 | ||||
-rw-r--r-- | sys/cam/ctl/ctl_io.h | 2 | ||||
-rw-r--r-- | sys/cam/ctl/ctl_ioctl.h | 2 | ||||
-rw-r--r-- | sys/cam/ctl/ctl_private.h | 6 | ||||
-rw-r--r-- | sys/cam/ctl/ctl_tpc.c | 2 |
5 files changed, 7 insertions, 8 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 43a8a8b..25629a9 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -8208,8 +8208,7 @@ ctl_pro_preempt(struct ctl_softc *softc, struct ctl_lun *lun, uint64_t res_key, && lun->res_type != SPR_TYPE_EX_AC_AR) lun->pr_res_idx = residx; else - lun->pr_res_idx = - CTL_PR_ALL_REGISTRANTS; + lun->pr_res_idx = CTL_PR_ALL_REGISTRANTS; persis_io.hdr.nexus = ctsio->io_hdr.nexus; persis_io.hdr.msg_type = CTL_MSG_PERS_ACTION; diff --git a/sys/cam/ctl/ctl_io.h b/sys/cam/ctl/ctl_io.h index 2e40665..8f4ab92 100644 --- a/sys/cam/ctl/ctl_io.h +++ b/sys/cam/ctl/ctl_io.h @@ -407,7 +407,7 @@ struct ctl_pr_info { ctl_pr_action action; uint8_t sa_res_key[8]; uint8_t res_type; - uint16_t residx; + uint32_t residx; }; struct ctl_ha_msg_hdr { diff --git a/sys/cam/ctl/ctl_ioctl.h b/sys/cam/ctl/ctl_ioctl.h index 94a7cc8..a90475b 100644 --- a/sys/cam/ctl/ctl_ioctl.h +++ b/sys/cam/ctl/ctl_ioctl.h @@ -70,7 +70,7 @@ /* * Maximum number of ports registered at one time. */ -#define CTL_MAX_PORTS 32 +#define CTL_MAX_PORTS 128 /* * Maximum number of initiators we support. diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 7fc4083..23298fa 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -355,8 +355,8 @@ struct ctl_per_res_info { uint8_t registered; }; -#define CTL_PR_ALL_REGISTRANTS 0xFFFF -#define CTL_PR_NO_RESERVATION 0xFFF0 +#define CTL_PR_ALL_REGISTRANTS 0xFFFFFFFF +#define CTL_PR_NO_RESERVATION 0xFFFFFFF0 struct ctl_devid { int len; @@ -398,7 +398,7 @@ struct ctl_lun { struct ctl_per_res_info per_res[2*CTL_MAX_INITIATORS]; unsigned int PRGeneration; int pr_key_count; - uint16_t pr_res_idx; + uint32_t pr_res_idx; uint8_t res_type; uint8_t write_buffer[262144]; struct ctl_devid *lun_devid; diff --git a/sys/cam/ctl/ctl_tpc.c b/sys/cam/ctl/ctl_tpc.c index d5baa01a..ad66ca9 100644 --- a/sys/cam/ctl/ctl_tpc.c +++ b/sys/cam/ctl/ctl_tpc.c @@ -89,7 +89,7 @@ struct tpc_io { struct tpc_list { uint8_t service_action; int init_port; - uint16_t init_idx; + uint32_t init_idx; uint32_t list_id; uint8_t flags; uint8_t *params; |