Re: [kvm-devel] hugetlbfs not working

2008-03-31 Thread Marcelo Tosatti
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

2008-03-31 Thread Avi Kivity
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

2008-03-27 Thread Alexander Graf

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

2008-03-27 Thread Avi Kivity
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

2008-03-27 Thread Marcelo Tosatti
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