Project

General

Profile

Feature #16290

Add Ruby C API to acquire aligned memory

Added by watson1978 (Shizuo Fujita) about 1 month ago. Updated about 1 month ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:95663]

Description

Related to https://github.com/ruby/ruby/pull/2614

I have required to acquire aligned memory in Ruby C-extension library (https://github.com/rmagick/rmagick/pull/832).
I want an API that notifies acquired size to Ruby GC.

Of course, I know that we can implement a similar function in extension library using rb_gc_adjust_memory_usage().
However, if Ruby have the API, we can easily use it in some extension libraries.

History

Updated by shyouhei (Shyouhei Urabe) about 1 month ago

I'm not in favor of this. There are many ways to allocate a memory region, like mmap(2). Do we have to provide ruby counterparts for every and all of them?

Updated by naruse (Yui NARUSE) about 1 month ago

shyouhei (Shyouhei Urabe) wrote:

I'm not in favor of this. There are many ways to allocate a memory region, like mmap(2). Do we have to provide ruby counterparts for every and all of them?

rb_aligned_malloc uses 5 underlying implementations.
It's hard to make C-extension developer to re-develop this.
It sounds reasonable to make public this implementation.
https://github.com/ruby/ruby/blob/853d91a04a4d133fc90b35c90570dc1c656a7922/gc.c#L9736-L9761

We don't have mmap(2) wrapper.

Updated by shyouhei (Shyouhei Urabe) about 1 month ago

naruse (Yui NARUSE) wrote:

shyouhei (Shyouhei Urabe) wrote:

I'm not in favor of this. There are many ways to allocate a memory region, like mmap(2). Do we have to provide ruby counterparts for every and all of them?

rb_aligned_malloc uses 5 underlying implementations.
It's hard to make C-extension developer to re-develop this.

In case of this request, ImageMagick already does have aligned allocator. If we provide one we would use any of 5 backends but that is not required at all. They already have it. What is wanted is a way to notify ruby about their memory usage.

Also available in: Atom PDF