Whamcloud - gitweb
LU-10185 gnilnd: SLES 12 SP2 support and cleanup 92/29892/4
authorChuck Fossen <chuckf@cray.com>
Wed, 21 Sep 2016 20:31:43 +0000 (15:31 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 22 Dec 2017 07:03:59 +0000 (07:03 +0000)
Handle a couple changes for SLES 12 SP2:
 - Handle rename of set_mb() to smp_store_mb()
 - Handle rename of __GFP_WAIT to __GFP_RECLAIM
 - Handle parameter change to sock_create_kern()

Also remove various dead code.

Test-parameters: trivial

Signed-off-by: Chris Horn <hornc@cray.com>
Change-Id: I9b5799a492b347fe7961f2d70e24bed5cc2e7021
Reviewed-on: https://review.whamcloud.com/29892
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Doug Oucharek <dougso@me.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lnet/klnds/gnilnd/gnilnd.c
lnet/klnds/gnilnd/gnilnd.h
lnet/klnds/gnilnd/gnilnd_aries.h
lnet/klnds/gnilnd/gnilnd_proc.c

index a41aafb..4976a07 100644 (file)
 
 /* Primary entry points from LNET.  There are no guarantees against reentrance. */
 lnd_t the_kgnilnd = {
-#ifdef CONFIG_CRAY_XT
        .lnd_type       = GNILND,
-#else
-       .lnd_type       = GNIIPLND,
-#endif
        .lnd_startup    = kgnilnd_startup,
        .lnd_shutdown   = kgnilnd_shutdown,
        .lnd_ctl        = kgnilnd_ctl,
@@ -2054,12 +2050,6 @@ kgnilnd_dev_init(kgn_device_t *dev)
                }
        }
 
-       rrc = sock_create_kern(PF_INET, SOCK_DGRAM, IPPROTO_IP, &kgnilnd_data.kgn_sock);
-       if (rrc < 0) {
-               CERROR("sock_create returned %d\n", rrc);
-               GOTO(failed, rrc);
-       }
-
        rc = kgnilnd_nicaddr_to_nid(dev->gnd_host_id, &dev->gnd_nid);
        if (rc < 0) {
                /* log messages during startup */
@@ -2201,9 +2191,6 @@ kgnilnd_dev_fini(kgn_device_t *dev)
                dev->gnd_domain = NULL;
        }
 
-       if (kgnilnd_data.kgn_sock)
-               sock_release(kgnilnd_data.kgn_sock);
-
        EXIT;
 }
 
index 9589ae8..6a762a6 100644 (file)
@@ -871,7 +871,6 @@ typedef struct kgn_data {
        atomic_t                kgn_rev_offset;       /* # of REV rdma w/misaligned offsets */
        atomic_t                kgn_rev_length;       /* # of REV rdma have misaligned len */
        atomic_t                kgn_rev_copy_buff;    /* # of REV rdma buffer copies */
-       struct socket          *kgn_sock;             /* for Apollo */
        unsigned long           free_pages_limit;     /* # of free pages reserve from fma block allocations */
        int                     kgn_enable_gl_mutex;  /* kgni api mtx enable */
 } kgn_data_t;
@@ -995,6 +994,11 @@ static inline void kgnilnd_vfree(void *ptr, int size)
        vfree(ptr);
 }
 
+/* as of kernel version 4.2, set_mb is replaced with smp_store_mb */
+#ifndef set_mb
+#define set_mb smp_store_mb
+#endif
+
 /* Copied from DEBUG_REQ in Lustre - the dance is needed to save stack space */
 
 extern void
index b36603e..d9698b6 100644 (file)
@@ -90,150 +90,4 @@ kgnilnd_deregister_smdd_buf(kgn_device_t *dev)
        return rc;
 }
 
-/* plug in our functions for use on the simulator */
-#if !defined(GNILND_USE_RCA)
-
-extern kgn_data_t kgnilnd_data;
-
-#define kgnilnd_hw_hb()              do {} while(0)
-
-#ifdef CONFIG_CRAY_XT
-
-/* Aries Sim doesn't have hardcoded tables, so we'll hijack the nic_pe
- * and decode our address and nic addr from that - the rest are just offsets */
-
-static inline int
-kgnilnd_nid_to_nicaddrs(__u32 nid, int numnic, __u32 *nicaddr)
-{
-       if (numnic > 1) {
-               CERROR("manual nid2nic translation doesn't support"
-                      "multiple nic addrs (you asked for %d)\n",
-                       numnic);
-               return -EINVAL;
-       }
-       if (nid < kgnilnd_data.kgn_nid_trans_private) {
-               CERROR("Request for invalid nid translation %u,"
-                      "minimum %llu\n",
-                      nid, kgnilnd_data.kgn_nid_trans_private);
-               return -ESRCH;
-       }
-
-       *nicaddr = nid - kgnilnd_data.kgn_nid_trans_private;
-
-       CDEBUG(D_NETTRACE, "Sim nid %d -> nic 0x%x\n", nid, *nicaddr);
-
-       return 1;
-}
-
-static inline int
-kgnilnd_nicaddr_to_nid(__u32 nicaddr, __u32 *nid)
-{
-       *nid = kgnilnd_data.kgn_nid_trans_private + nicaddr;
-       return 1;
-}
-
-/* XXX Nic: This does not support multiple device!!!! */
-static inline int
-kgnilnd_setup_nic_translation(__u32 device_id)
-{
-       char              *if_name = "ipogif0";
-       __u32              ipaddr, netmask, my_nid;
-       int                up, rc;
-
-       LCONSOLE_INFO("using Aries SIM IP info for RCA translation\n");
-
-       rc = lnet_ipif_query(if_name, &up, &ipaddr, &netmask);
-       if (rc != 0) {
-               CERROR ("can't get IP interface for %s: %d\n", if_name, rc);
-               return rc;
-       }
-       if (!up) {
-               CERROR ("IP interface %s is down\n", if_name);
-               return -ENODEV;
-       }
-
-       my_nid = ((ipaddr >> 8) & 0xFF) + (ipaddr & 0xFF);
-       kgnilnd_data.kgn_nid_trans_private = my_nid - device_id;
-
-       return 0;
-}
-
-#else /* CONFIG_CRAY_XT */
-#include <net/inet_common.h>
-#include <linux/if_arp.h>
-
-static inline int
-kgnilnd_nid_to_nicaddrs(__u32 nid, int numnic, __u32 *nicaddrs)
-{
-       int rc;
-
-#define NID_MASK ((1ULL << 18) - 1)
-       mm_segment_t fs;
-       struct arpreq req = {
-               .arp_dev = "ipogif0",
-       };
-
-       req.arp_pa.sa_family = AF_INET;
-       ((struct sockaddr_in *)&req.arp_pa)->sin_addr.s_addr = htonl(nid);
-
-       fs = get_fs();
-       set_fs(get_ds());
-
-       rc = inet_ioctl(kgnilnd_data.kgn_sock, SIOCGARP, (unsigned long)&req);
-       set_fs(fs);
-
-       if (rc < 0) {
-               CDEBUG(D_NETERROR, "inet_ioctl returned %d\n", rc);
-               return 0;
-       }
-
-       /* use the lower 18 bits of the mac address to use as a nid value */
-       *nicaddrs = *(__u32 *)&req.arp_ha.sa_data[2];
-       *nicaddrs = ntohl(*nicaddrs) & NID_MASK;
-
-       CDEBUG(D_NETTRACE, "nid %s -> nic 0x%x\n", libcfs_nid2str(nid),
-               nicaddrs[0]);
-
-       return 1;
-}
-
-static inline int
-kgnilnd_nicaddr_to_nid(__u32 nicaddr, __u32 *nid)
-{
-       int rc;
-       mm_segment_t fs;
-       struct ifreq ifr = {
-               .ifr_name = "ipogif0",
-       };
-
-       struct sockaddr_in* ipaddr = (struct sockaddr_in*)&ifr.ifr_addr;
-
-       fs = get_fs();
-       set_fs(get_ds());
-       rc = inet_ioctl(kgnilnd_data.kgn_sock, SIOCGIFADDR, (unsigned long)&ifr);
-       set_fs(fs);
-
-       if (rc < 0) {
-               CDEBUG(D_NETERROR, "inet_ioctl returned %d\n", rc);
-               return 1;
-       }
-
-       CDEBUG(D_NETTRACE, "ipaddr %08x\n", htonl(ipaddr->sin_addr.s_addr));
-
-       *nid = htonl(ipaddr->sin_addr.s_addr);
-       CDEBUG(D_NETTRACE, "nic 0x%x -> nid %s\n", nicaddr,
-               libcfs_nid2str(*nid));
-       return 0;
-}
-
-static inline int
-kgnilnd_setup_nic_translation(__u32 device_id)
-{
-       return 0;
-}
-
-#endif /* CONFIG_CRAY_XT */
-
-#endif /* GNILND_USE_RCA */
-
 #endif /* _GNILND_ARIES_H */
index 5977476..6238e52 100644 (file)
@@ -59,8 +59,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        for (i = 0; i < LNET_MAX_IOV; i++) {
                src[i].kiov_offset = 0;
                src[i].kiov_len = PAGE_SIZE;
-               src[i].kiov_page = alloc_page(__GFP_WAIT | __GFP_IO |
-                                             __GFP_FS | __GFP_ZERO);
+               src[i].kiov_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 
                if (src[i].kiov_page == NULL) {
                        CERROR("couldn't allocate page %d\n", i);
@@ -69,8 +68,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
 
                dest[i].kiov_offset = 0;
                dest[i].kiov_len = PAGE_SIZE;
-               dest[i].kiov_page = alloc_page(__GFP_WAIT | __GFP_IO |
-                                             __GFP_FS | __GFP_ZERO);
+               dest[i].kiov_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 
                if (dest[i].kiov_page == NULL) {
                        CERROR("couldn't allocate page %d\n", i);