Subject: would madvise be a win or a lose on memory pressure?

From: Mike Taht <[email-masked]>
Date: Fri, 15 Apr 2005 22:05:59 -0700

Doesn't seem to make sense to use MADV_RANDOM on the cache file, but 
maybe MADV_SEQUENTIAL on the rest...

--- /home/m/src/git-pasky-0.4/update-cache.c    2005-04-15 
12:24:26.000000000 -0700
+++ update-cache.c      2005-04-15 21:53:34.000000000 -0700
@@ -30,7 +30,7 @@
         close(fd);
         if (!out || (int)(long)in == -1)
                 return -1;
-
+       madvise(in,size,MADV_SEQUENTIAL);
         memset(&stream, 0, sizeof(stream));
         deflateInit(&stream, Z_BEST_COMPRESSION);

--- /home/m/src/git-pasky-0.4/read-cache.c      2005-04-15 
12:24:26.000000000 -0700
+++ read-cache.c        2005-04-15 22:01:12.000000000 -0700
@@ -143,6 +143,7 @@
         close(fd);
         if (-1 == (int)(long)map)
                 return NULL;
+       madvise(map,st.st_size,MADV_SEQUENTIAL);
         *size = st.st_size;
         return map;
  }
@@ -254,6 +255,7 @@
         close(fd);
         if (map == MAP_FAILED)
                 return -1;
+       madvise(map,size,MADV_SEQUENTIAL);
         cmp = memcmp(buf, map, size);
         munmap(map, size);
         if (cmp)

-- 

Mike Taht