-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 20
-
b16
-
generic
-
generic
Currently, there are 2 sources of dynamic allocations.
1. pointer-based linked-list
2. 'strdup' message contents
I don't think this has memory leak, but this has impact on glibc/malloc.
If allocation of logsites interleaves with other allocation, it is hard to clean up all glibc arenas. This worsens fragmentation issue.
I plan to use pre-allocated buffer and serialize the linked-list to it. This effort won't eliminate mutex lock. I plan to use ping-pong buffers to guarantee AsyncLogWriter is non-blocking.
1. pointer-based linked-list
2. 'strdup' message contents
I don't think this has memory leak, but this has impact on glibc/malloc.
If allocation of logsites interleaves with other allocation, it is hard to clean up all glibc arenas. This worsens fragmentation issue.
I plan to use pre-allocated buffer and serialize the linked-list to it. This effort won't eliminate mutex lock. I plan to use ping-pong buffers to guarantee AsyncLogWriter is non-blocking.
- relates to
-
JDK-8294075 gtest/AsyncLogGtest crashes with SEGV
- Resolved