Whamcloud - gitweb
LU-10157 lnet: make LNET_MAX_IOV dependent on page size 59/31559/5
authorJames Simmons <uja.ornl@yahoo.com>
Tue, 20 Mar 2018 20:44:56 +0000 (16:44 -0400)
committerOleg Drokin <oleg.drokin@intel.com>
Sat, 14 Apr 2018 12:15:02 +0000 (12:15 +0000)
commit272e49ce2d5d6883e6ca1b00a9322b3a23b2e55a
tree16fe184263dfe29a28019d089d7afcd47acfddf6
parentf01ea62408a2294c76cdddf1dcf1d95fef97c4a2
LU-10157 lnet: make LNET_MAX_IOV dependent on page size

The default behavior of LNet is to always use 256 pages which is
LNET_MAX_IOV and that LNET_MAX_PAYLOAD is always one megabyte.
This assumes pages are always 4K in size which is not the case.
This cause bulk I/O errors when using platforms like PowerPC or
ARM which tend to use 64K pages. This is resolved by first making
LNET_MAX_PAYLOAD always one megabyte since this is what the
configuring sets it too by default and no one ever changes it.
In theory it could set it to as high as 16MB but that will cause
the I/O errors since the ptlrpc layer expects the packets to be
always 1 megabyte in size. Also it would be better to make the
maximum payload a per network setup configurations instead of for
everything. Second we make LNET_MAX_IOV equal to LNET_MAX_PAYLOAD
divided by the PAGE_SIZE. This way packets will always be the
LNET_MAX_PAYLOAD in size but the number of pages used,
LNET_MAX_IOV will vary depending on the platform it is creating
packets on.

Change-Id: Ie1dcdb195e68b44e2fa2d9b24715216d8aca4c65
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/31559
Tested-by: Jenkins
Reviewed-by: Wang Shilong <wshilong@ddn.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Ruth Klundt <rklundt@sandia.gov>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lnet/autoconf/lustre-lnet.m4
lnet/include/lnet/lib-types.h
lnet/include/uapi/linux/lnet/lnet-types.h
lnet/klnds/o2iblnd/o2iblnd.c
lnet/utils/lst.c
lustre/include/lustre_net.h