Re: [kvm-devel] hugetlbfs not working
On Fri, Mar 28, 2008 at 09:41:06AM +0300, Avi Kivity wrote: mmap() should fail if anything goes wrong with ftruncate and the file length is not extented on tmpfs. --- vl.c.orig 2008-03-27 18:51:31.0 -0300 +++ vl.c2008-03-27 18:52:40.0 -0300 @@ -8749,11 +8749,7 @@ memory = (memory+hpagesize-1) ~(hpagesize-1); -if (ftruncate(fd, memory) == -1) { - perror(ftruncate); - close(fd); - return NULL; -} +ftruncate(fd, memory); I'm sure a patch will follow to add a missing error check, so how about a comment here? btw, we use signoffs on kvm-userspace, too. QEMU/KVM: ftruncate() is not supported by hugetlbfs on older hosts Signed-off-by: Marcelo Tosatti [EMAIL PROTECTED] diff --git a/qemu/vl.c b/qemu/vl.c index 5627862..6a240bf 100644 --- a/qemu/vl.c +++ b/qemu/vl.c @@ -8739,11 +8739,13 @@ void *alloc_mem_area(unsigned long memory, const char *path) memory = (memory+hpagesize-1) ~(hpagesize-1); -if (ftruncate(fd, memory) == -1) { - perror(ftruncate); - close(fd); - return NULL; -} +/* + * ftruncate is not supported by hugetlbfs in older + * hosts, so don't bother checking for errors. + * If anything goes wrong with it under other filesystems, + * mmap will fail. + */ +ftruncate(fd, memory); area = mmap(0, memory, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); if (area == MAP_FAILED) { - Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] hugetlbfs not working
Marcelo Tosatti wrote: QEMU/KVM: ftruncate() is not supported by hugetlbfs on older hosts Signed-off-by: Marcelo Tosatti [EMAIL PROTECTED] Applied, thanks. -- error compiling committee.c: too many arguments to function - Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] hugetlbfs not working
On Mar 27, 2008, at 4:19 PM, Avi Kivity wrote: Alexander Graf wrote: Hi, I'm currently trying to get hugetlbfs working on the current git version and am quite puzzled to see it not working. It appears as if the ftruncate call fails: open(/dev/hugetlbfs//kvm.vI3G8z, O_RDWR|O_CREAT|O_EXCL, 0600) = 7 unlink(/dev/hugetlbfs//kvm.vI3G8z)= 0 ftruncate(7, 157286400) = -1 EINVAL (Invalid argument) dup(2) = 8 fcntl(8, F_GETFL) = 0x8001 (flags O_WRONLY| O_LARGEFILE) close(8)= 0 write(2, ftruncate: Invalid argument\n, 28ftruncate: Invalid argument ) = 28 close(7)= 0 My host kernel is a 2.6.22. Is this supposed to work? The first version did not have the ftruncate call, so maybe it doesn't work at all with hugetlbfs? Are you on i386 non-pae? that has 4MB pages, while you're asking for for 37.5 4MB pages. Try adding 2MB to the requested memory size. I'm on x86_64 and /proc/meminfo tells me: HugePages_Total: 1435 HugePages_Free: 1435 HugePages_Rsvd: 0 Hugepagesize: 2048 kB I also reserved all available huge pages: % cat /proc/sys/vm/nr_hugepages 1435 Changing the guest memory size using -m does not help. Alex - Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] hugetlbfs not working
Anthony Liguori wrote: If you don't bail when ftruncate fails, does it work as expected for you? Perhaps older versions of hugetlbfs didn't support truncate. If you don't truncate, how can you change the file size? hugetlbfs doesn't support write(). I vaugely recall using ftruncate() on 2.4. -- error compiling committee.c: too many arguments to function - Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel
Re: [kvm-devel] hugetlbfs not working
On Thu, Mar 27, 2008 at 06:09:56PM +0200, Avi Kivity wrote: Anthony Liguori wrote: If you don't bail when ftruncate fails, does it work as expected for you? Perhaps older versions of hugetlbfs didn't support truncate. If you don't truncate, how can you change the file size? hugetlbfs doesn't support write(). I vaugely recall using ftruncate() on 2.4. hugetlbfs will automatically adjust the file size on mmap(). - Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace ___ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel