+++ /dev/null
-/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
- *
- * Author: Eric Barton <eric@bartonsoftware.com>
- *
- * This file is part of Portals, http://www.lustre.org
- *
- * Portals is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * Portals is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Portals; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-#include "qswlnd.h"
-
-static int tx_maxcontig = (1<<10);
-CFS_MODULE_PARM(tx_maxcontig, "i", int, 0444,
- "maximum payload to de-fragment");
-
-static int ntxmsgs = 512;
-CFS_MODULE_PARM(ntxmsgs, "i", int, 0444,
- "# tx msg buffers");
-
-static int credits = 128;
-CFS_MODULE_PARM(credits, "i", int, 0444,
- "# concurrent sends");
-
-static int peer_credits = 8;
-CFS_MODULE_PARM(peer_credits, "i", int, 0444,
- "# per-peer concurrent sends");
-
-static int nrxmsgs_large = 64;
-CFS_MODULE_PARM(nrxmsgs_large, "i", int, 0444,
- "# 'large' rx msg buffers");
-
-static int ep_envelopes_large = 256;
-CFS_MODULE_PARM(ep_envelopes_large, "i", int, 0444,
- "# 'large' rx msg envelope buffers");
-
-static int nrxmsgs_small = 256;
-CFS_MODULE_PARM(nrxmsgs_small, "i", int, 0444,
- "# 'small' rx msg buffers");
-
-static int ep_envelopes_small = 2048;
-CFS_MODULE_PARM(ep_envelopes_small, "i", int, 0444,
- "# 'small' rx msg envelope buffers");
-
-static int optimized_puts = (32<<10);
-CFS_MODULE_PARM(optimized_puts, "i", int, 0644,
- "zero-copy puts >= this size");
-
-static int optimized_gets = 2048;
-CFS_MODULE_PARM(optimized_gets, "i", int, 0644,
- "zero-copy gets >= this size");
-
-#if KQSW_CKSUM
-static int inject_csum_error = 0;
-CFS_MODULE_PARM(inject_csum_error, "i", int, 0644,
- "test checksumming");
-#endif
-
-kqswnal_tunables_t kqswnal_tunables = {
- .kqn_tx_maxcontig = &tx_maxcontig,
- .kqn_ntxmsgs = &ntxmsgs,
- .kqn_credits = &credits,
- .kqn_peercredits = &peer_credits,
- .kqn_nrxmsgs_large = &nrxmsgs_large,
- .kqn_ep_envelopes_large = &ep_envelopes_large,
- .kqn_nrxmsgs_small = &nrxmsgs_small,
- .kqn_ep_envelopes_small = &ep_envelopes_small,
- .kqn_optimized_puts = &optimized_puts,
- .kqn_optimized_gets = &optimized_gets,
-#if KQSW_CKSUM
- .kqn_inject_csum_error = &inject_csum_error,
-#endif
-};
-
-#if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM
-
-static struct ctl_table kqswnal_ctl_table[] = {
- {
- INIT_CTL_NAME
- .procname = "tx_maxcontig",
- .data = &tx_maxcontig,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "ntxmsgs",
- .data = &ntxmsgs,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "credits",
- .data = &credits,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "peer_credits",
- .data = &peer_credits,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "nrxmsgs_large",
- .data = &nrxmsgs_large,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "ep_envelopes_large",
- .data = &ep_envelopes_large,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "nrxmsgs_small",
- .data = &nrxmsgs_small,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "ep_envelopes_small",
- .data = &ep_envelopes_small,
- .maxlen = sizeof (int),
- .mode = 0444,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "optimized_puts",
- .data = &optimized_puts,
- .maxlen = sizeof (int),
- .mode = 0644,
- .proc_handler = &proc_dointvec
- },
- {
- INIT_CTL_NAME
- .procname = "optimized_gets",
- .data = &optimized_gets,
- .maxlen = sizeof (int),
- .mode = 0644,
- .proc_handler = &proc_dointvec
- },
-#if KQSW_CKSUM
- {
- INIT_CTL_NAME
- .procname = "inject_csum_error",
- .data = &inject_csum_error,
- .maxlen = sizeof (int),
- .mode = 0644,
- .proc_handler = &proc_dointvec
- },
-#endif
- { 0 }
-};
-
-static struct ctl_table kqswnal_top_ctl_table[] = {
- {
- INIT_CTL_NAME
- .procname = "qswnal",
- .data = NULL,
- .maxlen = 0,
- .mode = 0555,
- .child = kqswnal_ctl_table
- },
- { 0 }
-};
-
-int
-kqswnal_tunables_init ()
-{
- kqswnal_tunables.kqn_sysctl =
- register_sysctl_table(kqswnal_top_ctl_table);
-
- if (kqswnal_tunables.kqn_sysctl == NULL)
- CWARN("Can't setup /proc tunables\n");
-
- return 0;
-}
-
-void kqswnal_tunables_fini()
-{
- if (kqswnal_tunables.kqn_sysctl != NULL)
- unregister_sysctl_table(kqswnal_tunables.kqn_sysctl);
-}
-#else
-int
-kqswnal_tunables_init ()
-{
- return 0;
-}
-
-void
-kqswnal_tunables_fini ()
-{
-}
-#endif