From 220c5f1acd2bfafca40c3e89b5cd0c5f298645fc Mon Sep 17 00:00:00 2001 From: Abhinay Nagpal Date: Mon, 26 Nov 2012 15:46:16 -0800 Subject: [PATCH] debug msgs# Explicit paths specified without -i nor -o; assuming --only paths... --- .../voldemort/store/readonly/io/jna/mman.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/java/voldemort/store/readonly/io/jna/mman.java b/src/java/voldemort/store/readonly/io/jna/mman.java index 20ad193836..7b8e95563a 100644 --- a/src/java/voldemort/store/readonly/io/jna/mman.java +++ b/src/java/voldemort/store/readonly/io/jna/mman.java @@ -20,6 +20,8 @@ public class mman { public static final int MAP_SHARED = 0x01; /* Share changes. */ public static final int MAP_PRIVATE = 0x02; /* Changes are private. */ + public static final int MAP_ALIGN = 0x200; /* addr specifies alignment */ + public static final int MAP_LOCKED = 0x02000; /* Lock the mapping. */ // http://linux.die.net/man/2/mmap @@ -60,9 +62,12 @@ public static int munmap(Pointer addr, long len) throws IOException { public static void mlock(Pointer addr, long len) throws IOException { - if(Delegate.mlock(addr, len) != 0) { + int res = Delegate.mlock(addr, len); + if(res != 0) { + String error = errno.strerror(); logger.warn("Mlock failed probably because of insufficient privileges"); - logger.warn(errno.strerror()); + logger.warn(error); + logger.warn(res); } else { logger.info("Mlock successfull"); @@ -112,8 +117,12 @@ public static void main(String[] args) throws Exception { FileInputStream in = new FileInputStream(file); int fd = voldemort.store.readonly.io.Native.getFd(in.getFD()); + logger.info("File descriptor is: " + fd); + // mmap a large file... - Pointer addr = mmap(file.length(), PROT_READ, mman.MAP_SHARED | mman.MAP_LOCKED, fd, 0); + Pointer addr = mmap(file.length(), PROT_READ, mman.MAP_SHARED | mman.MAP_ALIGN, fd, 0L); + + logger.info("mmap address is: " + Pointer.nativeValue(addr)); // try to mlock it directly mlock(addr, file.length()); @@ -122,5 +131,4 @@ public static void main(String[] args) throws Exception { munmap(addr, file.length()); } - }