From: Eli Zaretskii <eliz@gnu.org>
To: "Gerd Möllmann" <gerd.moellmann@gmail.com>,
"Paul Eggert" <eggert@cs.ucla.edu>
Cc: eller.helmut@gmail.com, emacs-devel@gnu.org
Subject: Re: MPS signals and Emacs (was: STatus of MPS branch)
Date: Mon, 22 Apr 2024 09:15:38 +0300 [thread overview]
Message-ID: <86a5ll7wj9.fsf@gnu.org> (raw)
In-Reply-To: <m2sezec6ev.fsf@Pro.fritz.box> (message from Gerd Möllmann on Mon, 22 Apr 2024 07:28:40 +0200)
> From: Gerd Möllmann <gerd.moellmann@gmail.com>
> Cc: emacs-devel <emacs-devel@gnu.org>
> Date: Mon, 22 Apr 2024 07:28:40 +0200
>
> Helmut Eller <eller.helmut@gmail.com> writes:
>
> > I changed some things and now I can no longer reproduce the exact same
> > problem. But it looked to me like a perfectly normal string with
> > intervals=0x0. Strangely, accessing the intervals field from GDB didn't
> > cause any SIGSEGV.
> >
> > However, after setting breakpoints in handle_sigsegv and sigHandle (from
> > MPS) I discovered that sigHandle wasn't called. So my hypothesis is
> > that the signal handler isn't initialized properly. In particular, it
> > seems problematic that ProtSetup (from MPS) is called before
> > init_signals.
> >
> > Then I moved the call to init_signals in emacs.c up before the call to
> > init_igc and voilà: the build completed. With an apparently working
> > (tty-only) Emacs.
>
> Oh, I have an idea! Hopefully I can explain it. Let me try...
>
> MPS is a copying GC, and it uses read-barriers for object forwarding.
>
> Let's say O is an object managed by MPS, and it decides during GC that O
> shall be moved in memory to the new location N. This is done by copying
> O to N, storing at O the information that it has moved to N, and putting
> a read-barrier on O.
>
> The last step means that any access to O by the client (Emacs) leads to
> MPS being involved, which updates the reference to O to a reference to
> N.
>
> Plus...
>
> MacOS has a kernel that is, let's not get into details, a conglomerate
> of Mach and FreeBSD kernel. This means MPS can use Mach mechanisms for
> implementing read/write barriers, and I know it does because I landed in
> that code in LLDB at some point.
>
> Linux is not Mach, so MPS must use VM protection and signals.
>
> And finally, the idea now would be that MPS's signal handling (probably
> SIGSEGV and SIGBUS) and Emacs' signal handling interfere with one
> another.
>
> For example, MPS has done its thing and read-protected O from above.
> Emacs accesses O, a SEGV is signaled, Emacs gets the signal and thinks
> it's bit the dust. And so on.
>
> Or, IOW, we need some Emacs signal handling support personal.
Paul, can you please help by suggesting how to handle this situation?
next prev parent reply other threads:[~2024-04-22 6:15 UTC|newest]
Thread overview: 149+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-20 9:34 STatus of MPS branch Gerd Möllmann
2024-04-20 14:56 ` Michael Albinus
2024-04-20 15:08 ` Gerd Möllmann
2024-04-20 15:32 ` Michael Albinus
2024-04-20 17:37 ` Gerd Möllmann
2024-04-21 7:39 ` Michael Albinus
2024-04-21 7:56 ` Gerd Möllmann
2024-04-21 8:00 ` Gerd Möllmann
2024-04-21 8:04 ` Michael Albinus
2024-04-21 8:08 ` Gerd Möllmann
2024-04-21 8:18 ` Michael Albinus
2024-04-21 8:28 ` Gerd Möllmann
2024-04-21 8:17 ` Gerd Möllmann
2024-04-21 9:43 ` Michael Albinus
2024-04-21 10:07 ` Gerd Möllmann
2024-04-21 10:58 ` Tramp tests in MPS branch (was: STatus of MPS branch) Michael Albinus
2024-04-21 12:44 ` Tramp tests in MPS branch Gerd Möllmann
2024-04-21 9:29 ` STatus of " Eli Zaretskii
2024-04-21 4:38 ` Gerd Möllmann
2024-04-21 5:31 ` Eli Zaretskii
2024-04-21 5:39 ` Gerd Möllmann
2024-04-21 9:04 ` Eli Zaretskii
2024-04-21 9:17 ` Gerd Möllmann
2024-04-21 6:15 ` Gerd Möllmann
2024-04-21 9:09 ` Eglot tests on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21 9:53 ` João Távora
2024-04-21 10:13 ` Eglot tests on MPS branch Gerd Möllmann
2024-04-21 11:01 ` João Távora
2024-04-21 10:55 ` Eglot tests on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21 7:49 ` STatus of MPS branch Gerd Möllmann
2024-04-21 8:45 ` Gerd Möllmann
2024-04-21 9:08 ` Andrea Corallo
2024-04-21 9:33 ` Native compilation on " Eli Zaretskii
2024-04-21 10:17 ` Gerd Möllmann
2024-04-21 13:07 ` Andrea Corallo
2024-04-22 7:15 ` Gerd Möllmann
2024-04-22 22:02 ` Andrea Corallo
2024-04-23 3:11 ` Gerd Möllmann
2024-04-23 16:09 ` Gerd Möllmann
2024-04-23 19:43 ` Andrea Corallo
2024-04-24 12:49 ` Gerd Möllmann
2024-04-24 18:14 ` Andrea Corallo
2024-04-24 18:28 ` Gerd Möllmann
2024-04-24 20:54 ` Andrea Corallo
2024-04-25 4:33 ` Gerd Möllmann
2024-04-25 5:50 ` Andrea Corallo
2024-04-25 7:18 ` Gerd Möllmann
2024-04-25 8:06 ` Andrea Corallo
2024-04-25 8:15 ` Gerd Möllmann
2024-04-25 8:57 ` Gerd Möllmann
2024-04-25 9:42 ` Andrea Corallo
2024-04-25 11:33 ` Gerd Möllmann
2024-04-25 5:24 ` Eli Zaretskii
2024-04-25 5:48 ` Andrea Corallo
2024-04-25 15:20 ` Eli Zaretskii
2024-04-26 10:15 ` Gerd Möllmann
2024-04-21 8:58 ` STatus of " Andrea Corallo
2024-04-21 9:19 ` Gerd Möllmann
2024-04-21 9:30 ` Native compilation on MPS branch (was: STatus of MPS branch) Eli Zaretskii
2024-04-21 14:39 ` STatus of MPS branch Helmut Eller
2024-04-21 15:37 ` Gerd Möllmann
2024-04-21 15:52 ` Eli Zaretskii
2024-04-21 20:24 ` Helmut Eller
2024-04-22 4:58 ` Gerd Möllmann
2024-04-22 5:28 ` Gerd Möllmann
2024-04-22 6:15 ` Eli Zaretskii [this message]
2024-04-22 6:44 ` MPS signals and Emacs Paul Eggert
2024-04-22 7:19 ` Gerd Möllmann
2024-04-22 7:40 ` Paul Eggert
2024-04-22 7:49 ` Gerd Möllmann
2024-04-22 8:09 ` Eli Zaretskii
2024-04-22 8:27 ` Gerd Möllmann
2024-04-22 8:55 ` Eli Zaretskii
2024-04-22 9:02 ` Mattias Engdegård
2024-04-22 9:02 ` Gerd Möllmann
2024-04-22 9:18 ` Eli Zaretskii
2024-04-22 9:29 ` Gerd Möllmann
2024-04-22 9:41 ` Eli Zaretskii
2024-04-22 10:22 ` Gerd Möllmann
2024-04-22 10:46 ` Eli Zaretskii
2024-04-22 11:00 ` Gerd Möllmann
2024-04-22 12:01 ` Eli Zaretskii
2024-04-22 12:16 ` Gerd Möllmann
2024-04-22 10:54 ` Eli Zaretskii
2024-04-22 11:05 ` Gerd Möllmann
2024-04-22 19:41 ` Paul Eggert
2024-04-22 20:55 ` Gerd Möllmann
2024-04-22 22:12 ` Paul Eggert
2024-04-23 3:15 ` Gerd Möllmann
[not found] ` <87le54g1h2.fsf@dick>
2024-04-23 5:51 ` Gerd Möllmann
2024-04-23 6:35 ` Helmut Eller
2024-04-23 6:45 ` Gerd Möllmann
2024-04-23 6:53 ` Helmut Eller
2024-04-23 14:29 ` Gerd Möllmann
[not found] ` <87sezbsmsd.fsf@dick>
2024-04-24 5:03 ` Gerd Möllmann
2024-04-22 7:46 ` Eli Zaretskii
2024-04-22 7:55 ` Gerd Möllmann
2024-04-22 14:10 ` Helmut Eller
2024-04-22 14:42 ` Eli Zaretskii
2024-04-22 22:06 ` Paul Eggert
2024-04-23 7:04 ` Eli Zaretskii
2024-04-22 5:36 ` STatus of MPS branch Gerd Möllmann
2024-04-22 5:50 ` Gerd Möllmann
2024-04-22 15:09 ` Helmut Eller
2024-04-22 17:02 ` Gerd Möllmann
2024-04-24 7:26 ` Collecting markers with MPS (was: STatus of MPS branch) Helmut Eller
2024-04-24 7:44 ` Eli Zaretskii
2024-04-24 8:56 ` Collecting markers with MPS Helmut Eller
2024-04-24 9:17 ` Gerd Möllmann
2024-04-24 10:22 ` Eli Zaretskii
2024-04-24 10:27 ` Gerd Möllmann
2024-04-24 10:58 ` Gerd Möllmann
2024-04-24 13:32 ` Eli Zaretskii
2024-04-24 13:51 ` Gerd Möllmann
2024-04-24 15:03 ` Helmut Eller
2024-04-24 15:54 ` Eli Zaretskii
2024-04-24 16:21 ` Helmut Eller
2024-04-24 16:26 ` Eli Zaretskii
2024-04-24 16:50 ` Gerd Möllmann
2024-04-24 19:18 ` Helmut Eller
2024-04-24 19:55 ` Gerd Möllmann
2024-04-25 7:38 ` Mattias Engdegård
2024-04-24 9:08 ` Gerd Möllmann
2024-04-24 19:03 ` Helmut Eller
2024-04-24 20:02 ` Gerd Möllmann
2024-04-24 20:13 ` Helmut Eller
2024-04-24 20:42 ` Gerd Möllmann
2024-04-25 9:44 ` Helmut Eller
2024-04-25 11:44 ` Gerd Möllmann
2024-04-25 16:04 ` basic questions on MPS Andrea Corallo
2024-04-25 17:51 ` Helmut Eller
2024-04-25 18:48 ` Eli Zaretskii
2024-04-25 18:53 ` Gerd Möllmann
2024-04-25 19:26 ` Vibhav Pant
2024-04-26 6:36 ` Helmut Eller
2024-04-26 7:25 ` Gerd Möllmann
2024-04-26 15:07 ` vibhavp
2024-04-26 6:42 ` Gerd Möllmann
2024-04-27 0:20 ` Richard Stallman
2024-04-27 8:41 ` Helmut Eller
2024-04-28 22:44 ` Richard Stallman
2024-04-29 4:27 ` Helmut Eller
2024-04-29 22:40 ` Richard Stallman
2024-04-25 18:41 ` Eli Zaretskii
2024-04-25 18:53 ` Andrea Corallo
2024-04-25 18:56 ` Gerd Möllmann
2024-04-25 19:29 ` Andrea Corallo
2024-04-25 19:03 ` Eli Zaretskii
2024-04-25 19:09 ` Andrea Corallo
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=86a5ll7wj9.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=eggert@cs.ucla.edu \
--cc=eller.helmut@gmail.com \
--cc=emacs-devel@gnu.org \
--cc=gerd.moellmann@gmail.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.