summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2014-07-30 07:21:30 +0000
committermav <mav@FreeBSD.org>2014-07-30 07:21:30 +0000
commit375621a9a5d80253fd619792558eb4969907ed69 (patch)
tree6e6bb9512f60660f541daac944c187974ff1ee49
parent16407addf1a6adbac1e9305ea5da749a6660bcaf (diff)
downloadFreeBSD-src-375621a9a5d80253fd619792558eb4969907ed69.zip
FreeBSD-src-375621a9a5d80253fd619792558eb4969907ed69.tar.gz
MFC r268808:
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.
-rw-r--r--sys/cam/ctl/ctl.c3
-rw-r--r--sys/cam/ctl/ctl_io.h2
-rw-r--r--sys/cam/ctl/ctl_ioctl.h2
-rw-r--r--sys/cam/ctl/ctl_private.h6
-rw-r--r--sys/cam/ctl/ctl_tpc.c2
5 files changed, 7 insertions, 8 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
index 6af71f39..421360c 100644
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -8210,8 +8210,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;
OpenPOWER on IntegriCloud