fix compilation for gemini
authorGengbin Zheng <gzheng@illinois.edu>
Wed, 5 Oct 2011 21:20:05 +0000 (14:20 -0700)
committerGengbin Zheng <gzheng@illinois.edu>
Wed, 5 Oct 2011 21:20:05 +0000 (14:20 -0700)
src/arch/gemini_gni/Makefile.machine
src/arch/gemini_gni/machine.c
src/arch/util/mempool.c
src/arch/util/mempool.h

index 6b97d97148eac6e689bee043dcbf0b379c23ae4c..adbf27ac88d5014ad275a68b4a810461d5bc89cf 100644 (file)
@@ -1,2 +1,2 @@
-$(L)/libconv-cplus-n.a: machine.c machine-common-core.c machine-broadcast.c machine-lrts.h machine-pxshm.c mempool.c machine-persistent.c
+$(L)/libconv-cplus-n.a: machine.c machine-common-core.c machine-broadcast.c machine-lrts.h machine-pxshm.c machine-persistent.c
 
index 7c3d48073e9b029601a0a9b0bbcd3a3919aeae47..88bd441fc3d9aead9de3590800e7020c392e2f3f 100644 (file)
@@ -58,6 +58,8 @@ int         lrts_local_done_msg = 0;
 
 #include "pcqueue.h"
 
+#include "mempool.h"
+
 #if CMK_PERSISTENT_COMM
 #include "machine-persistent.h"
 #endif
@@ -135,7 +137,7 @@ static int Mempool_MaxSize = 1024*1024*128;
 static int useStaticMSGQ = 0;
 static int useStaticFMA = 0;
 static int mysize, myrank;
-static gni_nic_handle_t      nic_hndl;
+gni_nic_handle_t      nic_hndl;
 
 typedef struct {
     gni_mem_handle_t mdh;
@@ -387,8 +389,6 @@ static MSG_LIST *buffered_fma_tail = 0;
 #define SET_BITS(a,ind) a = ( a | (1<<(ind )) )
 #define Reset(a,ind) a = ( a & (~(1<<(ind))) )
 
-#include "mempool.c"
-
 static mempool_type  *mempool = NULL;
 
 /* get the upper bound of log 2 */
index defb44800d52abd1b855909383725753a8b5a0c3..46bebaab7e325aa2348836ab60b481872d192767 100644 (file)
@@ -13,9 +13,12 @@ Generalized by Gengbin Zheng  10/5/2011
 #define POOLS_NUM       2
 #define MAX_INT        2147483647
 
-#include "conv-config.h"
+#include "converse.h"
 
+#include <stdio.h>
 #include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
 #if CMK_HAS_MALLOC_H
 #include <malloc.h>
 #endif
@@ -76,7 +79,6 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
     mempool_header    *bestfit = NULL;
     mempool_header    *bestfit_previous = NULL;
     mempool_block     *mempools_head = &(mptr->mempools_head);
-    int     expand_size;
 
 #if  MEMPOOL_DEBUG
     CmiPrintf("[%d] request malloc from pool: %p  free_head: %p %d for size %d, \n", CmiMyPe(), mptr, freelist_head_ptr, mptr->freelist_head, size);
@@ -119,6 +121,7 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
     if(bestfit == NULL)
     {
         mempool_block   *expand_pool;
+        size_t   expand_size;
         void *pool;
 
         if (!expand) return NULL;
@@ -130,7 +133,7 @@ void*  mempool_malloc(mempool_type *mptr, int size, int expand)
         printf("[%d] No memory has such free empty chunck of %d. expanding %p (%d)\n", CmiMyPe(), size, expand_pool->mempool_ptr, expand_size);
 #if CMK_CONVERSE_GEMINI_UGNI
         gni_return_t  status;
-        status = MEMORY_REGISTER(onesided_hnd, nic_hndl, expand_pool->mempool_ptr, expand_size,  &(expand_pool->mem_hndl), &omdh);
+        status = GNI_MemRegister(nic_hndl, (uint64_t)expand_pool->mempool_ptr, expand_size,  NULL, GNI_MEM_READWRITE, -1, &(expand_pool->mem_hndl));
         GNI_RC_CHECK("Mempool register", status);
 #endif
         expand_pool->next = NULL;
index 127258419b4924fb9d72e455ad144007566b845e..3867e22ebea6d064de766eea9449bf47bc16e492 100644 (file)
@@ -4,7 +4,18 @@
 
 #include "conv-config.h"
 
-#if ! CMK_CONVERSE_GEMINI_UGNI
+#if CMK_CONVERSE_GEMINI_UGNI
+
+#include "gni_pub.h"
+#include "pmi.h"
+extern gni_nic_handle_t      nic_hndl;
+#if CMK_ERROR_CHECKING
+#define GNI_RC_CHECK(msg,rc) do { if(rc != GNI_RC_SUCCESS) {           CmiPrintf("[%d] %s; err=%s\n",CmiMyPe(),msg,gni_err_str[rc]); CmiAbort("GNI_RC_CHECK"); } } while(0)
+#else
+#define GNI_RC_CHECK(msg,rc)
+#endif
+
+#else
   // in uGNI, it is memory handler, other versions, this is an integer
   // a unique integer to represent the memory block
 typedef int    gni_mem_handle_t;