From: Eli Zaretskii <eliz@gnu.org>
To: "Gerd Möllmann" <gerd.moellmann@gmail.com>
Cc: eller.helmut@gmail.com, luangruo@yahoo.com, emacs-devel@gnu.org
Subject: Re: MPS: staticpro everything
Date: Fri, 03 May 2024 16:39:26 +0300 [thread overview]
Message-ID: <868r0rhv5d.fsf@gnu.org> (raw)
In-Reply-To: <m27cgb3x2x.fsf@pro2.fritz.box> (message from Gerd Möllmann on Fri, 03 May 2024 14:21:26 +0200)
> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> Cc: eller.helmut@gmail.com, luangruo@yahoo.com, emacs-devel@gnu.org
> Date: Fri, 03 May 2024 14:21:26 +0200
>
> Eli Zaretskii <eliz@gnu.org> writes:
>
> >> I think you're overlooking that registers and stack are ambiguous roots.
> >> The presence of u.s.data in a register or on the stack _prevents_ it
> >> from moving.
> >
> > That doesn't resolve the difficulty, it just turns the table. Now we
> > could have a race condition between the Lisp thread loading a pointer
> > into a register or pushing it onto the C stack, and the MPS thread
> > taking a notice that the pointer is in a register or on the stack. If
> > the pointer was neither in a register nor on the stack when MPS
> > started GC, it could decide to move the object, while the Lisp thread
> > concurrently loads the pointer into a register. So we might think the
> > object pointed to is unmovable while it isn't.
> >
> > What am I missing now?
>
> Here barriers come into play. Let's say, for simplicity, that we are
> talking about an object on a VM page P.
>
> In its thread, MPS decides that it wants to do an increment of work on
> P, say it wants to move objects, without the chance that MPS and client
> threads interfere.
>
> So, MPS puts a read barrier on P (say with mprotect), so that other
> threads are interrupted by a signal when they read from P. MPS puts a
> write barrier on P so that the same happens when a thread tries to
> modifiy P.
>
> Does that help?
I understand how this is supposed to work, and I even see in MPS the
Windows code to implement this (protw3.c). My problem is that I don't
see any evidence for these exceptions under GDB.
GDB has 2 Windows-specific settings to show debug information about
exceptions and debug-related events: "set debugexceptions" and "set
debugevents". I turned both ON, but all I see is kernel events for
creation and exiting of threads. Nothing more, and no exception
events anywhere in sight. So I'm confused.
next prev parent reply other threads:[~2024-05-03 13:39 UTC|newest]
Thread overview: 234+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-27 20:20 MPS: face-cache Gerd Möllmann
2024-04-28 5:06 ` Gerd Möllmann
2024-04-28 5:58 ` Gerd Möllmann
2024-04-28 6:09 ` Eli Zaretskii
2024-04-28 6:28 ` Gerd Möllmann
2024-04-28 6:45 ` Eli Zaretskii
2024-04-28 6:50 ` Gerd Möllmann
2024-04-28 7:37 ` Eli Zaretskii
2024-04-28 7:41 ` Gerd Möllmann
2024-04-28 6:50 ` Helmut Eller
2024-04-28 6:53 ` Gerd Möllmann
2024-04-28 6:58 ` Helmut Eller
2024-04-28 6:59 ` Gerd Möllmann
2024-04-28 7:10 ` Gerd Möllmann
2024-04-28 7:22 ` Gerd Möllmann
2024-04-28 7:29 ` Eli Zaretskii
2024-04-28 7:38 ` Gerd Möllmann
2024-04-28 7:56 ` Eli Zaretskii
2024-04-28 8:05 ` Gerd Möllmann
2024-04-28 8:13 ` Eli Zaretskii
2024-04-28 8:18 ` Gerd Möllmann
2024-04-28 8:23 ` Po Lu
2024-04-28 8:45 ` Eli Zaretskii
2024-04-28 8:22 ` Po Lu
2024-04-28 8:29 ` Gerd Möllmann
2024-04-28 8:35 ` Gerd Möllmann
2024-04-28 8:41 ` Po Lu
2024-04-28 8:43 ` Gerd Möllmann
2024-04-28 8:55 ` Gerd Möllmann
2024-04-28 7:55 ` Gerd Möllmann
2024-04-28 7:58 ` Eli Zaretskii
2024-04-28 8:04 ` Helmut Eller
2024-04-28 8:08 ` Gerd Möllmann
2024-04-28 8:52 ` Helmut Eller
2024-04-28 8:59 ` Gerd Möllmann
2024-04-28 9:04 ` Helmut Eller
2024-04-28 9:14 ` Gerd Möllmann
2024-04-28 9:26 ` Helmut Eller
2024-04-28 9:34 ` Gerd Möllmann
2024-04-28 9:40 ` Helmut Eller
2024-04-28 10:11 ` Gerd Möllmann
2024-04-28 10:17 ` Eli Zaretskii
2024-04-28 10:20 ` Gerd Möllmann
2024-04-28 10:43 ` Eli Zaretskii
2024-04-28 12:23 ` Gerd Möllmann
2024-04-28 12:26 ` Gerd Möllmann
2024-04-28 12:59 ` Helmut Eller
2024-04-28 13:55 ` Eli Zaretskii
2024-04-28 14:06 ` Gerd Möllmann
2024-04-28 14:30 ` Gerd Möllmann
2024-04-29 7:15 ` Helmut Eller
2024-04-29 7:52 ` Gerd Möllmann
2024-04-29 8:03 ` Helmut Eller
2024-04-29 8:21 ` Gerd Möllmann
2024-04-29 8:37 ` Eli Zaretskii
2024-04-29 8:41 ` Gerd Möllmann
2024-04-29 8:54 ` Helmut Eller
2024-04-29 11:05 ` Eli Zaretskii
2024-04-29 11:18 ` Gerd Möllmann
2024-04-29 11:41 ` Eli Zaretskii
2024-04-29 13:07 ` Helmut Eller
2024-04-29 13:22 ` Eli Zaretskii
2024-04-29 13:38 ` Helmut Eller
2024-04-29 13:57 ` Eli Zaretskii
2024-04-29 15:19 ` Helmut Eller
2024-04-29 15:32 ` Eli Zaretskii
2024-04-29 15:37 ` Eli Zaretskii
2024-04-29 8:39 ` Eli Zaretskii
2024-04-29 8:42 ` Gerd Möllmann
2024-04-29 13:13 ` Po Lu
2024-04-29 18:47 ` Gerd Möllmann
2024-04-29 19:15 ` Helmut Eller
2024-04-29 19:36 ` Gerd Möllmann
2024-04-30 5:52 ` Helmut Eller
2024-04-30 6:04 ` Gerd Möllmann
2024-04-30 6:36 ` MPS: staticpro everything Helmut Eller
2024-04-30 6:54 ` Gerd Möllmann
2024-04-30 18:57 ` Helmut Eller
2024-04-30 19:10 ` Gerd Möllmann
2024-04-30 19:22 ` Eli Zaretskii
2024-05-01 6:47 ` Gerd Möllmann
2024-05-01 7:33 ` Helmut Eller
2024-05-01 7:46 ` Gerd Möllmann
2024-05-01 12:15 ` Eli Zaretskii
2024-05-01 6:53 ` Helmut Eller
2024-05-01 13:06 ` Eli Zaretskii
2024-05-01 13:48 ` Gerd Möllmann
2024-05-01 14:02 ` Eli Zaretskii
2024-05-01 14:08 ` Helmut Eller
2024-05-01 14:20 ` Gerd Möllmann
2024-05-01 15:02 ` Eli Zaretskii
2024-05-01 16:06 ` Helmut Eller
2024-05-02 8:01 ` Eli Zaretskii
2024-05-02 9:04 ` Gerd Möllmann
2024-05-02 11:09 ` Eli Zaretskii
2024-05-02 12:01 ` Gerd Möllmann
2024-05-02 12:10 ` Eli Zaretskii
2024-05-02 12:30 ` Gerd Möllmann
2024-05-02 13:25 ` Po Lu
2024-05-02 14:01 ` Gerd Möllmann
2024-05-02 15:02 ` Eli Zaretskii
2024-05-02 15:37 ` Gerd Möllmann
2024-05-02 16:09 ` Eli Zaretskii
2024-05-02 19:08 ` Gerd Möllmann
2024-05-03 7:03 ` Eli Zaretskii
2024-05-03 7:30 ` Gerd Möllmann
2024-05-03 11:18 ` Helmut Eller
2024-05-03 11:29 ` Eli Zaretskii
2024-05-03 11:49 ` Gerd Möllmann
2024-05-03 12:01 ` Eli Zaretskii
2024-05-03 12:21 ` Gerd Möllmann
2024-05-03 13:39 ` Eli Zaretskii [this message]
2024-05-03 11:47 ` Gerd Möllmann
2024-05-02 15:12 ` Eli Zaretskii
2024-05-02 15:55 ` Gerd Möllmann
2024-05-02 16:45 ` Eli Zaretskii
2024-05-02 19:10 ` Gerd Möllmann
2024-05-02 15:09 ` Helmut Eller
2024-05-02 15:46 ` Gerd Möllmann
2024-05-02 16:03 ` Helmut Eller
2024-05-02 16:48 ` Eli Zaretskii
2024-05-02 18:30 ` Gerd Möllmann
2024-05-02 18:46 ` Eli Zaretskii
2024-05-02 19:01 ` Eli Zaretskii
2024-05-02 19:19 ` Gerd Möllmann
2024-05-02 19:51 ` Gerd Möllmann
2024-05-03 5:27 ` Eli Zaretskii
2024-05-03 5:44 ` Gerd Möllmann
2024-05-02 19:18 ` Gerd Möllmann
2024-05-02 18:49 ` Eli Zaretskii
2024-05-03 5:32 ` Gerd Möllmann
2024-05-03 6:26 ` MPS: GUI test automation (was: MPS: staticpro everything) Helmut Eller
2024-05-03 7:17 ` Eli Zaretskii
2024-05-03 7:18 ` MPS: GUI test automation Gerd Möllmann
2024-05-02 16:24 ` MPS: staticpro everything Eli Zaretskii
2024-05-01 6:05 ` Gerd Möllmann
2024-05-01 7:32 ` Helmut Eller
2024-05-01 7:46 ` Gerd Möllmann
2024-05-01 8:03 ` Gerd Möllmann
2024-05-01 8:25 ` Helmut Eller
2024-05-01 8:48 ` Gerd Möllmann
2024-05-01 9:42 ` Helmut Eller
2024-05-01 12:24 ` Eli Zaretskii
2024-05-01 16:45 ` Helmut Eller
2024-05-01 17:02 ` Gerd Möllmann
2024-05-01 13:12 ` Eli Zaretskii
2024-05-01 13:54 ` Gerd Möllmann
2024-05-01 12:50 ` MPS GC and its implications (was: staticpro everything) Eli Zaretskii
2024-05-01 13:39 ` MPS GC and its implications Gerd Möllmann
2024-05-01 14:52 ` Eli Zaretskii
2024-05-01 15:51 ` Gerd Möllmann
2024-05-01 16:48 ` Eli Zaretskii
2024-05-01 17:17 ` Gerd Möllmann
2024-05-01 17:52 ` Eli Zaretskii
2024-05-01 13:43 ` Helmut Eller
2024-05-01 14:05 ` Gerd Möllmann
2024-05-01 14:58 ` Eli Zaretskii
2024-05-01 15:54 ` Gerd Möllmann
2024-05-01 16:49 ` Eli Zaretskii
2024-05-01 17:19 ` Gerd Möllmann
2024-05-01 17:38 ` Helmut Eller
2024-05-01 17:56 ` Eli Zaretskii
2024-05-01 18:01 ` Helmut Eller
2024-05-01 18:07 ` Gerd Möllmann
2024-05-01 18:24 ` Eli Zaretskii
2024-05-01 18:41 ` Helmut Eller
2024-05-01 19:12 ` Gerd Möllmann
2024-05-02 6:03 ` Eli Zaretskii
2024-05-01 18:23 ` Eli Zaretskii
2024-05-01 17:53 ` Eli Zaretskii
2024-05-01 17:59 ` Gerd Möllmann
2024-05-01 18:20 ` Eli Zaretskii
2024-05-01 19:06 ` Gerd Möllmann
2024-05-02 8:30 ` Eli Zaretskii
2024-05-02 9:05 ` Gerd Möllmann
2024-05-02 21:25 ` Andrea Corallo
2024-05-03 5:42 ` Gerd Möllmann
2024-05-03 11:18 ` Eli Zaretskii
2024-05-03 11:32 ` Helmut Eller
2024-05-03 11:54 ` Eli Zaretskii
2024-05-03 11:59 ` Gerd Möllmann
2024-05-03 12:05 ` Eli Zaretskii
2024-05-03 12:27 ` Gerd Möllmann
2024-05-03 13:44 ` Andrea Corallo
2024-05-03 14:22 ` Gerd Möllmann
2024-05-03 12:28 ` Helmut Eller
2024-05-03 13:33 ` Eli Zaretskii
2024-05-03 13:57 ` Helmut Eller
2024-05-03 15:56 ` Eli Zaretskii
2024-05-03 19:18 ` Eli Zaretskii
2024-05-04 4:22 ` Helmut Eller
2024-05-04 7:43 ` Eli Zaretskii
2024-05-04 7:57 ` Gerd Möllmann
2024-05-04 9:01 ` Eli Zaretskii
2024-05-04 9:39 ` Helmut Eller
2024-05-04 9:56 ` Mattias Engdegård
2024-05-04 10:07 ` Helmut Eller
2024-05-04 10:29 ` Mattias Engdegård
2024-05-04 12:34 ` Eli Zaretskii
2024-05-04 16:08 ` Helmut Eller
2024-05-04 18:02 ` Gerd Möllmann
2024-05-03 11:54 ` Gerd Möllmann
2024-05-03 13:40 ` Andrea Corallo
2024-05-03 13:48 ` Gerd Möllmann
2024-05-04 6:25 ` Andrea Corallo
2024-05-04 8:00 ` Eli Zaretskii
2024-04-30 11:35 ` MPS: face-cache Eli Zaretskii
2024-04-30 12:57 ` Gerd Möllmann
2024-04-30 13:17 ` Eli Zaretskii
2024-04-30 13:43 ` Gerd Möllmann
2024-04-30 11:09 ` Eli Zaretskii
2024-04-30 12:41 ` Gerd Möllmann
2024-05-02 9:49 ` Eli Zaretskii
2024-05-02 10:39 ` Gerd Möllmann
2024-05-02 15:10 ` Helmut Eller
2024-05-02 18:28 ` MPS: pdump Gerd Möllmann
2024-05-02 19:13 ` Eli Zaretskii
2024-05-02 19:45 ` Gerd Möllmann
2024-05-03 6:29 ` Eli Zaretskii
2024-05-03 7:15 ` Gerd Möllmann
2024-05-03 11:24 ` Eli Zaretskii
2024-05-03 11:55 ` Gerd Möllmann
2024-05-03 12:03 ` Eli Zaretskii
2024-05-03 12:23 ` Gerd Möllmann
2024-05-03 5:54 ` Helmut Eller
2024-05-03 6:18 ` Gerd Möllmann
2024-05-03 7:28 ` Eli Zaretskii
2024-04-29 19:37 ` MPS: face-cache Helmut Eller
2024-04-29 19:39 ` Gerd Möllmann
2024-04-30 11:11 ` Eli Zaretskii
2024-04-30 12:42 ` Gerd Möllmann
2024-04-28 14:07 ` Eli Zaretskii
2024-04-28 14:31 ` Gerd Möllmann
2024-04-28 7:36 ` Eli Zaretskii
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=868r0rhv5d.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=eller.helmut@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=gerd.moellmann@gmail.com \
--cc=luangruo@yahoo.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.