Hi Joerg, On Thu, Feb 19, 2009 at 04:29:36PM +0100, Joerg Roedel wrote: > The current method of finding out the size of huge pages does not work > reliable anymore. Current Linux supports more than one huge page size > but /proc/meminfo only show one of the supported sizes. > To find out the real page size used can be found by calling statfs. This > patch changes kvm/qemu to use statfs instead of parsing /proc/meminfo. > > Signed-off-by: Joerg Roedel <joerg.roedel@xxxxxxx> > + if (fs.f_type != HUGETLBFS_MAGIC) { > + fprintf(stderr, "Path not on HugeTLBFS: %s\n", path); > + return 0; > } Would be nicer to use standard page size (sysconf) in case its not a hugetlbfs mount, instead of failing. Useful for testing with shmem. > - size = strstr(buf, needle); > - if (!size) > - return 0; > - size += strlen(needle); > - hugepagesize = strtol(size, NULL, 0); > - return hugepagesize; > + return fs.f_bsize; > } > > static void *alloc_mem_area(size_t memory, unsigned long *len, const char *path) > @@ -4762,7 +4760,7 @@ static void *alloc_mem_area(size_t memory, unsigned long *len, const char *path) > if (asprintf(&filename, "%s/kvm.XXXXXX", path) == -1) > return NULL; > > - hpagesize = gethugepagesize() * 1024; > + hpagesize = gethugepagesize(path); > if (!hpagesize) > return NULL; Out of curiosity, your immediate reason for this patch is use of gbpages? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html