From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 16 Jan 2007 00:37:28 +0200 From: Michael Shigorin To: ALT Devel discussion list Message-ID: <20070115223727.GG30292@osdn.org.ua> Mail-Followup-To: ALT Devel discussion list References: <20070115135934.GL30255@osdn.org.ua> <20070115141342.GA26404@basalt.office.altlinux.org> <20070115213303.GA6086@osdn.org.ua> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20070115213303.GA6086@osdn.org.ua> User-Agent: Mutt/1.4.2.1i Subject: Re: [devel] q: glibc malloc s*cks? X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.9rc1 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2007 22:37:35 -0000 Archived-At: List-Archive: List-Post: On Mon, Jan 15, 2007 at 11:33:03PM +0200, sr@altlinux.ru wrote: > > Скажите sr@, что glibc malloc уже давно использует mmap. > > См. тж. http://sourceware.org/ml/libc-alpha/2006-11/msg00061.html > Агащазблин. Скажем так -- "умеет использовать mmap", посмотри "Update in 2006:" по второй ссылке на libc-alpha@ (или в malloc.c@~1480) для уточнения нынешнего изменения порога между mmap и brk. > $ echo "int main() { return malloc( 1) ? 0 : 1; }" > 1.c > $ gcc 1.c > $ strace ./a.out [...] > brk(0) = 0x804a000 > brk(0x806b000) = 0x806b000 > exit_group(0) = ? > Process 6119 detached $ echo "int main() { return malloc( 2000000 ) ? 0 : 1; }" > 2.c $ gcc 2.c 2.c: In function 'main': 2.c:1: warning: incompatible implicit declaration of built-in function 'malloc' $ strace ./a.out execve("./a.out", ["./a.out"], [/* 71 vars */]) = 0 brk(0) = 0x804a000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f0f000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=135213, ...}) = 0 mmap2(NULL, 135213, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7eed000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\232b\1"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1171776, ...}) = 0 mmap2(NULL, 1177860, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dcd000 mmap2(0xb7ee7000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11a) = 0xb7ee7000 mmap2(0xb7eea000, 10500, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7eea000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7dcc000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7dcc6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0xb7ee7000, 4096, PROT_READ) = 0 munmap(0xb7eed000, 135213) = 0 mmap2(NULL, 2002944, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7be3000 exit_group(0) = ? Process 10194 detached > $ rpm -q glibc > glibc-2.5-alt3 ditto, i586 -- ---- WBR, Michael Shigorin ------ Linux.Kiev http://www.linux.kiev.ua/