On Wed, 20 Nov 2024 at 12:03, Corinna Vinschen
<corinna-cyg...@cygwin.com> wrote:
>
> Hi Teemu,
>
> On Nov 18 23:28, Teemu Nätkinniemi wrote:
> > Hello!
> >
> > I raised this issue couple of years ago on cygwin-developers.
>
> The cause of the problem is well known for a long time.  The underlying
> dlmalloc implementation was never developed for threaded processes, and
> Cygwin was originally not multi-thread capable so that wasn't much
> of a problem.
>
> Since that time, Cygwin has moved to multi-threading but we still use
> dlmalloc under the hood.  The simple approach of just adding a lock
> to each call into dlmalloc (see winsup/cygwin/mm/malloc_wrapper.cc)
> avoids crashes, but leads to congestion in processes using lots of
> memory allocation in lots of threads.
>
> This is aggravated by the fact that we use malloc within Cygwin itself.
>
> There were a couple of efforts over the years to replace dlmalloc
> with, for instance, ptmalloc3, or to convert dlmalloc to the USE_LOCKS
> variant.

Where can we find that variant?

> For some reason or other, none of these efforts where
> ultimately fruitful yet.  Personally I have to admit defeat in trying
> to get ptmalloc3 running, more than 10 years ago.
>
> Anyway.  Having said that, anybody being able to come up with a malloc
> port which actually works as part of Cygwin *and* avoids the contention
> of the current solution will get as many goldstars and plush hippos
> (see https://cygwin.com/goldstars/) the person asks for.

What about mimalloc? Would that help?

Dan
-- 
Dan Shelton - Cluster Specialist Win/Lin/Bsd

Reply via email to