Fixed mbind bug on Loongson 3B. Check the return value of my_mbind function.
This commit is contained in:
parent
285e69e2d1
commit
ef6f7f32ae
|
@ -68,9 +68,13 @@ extern long int syscall (long int __sysno, ...);
|
||||||
static inline int my_mbind(void *addr, unsigned long len, int mode,
|
static inline int my_mbind(void *addr, unsigned long len, int mode,
|
||||||
unsigned long *nodemask, unsigned long maxnode,
|
unsigned long *nodemask, unsigned long maxnode,
|
||||||
unsigned flags) {
|
unsigned flags) {
|
||||||
|
#if defined (LOONGSON3B)
|
||||||
|
return syscall(SYS_mbind, addr, len, mode, nodemask, maxnode, flags);
|
||||||
|
#else
|
||||||
//Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34
|
//Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34
|
||||||
unsigned long null_nodemask=0;
|
unsigned long null_nodemask=0;
|
||||||
return syscall(SYS_mbind, addr, len, mode, &null_nodemask, maxnode, flags);
|
return syscall(SYS_mbind, addr, len, mode, &null_nodemask, maxnode, flags);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int my_set_mempolicy(int mode, const unsigned long *addr, unsigned long flag) {
|
static inline int my_set_mempolicy(int mode, const unsigned long *addr, unsigned long flag) {
|
||||||
|
|
|
@ -389,12 +389,13 @@ static void *alloc_mmap(void *address){
|
||||||
if (map_address != (void *)-1) {
|
if (map_address != (void *)-1) {
|
||||||
|
|
||||||
#ifdef OS_LINUX
|
#ifdef OS_LINUX
|
||||||
#ifdef DEBUG
|
#if 1
|
||||||
int ret;
|
//#ifdef DEBUG
|
||||||
|
int ret=0;
|
||||||
ret=my_mbind(map_address, BUFFER_SIZE * SCALING, MPOL_PREFERRED, NULL, 0, 0);
|
ret=my_mbind(map_address, BUFFER_SIZE * SCALING, MPOL_PREFERRED, NULL, 0, 0);
|
||||||
if(ret==-1){
|
if(ret==-1){
|
||||||
int errsv=errno;
|
int errsv=errno;
|
||||||
perror("alloc_mmap:");
|
perror("OpenBLAS alloc_mmap:");
|
||||||
printf("error code=%d,\tmap_address=%lx\n",errsv,map_address);
|
printf("error code=%d,\tmap_address=%lx\n",errsv,map_address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue