all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Trevor Bentley <trevor@trevorbentley.com>
Cc: 43389@debbugs.gnu.org
Subject: bug#43389: 28.0.50; Emacs memory leaks
Date: Tue, 17 Nov 2020 22:36:58 +0200	[thread overview]
Message-ID: <83eekrra8l.fsf@gnu.org> (raw)
In-Reply-To: <87wnyju40z.fsf@mail.trevorbentley.com> (message from Trevor Bentley on Tue, 17 Nov 2020 21:22:52 +0100)

[Please use Reply All to keep the bug tracker on the CC list.]

> From: Trevor Bentley <trevor@trevorbentley.com>
> Cc: 
> Date: Tue, 17 Nov 2020 21:22:52 +0100
> 
> >   . something called "gomp_thread_start" is called, and also 
> >   allocates 
> >     a lot of memory -- does this mean additional threads start 
> >     running? 
> > 
> > Or am I reading the graphs incorrectly? 
> 
> You are right that they are present, but that path isn't 
> responsible for a significant percentage of the total memory usage 
> at the end.  Doesn't look like gomp_thread_start is in the 
> bottom-most snapshot at all.  It was reporting ~100MB allocated by 
> gomp_thread_start, out of 4GB.  And those are related to images, 
> so 100MB is perhaps reasonable.

AFAIK, glibc's malloc allocates a new heap arena for each thread that
calls malloc.  The arena is large, so having many threads could
enlarge the footprint by a lot.  That's hwy Florian suggested to set
MALLOC_ARENA_MAX to a small value, to keep this path of footprint
growth in check.
> However, I'm now a bit suspicious of these log buffers.  Last time 
> the usage spiked I had 15MB of reported buffers, and I was 
> watching the process RSS increase by 1MB every 5 seconds in top, 
> like a clockwork.  I killed all of the large log buffers (3MB 
> each), and RSS stopped noticeably increasing.  Not sure if that 
> _stopped_ the leak, or only slowed it down to beneath the 
> threshold top could show me.  Either way, it should need 1.5GB of 
> RAM to track 15MB of text.

Unless malloc somehow allocates buffer memory via sbrk and not mmap,
buffers shouldn't be part of the footprint growth issue, because any
mmap'ed memory can be munmap'ed without any restrictions, and returns
to the OS.  And you can see how many buffer memory you have by
watching the statistics returned by garbage-collect.

> gomp_thread_start appears to be triggered when images are 
> displayed.

Yes, I believe ImageMagick starts them to scale images.





  parent reply	other threads:[~2020-11-17 20:36 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-14  0:43 bug#43389: 28.0.50; Emacs memory leaks Michael Heerdegen
2020-09-14 19:09 ` Juri Linkov
2020-09-15  0:32   ` Michael Heerdegen
2020-09-15 17:54     ` Russell Adams
2020-09-15 18:52       ` Eli Zaretskii
2020-09-15 21:12         ` Russell Adams
2020-09-16 14:52           ` Eli Zaretskii
2020-09-17 20:47             ` Russell Adams
2020-09-17 21:58               ` Joshua Branson via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-17 23:09                 ` Russell Adams
2020-09-18  6:56                 ` Eli Zaretskii
2020-09-18  7:53                   ` Robert Pluim
2020-09-18  8:13                     ` Eli Zaretskii
2020-09-20 20:08                     ` jbranso--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-09-18  8:22               ` Eli Zaretskii
2020-11-09 20:46                 ` Michael Heerdegen
2020-11-09 21:24                   ` Michael Heerdegen
2020-11-09 21:51                     ` Michael Heerdegen
2020-11-10  3:36                       ` Eli Zaretskii
2020-11-10  8:22                         ` Andreas Schwab
2020-11-10 12:59                           ` Michael Heerdegen
2020-11-10 13:01                             ` Andreas Schwab
2020-11-10 13:10                               ` Michael Heerdegen
2020-11-10 13:20                                 ` Eli Zaretskii
2020-11-10 13:26                                   ` Michael Heerdegen
2020-11-10 14:25                                     ` Michael Heerdegen
2020-11-10 15:36                                       ` Eli Zaretskii
2020-11-10 17:44                                         ` Eli Zaretskii
2020-11-10 18:55                                           ` Michael Heerdegen
2020-11-10 15:34                                     ` Eli Zaretskii
2020-11-10 16:49                                       ` Michael Heerdegen
2020-11-10 17:13                                         ` Eli Zaretskii
2020-12-08  1:07                                         ` Michael Heerdegen
2020-12-08  3:24                                           ` Jose A. Ortega Ruiz
2020-12-08 12:37                                             ` Russell Adams
2020-12-08  5:13                                           ` Jean Louis
2020-12-08 16:29                                             ` Michael Heerdegen
2020-12-10  0:50                                               ` Michael Heerdegen
2020-12-10  5:43                                                 ` Jean Louis
2020-11-10 15:53                           ` Eli Zaretskii
2020-11-10 10:25                         ` Michael Heerdegen
2020-11-10 15:55                           ` Eli Zaretskii
2020-11-10 16:41                             ` Michael Heerdegen
2020-11-09 22:33                   ` Jean Louis
2020-11-10 15:47                     ` Eli Zaretskii
2020-11-10 16:36                       ` Michael Heerdegen
2020-11-10 19:51                       ` Jean Louis
2020-11-10  3:30                   ` Eli Zaretskii
2020-11-26 15:42               ` Russell Adams
2020-11-26 16:34                 ` Eli Zaretskii
2020-11-26 16:54                   ` Russell Adams
2020-11-26 19:20                     ` Eli Zaretskii
2020-11-27 10:45                       ` Russell Adams
2020-11-27 12:38                         ` Eli Zaretskii
2020-11-28 19:56                           ` Russell Adams
2020-11-28 20:13                             ` Eli Zaretskii
2020-11-28 21:52                               ` Basil L. Contovounesios
2020-11-29  3:29                                 ` Eli Zaretskii
2020-09-17 20:59 ` Thomas Ingram
2020-10-29 20:17 ` Trevor Bentley
2020-10-30  8:00   ` Eli Zaretskii
2020-11-11 21:15     ` Trevor Bentley
2020-11-12 14:24       ` Eli Zaretskii
2020-11-16 20:16         ` Eli Zaretskii
2020-11-16 20:42           ` Florian Weimer
2020-11-17 15:45             ` Eli Zaretskii
2020-11-17 16:32               ` Carlos O'Donell
2020-11-17 17:13                 ` Eli Zaretskii
2020-11-17 17:20                   ` DJ Delorie
2020-11-17 19:52                     ` Eli Zaretskii
2020-11-17 19:59                       ` DJ Delorie
2020-11-17 20:13                         ` Florian Weimer
2020-11-17 20:16                           ` DJ Delorie
2020-11-17 20:27                             ` Eli Zaretskii
2020-11-17 20:35                               ` Florian Weimer
2020-11-17 20:43                                 ` Eli Zaretskii
2020-11-17 20:58                                   ` Florian Weimer
2020-11-17 21:10                                     ` Eli Zaretskii
2020-11-18  5:43                                       ` Carlos O'Donell
2020-11-18  6:09                                         ` Jean Louis
2020-11-18  8:32                                           ` Andreas Schwab
2020-11-18  9:01                                             ` Jean Louis
2020-11-18 16:19                                               ` Russell Adams
2020-11-18 17:30                                                 ` Eli Zaretskii
2020-11-19 15:57                                             ` Carlos O'Donell
2020-11-18 18:01                                         ` Eli Zaretskii
2020-11-18 18:27                                           ` DJ Delorie
2020-11-19 16:08                                             ` Carlos O'Donell
2020-11-22 20:19                                               ` Deus Max
2020-11-23  3:26                                                 ` Eli Zaretskii
2020-11-23 16:45                                                   ` Deus Max
2020-11-23 17:07                                                     ` Eli Zaretskii
2020-11-17 16:33               ` Florian Weimer
2020-11-17 17:08                 ` Eli Zaretskii
2020-11-17 17:24                   ` Florian Weimer
2020-11-17 20:39                   ` Jean Louis
2020-11-17 20:57                     ` DJ Delorie
2020-11-17 21:45                       ` Jean Louis
2020-11-18 15:03                         ` Eli Zaretskii
2020-11-23 18:55                           ` Jean Louis
     [not found]         ` <87wnyju40z.fsf@mail.trevorbentley.com>
2020-11-17 20:36           ` Eli Zaretskii [this message]
2020-11-18 21:47 ` Jose A. Ortega Ruiz
2020-11-19 14:03   ` Eli Zaretskii
2020-11-19 14:34     ` Jean Louis
2020-11-19 16:03       ` Carlos O'Donell
2020-11-19 17:25     ` jao
2020-12-09 19:41 ` Jose A. Ortega Ruiz
2020-12-09 20:25   ` Lars Ingebrigtsen
2020-12-09 21:04     ` Jose A. Ortega Ruiz
2020-12-11 13:55       ` Lars Ingebrigtsen

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=83eekrra8l.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=43389@debbugs.gnu.org \
    --cc=trevor@trevorbentley.com \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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.