Skip to content

Commit 9925fc1

Browse files
committed
Add EIATTR_CRS_STACK_SIZE attribute
1 parent a91732a commit 9925fc1

File tree

3 files changed

+12
-5
lines changed

3 files changed

+12
-5
lines changed

driverapi/include/librecuda_status.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
typedef int libreCudaStatus_t;
77

88
#define LIBRECUDA_DEBUG(msg) std::cerr << "[LibreCuda Debug]: " << msg << std::endl
9-
#define STRINGIFY(x) #x
10-
#define TOSTRING(x) STRINGIFY(x)
9+
#define __LIBRECUDA_STRINGIFY(x) #x
10+
#define __LIBRECUDA_TOSTRING(x) __LIBRECUDA_STRINGIFY(x)
1111

1212
#define LIBRECUDA_VALIDATE(condition, err) { \
1313
if (!(condition)) { \
14-
LIBRECUDA_DEBUG(__FILE__ ":" TOSTRING(__LINE__) ": " #condition); \
14+
LIBRECUDA_DEBUG(__FILE__ ":" __LIBRECUDA_TOSTRING(__LINE__) ": " #condition); \
1515
return err; \
1616
} \
1717
}

driverapi/internal/librecuda_internal.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ static inline libreCudaStatus_t rm_alloc(int fd, NvV32 clss,
149149
LIBRECUDA_SUCCEED();
150150
}
151151

152-
#define LIBRECUDA_VALIDATE_RM_ALLOC(status) { libreCudaStatus_t status_val = status; if (status_val != LIBRECUDA_SUCCESS) { LIBRECUDA_DEBUG(__FILE__ ":" TOSTRING(__LINE__) ": rm_alloc failed with status " + std::to_string(status_val)); LIBRECUDA_FAIL(LIBRECUDA_ERROR_UNKNOWN); } }
152+
#define LIBRECUDA_VALIDATE_RM_ALLOC(status) { libreCudaStatus_t status_val = status; if (status_val != LIBRECUDA_SUCCESS) { LIBRECUDA_DEBUG(__FILE__ ":" __LIBRECUDA_TOSTRING(__LINE__) ": rm_alloc failed with status " + std::to_string(status_val)); LIBRECUDA_FAIL(LIBRECUDA_ERROR_UNKNOWN); } }
153153

154154
#define RM_ALLOC(fd, clss, client, parent, object, params, param_size, pObjectNew) LIBRECUDA_VALIDATE_RM_ALLOC(rm_alloc(fd, clss, client, parent, object, params, param_size, pObjectNew));
155155

@@ -158,7 +158,7 @@ static inline libreCudaStatus_t rm_ctrl(int fd,
158158
NvHandle client, NvHandle object,
159159
void *params, NvU32 paramSize);
160160

161-
#define LIBRECUDA_VALIDATE_RM_CTRL(status) { libreCudaStatus_t status_val = status; if (status_val != LIBRECUDA_SUCCESS) { LIBRECUDA_DEBUG(__FILE__ ":" TOSTRING(__LINE__) ": rm_ctrl failed with status " + std::to_string(status_val)); LIBRECUDA_FAIL(LIBRECUDA_ERROR_UNKNOWN); } }
161+
#define LIBRECUDA_VALIDATE_RM_CTRL(status) { libreCudaStatus_t status_val = status; if (status_val != LIBRECUDA_SUCCESS) { LIBRECUDA_DEBUG(__FILE__ ":" __LIBRECUDA_TOSTRING(__LINE__) ": rm_ctrl failed with status " + std::to_string(status_val)); LIBRECUDA_FAIL(LIBRECUDA_ERROR_UNKNOWN); } }
162162

163163
#define RM_CTRL(fd, cmd, client, object, params, paramSize) LIBRECUDA_VALIDATE_RM_CTRL(rm_ctrl(fd, cmd, client, object, params, paramSize))
164164

driverapi/src/librecuda.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,9 @@ struct RelocInfo {
821821
#define EIATTR_CUDA_API_VERSION 0x3704
822822
#define EIATTR_CUDA_API_VERSION_ATTR_WORD_LEN 2
823823

824+
#define EIATTR_CRS_STACK_SIZE 0x1e04
825+
#define EIATTR_CRS_STACK_SIZE_ATTR_WORD_LEN 2
826+
824827
#define EIATTR_PARAM_CBANK 0x0a04
825828
#define EIATTR_PARAM_CBANK_ATTR_WORD_LEN 3
826829

@@ -1129,6 +1132,10 @@ libreCudaStatus_t libreCuModuleLoadData(LibreCUmodule *pModule, const void *imag
11291132
off += (EIATTR_CUDA_API_VERSION_ATTR_WORD_LEN * sizeof(NvU32));
11301133
break;
11311134
}
1135+
case EIATTR_CRS_STACK_SIZE: {
1136+
off += (EIATTR_CRS_STACK_SIZE_ATTR_WORD_LEN * sizeof(NvU32));
1137+
break;
1138+
}
11321139
case EIATTR_PARAM_CBANK: {
11331140
off += (EIATTR_PARAM_CBANK_ATTR_WORD_LEN * sizeof(NvU32));
11341141
break;

0 commit comments

Comments
 (0)