LU-7734 lnet: NUMA support
This patch adds NUMA node support. NUMA node information is stored in the CPT table. A NUMA node mask is maintained for the entire table as well as for each CPT to track the NUMA nodes related to each of the CPTs. Following key APIs added: cfs_cpt_of_node(): returns the CPT of particular NUMA node cfs_cpt_distance(): calculates the distance between two CPTs When the LND device is started it finds the NUMA node of the physical device and then from there it finds the CPT, which is subsequently stored in the NI structure. When selecting the NI, the MD CPT is determined and the distance between the MD CPT and the device CPT is calculated. The NI with the shortest distance is preferred. If the device or system is not NUMA aware then the CPT for the device will default to CFS_CPT_ANY and the distance calculated when CFS_CPT_ANY is used is largest in the system. IE, none NUMA aware devices are least preferred. A NUMA range value can be set. If the value is large enough it amounts to basically turning off NUMA criterion completely. Signed-off-by:Amir Shehata <amir.shehata@intel.com> Change-Id: I2d7c63f8e8fc8e8a6a249b0d6bfdd08fd090a837 Reviewed-on: http://review.whamcloud.com/18916 Tested-by: Jenkins Tested-by:
Maloo <hpdd-maloo@intel.com> Reviewed-by:
Olaf Weber <olaf@sgi.com> Reviewed-by:
Doug Oucharek <doug.s.oucharek@intel.com>
Showing
- libcfs/include/libcfs/libcfs_cpu.h 12 additions, 0 deletionslibcfs/include/libcfs/libcfs_cpu.h
- libcfs/include/libcfs/libcfs_ioctl.h 4 additions, 2 deletionslibcfs/include/libcfs/libcfs_ioctl.h
- libcfs/include/libcfs/linux/linux-cpu.h 6 additions, 0 deletionslibcfs/include/libcfs/linux/linux-cpu.h
- libcfs/libcfs/libcfs_cpu.c 39 additions, 1 deletionlibcfs/libcfs/libcfs_cpu.c
- libcfs/libcfs/linux/linux-cpu.c 244 additions, 73 deletionslibcfs/libcfs/linux/linux-cpu.c
- libcfs/libcfs/module.c 56 additions, 0 deletionslibcfs/libcfs/module.c
- lnet/include/lnet/lib-dlc.h 6 additions, 0 deletionslnet/include/lnet/lib-dlc.h
- lnet/include/lnet/lib-lnet.h 1 addition, 0 deletionslnet/include/lnet/lib-lnet.h
- lnet/include/lnet/lib-types.h 3 additions, 0 deletionslnet/include/lnet/lib-types.h
- lnet/klnds/o2iblnd/o2iblnd.c 9 additions, 5 deletionslnet/klnds/o2iblnd/o2iblnd.c
- lnet/klnds/socklnd/socklnd.c 18 additions, 3 deletionslnet/klnds/socklnd/socklnd.c
- lnet/lnet/api-ni.c 29 additions, 0 deletionslnet/lnet/api-ni.c
- lnet/lnet/lib-move.c 138 additions, 23 deletionslnet/lnet/lib-move.c
- lnet/utils/lnetconfig/liblnetconfig.c 94 additions, 0 deletionslnet/utils/lnetconfig/liblnetconfig.c
- lnet/utils/lnetconfig/liblnetconfig.h 29 additions, 0 deletionslnet/utils/lnetconfig/liblnetconfig.h
- lnet/utils/lnetconfig/liblnetconfig_lnd.c 1 addition, 0 deletionslnet/utils/lnetconfig/liblnetconfig_lnd.c
- lnet/utils/lnetctl.c 70 additions, 0 deletionslnet/utils/lnetctl.c
Loading
Please register or sign in to comment