From 750dfbfc21cb156135d678c4d8b8956901f90145 Mon Sep 17 00:00:00 2001 From: shadow Date: Thu, 20 Nov 2008 09:24:35 +0000 Subject: [PATCH] first part of 2.6.26 support (lnet/libcfs part) Branch HEAD b=14250 i=maxim i=deen --- libcfs/autoconf/lustre-libcfs.m4 | 58 ++++++ libcfs/include/libcfs/linux/kp30.h | 19 ++ libcfs/include/libcfs/linux/linux-prim.h | 11 ++ libcfs/libcfs/linux/linux-curproc.c | 32 +-- libcfs/libcfs/linux/linux-proc.c | 66 ++++--- lnet/klnds/gmlnd/gmlnd.h | 1 + lnet/klnds/gmlnd/gmlnd_module.c | 41 +++- lnet/klnds/iiblnd/iiblnd.h | 1 + lnet/klnds/iiblnd/iiblnd_modparams.c | 68 +++++-- lnet/klnds/mxlnd/mxlnd.h | 1 + lnet/klnds/o2iblnd/o2iblnd.h | 2 + lnet/klnds/o2iblnd/o2iblnd_cb.c | 11 +- lnet/klnds/o2iblnd/o2iblnd_modparams.c | 71 +++++-- lnet/klnds/openiblnd/openiblnd.h | 1 + lnet/klnds/openiblnd/openiblnd_modparams.c | 54 ++++-- lnet/klnds/ptllnd/ptllnd.h | 1 + lnet/klnds/ptllnd/ptllnd_modparams.c | 78 ++++++-- lnet/klnds/qswlnd/qswlnd.h | 1 + lnet/klnds/qswlnd/qswlnd_modparams.c | 56 ++++-- lnet/klnds/ralnd/ralnd.h | 1 + lnet/klnds/ralnd/ralnd_modparams.c | 46 ++++- lnet/klnds/socklnd/socklnd.h | 1 + lnet/klnds/socklnd/socklnd_lib-linux.c | 301 ++++++++++++++++++----------- lnet/klnds/viblnd/viblnd.h | 1 + lnet/klnds/viblnd/viblnd_modparams.c | 87 +++++++-- lnet/lnet/router_proc.c | 23 ++- 26 files changed, 757 insertions(+), 276 deletions(-) diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index ae74dc0..e536a79 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -363,6 +363,59 @@ LB_LINUX_TRY_COMPILE([ ]) ]) +# 2.6.24 request not use real numbers for ctl_name +AC_DEFUN([LN_SYSCTL_UNNUMBERED], +[AC_MSG_CHECKING([for CTL_UNNUMBERED]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + #ifndef CTL_UNNUMBERED + #error CTL_UNNUMBERED not exist in kernel + #endif +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SYSCTL_UNNUMBERED, 1, + [sysctl has CTL_UNNUMBERED]) +],[ + AC_MSG_RESULT(NO) +]) +]) + +# 2.6.24 lost scatterlist->page +AC_DEFUN([LN_SCATTERLIST_SETPAGE], +[AC_MSG_CHECKING([for exist sg_set_page]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + sg_set_page(NULL,NULL,0,0); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SCATTERLIST_SETPAGE, 1, + [struct scatterlist has page member]) +],[ + AC_MSG_RESULT(NO) +]) +]) + +# 2.6.26 use int instead of atomic for sem.count +AC_DEFUN([LN_SEM_COUNT], +[AC_MSG_CHECKING([atomic sem.count]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + struct semaphore s; + + atomic_read(&s.count); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SEM_COUNT_ATOMIC, 1, + [semaphore counter is atomic]) +],[ + AC_MSG_RESULT(NO) +]) +]) + + # # LIBCFS_PROG_LINUX # @@ -393,6 +446,11 @@ LIBCFS_2ARGS_REGISTER_SYSCTL LIBCFS_KMEM_CACHE # 2.6.23 LIBCFS_KMEM_CACHE_CREATE_DTOR +# 2.6.24 +LN_SYSCTL_UNNUMBERED +LN_SCATTERLIST_SETPAGE +# 2.6.26 +LN_SEM_COUNT ]) # diff --git a/libcfs/include/libcfs/linux/kp30.h b/libcfs/include/libcfs/linux/kp30.h index 02a45e1..40f15b9 100644 --- a/libcfs/include/libcfs/linux/kp30.h +++ b/libcfs/include/libcfs/linux/kp30.h @@ -76,6 +76,7 @@ # include # include #endif +#include #include @@ -137,6 +138,12 @@ static inline void our_cond_resched(void) #endif #define LASSERT_SEM_LOCKED(sem) LASSERT(down_trylock(sem) != 0) +#ifdef HAVE_SEM_COUNT_ATOMIC +#define SEM_COUNT(sem) (atomic_read(&(sem)->count)) +#else +#define SEM_COUNT(sem) ((sem)->count) +#endif + #define LIBCFS_PANIC(msg) panic(msg) /* ------------------------------------------------------------------- */ @@ -384,4 +391,16 @@ extern int lwt_snapshot (cycles_t *now, int *ncpu, int *total_size, #undef _LWORDSIZE +/* compat macroses */ +#ifndef HAVE_SCATTERLIST_SETPAGE +static inline void sg_set_page(struct scatterlist *sg, struct page *page, + unsigned int len, unsigned int offset) +{ + sg->page = page; + sg->offset = offset; + sg->length = len; +} +#endif + + #endif diff --git a/libcfs/include/libcfs/linux/linux-prim.h b/libcfs/include/libcfs/linux/linux-prim.h index 3414c9c..1f3cbee 100644 --- a/libcfs/include/libcfs/linux/linux-prim.h +++ b/libcfs/include/libcfs/linux/linux-prim.h @@ -88,6 +88,17 @@ typedef struct ctl_table_header cfs_sysctl_table_header_t; #endif #define cfs_unregister_sysctl_table(t) unregister_sysctl_table(t) +#define DECLARE_PROC_HANDLER(name) \ +static int \ +LL_PROC_PROTO(name) \ +{ \ + DECLARE_LL_PROC_PPOS_DECL; \ + \ + return proc_call_handler(table->data, write, \ + ppos, buffer, lenp, \ + __##name); \ +} + /* * Symbol register */ diff --git a/libcfs/libcfs/linux/linux-curproc.c b/libcfs/libcfs/linux/linux-curproc.c index eb12dae..2af60cd 100644 --- a/libcfs/libcfs/linux/linux-curproc.c +++ b/libcfs/libcfs/linux/linux-curproc.c @@ -138,24 +138,30 @@ int cfs_cap_raised(cfs_cap_t cap) { return cap_raised(cfs_current()->cap_effective, cfs_cap_unpack(cap)); } - -cfs_cap_t cfs_curproc_cap_pack(void) { -#if _LINUX_CAPABILITY_VERSION == 0x19980330 - return cfs_cap_pack(current->cap_effective); -#elif _LINUX_CAPABILITY_VERSION == 0x20071026 - return cfs_cap_pack(current->cap_effective[0]); +void cfs_kernel_cap_pack(cfs_kernel_cap_t kcap, cfs_cap_t *cap) +{ +#if defined (_LINUX_CAPABILITY_VERSION) && _LINUX_CAPABILITY_VERSION == 0x19980330 + *cap = cfs_cap_pack(kcap); +#elif defined (_LINUX_CAPABILITY_VERSION) && _LINUX_CAPABILITY_VERSION == 0x20071026 + *cap = cfs_cap_pack(kcap[0]); +#elif defined(_KERNEL_CAPABILITY_VERSION) && _KERNEL_CAPABILITY_VERSION == 0x20080522 + /* XXX lost high byte */ + *cap = cfs_cap_pack(kcap.cap[0]); #else - #error "need correct _LINUX_CAPABILITY_VERSION " + #error "need correct _KERNEL_CAPABILITY_VERSION " #endif } -void cfs_curproc_cap_unpack(cfs_cap_t cap) { -#if _LINUX_CAPABILITY_VERSION == 0x19980330 - current->cap_effective = cfs_cap_unpack(cap); -#elif _LINUX_CAPABILITY_VERSION == 0x20071026 - current->cap_effective[0] = cfs_cap_unpack(cap); +void cfs_kernel_cap_unpack(cfs_kernel_cap_t *kcap, cfs_cap_t cap) +{ +#if defined (_LINUX_CAPABILITY_VERSION) && _LINUX_CAPABILITY_VERSION == 0x19980330 + *kcap = cfs_cap_unpack(cap); +#elif defined (_LINUX_CAPABILITY_VERSION) && _LINUX_CAPABILITY_VERSION == 0x20071026 + (*kcap)[0] = cfs_cap_unpack(cap); +#elif defined(_KERNEL_CAPABILITY_VERSION) && _KERNEL_CAPABILITY_VERSION == 0x20080522 + kcap->cap[0] = cfs_cap_unpack(cap); #else - #error "need correct _LINUX_CAPABILITY_VERSION " + #error "need correct _KERNEL_CAPABILITY_VERSION " #endif } diff --git a/libcfs/libcfs/linux/linux-proc.c b/libcfs/libcfs/linux/linux-proc.c index 1d24167..6dd620a 100644 --- a/libcfs/libcfs/linux/linux-proc.c +++ b/libcfs/libcfs/linux/linux-proc.c @@ -83,7 +83,8 @@ extern char lnet_upcall[1024]; */ extern char lnet_debug_log_upcall[1024]; -#define PSDEV_LNET (0x100) +#ifndef HAVE_SYSCTL_UNNUMBERED +#define CTL_LNET (0x100) enum { PSDEV_DEBUG = 1, /* control debugging */ PSDEV_SUBSYSTEM_DEBUG, /* control debugging */ @@ -103,6 +104,27 @@ enum { PSDEV_LNET_DEBUG_MB, /* size of debug buffer */ PSDEV_LNET_DEBUG_LOG_UPCALL, /* debug log upcall script */ }; +#else +#define CTL_LNET CTL_UNNUMBERED +#define PSDEV_DEBUG CTL_UNNUMBERED +#define PSDEV_SUBSYSTEM_DEBUG CTL_UNNUMBERED +#define PSDEV_PRINTK CTL_UNNUMBERED +#define PSDEV_CONSOLE_RATELIMIT CTL_UNNUMBERED +#define PSDEV_CONSOLE_MAX_DELAY_CS CTL_UNNUMBERED +#define PSDEV_CONSOLE_MIN_DELAY_CS CTL_UNNUMBERED +#define PSDEV_CONSOLE_BACKOFF CTL_UNNUMBERED +#define PSDEV_DEBUG_PATH CTL_UNNUMBERED +#define PSDEV_DEBUG_DUMP_PATH CTL_UNNUMBERED +#define PSDEV_LNET_UPCALL CTL_UNNUMBERED +#define PSDEV_LNET_MEMUSED CTL_UNNUMBERED +#define PSDEV_LNET_CATASTROPHE CTL_UNNUMBERED +#define PSDEV_LNET_PANIC_ON_LBUG CTL_UNNUMBERED +#define PSDEV_LNET_DUMP_KERNEL CTL_UNNUMBERED +#define PSDEV_LNET_DAEMON_FILE CTL_UNNUMBERED +#define PSDEV_LNET_DEBUG_MB CTL_UNNUMBERED +#define PSDEV_LNET_DEBUG_LOG_UPCALL CTL_UNNUMBERED +#endif + static int proc_call_handler(void *data, int write, @@ -123,17 +145,7 @@ proc_call_handler(void *data, int write, } return 0; } - -#define DECLARE_PROC_HANDLER(name) \ -static int \ -LL_PROC_PROTO(name) \ -{ \ - DECLARE_LL_PROC_PPOS_DECL; \ - \ - return proc_call_handler(table->data, write, \ - ppos, buffer, lenp, \ - __##name); \ -} +EXPORT_SYMBOL(proc_call_handler); static int __proc_dobitmasks(void *data, int write, loff_t pos, void *buffer, int nob) @@ -324,7 +336,7 @@ static cfs_sysctl_table_t lnet_table[] = { .data = &libcfs_debug, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dobitmasks + .proc_handler = &proc_dobitmasks, }, { .ctl_name = PSDEV_SUBSYSTEM_DEBUG, @@ -332,7 +344,7 @@ static cfs_sysctl_table_t lnet_table[] = { .data = &libcfs_subsystem_debug, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dobitmasks + .proc_handler = &proc_dobitmasks, }, { .ctl_name = PSDEV_PRINTK, @@ -340,7 +352,7 @@ static cfs_sysctl_table_t lnet_table[] = { .data = &libcfs_printk, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dobitmasks + .proc_handler = &proc_dobitmasks, }, { .ctl_name = PSDEV_CONSOLE_RATELIMIT, @@ -403,7 +415,8 @@ static cfs_sysctl_table_t lnet_table[] = { .data = (int *)&libcfs_kmemory.counter, .maxlen = sizeof(int), .mode = 0444, - .proc_handler = &proc_dointvec + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, }, { .ctl_name = PSDEV_LNET_CATASTROPHE, @@ -411,7 +424,8 @@ static cfs_sysctl_table_t lnet_table[] = { .data = &libcfs_catastrophe, .maxlen = sizeof(int), .mode = 0444, - .proc_handler = &proc_dointvec + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, }, { .ctl_name = PSDEV_LNET_PANIC_ON_LBUG, @@ -419,11 +433,13 @@ static cfs_sysctl_table_t lnet_table[] = { .data = &libcfs_panic_on_lbug, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, }, { .ctl_name = PSDEV_LNET_DUMP_KERNEL, .procname = "dump_kernel", + .maxlen = 256, .mode = 0200, .proc_handler = &proc_dump_kernel, }, @@ -431,6 +447,7 @@ static cfs_sysctl_table_t lnet_table[] = { .ctl_name = PSDEV_LNET_DAEMON_FILE, .procname = "daemon_file", .mode = 0644, + .maxlen = 256, .proc_handler = &proc_daemon_file, }, { @@ -442,21 +459,24 @@ static cfs_sysctl_table_t lnet_table[] = { {0} }; -static cfs_sysctl_table_t top_table[2] = { +static cfs_sysctl_table_t top_table[] = { { - .ctl_name = PSDEV_LNET, + .ctl_name = CTL_LNET, .procname = "lnet", + .mode = 0555, .data = NULL, .maxlen = 0, - .mode = 0555, - .child = lnet_table + .child = lnet_table, }, - {0} + { + .ctl_name = 0 + } }; int insert_proc(void) { #ifdef CONFIG_SYSCTL + printk("call register\n"); if (lnet_table_header == NULL) lnet_table_header = cfs_register_sysctl_table(top_table, 0); #endif diff --git a/lnet/klnds/gmlnd/gmlnd.h b/lnet/klnds/gmlnd/gmlnd.h index 82af0ce..d996857 100644 --- a/lnet/klnds/gmlnd/gmlnd.h +++ b/lnet/klnds/gmlnd/gmlnd.h @@ -83,6 +83,7 @@ #include "libcfs/libcfs.h" #include "lnet/lnet.h" #include "lnet/lib-lnet.h" +#include "lnet/lnet-sysctl.h" /* undefine these before including the GM headers which clash */ #undef PACKAGE_BUGREPORT diff --git a/lnet/klnds/gmlnd/gmlnd_module.c b/lnet/klnds/gmlnd/gmlnd_module.c index 3d89b8a..48ed02f 100644 --- a/lnet/klnds/gmlnd/gmlnd_module.c +++ b/lnet/klnds/gmlnd/gmlnd_module.c @@ -78,9 +78,34 @@ gmnal_tunables_t gmnal_tunables = { }; #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM + +#ifndef HAVE_SYSCTL_UNNUMBERED + +enum { + GMLND_PORT = 1, + GMLND_NTX, + GMLND_CREDITS, + GMLND_PEERCREDITS, + GMLND_NLARGE_TX_BUFS, + GMLND_NRX_SMALL, + GMLND_NRX_LARGE +}; + +#else + +#define GMLND_PORT CTL_UNNUMBERED +#define GMLND_NTX CTL_UNNUMBERED +#define GMLND_CREDITS CTL_UNNUMBERED +#define GMLND_PEERCREDITS CTL_UNNUMBERED +#define GMLND_NLARGE_TX_BUFS CTL_UNNUMBERED +#define GMLND_NRX_SMALL CTL_UNNUMBERED +#define GMLND_NRX_LARGE CTL_UNNUMBERED + +#endif + static cfs_sysctl_table_t gmnal_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = GMLND_PORT, .procname = "port", .data = &port, .maxlen = sizeof (int), @@ -88,7 +113,7 @@ static cfs_sysctl_table_t gmnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 2, + .ctl_name = GMLND_NTX, .procname = "ntx", .data = &ntx, .maxlen = sizeof (int), @@ -96,7 +121,7 @@ static cfs_sysctl_table_t gmnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 3, + .ctl_name = GMLND_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof (int), @@ -104,7 +129,7 @@ static cfs_sysctl_table_t gmnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = GMLND_PEERCREDITS, .procname = "peer_credits", .data = &peer_credits, .maxlen = sizeof (int), @@ -112,7 +137,7 @@ static cfs_sysctl_table_t gmnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = GMLND_NLARGE_TX_BUFS, .procname = "nlarge_tx_bufs", .data = &nlarge_tx_bufs, .maxlen = sizeof (int), @@ -120,7 +145,7 @@ static cfs_sysctl_table_t gmnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = GMLND_NRX_SMALL, .procname = "nrx_small", .data = &nrx_small, .maxlen = sizeof (int), @@ -128,7 +153,7 @@ static cfs_sysctl_table_t gmnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = GMLND_NRX_LARGE, .procname = "nrx_large", .data = &nrx_large, .maxlen = sizeof (int), @@ -140,7 +165,7 @@ static cfs_sysctl_table_t gmnal_ctl_table[] = { static cfs_sysctl_table_t gmnal_top_ctl_table[] = { { - .ctl_name = 207, + .ctl_name = CTL_GMLND, .procname = "gmnal", .data = NULL, .maxlen = 0, diff --git a/lnet/klnds/iiblnd/iiblnd.h b/lnet/klnds/iiblnd/iiblnd.h index 622d498..d78b7fc 100644 --- a/lnet/klnds/iiblnd/iiblnd.h +++ b/lnet/klnds/iiblnd/iiblnd.h @@ -71,6 +71,7 @@ #include #include #include +#include #include diff --git a/lnet/klnds/iiblnd/iiblnd_modparams.c b/lnet/klnds/iiblnd/iiblnd_modparams.c index a27f3e5..8e7212d 100644 --- a/lnet/klnds/iiblnd/iiblnd_modparams.c +++ b/lnet/klnds/iiblnd/iiblnd_modparams.c @@ -119,9 +119,47 @@ kib_tunables_t kibnal_tunables = { * not to truncate the printout; it only needs to be the actual size of the * string buffer if we allow writes (and we don't) */ +#ifdef HAVE_SYSCTL_UNNUMBERED + +enum { + IIBLND_IPIF_BASENAME = 1, + IIBLND_SERVICE_NAME, + IIBLND_SERVICE_NUMBER, + IIBLND_RECONNECT_MIN, + IIBLND_RECONNECT_MAX, + IIBLND_CONCURRENT_PEERS, + IIBLND_CKSUM, + IIBLND_TIMEOUT, + IIBLND_NTX, + IIBLND_CREDITS, + IIBLND_PEER_CREDITS, + IIBLND_SD_RETRIES, + IIBLND_KEEPALIVE, + IIBLND_CONCURRENT_SENDS +}; + +#else + +#define IIBLND_IPIF_BASENAME CTL_UNNUMBERED +#define IIBLND_SERVICE_NAME CTL_UNNUMBERED +#define IIBLND_SERVICE_NUMBER CTL_UNNUMBERED +#define IIBLND_RECONNECT_MIN CTL_UNNUMBERED +#define IIBLND_RECONNECT_MAX CTL_UNNUMBERED +#define IIBLND_CONCURRENT_PEERS CTL_UNNUMBERED +#define IIBLND_CKSUM CTL_UNNUMBERED +#define IIBLND_TIMEOUT CTL_UNNUMBERED +#define IIBLND_NTX CTL_UNNUMBERED +#define IIBLND_CREDITS CTL_UNNUMBERED +#define IIBLND_PEER_CREDITS CTL_UNNUMBERED +#define IIBLND_SD_RETRIES CTL_UNNUMBERED +#define IIBLND_KEEPALIVE CTL_UNNUMBERED +#define IIBLND_CONCURRENT_SENDS CTL_UNNUMBERED + +#endif + static cfs_sysctl_table_t kibnal_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = IBBLND_IPIF_BASENAME, .procname = "ipif_basename", .data = &ipif_basename, .maxlen = 1024, @@ -129,7 +167,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dostring }, { - .ctl_name = 2, + .ctl_name = IIBLND_SERVICE_NAME, .procname = "service_name", .data = &service_name, .maxlen = 1024, @@ -137,7 +175,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dostring }, { - .ctl_name = 3, + .ctl_name = IIBLND_SERVICE_NUMBER, .procname = "service_number", .data = &service_number, .maxlen = sizeof(int), @@ -145,7 +183,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = IIBLND_RECONNECT_MIN, .procname = "min_reconnect_interval", .data = &min_reconnect_interval, .maxlen = sizeof(int), @@ -153,7 +191,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = IIBLND_RECONNECT_MAX, .procname = "max_reconnect_interval", .data = &max_reconnect_interval, .maxlen = sizeof(int), @@ -161,7 +199,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = IIBLND_CONCURRENT_PEERS, .procname = "concurrent_peers", .data = &concurrent_peers, .maxlen = sizeof(int), @@ -169,7 +207,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = IIBLND_CKSUM, .procname = "cksum", .data = &cksum, .maxlen = sizeof(int), @@ -177,7 +215,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 8, + .ctl_name = IIBLND_TIMEOUT, .procname = "timeout", .data = &timeout, .maxlen = sizeof(int), @@ -185,7 +223,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 9, + .ctl_name = IIBLND_NTX, .procname = "ntx", .data = &ntx, .maxlen = sizeof(int), @@ -193,7 +231,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 10, + .ctl_name = IIBLND_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof(int), @@ -201,7 +239,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 11, + .ctl_name = IIBLND_PEER_CREDITS, .procname = "peer_credits", .data = &peer_credits, .maxlen = sizeof(int), @@ -209,7 +247,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 12, + .ctl_name = IIBLND_SD_RETRIES, .procname = "sd_retries", .data = &sd_retries, .maxlen = sizeof(int), @@ -217,7 +255,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 13, + .ctl_name = IIBLND_KEEPALIVE, .procname = "keepalive", .data = &keepalive, .maxlen = sizeof(int), @@ -225,7 +263,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 14, + .ctl_name = IIBLND_CONCURRENT_SENDS, .procname = "concurrent_sends", .data = &concurrent_sends, .maxlen = sizeof(int), @@ -237,7 +275,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { static cfs_sysctl_table_t kibnal_top_ctl_table[] = { { - .ctl_name = 203, + .ctl_name = CTL_IIBLND, .procname = "iibnal", .data = NULL, .maxlen = 0, diff --git a/lnet/klnds/mxlnd/mxlnd.h b/lnet/klnds/mxlnd/mxlnd.h index 777de25..afe728f 100644 --- a/lnet/klnds/mxlnd/mxlnd.h +++ b/lnet/klnds/mxlnd/mxlnd.h @@ -85,6 +85,7 @@ #include "libcfs/libcfs.h" #include "lnet/lnet.h" #include "lnet/lib-lnet.h" +#include #define MX_KERNEL 1 #include "mx_extensions.h" diff --git a/lnet/klnds/o2iblnd/o2iblnd.h b/lnet/klnds/o2iblnd/o2iblnd.h index c87d34f..7276c9a 100644 --- a/lnet/klnds/o2iblnd/o2iblnd.h +++ b/lnet/klnds/o2iblnd/o2iblnd.h @@ -76,6 +76,7 @@ #include #include #include +#include #if !HAVE_GFP_T typedef int gfp_t; @@ -773,3 +774,4 @@ int kiblnd_send(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg); int kiblnd_recv(lnet_ni_t *ni, void *private, lnet_msg_t *lntmsg, int delayed, unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov, unsigned int offset, unsigned int mlen, unsigned int rlen); + diff --git a/lnet/klnds/o2iblnd/o2iblnd_cb.c b/lnet/klnds/o2iblnd/o2iblnd_cb.c index 86125ad..7bef169 100644 --- a/lnet/klnds/o2iblnd/o2iblnd_cb.c +++ b/lnet/klnds/o2iblnd/o2iblnd_cb.c @@ -643,9 +643,7 @@ kiblnd_setup_rd_iov(lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd, fragnob = min((int)(iov->iov_len - offset), nob); fragnob = min(fragnob, (int)PAGE_SIZE - page_offset); - sg->page = page; - sg->offset = page_offset; - sg->length = fragnob; + sg_set_page(sg, page, fragnob, page_offset); sg++; if (offset + fragnob < iov->iov_len) { @@ -708,11 +706,10 @@ kiblnd_setup_rd_kiov (lnet_ni_t *ni, kib_tx_t *tx, kib_rdma_desc_t *rd, fragnob = min((int)(kiov->kiov_len - offset), nob); memset(sg, 0, sizeof(*sg)); - sg->page = kiov->kiov_page; - sg->offset = kiov->kiov_offset + offset; - sg->length = fragnob; + sg_set_page(sg, kiov->kiov_page, fragnob, + kiov->kiov_offset + offset); sg++; - + offset = 0; kiov++; nkiov--; diff --git a/lnet/klnds/o2iblnd/o2iblnd_modparams.c b/lnet/klnds/o2iblnd/o2iblnd_modparams.c index 91c7520..dff7e7c 100644 --- a/lnet/klnds/o2iblnd/o2iblnd_modparams.c +++ b/lnet/klnds/o2iblnd/o2iblnd_modparams.c @@ -130,9 +130,48 @@ kib_tunables_t kiblnd_tunables = { static char ipif_basename_space[32]; +#ifndef HAVE_SYSCTL_UNNUMBERED + +enum { + O2IBLND_SERVICE = 1, + O2IBLND_CKSUM, + O2IBLND_TIMEOUT, + O2IBLND_NTX, + O2IBLND_CREDITS, + O2IBLND_PEER_CREDITS, + O2IBLND_IPIF_BASENAME, + O2IBLND_RETRY_COUNT, + O2IBLND_RNR_RETRY_COUNT, + O2IBLND_KEEPALIVE, + O2IBLND_CONCURRENT_SENDS, + O2IBLND_IB_MTU, + O2IBLND_FMR_POOL_SIZE, + O2IBLND_FMR_FLUSH_TRIGGER, + O2IBLND_FMR_CACHE +}; +#else + +#define O2IBLND_SERVICE CTL_UNNUMBERED +#define O2IBLND_CKSUM CTL_UNNUMBERED +#define O2IBLND_TIMEOUT CTL_UNNUMBERED +#define O2IBLND_NTX CTL_UNNUMBERED +#define O2IBLND_CREDITS CTL_UNNUMBERED +#define O2IBLND_PEER_CREDITS CTL_UNNUMBERED +#define O2IBLND_IPIF_BASENAME CTL_UNNUMBERED +#define O2IBLND_RETRY_COUNT CTL_UNNUMBERED +#define O2IBLND_RNR_RETRY_COUNT CTL_UNNUMBERED +#define O2IBLND_KEEPALIVE CTL_UNNUMBERED +#define O2IBLND_CONCURRENT_SENDS CTL_UNNUMBERED +#define O2IBLND_IB_MTU CTL_UNNUMBERED +#define O2IBLND_FMR_POOL_SIZE CTL_UNNUMBERED +#define O2IBLND_FMR_FLUSH_TRIGGER CTL_UNNUMBERED +#define O2IBLND_FMR_CACHE CTL_UNNUMBERED + +#endif + static cfs_sysctl_table_t kiblnd_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = O2IBLND_SERVICE, .procname = "service", .data = &service, .maxlen = sizeof(int), @@ -140,7 +179,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 2, + .ctl_name = O2IBLND_CKSUM, .procname = "cksum", .data = &cksum, .maxlen = sizeof(int), @@ -148,7 +187,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 3, + .ctl_name = O2IBLND_TIMEOUT, .procname = "timeout", .data = &timeout, .maxlen = sizeof(int), @@ -156,7 +195,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = O2IBLND_NTX, .procname = "ntx", .data = &ntx, .maxlen = sizeof(int), @@ -164,7 +203,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = O2IBLND_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof(int), @@ -172,7 +211,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = O2IBLND_PEER_CREDITS, .procname = "peer_credits", .data = &peer_credits, .maxlen = sizeof(int), @@ -180,7 +219,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = O2IBLND_IPIF_BASENAME, .procname = "ipif_name", .data = ipif_basename_space, .maxlen = sizeof(ipif_basename_space), @@ -188,7 +227,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dostring }, { - .ctl_name = 8, + .ctl_name = O2IBLND_RETRY_COUNT, .procname = "retry_count", .data = &retry_count, .maxlen = sizeof(int), @@ -196,7 +235,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 9, + .ctl_name = O2IBLND_RNR_RETRY_COUNT, .procname = "rnr_retry_count", .data = &rnr_retry_count, .maxlen = sizeof(int), @@ -204,7 +243,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 10, + .ctl_name = O2IBLND_KEEPALIVE, .procname = "keepalive", .data = &keepalive, .maxlen = sizeof(int), @@ -212,7 +251,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 11, + .ctl_name = O2IBLND_CONCURRENT_SENDS, .procname = "concurrent_sends", .data = &concurrent_sends, .maxlen = sizeof(int), @@ -220,7 +259,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 12, + .ctl_name = O2IBLND_IB_MTU, .procname = "ib_mtu", .data = &ib_mtu, .maxlen = sizeof(int), @@ -229,7 +268,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { }, #if IBLND_MAP_ON_DEMAND { - .ctl_name = 13, + .ctl_name = O2IBLND_FMR_POOL_SIZE, .procname = "fmr_pool_size", .data = &fmr_pool_size, .maxlen = sizeof(int), @@ -237,7 +276,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 14, + .ctl_name = O2IBLND_FMR_FLUSH_TRIGGER, .procname = "fmr_flush_trigger", .data = &fmr_flush_trigger, .maxlen = sizeof(int), @@ -245,7 +284,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 15, + .ctl_name = O2IBLND_FMR_CACHE, .procname = "fmr_cache", .data = &fmr_cache, .maxlen = sizeof(int), @@ -258,7 +297,7 @@ static cfs_sysctl_table_t kiblnd_ctl_table[] = { static cfs_sysctl_table_t kiblnd_top_ctl_table[] = { { - .ctl_name = 203, + .ctl_name = CTL_O2IBLND, .procname = "o2iblnd", .data = NULL, .maxlen = 0, diff --git a/lnet/klnds/openiblnd/openiblnd.h b/lnet/klnds/openiblnd/openiblnd.h index d653917..2b45f5e 100644 --- a/lnet/klnds/openiblnd/openiblnd.h +++ b/lnet/klnds/openiblnd/openiblnd.h @@ -74,6 +74,7 @@ #include #include #include +#include #include #include diff --git a/lnet/klnds/openiblnd/openiblnd_modparams.c b/lnet/klnds/openiblnd/openiblnd_modparams.c index 45bffa2..2ffdae9 100644 --- a/lnet/klnds/openiblnd/openiblnd_modparams.c +++ b/lnet/klnds/openiblnd/openiblnd_modparams.c @@ -100,9 +100,39 @@ kib_tunables_t kibnal_tunables = { #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM +#ifndef HAVE_SYSCTL_UNNUMBERED +enum { + KIBNAL_IPIF_BASENAME = 1, + KIBNAL_N_CONND, + KIBNAL_RECONNECT_MIN, + KIBNAL_RECONNECT_MAX, + KIBNAL_CONCURRENT_PEERS, + KIBNAL_CKSUM, + KIBNAL_TIMEOUT, + KIBNAL_NTX, + KIBNAL_CREDITS, + KIBNAL_PEER_CREDITS, + KIBNAL_KEEPALIVE +}; +#else + +#define KIBNAL_IPIF_BASENAME CTL_UNNUMBERED +#define KIBNAL_N_CONND CTL_UNNUMBERED +#define KIBNAL_RECONNECT_MIN CTL_UNNUMBERED +#define KIBNAL_RECONNECT_MAX CTL_UNNUMBERED +#define KIBNAL_CONCURRENT_PEERS CTL_UNNUMBERED +#define KIBNAL_CKSUM CTL_UNNUMBERED +#define KIBNAL_TIMEOUT CTL_UNNUMBERED +#define KIBNAL_NTX CTL_UNNUMBERED +#define KIBNAL_CREDITS CTL_UNNUMBERED +#define KIBNAL_PEER_CREDITS CTL_UNNUMBERED +#define KIBNAL_KEEPALIVE CTL_UNNUMBERED + +#endif + static cfs_sysctl_table_t kibnal_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = KIBNAL_IPIF_BASENAME, .procname = "ipif_basename", .data = &ipif_basename, .maxlen = 1024, @@ -110,7 +140,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dostring }, { - .ctl_name = 2, + .ctl_name = KIBNAL_N_CONND, .procname = "n_connd", .data = &n_connd, .maxlen = sizeof(int), @@ -118,7 +148,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 3, + .ctl_name = KIBNAL_RECONNECT_MIN, .procname = "min_reconnect_interval", .data = &min_reconnect_interval, .maxlen = sizeof(int), @@ -126,7 +156,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = KIBNAL_RECONNECT_MAX, .procname = "max_reconnect_interval", .data = &max_reconnect_interval, .maxlen = sizeof(int), @@ -134,7 +164,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = KIBNAL_CONCURRENT_PEERS, .procname = "concurrent_peers", .data = &concurrent_peers, .maxlen = sizeof(int), @@ -142,7 +172,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = KIBNAL_CKSUM, .procname = "cksum", .data = &cksum, .maxlen = sizeof(int), @@ -150,7 +180,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = KIBNAL_TIMEOUT, .procname = "timeout", .data = &timeout, .maxlen = sizeof(int), @@ -158,7 +188,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 8, + .ctl_name = KIBNAL_NTX, .procname = "ntx", .data = &ntx, .maxlen = sizeof(int), @@ -166,7 +196,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 9, + .ctl_name = KIBNAL_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof(int), @@ -174,7 +204,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 10, + .ctl_name = KIBNAL_PEER_CREDITS, .procname = "peer_credits", .data = &peer_credits, .maxlen = sizeof(int), @@ -182,7 +212,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 11, + .ctl_name = KIBNAL_KEEPALIVE, .procname = "keepalive", .data = &keepalive, .maxlen = sizeof(int), @@ -194,7 +224,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { static cfs_sysctl_table_t kibnal_top_ctl_table[] = { { - .ctl_name = 203, + .ctl_name = CTL_KIBNAL, .procname = "openibnal", .data = NULL, .maxlen = 0, diff --git a/lnet/klnds/ptllnd/ptllnd.h b/lnet/klnds/ptllnd/ptllnd.h index bf6127c..18e5b2a 100755 --- a/lnet/klnds/ptllnd/ptllnd.h +++ b/lnet/klnds/ptllnd/ptllnd.h @@ -76,6 +76,7 @@ #include #include #include +#include #include #ifdef CRAY_XT3 #include diff --git a/lnet/klnds/ptllnd/ptllnd_modparams.c b/lnet/klnds/ptllnd/ptllnd_modparams.c index 6d2503f..b63580d 100644 --- a/lnet/klnds/ptllnd/ptllnd_modparams.c +++ b/lnet/klnds/ptllnd/ptllnd_modparams.c @@ -156,9 +156,51 @@ kptllnd_init_strtunable(char **str_param, char *space, int size) } #endif +#ifndef HAVE_SYSCTL_UNNUMBERED + +enum { + KPTLLND_NTX = 1, + KPTLLND_MAX_NODES, + KPTLLND_MAX_PROC_PER_NODE, + KPTLLND_CHECKSUM, + KPTLLND_TIMEOUT, + KPTLLND_PORTAL, + KPTLLND_PID, + KPTLLND_RXB_PAGES, + KPTLLND_CREDITS, + KPTLLND_PEERCREDITS, + KPTLLND_MAX_MSG_SIZE, + KPTLLND_PEER_HASH_SIZE, + KPTLLND_RESHEDULE_LOOPS, + KPTLLND_ACK_PUTS, + KPTLLND_TRACETIMEOUT, + KPTLLND_TRACEBASENAME, + KPTLLND_SIMULATION_BITMAP +}; +#else + +#define KPTLLND_NTX CTL_UNNUMBERED +#define KPTLLND_MAX_NODES CTL_UNNUMBERED +#define KPTLLND_MAX_PROC_PER_NODE CTL_UNNUMBERED +#define KPTLLND_CHECKSUM CTL_UNNUMBERED +#define KPTLLND_TIMEOUT CTL_UNNUMBERED +#define KPTLLND_PORTAL CTL_UNNUMBERED +#define KPTLLND_PID CTL_UNNUMBERED +#define KPTLLND_RXB_PAGES CTL_UNNUMBERED +#define KPTLLND_CREDITS CTL_UNNUMBERED +#define KPTLLND_PEERCREDITS CTL_UNNUMBERED +#define KPTLLND_MAX_MSG_SIZE CTL_UNNUMBERED +#define KPTLLND_PEER_HASH_SIZE CTL_UNNUMBERED +#define KPTLLND_RESHEDULE_LOOPS CTL_UNNUMBERED +#define KPTLLND_ACK_PUTS CTL_UNNUMBERED +#define KPTLLND_TRACETIMEOUT CTL_UNNUMBERED +#define KPTLLND_TRACEBASENAME CTL_UNNUMBERED +#define KPTLLND_SIMULATION_BITMAP CTL_UNNUMBERED +#endif + static cfs_sysctl_table_t kptllnd_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = KPTLLND_NTX, .procname = "ntx", .data = &ntx, .maxlen = sizeof(int), @@ -166,7 +208,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 2, + .ctl_name = KPTLLND_MAX_NODES, .procname = "max_nodes", .data = &max_nodes, .maxlen = sizeof(int), @@ -174,7 +216,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 3, + .ctl_name = KPTLLND_MAX_PROC_PER_NODE, .procname = "max_procs_per_node", .data = &max_procs_per_node, .maxlen = sizeof(int), @@ -182,7 +224,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = KPTLLND_CHECKSUM, .procname = "checksum", .data = &checksum, .maxlen = sizeof(int), @@ -190,7 +232,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = KPTLLND_TIMEOUT, .procname = "timeout", .data = &timeout, .maxlen = sizeof(int), @@ -198,7 +240,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = KPTLLND_PORTAL, .procname = "portal", .data = &portal, .maxlen = sizeof(int), @@ -206,7 +248,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = KPTLLND_PID, .procname = "pid", .data = &pid, .maxlen = sizeof(int), @@ -214,7 +256,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 8, + .ctl_name = KPTLLND_RXB_PAGES, .procname = "rxb_npages", .data = &rxb_npages, .maxlen = sizeof(int), @@ -222,7 +264,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 9, + .ctl_name = KPTLLND_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof(int), @@ -230,7 +272,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 10, + .ctl_name = KPTLLND_PEERCREDITS, .procname = "peercredits", .data = &peercredits, .maxlen = sizeof(int), @@ -238,7 +280,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 11, + .ctl_name = KPTLLND_MAX_MSG_SIZE, .procname = "max_msg_size", .data = &max_msg_size, .maxlen = sizeof(int), @@ -246,7 +288,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 12, + .ctl_name = KPTLLND_PEER_HASH_SIZE, .procname = "peer_hash_table_size", .data = &peer_hash_table_size, .maxlen = sizeof(int), @@ -254,7 +296,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 13, + .ctl_name = KPTLLND_RESHEDULE_LOOPS, .procname = "reschedule_loops", .data = &reschedule_loops, .maxlen = sizeof(int), @@ -262,7 +304,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 14, + .ctl_name = KPTLLND_ACK_PUTS, .procname = "ack_puts", .data = &ack_puts, .maxlen = sizeof(int), @@ -271,7 +313,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { }, #ifdef CRAY_XT3 { - .ctl_name = 15, + .ctl_name = KPTLLND_TRACETIMEOUT, .procname = "ptltrace_on_timeout", .data = &ptltrace_on_timeout, .maxlen = sizeof(int), @@ -279,7 +321,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 16, + .ctl_name = KPTLLND_TRACEBASENAME, .procname = "ptltrace_basename", .data = ptltrace_basename_space, .maxlen = sizeof(ptltrace_basename_space), @@ -290,7 +332,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { #endif #ifdef PJK_DEBUGGING { - .ctl_name = 17, + .ctl_name = KPTLLND_SIMULATION_BITMAP, .procname = "simulation_bitmap", .data = &simulation_bitmap, .maxlen = sizeof(int), @@ -304,7 +346,7 @@ static cfs_sysctl_table_t kptllnd_ctl_table[] = { static cfs_sysctl_table_t kptllnd_top_ctl_table[] = { { - .ctl_name = 203, + .ctl_name = CTL_PTLLND, .procname = "ptllnd", .data = NULL, .maxlen = 0, diff --git a/lnet/klnds/qswlnd/qswlnd.h b/lnet/klnds/qswlnd/qswlnd.h index 18957a5..aa27e64 100644 --- a/lnet/klnds/qswlnd/qswlnd.h +++ b/lnet/klnds/qswlnd/qswlnd.h @@ -81,6 +81,7 @@ #include #include #include +#include /* fixed constants */ #define KQSW_SMALLMSG (4<<10) /* small/large ep receiver breakpoint */ diff --git a/lnet/klnds/qswlnd/qswlnd_modparams.c b/lnet/klnds/qswlnd/qswlnd_modparams.c index fcd1047..af1a41a 100644 --- a/lnet/klnds/qswlnd/qswlnd_modparams.c +++ b/lnet/klnds/qswlnd/qswlnd_modparams.c @@ -87,9 +87,41 @@ kqswnal_tunables_t kqswnal_tunables = { }; #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM + +#ifndef HAVE_SYSCTL_UNNUMBERED + +enum + KQSWNAL_TX_MAXCONTIG = 1, + KQSWNAL_NTXMSG, + KQSWNAL_CREDITS, + KQSWNAL_PEERCREDITS, + KQSWNAL_NRXMSGS_LARGE, + KQSWNAL_EP_ENVELOPES_LARGE, + KQSWNAL_NRXMSGS_SMALL, + KQSWNAL_EP_ENVELOPES_SMALL, + KQSWNAL_OPTIMIZED_PUTS, + KQSWNAL_OPTIMIZED_GETS, + KQSWNAL_INJECT_CSUM_ERROR +}; +#else + +#define KQSWNAL_TX_MAXCONTIG CTL_UNNUMBERED +#define KQSWNAL_NTXMSG CTL_UNNUMBERED +#define KQSWNAL_CREDITS CTL_UNNUMBERED +#define KQSWNAL_PEERCREDITS CTL_UNNUMBERED +#define KQSWNAL_NRXMSGS_LARGE CTL_UNNUMBERED +#define KQSWNAL_EP_ENVELOPES_LARGE CTL_UNNUMBERED +#define KQSWNAL_NRXMSGS_SMALL CTL_UNNUMBERED +#define KQSWNAL_EP_ENVELOPES_SMALL CTL_UNNUMBERED +#define KQSWNAL_OPTIMIZED_PUTS CTL_UNNUMBERED +#define KQSWNAL_OPTIMIZED_GETS CTL_UNNUMBERED +#define KQSWNAL_INJECT_CSUM_ERROR CTL_UNNUMBERED + +#endif + static cfs_sysctl_table_t kqswnal_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = KQSWNAL_TX_MAXCONTIG, .procname = "tx_maxcontig", .data = &tx_maxcontig, .maxlen = sizeof (int), @@ -97,7 +129,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 2, + .ctl_name = KQSWNAL_NTXMSG, .procname = "ntxmsgs", .data = &ntxmsgs, .maxlen = sizeof (int), @@ -105,7 +137,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 3, + .ctl_name = KQSWNAL_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof (int), @@ -113,7 +145,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = KQSWNAL_PEERCREDITS, .procname = "peer_credits", .data = &peer_credits, .maxlen = sizeof (int), @@ -121,7 +153,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = KQSWNAL_NRXMSGS_LARGE, .procname = "nrxmsgs_large", .data = &nrxmsgs_large, .maxlen = sizeof (int), @@ -129,7 +161,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = KQSWNAL_EP_ENVELOPES_LARGE, .procname = "ep_envelopes_large", .data = &ep_envelopes_large, .maxlen = sizeof (int), @@ -137,7 +169,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = KQSWNAL_NRXMSGS_SMALL, .procname = "nrxmsgs_small", .data = &nrxmsgs_small, .maxlen = sizeof (int), @@ -145,7 +177,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 8, + .ctl_name = KQSWNAL_EP_ENVELOPES_SMALL, .procname = "ep_envelopes_small", .data = &ep_envelopes_small, .maxlen = sizeof (int), @@ -153,7 +185,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 9, + .ctl_name = KQSWNAL_OPTIMIZED_PUTS, .procname = "optimized_puts", .data = &optimized_puts, .maxlen = sizeof (int), @@ -161,7 +193,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 10, + .ctl_name = KQSWNAL_OPTIMIZED_GETS, .procname = "optimized_gets", .data = &optimized_gets, .maxlen = sizeof (int), @@ -170,7 +202,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { }, #if KQSW_CKSUM { - .ctl_name = 11, + .ctl_name = KQSWNAL_INJECT_CSUM_ERROR, .procname = "inject_csum_error", .data = &inject_csum_error, .maxlen = sizeof (int), @@ -183,7 +215,7 @@ static cfs_sysctl_table_t kqswnal_ctl_table[] = { static cfs_sysctl_table_t kqswnal_top_ctl_table[] = { { - .ctl_name = 201, + .ctl_name = CTL_KQSWNAL, .procname = "qswnal", .data = NULL, .maxlen = 0, diff --git a/lnet/klnds/ralnd/ralnd.h b/lnet/klnds/ralnd/ralnd.h index 498acff..50bbc16 100644 --- a/lnet/klnds/ralnd/ralnd.h +++ b/lnet/klnds/ralnd/ralnd.h @@ -74,6 +74,7 @@ #include #include #include +#include #include diff --git a/lnet/klnds/ralnd/ralnd_modparams.c b/lnet/klnds/ralnd/ralnd_modparams.c index 72fd431..d934532 100644 --- a/lnet/klnds/ralnd/ralnd_modparams.c +++ b/lnet/klnds/ralnd/ralnd_modparams.c @@ -89,9 +89,35 @@ kra_tunables_t kranal_tunables = { }; #if CONFIG_SYSCTL && !CFS_SYSFS_MODULE_PARM + +#ifndef HAVE_SYSCTL_UNNUMBERED +enum { + KRANAL_N_CONND = 1, + KRANAL_RECONNECT_MIN, + KRANAL_RECONNECT_MAX, + KRANAL_NTX, + KRANAL_CREDITS, + KRANAL_PEERCREDITS, + KRANAL_FMA_CQ_SIZE, + KRANAL_TIMEOUT, + KRANAL_IMMEDIATE_MAX +}; +#else + +#define KRANAL_N_CONND CTL_UNNUMBERED +#define KRANAL_RECONNECT_MIN CTL_UNNUMBERED +#define KRANAL_RECONNECT_MAX CTL_UNNUMBERED +#define KRANAL_NTX CTL_UNNUMBERED +#define KRANAL_CREDITS CTL_UNNUMBERED +#define KRANAL_PEERCREDITS CTL_UNNUMBERED +#define KRANAL_FMA_CQ_SIZE CTL_UNNUMBERED +#define KRANAL_TIMEOUT CTL_UNNUMBERED +#define KRENAL_IMMEDIATE_MAX CTL_UNNUMBERED +#endif + static cfs_sysctl_table_t kranal_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = KRANAL_N_CONND, .procname = "n_connd", .data = &n_connd, .maxlen = sizeof(int), @@ -99,7 +125,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 2, + .ctl_name = KRANAL_RECONNECT_MIN, .procname = "min_reconnect_interval", .data = &min_reconnect_interval, .maxlen = sizeof(int), @@ -107,7 +133,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 3, + .ctl_name = KRANAL_RECONNECT_MAX, .procname = "max_reconnect_interval", .data = &max_reconnect_interval, .maxlen = sizeof(int), @@ -115,7 +141,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = KRANAL_NTX, .procname = "ntx", .data = &ntx, .maxlen = sizeof(int), @@ -123,7 +149,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = KRANAL_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof(int), @@ -131,7 +157,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = KRANAL_PEERCREDITS, .procname = "peer_credits", .data = &peer_credits, .maxlen = sizeof(int), @@ -139,7 +165,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = KRANAL_FMA_CQ_SIZE, .procname = "fma_cq_size", .data = &fma_cq_size, .maxlen = sizeof(int), @@ -147,7 +173,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 8, + .ctl_name = KRANAL_TIMEOUT, .procname = "timeout", .data = &timeout, .maxlen = sizeof(int), @@ -155,7 +181,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 9, + .ctl_name = KRANAL_IMMEDIATE_MAX, .procname = "max_immediate", .data = &max_immediate, .maxlen = sizeof(int), @@ -167,7 +193,7 @@ static cfs_sysctl_table_t kranal_ctl_table[] = { static cfs_sysctl_table_t kranal_top_ctl_table[] = { { - .ctl_name = 202, + .ctl_name = CTL_KRANAL, .procname = "ranal", .data = NULL, .maxlen = 0, diff --git a/lnet/klnds/socklnd/socklnd.h b/lnet/klnds/socklnd/socklnd.h index ff7bd8f..32fd06e 100644 --- a/lnet/klnds/socklnd/socklnd.h +++ b/lnet/klnds/socklnd/socklnd.h @@ -46,6 +46,7 @@ #include #include #include +#include #define SOCKNAL_PEER_HASH_SIZE 101 /* # peer lists */ #define SOCKNAL_RESCHED 100 /* # scheduler loops before reschedule */ diff --git a/lnet/klnds/socklnd/socklnd_lib-linux.c b/lnet/klnds/socklnd/socklnd_lib-linux.c index c4dc1e1..e583c9c 100644 --- a/lnet/klnds/socklnd/socklnd_lib-linux.c +++ b/lnet/klnds/socklnd/socklnd_lib-linux.c @@ -37,218 +37,288 @@ #include "socklnd.h" # if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM -static cfs_sysctl_table_t ksocknal_ctl_table[23]; -cfs_sysctl_table_t ksocknal_top_ctl_table[] = { - { - .ctl_name = 200, - .procname = "socknal", - .data = NULL, - .maxlen = 0, - .mode = 0555, - .child = ksocknal_ctl_table - }, - { 0 } +#ifndef HAVE_SYSCTL_UNNUMBERED + +enum { + SOCKLND_TIMEOUT = 1, + SOCKLND_CREDITS, + SOCKLND_PEER_CREDITS, + SOCKLND_NCONNDS, + SOCKLND_RECONNECTS_MIN, + SOCKLND_RECONNECTS_MAX, + SOCKLND_EAGER_ACK, + SOCKLND_ZERO_COPY, + SOCKLND_TYPED, + SOCKLND_BULK_MIN, + SOCKLND_RX_BUFFER_SIZE, + SOCKLND_TX_BUFFER_SIZE, + SOCKLND_NAGLE, + SOCKLND_IRQ_AFFINITY, + SOCKLND_KEEPALIVE_IDLE, + SOCKLND_KEEPALIVE_COUNT, + SOCKLND_KEEPALIVE_INTVL, + SOCKLND_BACKOFF_INIT, + SOCKLND_BACKOFF_MAX, + SOCKLND_PROTOCOL, + SOCKLND_ZERO_COPY_RECV, + SOCKLND_ZERO_COPY_RECV_MIN_NFRAGS }; +#else -int -ksocknal_lib_tunables_init () -{ - int i = 0; - int j = 1; - - if (*ksocknal_tunables.ksnd_zc_recv_min_nfrags < 2) - *ksocknal_tunables.ksnd_zc_recv_min_nfrags = 2; - - if (*ksocknal_tunables.ksnd_zc_recv_min_nfrags > LNET_MAX_IOV) - *ksocknal_tunables.ksnd_zc_recv_min_nfrags = LNET_MAX_IOV; +#define SOCKLND_TIMEOUT CTL_UNNUMBERED +#define SOCKLND_CREDITS CTL_UNNUMBERED +#define SOCKLND_PEER_CREDITS CTL_UNNUMBERED +#define SOCKLND_NCONNDS CTL_UNNUMBERED +#define SOCKLND_RECONNECTS_MIN CTL_UNNUMBERED +#define SOCKLND_RECONNECTS_MAX CTL_UNNUMBERED +#define SOCKLND_EAGER_ACK CTL_UNNUMBERED +#define SOCKLND_ZERO_COPY CTL_UNNUMBERED +#define SOCKLND_TYPED CTL_UNNUMBERED +#define SOCKLND_BULK_MIN CTL_UNNUMBERED +#define SOCKLND_RX_BUFFER_SIZE CTL_UNNUMBERED +#define SOCKLND_TX_BUFFER_SIZE CTL_UNNUMBERED +#define SOCKLND_NAGLE CTL_UNNUMBERED +#define SOCKLND_IRQ_AFFINITY CTL_UNNUMBERED +#define SOCKLND_KEEPALIVE_IDLE CTL_UNNUMBERED +#define SOCKLND_KEEPALIVE_COUNT CTL_UNNUMBERED +#define SOCKLND_KEEPALIVE_INTVL CTL_UNNUMBERED +#define SOCKLND_BACKOFF_INIT CTL_UNNUMBERED +#define SOCKLND_BACKOFF_MAX CTL_UNNUMBERED +#define SOCKLND_PROTOCOL CTL_UNNUMBERED +#define SOCKLND_ZERO_COPY_RECV CTL_UNNUMBERED +#define SOCKLND_ZERO_COPY_RECV_MIN_NFRAGS CTL_UNNUMBERED +#endif - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, +static cfs_sysctl_table_t ksocknal_ctl_table[] = { + { + .ctl_name = SOCKLND_TIMEOUT, .procname = "timeout", .data = ksocknal_tunables.ksnd_timeout, .maxlen = sizeof (int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_CREDITS, .procname = "credits", .data = ksocknal_tunables.ksnd_credits, .maxlen = sizeof (int), .mode = 0444, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_PEER_CREDITS, .procname = "peer_credits", .data = ksocknal_tunables.ksnd_peercredits, .maxlen = sizeof (int), .mode = 0444, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_NCONNDS, .procname = "nconnds", .data = ksocknal_tunables.ksnd_nconnds, .maxlen = sizeof (int), .mode = 0444, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_RECONNECTS_MIN, .procname = "min_reconnectms", .data = ksocknal_tunables.ksnd_min_reconnectms, .maxlen = sizeof (int), .mode = 0444, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_RECONNECTS_MAX, .procname = "max_reconnectms", .data = ksocknal_tunables.ksnd_max_reconnectms, .maxlen = sizeof (int), .mode = 0444, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_EAGER_ACK, .procname = "eager_ack", .data = ksocknal_tunables.ksnd_eager_ack, .maxlen = sizeof (int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_ZERO_COPY, .procname = "zero_copy", .data = ksocknal_tunables.ksnd_zc_min_frag, .maxlen = sizeof (int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_ZERO_COPY_RECV, .procname = "zero_copy_recv", .data = ksocknal_tunables.ksnd_zc_recv, .maxlen = sizeof (int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, - .procname = "zero_copy_recv_min_nfrags", - .data = ksocknal_tunables.ksnd_zc_recv_min_nfrags, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + + { + .ctl_name = SOCKLND_ZERO_COPY_RECV_MIN_NFRAGS, + .procname = "zero_copy_recv", + .data = ksocknal_tunables.ksnd_zc_recv_min_nfrags .maxlen = sizeof (int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_TYPED, .procname = "typed", .data = ksocknal_tunables.ksnd_typed_conns, .maxlen = sizeof (int), .mode = 0444, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_BULK_MIN, .procname = "min_bulk", .data = ksocknal_tunables.ksnd_min_bulk, .maxlen = sizeof (int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_RX_BUFFER_SIZE, .procname = "rx_buffer_size", .data = ksocknal_tunables.ksnd_rx_buffer_size, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_TX_BUFFER_SIZE, .procname = "tx_buffer_size", .data = ksocknal_tunables.ksnd_tx_buffer_size, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_NAGLE, .procname = "nagle", .data = ksocknal_tunables.ksnd_nagle, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, #ifdef CPU_AFFINITY - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + { + .ctl_name = SOCKLND_IRQ_AFFINITY, .procname = "irq_affinity", .data = ksocknal_tunables.ksnd_irq_affinity, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, #endif - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + { + .ctl_name = SOCKLND_KEEPALIVE_IDLE, .procname = "keepalive_idle", .data = ksocknal_tunables.ksnd_keepalive_idle, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_KEEPALIVE_COUNT, .procname = "keepalive_count", .data = ksocknal_tunables.ksnd_keepalive_count, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_KEEPALIVE_INTVL, .procname = "keepalive_intvl", .data = ksocknal_tunables.ksnd_keepalive_intvl, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, #ifdef SOCKNAL_BACKOFF - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + { + .ctl_name = SOCKLND_BACKOFF_INIT, .procname = "backoff_init", .data = ksocknal_tunables.ksnd_backoff_init, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, + { + .ctl_name = SOCKLND_BACKOFF_MAX, .procname = "backoff_max", .data = ksocknal_tunables.ksnd_backoff_max, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, #endif #if SOCKNAL_VERSION_DEBUG - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { - .ctl_name = j++, + { + .ctl_name = SOCKLND_PROTOCOL, .procname = "protocol", .data = ksocknal_tunables.ksnd_protocol, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = &proc_dointvec - }; + .proc_handler = &proc_dointvec, + .strategy = &sysctl_intvec, + }, #endif - ksocknal_ctl_table[i++] = (cfs_sysctl_table_t) { 0 }; + {0} +}; - LASSERT (j == i); - LASSERT (i <= sizeof(ksocknal_ctl_table)/sizeof(ksocknal_ctl_table[0])); + +cfs_sysctl_table_t ksocknal_top_ctl_table[] = { + { + .ctl_name = CTL_SOCKLND, + .procname = "socknal", + .data = NULL, + .maxlen = 0, + .mode = 0555, + .child = ksocknal_ctl_table + }, + { 0 } +}; + +int +ksocknal_lib_tunables_init () +{ + if (*ksocknal_tunables.ksnd_zc_recv_min_nfrags < 2) + *ksocknal_tunables.ksnd_zc_recv_min_nfrags = 2; + if (*ksocknal_tunables.ksnd_zc_recv_min_nfrags > LNET_MAX_IOV) + *ksocknal_tunables.ksnd_zc_recv_min_nfrags = LNET_MAX_IOV; ksocknal_tunables.ksnd_sysctl = cfs_register_sysctl_table(ksocknal_top_ctl_table, 0); @@ -697,7 +767,6 @@ ksocknal_lib_recv_kiov (ksock_conn_t *conn) msg.msg_iovlen = niov; } - LASSERT (nob <= conn->ksnc_rx_nob_wanted); set_fs (KERNEL_DS); diff --git a/lnet/klnds/viblnd/viblnd.h b/lnet/klnds/viblnd/viblnd.h index 85b091a..d2099d6 100644 --- a/lnet/klnds/viblnd/viblnd.h +++ b/lnet/klnds/viblnd/viblnd.h @@ -76,6 +76,7 @@ #include #include #include +#include /* CPU_{L,B}E #defines needed by Voltaire headers */ #include diff --git a/lnet/klnds/viblnd/viblnd_modparams.c b/lnet/klnds/viblnd/viblnd_modparams.c index cb729b5..bb2e9f6 100644 --- a/lnet/klnds/viblnd/viblnd_modparams.c +++ b/lnet/klnds/viblnd/viblnd_modparams.c @@ -142,6 +142,53 @@ kib_tunables_t kibnal_tunables = { #endif }; +#ifndef HAVE_SYSCTL_UNNUMBERED + +enum { + VIBLND_SERVICE = 1, + VIBLND_RECONNECT_MIN, + VIBLND_RECONNECT_MAX, + VIBLND_CONCURRENT_PEERS, + VIBLND_CHKSUM, + VIBLND_TIMEOUT, + VIBLND_NTX, + VIBLND_CREDITS, + VIBLND_PEER_CREDITS, + VIBLND_ARP_RETRIES, + VIBLND_HCA_BASENAME, + VIBLND_IPIF_BASENAME, + VIBLND_LOCAL_ACK_TIMEOUT, + VIBLND_RETRY_CNT, + VIBLND_RNR_CNT, + VIBLND_RNR_NAK_TIMER, + VIBLND_KEEPALIVE, + VIBLND_CONCURRENT_SENDS, + VIBLND_FMR_REMAPS +}; +#else + +#define VIBLND_SERVICE CTL_UNNUMBERED +#define VIBLND_RECONNECT_MIN CTL_UNNUMBERED +#define VIBLND_RECONNECT_MAX CTL_UNNUMBERED +#define VIBLND_CONCURRENT_PEERS CTL_UNNUMBERED +#define VIBLND_CHKSUM CTL_UNNUMBERED +#define VIBLND_TIMEOUT CTL_UNNUMBERED +#define VIBLND_NTX CTL_UNNUMBERED +#define VIBLND_CREDITS CTL_UNNUMBERED +#define VIBLND_PEER_CREDITS CTL_UNNUMBERED +#define VIBLND_ARP_RETRIES CTL_UNNUMBERED +#define VIBLND_HCA_BASENAME CTL_UNNUMBERED +#define VIBLND_IPIF_BASENAME CTL_UNNUMBERED +#define VIBLND_LOCAL_ACK_TIMEOUT CTL_UNNUMBERED +#define VIBLND_RETRY_CNT CTL_UNNUMBERED +#define VIBLND_RNR_CNT CTL_UNNUMBERED +#define VIBLND_RNR_NAK_TIMER CTL_UNNUMBERED +#define VIBLND_KEEPALIVE CTL_UNNUMBERED +#define VIBLND_CONCURRENT_SENDS CTL_UNNUMBERED +#define VIBLND_FMR_REMAPS CTL_UNNUMBERED + +#endif + #if defined(CONFIG_SYSCTL) && !CFS_SYSFS_MODULE_PARM static char hca_basename_space[32]; @@ -149,7 +196,7 @@ static char ipif_basename_space[32]; static cfs_sysctl_table_t kibnal_ctl_table[] = { { - .ctl_name = 1, + .ctl_name = VIBLND_SERVICE, .procname = "service_number", .data = &service_number, .maxlen = sizeof(int), @@ -157,7 +204,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 2, + .ctl_name = VIBLND_RECONNECT_MIN, .procname = "min_reconnect_interval", .data = &min_reconnect_interval, .maxlen = sizeof(int), @@ -165,7 +212,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 3, + .ctl_name = VIBLND_RECONNECT_MAX, .procname = "max_reconnect_interval", .data = &max_reconnect_interval, .maxlen = sizeof(int), @@ -173,7 +220,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 4, + .ctl_name = VIBLND_CONCURRENT_PEERS, .procname = "concurrent_peers", .data = &concurrent_peers, .maxlen = sizeof(int), @@ -181,7 +228,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 5, + .ctl_name = VIBLND_CHKSUM, .procname = "cksum", .data = &cksum, .maxlen = sizeof(int), @@ -189,7 +236,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 6, + .ctl_name = VIBLND_TIMEOUT, .procname = "timeout", .data = &timeout, .maxlen = sizeof(int), @@ -197,7 +244,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 7, + .ctl_name = VIBLND_NTX, .procname = "ntx", .data = &ntx, .maxlen = sizeof(int), @@ -205,7 +252,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 8, + .ctl_name = VIBLND_CREDITS, .procname = "credits", .data = &credits, .maxlen = sizeof(int), @@ -213,7 +260,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 9, + .ctl_name = VIBLND_PEER_CREDITS, .procname = "peer_credits", .data = &peer_credits, .maxlen = sizeof(int), @@ -221,7 +268,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 10, + .ctl_name = VIBLND_ARP_RETRIES, .procname = "arp_retries", .data = &arp_retries, .maxlen = sizeof(int), @@ -229,7 +276,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 11, + .ctl_name = VIBLND_HCA_BASENAME, .procname = "hca_basename", .data = hca_basename_space, .maxlen = sizeof(hca_basename_space), @@ -237,7 +284,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dostring }, { - .ctl_name = 12, + .ctl_name = VIBLND_IPIF_BASENAME, .procname = "ipif_basename", .data = ipif_basename_space, .maxlen = sizeof(ipif_basename_space), @@ -245,7 +292,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dostring }, { - .ctl_name = 13, + .ctl_name = VIBLND_LOCAL_ACK_TIMEOUT, .procname = "local_ack_timeout", .data = &local_ack_timeout, .maxlen = sizeof(int), @@ -253,7 +300,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 14, + .ctl_name = VIBLND_RETRY_CNT, .procname = "retry_cnt", .data = &retry_cnt, .maxlen = sizeof(int), @@ -261,7 +308,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 15, + .ctl_name = VIBLND_RNR_CNT, .procname = "rnr_cnt", .data = &rnr_cnt, .maxlen = sizeof(int), @@ -269,7 +316,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 16, + .ctl_name = VIBLND_RNR_NAK_TIMER, .procname = "rnr_nak_timer", .data = &rnr_nak_timer, .maxlen = sizeof(int), @@ -277,7 +324,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 17, + .ctl_name = VIBLND_KEEPALIVE, .procname = "keepalive", .data = &keepalive, .maxlen = sizeof(int), @@ -285,7 +332,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { .proc_handler = &proc_dointvec }, { - .ctl_name = 18, + .ctl_name = VIBLND_CONCURRENT_SENDS, .procname = "concurrent_sends", .data = &concurrent_sends, .maxlen = sizeof(int), @@ -294,7 +341,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { }, #if IBNAL_USE_FMR { - .ctl_name = 19, + .ctl_name = VIBLND_FMR_REMAPS, .procname = "fmr_remaps", .data = &fmr_remaps, .maxlen = sizeof(int), @@ -307,7 +354,7 @@ static cfs_sysctl_table_t kibnal_ctl_table[] = { static cfs_sysctl_table_t kibnal_top_ctl_table[] = { { - .ctl_name = 203, + .ctl_name = CTL_VIBLND, .procname = "vibnal", .data = NULL, .maxlen = 0, diff --git a/lnet/lnet/router_proc.c b/lnet/lnet/router_proc.c index be2c1fb..3e51250 100644 --- a/lnet/lnet/router_proc.c +++ b/lnet/lnet/router_proc.c @@ -33,12 +33,13 @@ /* this is really lnet_proc.c */ -#define LNET_PROC_STATS "sys/lnet/stats" -#define LNET_PROC_ROUTES "sys/lnet/routes" -#define LNET_PROC_ROUTERS "sys/lnet/routers" -#define LNET_PROC_PEERS "sys/lnet/peers" -#define LNET_PROC_BUFFERS "sys/lnet/buffers" -#define LNET_PROC_NIS "sys/lnet/nis" +#define LNET_PROC_ROOT "sys/lnet" +#define LNET_PROC_STATS LNET_PROC_ROOT"/stats" +#define LNET_PROC_ROUTES LNET_PROC_ROOT"/routes" +#define LNET_PROC_ROUTERS LNET_PROC_ROOT"/routers" +#define LNET_PROC_PEERS LNET_PROC_ROOT"/peers" +#define LNET_PROC_BUFFERS LNET_PROC_ROOT"/buffers" +#define LNET_PROC_NIS LNET_PROC_ROOT"/nis" static int lnet_router_proc_stats_read (char *page, char **start, off_t off, @@ -1028,6 +1029,13 @@ lnet_proc_init(void) { struct proc_dir_entry *pde; +#if 0 + pde = proc_mkdir(LNET_PROC_ROOT, NULL); + if (pde == NULL) { + CERROR("couldn't create "LNET_PROC_ROOT"\n"); + return; + } +#endif /* Initialize LNET_PROC_STATS */ pde = create_proc_entry (LNET_PROC_STATS, 0644, NULL); if (pde == NULL) { @@ -1104,6 +1112,9 @@ lnet_proc_fini(void) remove_proc_entry(LNET_PROC_PEERS, 0); remove_proc_entry(LNET_PROC_BUFFERS, 0); remove_proc_entry(LNET_PROC_NIS, 0); +#if 0 + remove_proc_entry(LNET_PROC_ROOT, 0); +#endif } #else -- 1.8.3.1