Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 025ba826 authored by Amir Shehata's avatar Amir Shehata Committed by Greg Kroah-Hartman
Browse files

staging: lustre: o2iblnd: create default o2iblnd tunable settings



Create and set the default o2iblnd tunables when the ko2iblnd
module loads. Move kiblnd_tunables_setup() to when the NI
iterface is initialized.

Signed-off-by: default avatarAmir Shehata <amir.shehata@intel.com>
Signed-off-by: default avatarJames Simmons <uja.ornl@yahoo.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7101
Reviewed-on: http://review.whamcloud.com/16367


Reviewed-by: default avatarDoug Oucharek <doug.s.oucharek@intel.com>
Reviewed-by: default avatarOlaf Weber <olaf@sgi.com>
Reviewed-by: default avatarOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 9e7d5bf3
Loading
Loading
Loading
Loading
+4 −5
Original line number Original line Diff line number Diff line
@@ -2920,6 +2920,9 @@ static int kiblnd_startup(lnet_ni_t *ni)
	net->ibn_incarnation = tv.tv_sec * USEC_PER_SEC +
	net->ibn_incarnation = tv.tv_sec * USEC_PER_SEC +
			       tv.tv_nsec / NSEC_PER_USEC;
			       tv.tv_nsec / NSEC_PER_USEC;


	rc = kiblnd_tunables_setup();
	if (rc)
		goto net_failed;
	ni->ni_peertimeout    = *kiblnd_tunables.kib_peertimeout;
	ni->ni_peertimeout    = *kiblnd_tunables.kib_peertimeout;
	ni->ni_maxtxcredits   = *kiblnd_tunables.kib_credits;
	ni->ni_maxtxcredits   = *kiblnd_tunables.kib_credits;
	ni->ni_peertxcredits  = *kiblnd_tunables.kib_peertxcredits;
	ni->ni_peertxcredits  = *kiblnd_tunables.kib_peertxcredits;
@@ -3005,8 +3008,6 @@ static void __exit ko2iblnd_exit(void)


static int __init ko2iblnd_init(void)
static int __init ko2iblnd_init(void)
{
{
	int rc;

	CLASSERT(sizeof(kib_msg_t) <= IBLND_MSG_SIZE);
	CLASSERT(sizeof(kib_msg_t) <= IBLND_MSG_SIZE);
	CLASSERT(offsetof(kib_msg_t,
	CLASSERT(offsetof(kib_msg_t,
			  ibm_u.get.ibgm_rd.rd_frags[IBLND_MAX_RDMA_FRAGS])
			  ibm_u.get.ibgm_rd.rd_frags[IBLND_MAX_RDMA_FRAGS])
@@ -3015,9 +3016,7 @@ static int __init ko2iblnd_init(void)
			  ibm_u.putack.ibpam_rd.rd_frags[IBLND_MAX_RDMA_FRAGS])
			  ibm_u.putack.ibpam_rd.rd_frags[IBLND_MAX_RDMA_FRAGS])
			  <= IBLND_MSG_SIZE);
			  <= IBLND_MSG_SIZE);


	rc = kiblnd_tunables_init();
	kiblnd_tunables_init();
	if (rc)
		return rc;


	lnet_register_lnd(&the_o2iblnd);
	lnet_register_lnd(&the_o2iblnd);


+2 −1
Original line number Original line Diff line number Diff line
@@ -994,7 +994,8 @@ int kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, kib_tx_t *tx,
			 kib_fmr_t *fmr);
			 kib_fmr_t *fmr);
void kiblnd_fmr_pool_unmap(kib_fmr_t *fmr, int status);
void kiblnd_fmr_pool_unmap(kib_fmr_t *fmr, int status);


int  kiblnd_tunables_init(void);
int kiblnd_tunables_setup(void);
void kiblnd_tunables_init(void);
void kiblnd_tunables_fini(void);
void kiblnd_tunables_fini(void);


int  kiblnd_connd(void *arg);
int  kiblnd_connd(void *arg);
+14 −2
Original line number Original line Diff line number Diff line
@@ -171,6 +171,8 @@ kib_tunables_t kiblnd_tunables = {
	.kib_nscheds           = &nscheds
	.kib_nscheds           = &nscheds
};
};


static struct lnet_ioctl_config_o2iblnd_tunables default_tunables;

/* # messages/RDMAs in-flight */
/* # messages/RDMAs in-flight */
int kiblnd_msg_queue_size(int version, lnet_ni_t *ni)
int kiblnd_msg_queue_size(int version, lnet_ni_t *ni)
{
{
@@ -182,8 +184,7 @@ int kiblnd_msg_queue_size(int version, lnet_ni_t *ni)
		return peer_credits;
		return peer_credits;
}
}


int
int kiblnd_tunables_setup(void)
kiblnd_tunables_init(void)
{
{
	if (kiblnd_translate_mtu(*kiblnd_tunables.kib_ib_mtu) < 0) {
	if (kiblnd_translate_mtu(*kiblnd_tunables.kib_ib_mtu) < 0) {
		CERROR("Invalid ib_mtu %d, expected 256/512/1024/2048/4096\n",
		CERROR("Invalid ib_mtu %d, expected 256/512/1024/2048/4096\n",
@@ -234,3 +235,14 @@ kiblnd_tunables_init(void)


	return 0;
	return 0;
}
}

void kiblnd_tunables_init(void)
{
	default_tunables.lnd_version = 0;
	default_tunables.lnd_peercredits_hiw = peer_credits_hiw,
	default_tunables.lnd_map_on_demand = map_on_demand;
	default_tunables.lnd_concurrent_sends = concurrent_sends;
	default_tunables.lnd_fmr_pool_size = fmr_pool_size;
	default_tunables.lnd_fmr_flush_trigger = fmr_flush_trigger;
	default_tunables.lnd_fmr_cache = fmr_cache;
}