emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MPS signals and Emacs


From: Gerd Möllmann
Subject: Re: MPS signals and Emacs
Date: Mon, 22 Apr 2024 13:00:37 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Eli Zaretskii <eliz@gnu.org> writes:

> I don't understand this part:
>
>   At the end of the GC, we move P to to-space by simply changing its
>   number in the page info data.
>
> What is "its number" here?  

Assume the page info data structure looks like this

struct info
{
  int number;
} infos[...];

somehow indexed by VM page. And say we have

int to_space, from_space;

then info[x].number == to_space would mean page X is in to-space, and
analogously for from-space.

> Since all the live objects that could be copied were copied from P to
> to-space, we now have a single object O in P (which is in from-space)
> and all the rest in to-space. 

Right. The important part is that P's entry in the info array above would
be changed to to_space. By that P gets part of to-space.

> Now comes that magic sentence where I got lost, and somehow "moves P
> to to-space". How does it do that? 

Ah, okay. It's what I wrote above. (I said it was horrible ;-)).

> And why move P to to-space in the first place, when all of its objects
> except O are already copied to to-space?

Not sure if I understand... Because of O? O is live, and if P would
remain in from-space, O's memory could be overwritten by the next GC,
where P would be considered part of to-space if we don't prevent it.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]