#
-# LN_CONFIG_MAX_PAYLOAD
-#
-# configure maximum payload
-#
-AC_DEFUN([LN_CONFIG_MAX_PAYLOAD], [
-AC_MSG_CHECKING([for non-default maximum LNET payload])
-AC_ARG_WITH([max-payload-mb],
- AC_HELP_STRING([--with-max-payload-mb=MBytes],
- [set maximum lnet payload in MBytes]),
- [
- AC_MSG_RESULT([$with_max_payload_mb])
- CONFIG_LNET_MAX_PAYLOAD_MB=$with_max_payload_mb
- CONFIG_LNET_MAX_PAYLOAD="(($with_max_payload_mb)<<20)"
- ], [
- AC_MSG_RESULT([no])
- CONFIG_LNET_MAX_PAYLOAD="LNET_MTU"
- ])
-AC_DEFINE_UNQUOTED(CONFIG_LNET_MAX_PAYLOAD, $CONFIG_LNET_MAX_PAYLOAD,
- [Max LNET payload])
-]) # LN_CONFIG_MAX_PAYLOAD
-
-#
# LN_CHECK_GCC_VERSION
#
# Check compiler version
])
AC_SUBST(LIBEFENCE)
-LN_CONFIG_MAX_PAYLOAD
LN_CONFIG_DLC
]) # LN_CONFIGURE
#include <uapi/linux/lnet/lnetctl.h>
/* Max payload size */
-#ifndef CONFIG_LNET_MAX_PAYLOAD
-# error "CONFIG_LNET_MAX_PAYLOAD must be defined in config.h"
-#endif
+#define LNET_MAX_PAYLOAD LNET_MTU
-#define LNET_MAX_PAYLOAD CONFIG_LNET_MAX_PAYLOAD
-#if (LNET_MAX_PAYLOAD < LNET_MTU)
-# error "LNET_MAX_PAYLOAD too small - error in configure --with-max-payload-mb"
-#elif (LNET_MAX_PAYLOAD > (PAGE_SIZE * LNET_MAX_IOV))
-# error "LNET_MAX_PAYLOAD too large - error in configure --with-max-payload-mb"
-#endif
+#define LNET_MAX_IOV (LNET_MAX_PAYLOAD >> PAGE_SHIFT)
/* forward refs */
struct lnet_libmd;
#define LNET_MTU_BITS 20
#define LNET_MTU (1 << LNET_MTU_BITS)
-/** limit on the number of fragments in discontiguous MDs */
-#define LNET_MAX_IOV 256
-
/**
* Options for the MD structure. See struct lnet_md::options.
*/
static int kiblnd_alloc_fmr_pool(kib_fmr_poolset_t *fps, kib_fmr_pool_t *fpo)
{
struct ib_fmr_pool_param param = {
- .max_pages_per_fmr = LNET_MAX_PAYLOAD/PAGE_SIZE,
+ .max_pages_per_fmr = LNET_MAX_IOV,
.page_shift = PAGE_SHIFT,
.access = (IB_ACCESS_LOCAL_WRITE |
IB_ACCESS_REMOTE_WRITE),
#ifndef HAVE_IB_MAP_MR_SG
frd->frd_frpl = ib_alloc_fast_reg_page_list(fpo->fpo_hdev->ibh_ibdev,
- LNET_MAX_PAYLOAD/PAGE_SIZE);
+ LNET_MAX_IOV);
if (IS_ERR(frd->frd_frpl)) {
rc = PTR_ERR(frd->frd_frpl);
CERROR("Failed to allocate ib_fast_reg_page_list: %d\n",
#ifdef HAVE_IB_ALLOC_FAST_REG_MR
frd->frd_mr = ib_alloc_fast_reg_mr(fpo->fpo_hdev->ibh_pd,
- LNET_MAX_PAYLOAD/PAGE_SIZE);
+ LNET_MAX_IOV);
#else
/*
* it is expected to get here if this is an MLX-5 card.
#else
IB_MR_TYPE_MEM_REG,
#endif
- LNET_MAX_PAYLOAD/PAGE_SIZE);
+ LNET_MAX_IOV);
if ((*kiblnd_tunables.kib_use_fastreg_gaps == 1) &&
(dev_caps & IBLND_DEV_CAPS_FASTREG_GAPS_SUPPORT))
CWARN("using IB_MR_TYPE_SG_GAPS, expect a performance drop\n");
} else if (strcasestr(argv[i], "size=") == argv[i] ||
strcasestr(argv[i], "s=") == argv[i]) {
- int max_size = sysconf(_SC_PAGESIZE) * LNET_MAX_IOV;
-
tok = strchr(argv[i], '=') + 1;
bulk->blk_size = strtol(tok, &end, 0);
else if (*end == 'm' || *end == 'M')
bulk->blk_size *= 1024 * 1024;
- if (bulk->blk_size > max_size) {
+ if (bulk->blk_size > LNET_MTU) {
fprintf(stderr, "Size exceed limitation: %d bytes\n",
bulk->blk_size);
return -1;
#include <linux/uio.h>
#include <libcfs/libcfs.h>
#include <lnet/api.h>
+#include <lnet/lib-types.h>
#include <uapi/linux/lnet/nidstr.h>
#include <uapi/linux/lustre/lustre_idl.h>
#include <lustre_ha.h>