all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Gerd Möllmann" <gerd.moellmann@gmail.com>
To: Helmut Eller <eller.helmut@gmail.com>, Eli Zaretskii <eliz@gnu.org>
Cc: Emacs Devel <emacs-devel@gnu.org>
Subject: MPS: Loaded pdump
Date: Thu, 09 May 2024 12:52:03 +0200	[thread overview]
Message-ID: <m2pltvb6lo.fsf@pro2.fritz.box> (raw)

I feel more and more that the handling of the loaded pdump with MPS as
it is now is not sustainable, and would like ask you for your ideas.

What we do now is make the hot part of the dump an ambig root. I don't
remember the exact numbers, but I think that's about 18 Mb of root. This
has at least these problems, from my POV:

- It is very large, and every time MPS scans roots, and that is all the
  time, the world is stopped until it has finished. That's not good for
  pause times.

- The root is ambiguous, so everything found in it is pinned in memory.
  
- The root is unstructured. We can't scan exactly, and so can't do
  anything special for pointers to non-MPS memory that Lisp objects
  have. This leads to some horrible workarounds.

I knew that early on, but I thought maybe we could get away with it. But
now the latest workaround for compilation units let's me think this
won't fly.

So, what to do now? I think we should consider what Helmut also
mentioned some mails ago: copy the object graph in the dump to MPS
memory. Everything else looks almost not worth it to me.

This has of course also consequences:

- copying 18 Mb of hot objects + 12 Mb or so of leaf objects to MPS
  could be slow. No idea if it is. That could impact startup time (not
  important to me at all, but people have different preferences).

- copying the graph requires that the copying functions know the layout
  of Lisp objects so that the functions can exchange references in the
  old graph to the corresponding ones in the new graph. I'm getting
  exhausted already from thinking of writing such functions, and we
  don't have C++ templates to help.

- AFAIK, but see admin/igc.org, there is no good way of allocating
  objects in an old generation, so they will maybe take some time to
  wander to an older generation.

Enough rambling.

Ideas, opinions, ...?






             reply	other threads:[~2024-05-09 10:52 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-09 10:52 Gerd Möllmann [this message]
2024-05-09 11:00 ` MPS: Loaded pdump Eli Zaretskii
2024-05-09 11:20   ` Gerd Möllmann
2024-05-09 12:28 ` Helmut Eller
2024-05-09 13:37   ` Gerd Möllmann
2024-05-09 16:10     ` Helmut Eller
2024-05-09 16:43       ` Gerd Möllmann
2024-05-09 17:57         ` Helmut Eller
2024-05-09 18:10           ` Gerd Möllmann
2024-05-09 13:38 ` Helmut Eller
2024-05-09 14:18   ` Gerd Möllmann
2024-05-09 15:01     ` Helmut Eller
2024-05-09 15:07       ` Gerd Möllmann
2024-05-10  7:59         ` Gerd Möllmann
2024-05-10  8:09           ` Helmut Eller
2024-05-10  8:35             ` Gerd Möllmann
2024-05-10  8:51               ` Helmut Eller
2024-05-10  8:54                 ` Gerd Möllmann
2024-05-10 10:25             ` Eli Zaretskii
2024-05-10 11:31               ` Gerd Möllmann
2024-05-10 12:52                 ` Gerd Möllmann
2024-05-10 13:37                   ` Helmut Eller
2024-05-10 13:59                     ` Gerd Möllmann
2024-05-10 14:31                       ` Helmut Eller
2024-05-10 14:36                         ` Gerd Möllmann
2024-05-13  9:11                   ` Gerd Möllmann
2024-05-14  8:23                     ` Gerd Möllmann
2024-05-14 14:22                       ` Helmut Eller
2024-05-14 15:46                         ` Gerd Möllmann
2024-05-14 17:49                           ` Eli Zaretskii
2024-05-14 18:10                             ` Gerd Möllmann
2024-05-16  4:25                       ` Gerd Möllmann
2024-05-16  8:36                         ` Helmut Eller
2024-05-16  8:46                           ` Gerd Möllmann
2024-05-16  9:01                           ` Gerd Möllmann
2024-05-16  9:31                             ` Helmut Eller
2024-05-16  9:42                               ` Gerd Möllmann
2024-05-16  9:54                                 ` Gerd Möllmann
2024-05-16 12:43                                   ` Helmut Eller
2024-05-16 12:47                                     ` Gerd Möllmann
2024-05-16 12:08                                 ` Eli Zaretskii
2024-05-16 12:27                                   ` Gerd Möllmann
2024-05-16 12:07                               ` Eli Zaretskii
2024-05-16 12:21                                 ` Gerd Möllmann
2024-05-16 12:27                                   ` Eli Zaretskii
2024-05-16 12:43                                     ` Gerd Möllmann
2024-05-16 14:09                         ` Helmut Eller
2024-05-16 14:24                           ` Gerd Möllmann
2024-05-16 15:48                             ` Eli Zaretskii
2024-05-16 16:56                             ` Andrea Corallo
2024-05-16 17:27                               ` Gerd Möllmann
2024-05-16 17:50                                 ` Andrea Corallo
2024-05-16 20:03                                 ` Helmut Eller
2024-05-17  4:04                                   ` Gerd Möllmann
2024-05-17  6:09                                   ` Eli Zaretskii
2024-05-18 18:55                                     ` Helmut Eller
2024-05-18 20:16                                       ` Andrea Corallo
2024-05-19  5:27                                         ` Eli Zaretskii
2024-05-19  3:48                                       ` Gerd Möllmann
2024-05-19  6:39                                         ` Eli Zaretskii
2024-05-09 18:24       ` Gerd Möllmann
2024-05-09 18:35         ` Gerd Möllmann

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=m2pltvb6lo.fsf@pro2.fritz.box \
    --to=gerd.moellmann@gmail.com \
    --cc=eliz@gnu.org \
    --cc=eller.helmut@gmail.com \
    --cc=emacs-devel@gnu.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.
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.