提交 19caf206 编写于 作者: 羽飞's avatar 羽飞 提交者: wangzelin.wzl

revert 'use isal for crc check'

上级 139fe70c
......@@ -13,8 +13,6 @@
#include <stdlib.h>
#include "lib/checksum/ob_crc64.h"
#include "lib/ob_define.h"
#include "isa-l/crc64.h"
#include "isa-l/crc.h"
namespace oceanbase {
namespace common {
......@@ -2832,12 +2830,6 @@ uint64_t fast_crc64_sse42_manually(uint64_t crc, const char* buf, int64_t len)
return crc;
}
//If the CPU is intel, ISA-L library for CRC can be used
inline static uint64_t ob_crc64_isal(uint64_t uCRC64, const char* buf, int64_t cb)
{
return crc32_iscsi((unsigned char*)(buf), cb, uCRC64);
}
uint64_t crc64_sse42_dispatch(uint64_t crc, const char* buf, int64_t len)
{
#if defined(__x86_64__)
......@@ -2845,26 +2837,14 @@ uint64_t crc64_sse42_dispatch(uint64_t crc, const char* buf, int64_t len)
uint32_t b = 0;
uint32_t c = 0;
uint32_t d = 0;
uint32_t vendor_info[4];
__asm__("mov $0x0, %eax\n\t");
__asm__("cpuid\n\t");
__asm__("mov %%ebx, %0\n\t":"=r" (vendor_info[0]));
__asm__("mov %%edx, %0\n\t":"=r" (vendor_info[1]));
__asm__("mov %%ecx, %0\n\t":"=r" (vendor_info[2]));
vendor_info[3]='\0';
if (strcmp((char*)vendor_info, "GenuineIntel") == 0) {
ob_crc64_sse42_func = &ob_crc64_isal;
_OB_LOG(INFO, "Use ISAL for crc64 calculate");
} else{
asm("cpuid" : "=a"(a), "=b"(b), "=c"(c), "=d"(d) : "0"(1));
if ((c & (1 << 20)) != 0) {
ob_crc64_sse42_func = &crc64_sse42;
_OB_LOG(INFO, "Use CPU crc32 instructs for crc64 calculate");
} else {
ob_crc64_sse42_func = &fast_crc64_sse42_manually;
_OB_LOG(INFO, "Use manual crc32 table lookup for crc64 calculate");
}
asm("cpuid" : "=a"(a), "=b"(b), "=c"(c), "=d"(d) : "0"(1));
if ((c & (1 << 20)) != 0) {
ob_crc64_sse42_func = &crc64_sse42;
_OB_LOG(INFO, "Use CPU crc32 instructs for crc64 calculate");
} else {
ob_crc64_sse42_func = &fast_crc64_sse42_manually;
_OB_LOG(INFO, "Use manual crc32 table lookup for crc64 calculate");
}
#elif defined(__aarch64__)
......
......@@ -66,7 +66,6 @@ inline uint64_t ob_crc64_sse42(const void* pv, int64_t cb)
return (*ob_crc64_sse42_func)(0, static_cast<const char*>(pv), cb);
}
uint64_t ob_crc64_isal(uint64_t uCRC64, const void* pv, int64_t cb);
uint64_t crc64_sse42_manually(uint64_t crc, const char* buf, int64_t len);
uint64_t fast_crc64_sse42_manually(uint64_t crc, const char* buf, int64_t len);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册