Skip to content

Add Xianyi's patch for segfaults on kernel 2.6.32 and add documentation accordingly. #104

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 3, 2012
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions GotoBLAS_03FAQ.txt
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,15 @@
number of threads will consume extra resource. I recommend you to
specify minimum number of threads.

1.9 Q I have segfaults when I compile with USE_OPENMP=1. What's wrong?

A This may be related to a bug in the Linux kernel 2.6.32. Try applying
the patch segaults.patch using

git am segfaults.patch

and see if the crashes persist. Note that this patch will lead to many
compiler warnings.

2. Architecture Specific issue or Implementation

Expand Down
27 changes: 27 additions & 0 deletions segfaults.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
From ac40907baa90a0acc78139762ffa3c6f09274236 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alexander=20Ebersp=C3=A4cher?= <[email protected]>
Date: Wed, 2 May 2012 11:22:52 +0200
Subject: [PATCH] Fix segfaults with kernel 2.6.32. This comes at the price of many compiler warnings.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line should perhaps be modified, now that the warnings are gone.


---
common_linux.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/common_linux.h b/common_linux.h
index b0381d9..40a94cb 100644
--- a/common_linux.h
+++ b/common_linux.h
@@ -76,8 +76,8 @@ static inline int my_mbind(void *addr, unsigned long len, int mode,
#endif
#else
//Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34
-// unsigned long null_nodemask=0;
- return syscall(SYS_mbind, addr, len, mode, nodemask, maxnode, flags);
+ unsigned long null_nodemask=0;
+ return syscall(SYS_mbind, addr, len, mode, &nodemask, maxnode, flags);
#endif
}

--
1.7.1