Kaynağa Gözat

add madvise nosync calls for bsd platform.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2253 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake 16 yıl önce
ebeveyn
işleme
a49937b029
2 değiştirilmiş dosya ile 18 ekleme ve 0 silme
  1. 9 0
      exec/coroipcs.c
  2. 9 0
      lib/coroipcc.c

+ 9 - 0
exec/coroipcs.c

@@ -188,6 +188,9 @@ memory_map (
 	if (addr != addr_orig) {
 		return (-1);
 	}
+#ifdef COROSYNC_BSD
+	madvise(addr, bytes, MADV_NOSYNC);
+#endif
 
 	res = close (fd);
 	if (res) {
@@ -227,10 +230,16 @@ circular_memory_map (
 	if (addr != addr_orig) {
 		return (-1);
 	}
+#ifdef COROSYNC_BSD
+	madvise(addr_orig, bytes, MADV_NOSYNC);
+#endif
 
 	addr = mmap (((char *)addr_orig) + bytes,
                   bytes, PROT_READ | PROT_WRITE,
                   MAP_FIXED | MAP_SHARED, fd, 0);
+#ifdef COROSYNC_BSD
+	madvise(((char *)addr_orig) + bytes, bytes, MADV_NOSYNC);
+#endif
 
 	res = close (fd);
 	if (res) {

+ 9 - 0
lib/coroipcc.c

@@ -301,10 +301,16 @@ circular_memory_map (char *path, const char *file, void **buf, size_t bytes)
 	if (addr != addr_orig) {
 		return (-1);
 	}
+#ifdef COROSYNC_BSD
+	madvise(addr_orig, bytes, MADV_NOSYNC);
+#endif
 
 	addr = mmap (((char *)addr_orig) + bytes,
                   bytes, PROT_READ | PROT_WRITE,
                   MAP_FIXED | MAP_SHARED, fd, 0);
+#ifdef COROSYNC_BSD
+	madvise(((char *)addr_orig) + bytes, bytes, MADV_NOSYNC);
+#endif
 
 	res = close (fd);
 	if (res) {
@@ -367,6 +373,9 @@ memory_map (char *path, const char *file, void **buf, size_t bytes)
 	if (addr != addr_orig) {
 		return (-1);
 	}
+#ifdef COROSYNC_BSD
+	madvise(addr_orig, bytes, MADV_NOSYNC);
+#endif
 
 	res = close (fd);
 	if (res) {