X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lnet%2Fklnds%2Fgnilnd%2Fgnilnd_aries.h;h=b36603e61a53aa64e72d492b97282cab6408b540;hp=72ca834172904acf8c36072db5bd85c9ffa3ece6;hb=2b8c4566a6a63cdf09e555a744ce6a1453651b98;hpb=0b868add80281c085ce1b297d1cb078deaab802a diff --git a/lnet/klnds/gnilnd/gnilnd_aries.h b/lnet/klnds/gnilnd/gnilnd_aries.h index 72ca834..b36603e 100644 --- a/lnet/klnds/gnilnd/gnilnd_aries.h +++ b/lnet/klnds/gnilnd/gnilnd_aries.h @@ -51,8 +51,45 @@ #else #define GNILND_REVERSE_RDMA GNILND_REVERSE_GET #define GNILND_RDMA_DLVR_OPTION GNI_DLVMODE_PERFORMANCE +#define GNILND_SCHED_THREADS 7 /* scheduler threads */ #endif +/* Thread-safe kgni implemented in minor ver 45, code rev 0xb9 */ +#define GNILND_KGNI_TS_MINOR_VER 0x45 +#define GNILND_TS_ENABLE 1 + +/* register some memory to allocate a shared mdd */ +static inline gni_return_t +kgnilnd_register_smdd_buf(kgn_device_t *dev) +{ + __u32 flags = GNI_MEM_READWRITE; + + if (*kgnilnd_tunables.kgn_bte_relaxed_ordering) { + flags |= GNI_MEM_RELAXED_PI_ORDERING; + } + + LIBCFS_ALLOC(dev->gnd_smdd_hold_buf, PAGE_SIZE); + if (!dev->gnd_smdd_hold_buf) { + CERROR("Can't allocate smdd hold buffer\n"); + return GNI_RC_ERROR_RESOURCE; + } + + return kgnilnd_mem_register(dev->gnd_handle, + (__u64)dev->gnd_smdd_hold_buf, + PAGE_SIZE, NULL, flags, + &dev->gnd_smdd_hold_hndl); +} + +static inline gni_return_t +kgnilnd_deregister_smdd_buf(kgn_device_t *dev) +{ + gni_return_t rc = kgnilnd_mem_deregister(dev->gnd_handle, + &dev->gnd_smdd_hold_hndl, 0); + LIBCFS_FREE(dev->gnd_smdd_hold_buf, PAGE_SIZE); + + return rc; +} + /* plug in our functions for use on the simulator */ #if !defined(GNILND_USE_RCA) @@ -76,7 +113,7 @@ kgnilnd_nid_to_nicaddrs(__u32 nid, int numnic, __u32 *nicaddr) } if (nid < kgnilnd_data.kgn_nid_trans_private) { CERROR("Request for invalid nid translation %u," - "minimum "LPU64"\n", + "minimum %llu\n", nid, kgnilnd_data.kgn_nid_trans_private); return -ESRCH; }