D Language Foundation January 2025 Quarterly Meeting Summary
Steven Schveighoffer
schveiguy at gmail.com
Fri Apr 11 01:59:36 UTC 2025
On Thursday, 10 April 2025 at 11:37:11 UTC, Mike Parker wrote:
> __The new GC__
>
> Luís said he'd spoken with Amaury at DConf about the new GC
> implementation regarding ARM. The new GC assumed a page size of
> 4K, but ARM had a different page size, which could cause
> higher-than-expected memory usage on ARM systems. He wanted to
> follow up on the implementation's progress.
>
> I said no one at the meeting was up to speed on that. It would
> have to be Steve or Amaury. I said I could put him in touch
> with them and he could ask them (and I did).
Apologies on my memory, but I'm not sure if this conversation
happened or not.
Technically, we use assumptions on the page size, so while it
might not align with the system page size, the GC isn't going to
fail to use the "Extra memory". We allocate 2MB pages (blocks),
and then divide them up into what we think are pages (assuming
4K). Where we may have issues is marking pages as "unused" to
give back to the OS, I believe we will try to mark the 4k page as
unused, and this might not work right. But as far as divvying up
the memory, that does not rely on an OS/arch provided page size,
it relies on constants in our code.
Adjusting the page size shouldn't be extremely difficult, but we
may have issues with some metadata. i.e. a 4k slab of 8-byte
allocations requires 512 bits for flagging each slot as
"allocated". A 16k slab would require 2048 bits. Our metadata
structure is 128 bytes (1024 bits) in size, and we really do not
have a lot of bits to spare, let alone that many more.
I'm sure we can come up with a solution when the time comes. It
might be as simple as -- no 8-byte allocations. Or we may just
have to only give back memory in "4-page" chunks.
-Steve
More information about the Digitalmars-d-announce
mailing list