All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: "Randal L. Schwartz" <merlyn@stonehenge.com>
Cc: Chris Lee <chris133@gmail.com>,
	Linus Torvalds <torvalds@osdl.org>,
	Junio C Hamano <junkio@cox.net>,
	Shawn Pearce <spearce@spearce.org>,
	Sasha Khapyorsky <sashak@voltaire.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: git-svnimport failed and now git-repack hates me
Date: Wed, 3 Jan 2007 19:13:40 -0800	[thread overview]
Message-ID: <20070104031340.GA15094@localdomain> (raw)
In-Reply-To: <86ps9vbjlp.fsf@blue.stonehenge.com>

"Randal L. Schwartz" <merlyn@stonehenge.com> wrote:
> >>>>> "Eric" == Eric Wong <normalperson@yhbt.net> writes:
> 
> Eric> Part of it is Perl, which (as far as I know) never frees allocated
> Eric> memory back to the OS (although Perl can reuse the allocated memory for
> Eric> other things).
> 
> It does on Linux, of all things.  That's because Linux has a smarter
> malloc/free that uses mmap(2) for the large chunks.  On Linux, Perl memory
> size can apparently grow and shrink nicely.  The "old school" advice about
> Perl comes from sbrk(2)-driven malloc/free.
> 
> Try:
> 
>         $x[1e6] = "0";
>         sleep 10; # do a ps here
>         @x = ();
>         sleep 30; # do a ps here
> 
> and watch the process on Linux.  If I'm right, this should show a large
> process,  then a smaller one.

Nope, not happening to me.  I'm using Perl 5.8.8-7 and glibc 2.3.6.ds1-8
on a Debian Etch machine.  The kernel is a vanilla 2.6.18.1 from
kernel.org.

strace shows an mmap2 call, but no corresponding mumap.  I've added a
sleep loop to the end of the above program and had it print
something every 10 seconds; but so far, there's still no munmap.

while (1) {
        print "hi\n" if ((time % 10) == 0);
	sleep 1;
}

Trying to allocate a bigger chunk (1e7) doesn't show anything different,
either.  I've also conducted similar experiments with Ruby in the past
and noticed the same things...

-- 
Eric Wong

  reply	other threads:[~2007-01-04  3:13 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-03 23:52 git-svnimport failed and now git-repack hates me Chris Lee
2007-01-04  1:59 ` Linus Torvalds
2007-01-04  2:06   ` Shawn O. Pearce
2007-01-04  2:35     ` Shawn O. Pearce
2007-01-04  2:36       ` Chris Lee
2007-01-04  2:45         ` Shawn O. Pearce
2007-01-04  2:53           ` Chris Lee
2007-01-04  2:57             ` Shawn O. Pearce
2007-01-04  2:58               ` Chris Lee
2007-01-04  3:05                 ` Shawn O. Pearce
2007-01-04  3:06                 ` Chris Lee
2007-01-04  2:16   ` Chris Lee
2007-01-04 17:56     ` Chris Lee
2007-01-04 18:30       ` Linus Torvalds
2007-01-04 18:54         ` Chris Lee
2007-01-04  2:33   ` Eric Wong
2007-01-04  2:40     ` Randal L. Schwartz
2007-01-04  3:13       ` Eric Wong [this message]
2007-01-05  2:09     ` [PATCH] git-svn: make --repack work consistently between fetch and multi-fetch Eric Wong
2007-01-04  6:25   ` git-svnimport failed and now git-repack hates me Junio C Hamano
2007-01-04  7:26     ` [PATCH] pack-check.c::verify_packfile(): don't run SHA-1 update on huge data Junio C Hamano
2007-01-04 17:58     ` git-svnimport failed and now git-repack hates me Chris Lee
2007-01-04 20:22       ` Junio C Hamano
2007-01-05 17:19         ` Chris Lee
2007-01-05 19:05           ` Junio C Hamano
2007-01-05 19:33             ` Chris Lee
2007-01-05 19:39               ` Shawn O. Pearce
2007-01-05 20:48                 ` Chris Lee
2007-01-05 21:37                 ` Junio C Hamano
2007-01-05 21:57                   ` Linus Torvalds
2007-01-05 22:18                     ` alan
2007-01-07  0:36                       ` Eric Wong
2007-01-05 22:39                     ` Linus Torvalds
2007-01-05 22:48                       ` Junio C Hamano
2007-01-05 23:00                         ` Linus Torvalds
2007-01-05 23:02                           ` Linus Torvalds
2007-01-05 23:44                           ` Junio C Hamano
2007-01-05 23:59                             ` Linus Torvalds
2007-01-06  0:06                             ` Johannes Schindelin
2007-01-05 23:03                   ` Chris Lee
2007-01-05 23:09                     ` Junio C Hamano
2007-01-05 23:17                       ` Linus Torvalds
2007-01-05 23:58                         ` Junio C Hamano
2007-01-06  0:11                           ` Linus Torvalds
2007-01-06  0:15                             ` Linus Torvalds
2007-01-06  0:23                               ` Junio C Hamano
2007-01-06  1:22                                 ` Linus Torvalds
2007-01-04 19:24   ` Chris Lee
2007-01-04 21:12     ` Linus Torvalds
2007-01-04 21:31   ` Sasha Khapyorsky
2007-01-04 22:04     ` Chris Lee
2007-01-07  0:17       ` [PATCH] git-svnimport: support for incremental import Sasha Khapyorsky
2007-01-07 18:12         ` Chris Lee
2007-01-07 18:59           ` Sasha Khapyorsky
2007-01-08  2:22             ` [PATCH] git-svnimport: fix edge revisions double importing Sasha Khapyorsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070104031340.GA15094@localdomain \
    --to=normalperson@yhbt.net \
    --cc=chris133@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=merlyn@stonehenge.com \
    --cc=sashak@voltaire.com \
    --cc=spearce@spearce.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.