Skip to contentSkip to conversation

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

PATCH Mike Taht 1 participant 1 message Jun 15, 2016

lore
Share & tools
lore

Mike Taht

author
#0 lore raw

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

update-cache.c 2005-04-15 21:53:34.000000000 -0700 renamed from home/m/src/git-pasky-0.4/update-cache.c 2005-04-15 12:24:26.000000000 -0700 +1 -1
@@ -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);
 
read-cache.c 2005-04-15 22:01:12.000000000 -0700 renamed from home/m/src/git-pasky-0.4/read-cache.c 2005-04-15 12:24:26.000000000 -0700 +2 -0
@@ -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)
Signature · 1 line
Mike Taht