Skip to content
This repository was archived by the owner on Aug 29, 2023. It is now read-only.

Commit 04284f2

Browse files
author
xieqi
authored
- Update to QATzip v0.2.5 (#1)
- Fix can't find some symbols when use ldd
1 parent 91c0dc0 commit 04284f2

File tree

5 files changed

+30
-32
lines changed

5 files changed

+30
-32
lines changed

hadoop_qat_wrapper/build/native/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ INC = -I $(JAVA_HOME)/include \
3737
-I .
3838

3939
libqatcodec.so: QatCompressor.o QatDecompressor.o util.o
40-
gcc -fpic -shared -o ../../target/libqatcodec.so QatCompressor.o \
40+
gcc -fpic -shared -o ../../target/libqatcodec.so -ldl QatCompressor.o \
4141
QatDecompressor.o util.o
4242

4343
QatCompressor.o: ../../src/main/native/QatCompressor.c javah

hadoop_qat_wrapper/src/main/native/QatCompressor.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,23 @@ static jfieldID QatCompressor_uncompressedDirectBufLen;
4242
static jfieldID QatCompressor_compressedDirectBuf;
4343
static jfieldID QatCompressor_directBufferSize;
4444

45-
__thread QzSession g_qzCompressSession = {
45+
__thread QzSession_T g_qzCompressSession = {
4646
.internal = NULL,
4747
};
4848

4949
#ifdef UNIX
50-
unsigned char* (*dlsym_qzMalloc)(int, int, int);
51-
static int (*dlsym_qzCompress)(QzSession *sess, const unsigned char* src,
50+
unsigned char* (*dlsym_qzMalloc)(int, int, int);
51+
static int (*dlsym_qzCompress)(QzSession_T *sess, const unsigned char* src,
5252
unsigned int* src_len, unsigned char* dest, unsigned int* dest_len,
5353
unsigned int last);
54+
int (*dlsym_qzGetDefaults)(QzSessionParams_T *defaults);
55+
int (*dlsym_qzSetDefaults)(QzSessionParams_T *defaults);
5456
#endif
5557

56-
//QzSession sess;
57-
QzSessionParams params;
5858
JNIEXPORT void JNICALL Java_org_apache_hadoop_io_compress_qat_QatCompressor_initIDs
5959
(JNIEnv *env, jclass clazz, jint level){
60+
QzSessionParams_T params;
6061
#ifdef UNIX
61-
6262
// Load libqatzip.so
6363
void *libqatzip = dlopen("libqatzip.so", RTLD_LAZY | RTLD_GLOBAL);
6464
if (!libqatzip) {
@@ -74,6 +74,8 @@ JNIEXPORT void JNICALL Java_org_apache_hadoop_io_compress_qat_QatCompressor_init
7474
dlerror(); // Clear any existing error
7575
LOAD_DYNAMIC_SYMBOL(dlsym_qzCompress, env, libqatzip, "qzCompress");
7676
LOAD_DYNAMIC_SYMBOL(dlsym_qzMalloc, env, libqatzip, "qzMalloc");
77+
LOAD_DYNAMIC_SYMBOL(dlsym_qzGetDefaults, env, libqatzip, "qzGetDefaults");
78+
LOAD_DYNAMIC_SYMBOL(dlsym_qzSetDefaults, env, libqatzip, "qzSetDefaults");
7779
#endif
7880

7981
QatCompressor_clazz = (*env)->GetStaticFieldID(env, clazz, "clazz",
@@ -88,10 +90,10 @@ JNIEXPORT void JNICALL Java_org_apache_hadoop_io_compress_qat_QatCompressor_init
8890
"Ljava/nio/Buffer;");
8991
QatCompressor_directBufferSize = (*env)->GetFieldID(env, clazz,
9092
"directBufferSize", "I");
91-
qzGetDefaults(&params);
92-
params.compLvl = level;
93+
dlsym_qzGetDefaults(&params);
94+
params.comp_lvl = level;
9395
fprintf(stderr, "compression level is %d, tid is %d\n", level, syscall(__NR_gettid));
94-
qzSetDefaults(&params);
96+
dlsym_qzSetDefaults(&params);
9597
}
9698

9799
JNIEXPORT jint JNICALL Java_org_apache_hadoop_io_compress_qat_QatCompressor_compressBytesDirect
@@ -132,7 +134,7 @@ JNIEXPORT jint JNICALL Java_org_apache_hadoop_io_compress_qat_QatCompressor_comp
132134
ret = dlsym_qzCompress(&g_qzCompressSession, uncompressed_bytes, &src_len,
133135
compressed_bytes, &buf_len, 1);
134136
if (ret != QZ_OK){
135-
THROW(env, "java/lang/InternalError", "Could not compress data. Buffer length is too small.");
137+
THROW(env, "java/lang/InternalError", "Could not compress data, return " + ret);
136138
return 0;
137139
}
138140
if (buf_len > JINT_MAX) {
@@ -170,10 +172,10 @@ Java_org_apache_hadoop_io_compress_qat_QatCompressor_getLibraryName(JNIEnv *env,
170172
#endif
171173
}
172174

173-
JNIEXPORT jobject JNICALL
175+
JNIEXPORT jobject JNICALL
174176
Java_org_apache_hadoop_io_compress_qat_QatCompressor_nativeAllocateBB(JNIEnv *env,
175177
jobject obj, jlong capacity, jboolean numa, jboolean force_pinned){
176-
//void *buf = dlsym_qat_malloc(capacity);
178+
//void *buf = dlsym_qat_malloc(capacity);
177179
//printf("compressor: DBB address is 0x%lx\n",(unsigned long)buf);
178180
//fflush(stdout);
179181
// return (*env)->NewDirectByteBuffer(env, buf, capacity);

hadoop_qat_wrapper/src/main/native/QatDecompressor.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ static jfieldID QatDecompressor_directBufferSize;
3838
#define qaePinnedMemFree(x) qaeMemFreeNUMA((void **)&(x))
3939

4040
#ifdef UNIX
41-
static int (*dlsym_qzDecompress)(QzSession *sess, const unsigned char* src,
41+
static int (*dlsym_qzDecompress)(QzSession_T *sess, const unsigned char* src,
4242
unsigned int* compressed_buf_len, unsigned char* dest,
4343
unsigned int* uncompressed_buffer_len);
44-
unsigned char* (*dlsym_qzMalloc)(int sz, int numa, int force_pinned);
44+
unsigned char* (*dlsym_qzMalloc)(int sz, int numa, int force_pinned);
4545
#endif
4646

4747
#ifdef WINDOWS
48-
typedef int (__cdecl *__dlsym_qzDecompress)(QzSession *sess, const unsigned char* src,
48+
typedef int (__cdecl *__dlsym_qzDecompress)(QzSession_T *sess, const unsigned char* src,
4949
unsigned int* compressed_buf_len, unsigned char* dest,
5050
unsigned int* uncompressed_buffer_len);
5151
static __dlsym_qzDecompress dlsym_qzDecompress;
@@ -133,23 +133,19 @@ JNIEXPORT jint JNICALL Java_org_apache_hadoop_io_compress_qat_QatDecompressor_de
133133
compressed_buf_len = compressed_direct_buf_len;
134134
ret = dlsym_qzDecompress(&g_qzCompressSession, compressed_bytes, &compressed_buf_len,
135135
uncompressed_bytes, &uncompressed_direct_buf_len);
136-
if (ret == QZ_PARAMS){
137-
THROW(env, "java/lang/InternalError", "Could not decompress data. Buffer length is too small.");
138-
} else if (ret == QZ_FAIL){
139-
THROW(env, "java/lang/InternalError", "Could not decompress data. Functionality is not supported.");
140-
} else if (ret != QZ_OK){
141-
THROW(env, "java/lang/InternalError", "Could not decompress data.");
136+
if (ret != QZ_OK) {
137+
THROW(env, "java/lang/InternalError", "Could not decompress data, return " + ret);
142138
}
143139

144140
(*env)->SetIntField(env, thisj, QatDecompressor_compressedDirectBufLen, 0);
145141

146142
return (jint)uncompressed_direct_buf_len;
147143
}
148144

149-
JNIEXPORT jobject JNICALL
145+
JNIEXPORT jobject JNICALL
150146
Java_org_apache_hadoop_io_compress_qat_QatDecompressor_nativeAllocateBB(JNIEnv *env,
151147
jobject obj, jlong capacity, jboolean numa, jboolean force_pinned){
152-
/*void *buf = dlsym_qzMalloc(capacity,0,1);
148+
/*void *buf = dlsym_qzMalloc(capacity,0,1);
153149
if (NULL == buf){
154150
fprintf(stderr,"decompressor: DBB address is 0x%lx\n",(unsigned long)buf);
155151
fflush(stderr);

hadoop_qat_wrapper/src/main/native/qatcodec.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@
4242

4343
#define HADOOP_QAT_LIBRARY "libqatzip.so"
4444

45-
extern __thread QzSession g_qzCompressSession;
45+
extern __thread QzSession_T g_qzCompressSession;

spark_qat_wrapper/src/main/native/QatCodecJNI.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@
4040

4141
#define QAT_ZIP_LIBRARY_NAME "libqatzip.so"
4242

43-
typedef int (*dlsym_qzCompress)(QzSession *sess, const unsigned char* src,
43+
typedef int (*dlsym_qzCompress)(QzSession_T *sess, const unsigned char* src,
4444
unsigned int* src_len, unsigned char* dest, unsigned int* dest_len,
4545
unsigned int last);
46-
typedef int (*dlsym_qzDecompress)(QzSession *sess, const unsigned char* src,
46+
typedef int (*dlsym_qzDecompress)(QzSession_T *sess, const unsigned char* src,
4747
unsigned int* compressed_buf_len, unsigned char* dest,
4848
unsigned int* uncompressed_buffer_len);
49-
typedef int (*dlsym_qzGetDefaults)(QzSessionParams *defaults);
50-
typedef int (*dlsym_qzSetDefaults)(QzSessionParams *defaults);
49+
typedef int (*dlsym_qzGetDefaults)(QzSessionParams_T *defaults);
50+
typedef int (*dlsym_qzSetDefaults)(QzSessionParams_T *defaults);
5151

5252

5353
typedef struct qat_wrapper_context { int magic;
@@ -59,7 +59,7 @@ typedef struct qat_wrapper_context {
5959

6060
qat_wrapper_context_t g_qat_wrapper_context;
6161

62-
__thread QzSession g_qzSession = {
62+
__thread QzSession_T g_qzSession = {
6363
.internal = NULL,
6464
};
6565

@@ -140,9 +140,9 @@ Java_com_intel_qat_jni_QatCodecJNI_createCompressContext(
140140
JNIEnv *env, jclass cls, jint level)
141141
{
142142
qat_wrapper_context_t *qat_wrapper_context = &g_qat_wrapper_context;
143-
QzSessionParams params;
143+
QzSessionParams_T params;
144144
qat_wrapper_context->getDefaults(&params);
145-
params.compLvl = level;
145+
params.comp_lvl = level;
146146
//fprintf(stderr, "compression level is %d, tid is %ld\n", level, syscall(__NR_gettid));
147147
qat_wrapper_context->setDefaults(&params);
148148
return (jlong)1;

0 commit comments

Comments
 (0)