GNU bug report logs - #75672
31.0.50; scratch/igc memory usage/collection issues

Previous Next

Package: emacs;

Reported by: Alexis Purslane <alexispurslane <at> pm.me>

Date: Sun, 19 Jan 2025 17:01:02 UTC

Severity: normal

Found in version 31.0.50

Done: Pip Cet <pipcet <at> protonmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Pip Cet <pipcet <at> protonmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: alexispurslane <at> pm.me, 75672 <at> debbugs.gnu.org
Subject: bug#75672: 31.0.50; scratch/igc memory usage/collection issues
Date: Mon, 20 Jan 2025 21:07:55 +0000
"Eli Zaretskii" <eliz <at> gnu.org> writes:

>> Date: Mon, 20 Jan 2025 14:19:29 +0000
>> From: Pip Cet <pipcet <at> protonmail.com>
>> Cc: Alexis Purslane <alexispurslane <at> pm.me>, 75672 <at> debbugs.gnu.org
>>
>> "Eli Zaretskii" <eliz <at> gnu.org> writes:
>>
>> >> Cc: 75672 <at> debbugs.gnu.org
>> >> Date: Mon, 20 Jan 2025 02:33:15 +0000
>> >> From:  Alexis Purslane via "Bug reports for GNU Emacs,
>> >>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> >>
>> >> committed                                    1       400138240  400138240             0
>> >> pause-time                                 nil             0.1        nil           nil
>> >> reserved                                     1       536875008  536875008             0
>> >> spare                                      nil            0.75        nil           nil
>> >> spare-committed                              1       217436160  217436160             0
>> >
>> > AFAIU, these 3 values mean that MPS uses about 1.15GB of memory
>> > (unless "reserved" includes "committed").  If "reserved" means memory
>>
>> MPS "reserved" means "mmapped, not necessarily faulted in or used".
>> MPS "committed" means "faulted in and possibly in use by MPS or the
>> client program".
>> MPS "spare-committed" means "in use by MPS, not the client program".
>>
>> So committed - spare-commited is how much usable memory MPS thinks has
>> been allocated, about 183 MB.
>
> I agree, but did I say something different?

Not at all!  I was merely summarizing the (unusual) definitions MPS
uses, and explain why they amount to 183MB of MPS memory in use by
Emacs, not 1.15GB.

> The question now becomes: how was the 1.5GB figure Alex reported
> measured? did it include the reserved memory, or didn't it?

Even if it did, MPS accounts for at most 512MB: reserved is an upper
limit on how much memory is in use.  So we'll have to look for other
culprits, or for very strange MPS/igc bugs.

>> It's virtual memory: MPS assumes virtual memory is very cheap.  That's
>> not really true for processes that fork() a lot, so this assumption may
>> have to be fine-tuned.
>
> AFAIK, fork'ed process uses copy-on-write, so we should be okay.

It does use copy-on-write, but on my machine, at least, Linux appears to
copy the entire page table on every fork, which makes fork quite a bit
more expensive in terms of CPU time than I thought it would be.  This is
noticeable for large processes, as I've previously described.

Pip





This bug report was last modified 81 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.