Skip to contentSkip to conversation

mem= and large file support

uml-devel D. Bahi 2 participants 4 messages Aug 19, 2004 – Aug 23, 2004 User-mode Linux (UML)

lore
Share & tools
lore

D. Bahi

author
#0 lore raw

btw: with the 26-3um and 2.6.8.1 announce Jeff mentions the new SKAS, ! TT, STATIC allows mem= ~2.75G upper limit but do we need O_LARGEFILE somewhere? or to compile with -D_FILE_OFFSET_64_BITS

[u2](dbahi)277$ ulimit -f
unlimited

linux umid=uml_1 ubd0=/local/umltest/cow/ubd0_1,/local/dbahi/root_fs.rh-9-full ubd1=/local/umltest/cow/ubd1_1,/local/dbahi/swap_fs.256 root=/dev/ubd/0 uml_dir=/local/umltest/umldir hostfs=/local/umltest/hostfs/host_1 mem=2048M eth0=daemon,fe:fd:00:00:00:1,unix,/local/umltest/pipe Checking for the skas3 patch in the host...found
Checking for /proc/mm...found
File size limit exceeded

thank you.

#1 lore raw
Quoted 3 lines · [email protected] said:

btw: with the 26-3um and 2.6.8.1 announce Jeff mentions the new SKAS, ! TT, STATIC allows mem= ~2.75G upper limit but do we need O_LARGEFILE somewhere? or to compile with -D_FILE_OFFSET_64_BITS

Probably. Can you strace that and see where E2BIG is coming from?

Jeff

-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
User-mode-linux-devel mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

author
#2 lore raw

cool - so... it's in tempfile.c : 53
make_tempfile calls mkstemp -

so maybe a build option required to get the
option in with this library call? but which?

info on libc says:

When the sources are compiled with _FILE_OFFSET_BITS == 64' on a 32-bit system this function is in fact tmpfile64', i.e. the LFS interface transparently replaces the old interface.

so i'll try that.

and just for 'create_mem_file' completeness
the devanon case doesn't need attention with
the mmap. right?

-----

rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0 rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0 gettimeofday({1092914208, 599204}, NULL) = 0
getpid() = 24405
open("/tmp/vm_file-3NJodS", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
unlink("/tmp/vm_file-3NJodS") = 0
fchmod(3, 0777) = 0
_llseek(3, 2147483648, [2147483648], SEEK_SET) = 0
write(3, "\0", 1) = -1 EFBIG (File too large)
--- SIGXFSZ (File size limit exceeded) @ 0 (0) ---
+++ killed by SIGXFSZ +++

Quoted 11 lines · Jeff Dike
Quoted 3 lines · [email protected] said:

btw: with the 26-3um and 2.6.8.1 announce Jeff mentions the new SKAS, ! TT, STATIC allows mem= ~2.75G upper limit but do we need O_LARGEFILE somewhere? or to compile with -D_FILE_OFFSET_64_BITS

Probably. Can you strace that and see where E2BIG is coming from?

Jeff

author
#3 lore raw

yep that does it. here's the simple patch. and proof ;)

joy

linux umid=uml_1 mem=2176M root=/dev/ubd/0 \
ubd0=/local/umltest/cow/ubd0_1,/local/dbahi/root_fs.mv-31 \
ubd1=/local/umltest/cow/ubd1_1,/local/dbahi/swap_fs.256 \
uml_dir=/local/umltest/umldir hostfs=/local/umltest/hostfs/host_1 \
eth0=daemon,fe:fd:00:00:00:1,unix,/local/umltest/pipe

...

root@(none):~# cat /proc/meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:  2230177792 17244160 2212933632        0   466944  3371008
Swap:        0        0        0
MemTotal:      2177908 kB
MemFree:       2161068 kB
MemShared:           0 kB
Buffers:           456 kB
Cached:           3292 kB
SwapCached:          0 kB
Active:           2032 kB
Inactive:         2428 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:      2177908 kB
LowFree:       2161068 kB
SwapTotal:           0 kB
SwapFree:            0 kB
Quoted 48 lines · D. Bahi

cool - so... it's in tempfile.c : 53
make_tempfile calls mkstemp -

so maybe a build option required to get the
option in with this library call? but which?

info on libc says:

When the sources are compiled with _FILE_OFFSET_BITS == 64' on a 32-bit system this function is in fact tmpfile64', i.e. the LFS interface transparently replaces the old interface.

so i'll try that.

and just for 'create_mem_file' completeness
the devanon case doesn't need attention with
the mmap. right?

-----

rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0 rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0 gettimeofday({1092914208, 599204}, NULL) = 0
getpid() = 24405
open("/tmp/vm_file-3NJodS", O_RDWR|O_CREAT|O_EXCL, 0600) = 3
unlink("/tmp/vm_file-3NJodS") = 0
fchmod(3, 0777) = 0
_llseek(3, 2147483648, [2147483648], SEEK_SET) = 0
write(3, "\0", 1) = -1 EFBIG (File too large)

killed by SIGXFSZ +++ renamed from SIGXFSZ (File size limit exceeded) @ 0 (0) --- +0 -0
Quoted 12 lines · Jeff Dike
Quoted 3 lines · [email protected] said:

btw: with the 26-3um and 2.6.8.1 announce Jeff mentions the new SKAS, ! TT, STATIC allows mem= ~2.75G upper limit but do we need O_LARGEFILE somewhere? or to compile with -D_FILE_OFFSET_64_BITS

Probably. Can you strace that and see where E2BIG is coming from?

Jeff

Signature · 1 line
db
um/Makefile renamed from um/Makefile@@/main/patch_kernel.org/patch_linux_kernel_uml_2.4.26/3 +1 -1
@@ -51,7 +51,7 @@
 
 CFLAGS += $(ARCH_CFLAGS) $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \
 	-D_LARGEFILE64_SOURCE $(ARCH_INCLUDE) -Derrno=kernel_errno \
-	$(MODE_INCLUDE)
+	$(MODE_INCLUDE) -D_FILE_OFFSET_BITS=64
 
 check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)